{
  "name": "com.l1fe.forge:forge-telemetry",
  "language": "kotlin",
  "version": "0.1.0",
  "description": "Kotlin/JVM forge-telemetry module.",
  "manifest": "forge-kt/forge-telemetry/build.gradle.kts",
  "manifestSha256": "5adfcb1131e063bd501072e2fcf5706bcb9d69dfb845df386593d5d4393a3f50",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/kotlin/forge-telemetry",
  "features": {},
  "files": [
    {
      "path": "forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/AuditTrail.kt",
      "sha256": "4c10fe88f15a870799eb9a1b972d882684a0240e93ae72367a04c47eade797d5",
      "artifactSha256": "8a44cc4ba3fad245fe18b6fae84f81711ce8e7ac730a97a053ab1a96d206c1b0",
      "url": "/reference/source/forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/AuditTrail.kt.txt",
      "declarations": [
        {
          "name": "public enum class AuditEntryType",
          "line": 23,
          "signature": "public enum class AuditEntryType",
          "documentation": ""
        },
        {
          "name": "public data class AuditEntry(",
          "line": 76,
          "signature": "public data class AuditEntry(\nval id: String,\nval type: AuditEntryType,\n@SerialName(\"agent_did\")\nval agentDid: String,\nval description: String,\nval metadata: Map<String, String>;",
          "documentation": ""
        },
        {
          "name": "public class AuditTrail(",
          "line": 97,
          "signature": "public class AuditTrail(\nprivate val agentDid: String,\n)",
          "documentation": ""
        },
        {
          "name": "public fun record(",
          "line": 113,
          "signature": "public fun record(\ntype: AuditEntryType,\ndescription: String,\nmetadata: Map<String, String>;",
          "documentation": ""
        },
        {
          "name": "public fun recordLifecycleTransition(",
          "line": 137,
          "signature": "public fun recordLifecycleTransition(\nfromState: String,\ntoState: String,\nreason: String,\n): AuditEntry;",
          "documentation": ""
        },
        {
          "name": "public fun recordToolInvocation(",
          "line": 159,
          "signature": "public fun recordToolInvocation(\ntoolName: String,\ntier: String,\nsuccess: Boolean,\n): AuditEntry;",
          "documentation": ""
        },
        {
          "name": "public fun recordCapabilityCheck(",
          "line": 181,
          "signature": "public fun recordCapabilityCheck(\ncapability: String,\ngranted: Boolean,\nactId: String;",
          "documentation": ""
        },
        {
          "name": "public fun allEntries(): List<AuditEntry>;",
          "line": 201,
          "signature": "public fun allEntries(): List<AuditEntry>;",
          "documentation": ""
        },
        {
          "name": "public fun entriesByType(type: AuditEntryType): List<AuditEntry> =",
          "line": 209,
          "signature": "public fun entriesByType(type: AuditEntryType): List<AuditEntry> =",
          "documentation": ""
        },
        {
          "name": "public fun size(): Int;",
          "line": 217,
          "signature": "public fun size(): Int;",
          "documentation": ""
        },
        {
          "name": "public fun recent(count: Int): List<AuditEntry> =",
          "line": 225,
          "signature": "public fun recent(count: Int): List<AuditEntry> =",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/SpanCollector.kt",
      "sha256": "530a405f84a355fe257462b003e725bba959d5ed2994280bb283b8fa64c18048",
      "artifactSha256": "93098705c1697c4731439885081ec1a031e2ec279fc2c9d8e9233c427c3b692b",
      "url": "/reference/source/forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/SpanCollector.kt.txt",
      "declarations": [
        {
          "name": "public data class MetricPoint(",
          "line": 25,
          "signature": "public data class MetricPoint(\nval name: String,\nval value: Double,\nval attributes: Map<String, SpanAttribute>;",
          "documentation": ""
        },
        {
          "name": "public class InMemorySpanCollector(",
          "line": 45,
          "signature": "public class InMemorySpanCollector(\nprivate val maxSpans: Int;",
          "documentation": ""
        },
        {
          "name": "public fun spans(): List<ForgeSpan>;",
          "line": 112,
          "signature": "public fun spans(): List<ForgeSpan>;",
          "documentation": ""
        },
        {
          "name": "public fun events(): List<ForgeEvent>;",
          "line": 119,
          "signature": "public fun events(): List<ForgeEvent>;",
          "documentation": ""
        },
        {
          "name": "public fun metrics(): List<MetricPoint>;",
          "line": 126,
          "signature": "public fun metrics(): List<MetricPoint>;",
          "documentation": ""
        },
        {
          "name": "public fun spansByName(namePrefix: String): List<ForgeSpan> =",
          "line": 134,
          "signature": "public fun spansByName(namePrefix: String): List<ForgeSpan> =",
          "documentation": ""
        },
        {
          "name": "public fun spanCount(): Int;",
          "line": 142,
          "signature": "public fun spanCount(): Int;",
          "documentation": ""
        },
        {
          "name": "public fun eventCount(): Int;",
          "line": 149,
          "signature": "public fun eventCount(): Int;",
          "documentation": ""
        },
        {
          "name": "public fun clear()",
          "line": 154,
          "signature": "public fun clear()",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/TelemetryContract.kt",
      "sha256": "b176db583e88b6f829a58bd497954f0040fca9b5d9aadc1e05744ae6b1929ff4",
      "artifactSha256": "9c0068dac5ca1e119594dae7092302f089b4a26ae335ff44ae4fe41b49815b03",
      "url": "/reference/source/forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/TelemetryContract.kt.txt",
      "declarations": [
        {
          "name": "public interface TelemetryCollector",
          "line": 24,
          "signature": "public interface TelemetryCollector",
          "documentation": ""
        },
        {
          "name": "public fun recordSpan(span: ForgeSpan)",
          "line": 33,
          "signature": "public fun recordSpan(span: ForgeSpan)\n\n/**\n* Record a telemetry event.\n*\n* ANVIL Spec Section 12.4\n*\n* @param event The event to record.\n*/\npublic fun recordEvent(event: ForgeEvent)\n\n/**\n* Record a metric data point.\n*\n* ANVIL Spec Section 12.7 -- Metrics\n*\n* @param name The metric name (e.g., \"forge.agent.tool_invocations\").\n* @param value The metric value.\n* @param attributes Optional attributes for dimensional querying.\n*/\npublic fun recordMetric(\nname: String,\nvalue: Double,\nattributes: Map<String, SpanAttribute>;",
          "documentation": ""
        },
        {
          "name": "public fun recordEvent(event: ForgeEvent)",
          "line": 42,
          "signature": "public fun recordEvent(event: ForgeEvent)\n\n/**\n* Record a metric data point.\n*\n* ANVIL Spec Section 12.7 -- Metrics\n*\n* @param name The metric name (e.g., \"forge.agent.tool_invocations\").\n* @param value The metric value.\n* @param attributes Optional attributes for dimensional querying.\n*/\npublic fun recordMetric(\nname: String,\nvalue: Double,\nattributes: Map<String, SpanAttribute>;",
          "documentation": ""
        },
        {
          "name": "public fun recordMetric(",
          "line": 53,
          "signature": "public fun recordMetric(\nname: String,\nvalue: Double,\nattributes: Map<String, SpanAttribute>;",
          "documentation": ""
        },
        {
          "name": "public fun flush(timeoutMs: Long;",
          "line": 68,
          "signature": "public fun flush(timeoutMs: Long;",
          "documentation": ""
        },
        {
          "name": "public fun shutdown()",
          "line": 75,
          "signature": "public fun shutdown()\n}\n\n/**\n* A telemetry collector that discards all data.\n*\n* Used as the default when no telemetry backend is configured.\n*\n* ANVIL Spec Section 12.5\n*/\npublic object NoopCollector : TelemetryCollector",
          "documentation": ""
        },
        {
          "name": "public object NoopCollector : TelemetryCollector",
          "line": 85,
          "signature": "public object NoopCollector : TelemetryCollector",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/TelemetryError.kt",
      "sha256": "7c19199a0bf719fe5f4dc1c4a6b83b9155015abd940430d8b21e5842cfc7b169",
      "artifactSha256": "5f3c6d4ac04e505fc1a91e4db3a6fb94b377241a54d69d17590fdd88b50857ea",
      "url": "/reference/source/forge-kt/forge-telemetry/src/main/kotlin/com/l1fe/forge/telemetry/TelemetryError.kt.txt",
      "declarations": [
        {
          "name": "public sealed class ForgeTelemetryError(",
          "line": 17,
          "signature": "public sealed class ForgeTelemetryError(\nmessage: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public class SpanError(",
          "line": 30,
          "signature": "public class SpanError(\npublic val spanName: String,\npublic val reason: String,\n) : ForgeTelemetryError(\n\"telemetry span '$spanName' error: $reason (see ANVIL Spec SS12.3)\"\n)\n\n/**\n* The audit trail could not be written.\n*\n* ANVIL Spec Section 12.6 -- Audit Trail\n*\n* @property entryType The type of audit entry that failed.\n* @property reason The failure reason.\n*/\npublic class AuditWriteFailed(\npublic val entryType: String,\npublic val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public val spanName: String,",
          "line": 31,
          "signature": "public val spanName: String,\npublic val reason: String,\n) : ForgeTelemetryError(\n\"telemetry span '$spanName' error: $reason (see ANVIL Spec SS12.3)\"\n)\n\n/**\n* The audit trail could not be written.\n*\n* ANVIL Spec Section 12.6 -- Audit Trail\n*\n* @property entryType The type of audit entry that failed.\n* @property reason The failure reason.\n*/\npublic class AuditWriteFailed(\npublic val entryType: String,\npublic val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public val reason: String,",
          "line": 32,
          "signature": "public val reason: String,\n) : ForgeTelemetryError(\n\"telemetry span '$spanName' error: $reason (see ANVIL Spec SS12.3)\"\n)\n\n/**\n* The audit trail could not be written.\n*\n* ANVIL Spec Section 12.6 -- Audit Trail\n*\n* @property entryType The type of audit entry that failed.\n* @property reason The failure reason.\n*/\npublic class AuditWriteFailed(\npublic val entryType: String,\npublic val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public class AuditWriteFailed(",
          "line": 45,
          "signature": "public class AuditWriteFailed(\npublic val entryType: String,\npublic val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public val entryType: String,",
          "line": 46,
          "signature": "public val entryType: String,\npublic val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public val reason: String,",
          "line": 47,
          "signature": "public val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public class ExportFailed(",
          "line": 61,
          "signature": "public class ExportFailed(\npublic val backend: String,\npublic val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public val backend: String,",
          "line": 62,
          "signature": "public val backend: String,\npublic val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public val reason: String,",
          "line": 63,
          "signature": "public val reason: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public class CapacityExceeded(",
          "line": 77,
          "signature": "public class CapacityExceeded(\npublic val collectorName: String,\npublic val currentSize: Int,\npublic val maxSize: Int,\n) : ForgeTelemetryError(\n\"telemetry collector '$collectorName' capacity exceeded: \" +\n\"$currentSize items (max $maxSize)\"\n)\n}",
          "documentation": ""
        },
        {
          "name": "public val collectorName: String,",
          "line": 78,
          "signature": "public val collectorName: String,\npublic val currentSize: Int,\npublic val maxSize: Int,\n) : ForgeTelemetryError(\n\"telemetry collector '$collectorName' capacity exceeded: \" +\n\"$currentSize items (max $maxSize)\"\n)\n}",
          "documentation": ""
        },
        {
          "name": "public val currentSize: Int,",
          "line": 79,
          "signature": "public val currentSize: Int,\npublic val maxSize: Int,\n) : ForgeTelemetryError(\n\"telemetry collector '$collectorName' capacity exceeded: \" +\n\"$currentSize items (max $maxSize)\"\n)\n}",
          "documentation": ""
        },
        {
          "name": "public val maxSize: Int,",
          "line": 80,
          "signature": "public val maxSize: Int,\n) : ForgeTelemetryError(\n\"telemetry collector '$collectorName' capacity exceeded: \" +\n\"$currentSize items (max $maxSize)\"\n)\n}",
          "documentation": ""
        }
      ]
    }
  ]
}
