{
  "name": "com.l1fe.forge:forge-health",
  "language": "kotlin",
  "version": "0.1.0",
  "description": "Kotlin/JVM forge-health module.",
  "manifest": "forge-kt/forge-health/build.gradle.kts",
  "manifestSha256": "6b789bafca9ac66a10fbdd087c47c97acdaf14e674292c00410da36dc3e0d3e7",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/kotlin/forge-health",
  "features": {},
  "files": [
    {
      "path": "forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/HealthError.kt",
      "sha256": "d46e01c00ba5a8be6c2ba864c24665d7d0d7ab6afe67c910179a8de8aa342ab3",
      "artifactSha256": "be773c0ee06de844129b73191cd9d2ca8f302538610455e1dd08a572bee8e5e7",
      "url": "/reference/source/forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/HealthError.kt.txt",
      "declarations": [
        {
          "name": "public sealed class ForgeHealthError(",
          "line": 17,
          "signature": "public sealed class ForgeHealthError(\nmessage: String,\ncause: Throwable?;",
          "documentation": ""
        },
        {
          "name": "public class InvalidTransition(",
          "line": 31,
          "signature": "public class InvalidTransition(\npublic val from: LifecycleState,\npublic val to: LifecycleState,\npublic val validTargets: Set<LifecycleState>,\n) : ForgeHealthError(\n\"invalid lifecycle transition from '$",
          "documentation": ""
        },
        {
          "name": "public val from: LifecycleState,",
          "line": 32,
          "signature": "public val from: LifecycleState,\npublic val to: LifecycleState,\npublic val validTargets: Set<LifecycleState>,\n) : ForgeHealthError(\n\"invalid lifecycle transition from '$",
          "documentation": ""
        },
        {
          "name": "public val to: LifecycleState,",
          "line": 33,
          "signature": "public val to: LifecycleState,\npublic val validTargets: Set<LifecycleState>,\n) : ForgeHealthError(\n\"invalid lifecycle transition from '$",
          "documentation": ""
        },
        {
          "name": "public val validTargets: Set<LifecycleState>,",
          "line": 34,
          "signature": "public val validTargets: Set<LifecycleState>,\n) : ForgeHealthError(\n\"invalid lifecycle transition from '$",
          "documentation": ""
        },
        {
          "name": "public class ThresholdExceeded(",
          "line": 50,
          "signature": "public class ThresholdExceeded(\npublic val metric: String,\npublic val currentValue: Long,\npublic val threshold: Long,\npublic val severity: String,\n) : ForgeHealthError(\n\"health threshold exceeded for metric '$metric': current value $currentValue \" +\n\"exceeds $severity threshold $threshold\"\n)\n}",
          "documentation": ""
        },
        {
          "name": "public val metric: String,",
          "line": 51,
          "signature": "public val metric: String,\npublic val currentValue: Long,\npublic val threshold: Long,\npublic val severity: String,\n) : ForgeHealthError(\n\"health threshold exceeded for metric '$metric': current value $currentValue \" +\n\"exceeds $severity threshold $threshold\"\n)\n}",
          "documentation": ""
        },
        {
          "name": "public val currentValue: Long,",
          "line": 52,
          "signature": "public val currentValue: Long,\npublic val threshold: Long,\npublic val severity: String,\n) : ForgeHealthError(\n\"health threshold exceeded for metric '$metric': current value $currentValue \" +\n\"exceeds $severity threshold $threshold\"\n)\n}",
          "documentation": ""
        },
        {
          "name": "public val threshold: Long,",
          "line": 53,
          "signature": "public val threshold: Long,\npublic val severity: String,\n) : ForgeHealthError(\n\"health threshold exceeded for metric '$metric': current value $currentValue \" +\n\"exceeds $severity threshold $threshold\"\n)\n}",
          "documentation": ""
        },
        {
          "name": "public val severity: String,",
          "line": 54,
          "signature": "public val severity: String,\n) : ForgeHealthError(\n\"health threshold exceeded for metric '$metric': current value $currentValue \" +\n\"exceeds $severity threshold $threshold\"\n)\n}",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/HealthMonitor.kt",
      "sha256": "524d7e2f2254e7f56c0b25f60bc05724dc0664cf157c0cbb8f8e69952b479129",
      "artifactSha256": "bc2eb95a11e806eca28f6aa54c459068fc587d0ebc654e482b50c00dfe70425f",
      "url": "/reference/source/forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/HealthMonitor.kt.txt",
      "declarations": [
        {
          "name": "public enum class HealthStatus",
          "line": 21,
          "signature": "public enum class HealthStatus",
          "documentation": ""
        },
        {
          "name": "public data class MetricThreshold(",
          "line": 42,
          "signature": "public data class MetricThreshold(\n@SerialName(\"degraded_threshold\")\nval degradedThreshold: Long,\n@SerialName(\"critical_threshold\")\nval criticalThreshold: Long,\n)",
          "documentation": ""
        },
        {
          "name": "public data class HealthMonitorConfig(",
          "line": 68,
          "signature": "public data class HealthMonitorConfig(\n@SerialName(\"error_count\")\nval errorCountThreshold: MetricThreshold?;",
          "documentation": ""
        },
        {
          "name": "public val DEFAULT: HealthMonitorConfig;",
          "line": 85,
          "signature": "public val DEFAULT: HealthMonitorConfig;",
          "documentation": ""
        },
        {
          "name": "public data class HealthCheckResult(",
          "line": 106,
          "signature": "public data class HealthCheckResult(\nval status: HealthStatus,\nval details: List<MetricDetail>,\nval snapshot: HealthProfileSnapshot,\n)\n\n/**\n* Status detail for a single metric.\n*\n* @property metric The metric name.\n* @property currentValue The current value.\n* @property status The status for this metric.\n*/\n@Serializable\npublic data class MetricDetail(\nval metric: String,\n@SerialName(\"current_value\")\nval currentValue: Long,\nval status: HealthStatus,\n)\n\n/**\n* Monitors a [HealthProfile] against configurable thresholds.\n*\n* ANVIL Spec Section 5.3\n*",
          "documentation": ""
        },
        {
          "name": "public data class MetricDetail(",
          "line": 120,
          "signature": "public data class MetricDetail(\nval metric: String,\n@SerialName(\"current_value\")\nval currentValue: Long,\nval status: HealthStatus,\n)\n\n/**\n* Monitors a [HealthProfile] against configurable thresholds.\n*\n* ANVIL Spec Section 5.3\n*\n* @param config The threshold configuration.\n*/\npublic class HealthMonitor(\nprivate val config: HealthMonitorConfig;",
          "documentation": ""
        },
        {
          "name": "public class HealthMonitor(",
          "line": 134,
          "signature": "public class HealthMonitor(\nprivate val config: HealthMonitorConfig;",
          "documentation": ""
        },
        {
          "name": "public fun check(profile: HealthProfile): HealthCheckResult",
          "line": 147,
          "signature": "public fun check(profile: HealthProfile): HealthCheckResult",
          "documentation": ""
        },
        {
          "name": "public fun status(profile: HealthProfile): HealthStatus;",
          "line": 183,
          "signature": "public fun status(profile: HealthProfile): HealthStatus;",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/HealthProfile.kt",
      "sha256": "2ebc8489d6018e0eb81668c693a74ff8e07ec11d2b3c9e2b2c91942feb017a01",
      "artifactSha256": "1a086dddbc40cff7d3739f21f32558a751e0bd27f479e15626cf790f4fc2dd46",
      "url": "/reference/source/forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/HealthProfile.kt.txt",
      "declarations": [
        {
          "name": "public data class HealthProfileSnapshot(",
          "line": 39,
          "signature": "public data class HealthProfileSnapshot(\n@SerialName(\"inference_count\")\nval inferenceCount: Long,\n@SerialName(\"total_tokens\")\nval totalTokens: Long,\n@SerialName(\"tool_invocations\")\nval toolInvocations: Long,\n@SerialName(\"error_count\")\nval errorCount: Int,\n@SerialName(\"uptime_ms\")\nval uptimeMs: Long,\n@SerialName(\"active_tasks\")\nval activeTasks: Int,\n@SerialName(\"completed_tasks\")\nval completedTasks: Long,\n@SerialName(\"error_rate\")\nval errorRate: Double,\n@SerialName(\"avg_latency_ms\")\nval avgLatencyMs: Double,\n@SerialName(\"tool_success_rate\")\nval toolSuccessRate: Double,\n@SerialName(\"generation_success_rate\")\nval generationSuccessRate: Double,\nval timestamp: Timestamp,\n)\n",
          "documentation": ""
        },
        {
          "name": "public class HealthProfile",
          "line": 74,
          "signature": "public class HealthProfile",
          "documentation": ""
        },
        {
          "name": "public fun recordInference(tokens: Long)",
          "line": 94,
          "signature": "public fun recordInference(tokens: Long)",
          "documentation": ""
        },
        {
          "name": "public fun recordToolInvocation(success: Boolean;",
          "line": 105,
          "signature": "public fun recordToolInvocation(success: Boolean;",
          "documentation": ""
        },
        {
          "name": "public fun recordGeneration(success: Boolean;",
          "line": 120,
          "signature": "public fun recordGeneration(success: Boolean;",
          "documentation": ""
        },
        {
          "name": "public fun recordError()",
          "line": 130,
          "signature": "public fun recordError()",
          "documentation": ""
        },
        {
          "name": "public fun recordLatency(latencyMs: Long)",
          "line": 141,
          "signature": "public fun recordLatency(latencyMs: Long)",
          "documentation": ""
        },
        {
          "name": "public fun taskStarted()",
          "line": 151,
          "signature": "public fun taskStarted()",
          "documentation": ""
        },
        {
          "name": "public fun taskCompleted()",
          "line": 160,
          "signature": "public fun taskCompleted()",
          "documentation": ""
        },
        {
          "name": "public fun getInferenceCount(): Long;",
          "line": 168,
          "signature": "public fun getInferenceCount(): Long;",
          "documentation": ""
        },
        {
          "name": "public fun getTotalTokens(): Long;",
          "line": 173,
          "signature": "public fun getTotalTokens(): Long;",
          "documentation": ""
        },
        {
          "name": "public fun getToolInvocations(): Long;",
          "line": 178,
          "signature": "public fun getToolInvocations(): Long;",
          "documentation": ""
        },
        {
          "name": "public fun getErrorCount(): Int;",
          "line": 183,
          "signature": "public fun getErrorCount(): Int;",
          "documentation": ""
        },
        {
          "name": "public fun getUptimeMs(): Long;",
          "line": 188,
          "signature": "public fun getUptimeMs(): Long;",
          "documentation": ""
        },
        {
          "name": "public fun getActiveTasks(): Int;",
          "line": 195,
          "signature": "public fun getActiveTasks(): Int;",
          "documentation": ""
        },
        {
          "name": "public fun getCompletedTasks(): Long;",
          "line": 202,
          "signature": "public fun getCompletedTasks(): Long;",
          "documentation": ""
        },
        {
          "name": "public fun getErrorRate(): Double",
          "line": 211,
          "signature": "public fun getErrorRate(): Double",
          "documentation": ""
        },
        {
          "name": "public fun getAvgLatencyMs(): Double",
          "line": 223,
          "signature": "public fun getAvgLatencyMs(): Double",
          "documentation": ""
        },
        {
          "name": "public fun getToolSuccessRate(): Double",
          "line": 235,
          "signature": "public fun getToolSuccessRate(): Double",
          "documentation": ""
        },
        {
          "name": "public fun getGenerationSuccessRate(): Double",
          "line": 247,
          "signature": "public fun getGenerationSuccessRate(): Double",
          "documentation": ""
        },
        {
          "name": "public fun snapshot(): HealthProfileSnapshot;",
          "line": 257,
          "signature": "public fun snapshot(): HealthProfileSnapshot;",
          "documentation": ""
        },
        {
          "name": "public fun reset()",
          "line": 277,
          "signature": "public fun reset()",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/LifecycleManager.kt",
      "sha256": "1b0a868082a886ae6a1a3f7686c27a7f5fb18255c8352c523fa7f532604dc95a",
      "artifactSha256": "34c3bc03065bcb84501610d47097fa01555817eb9f1fbba0d880758428eb4600",
      "url": "/reference/source/forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/LifecycleManager.kt.txt",
      "declarations": [
        {
          "name": "public data class LifecycleEvent(",
          "line": 29,
          "signature": "public data class LifecycleEvent(\nval from: LifecycleState,\nval to: LifecycleState,\nval reason: String,\nval timestamp: Timestamp,\n)\n\n/**\n* Listener interface for lifecycle transition events.\n*\n* Implement this to react to agent lifecycle changes (e.g., logging,\n* telemetry, audit trail entries).\n*/\npublic fun interface LifecycleListener",
          "documentation": ""
        },
        {
          "name": "public fun interface LifecycleListener",
          "line": 42,
          "signature": "public fun interface LifecycleListener",
          "documentation": ""
        },
        {
          "name": "public fun onTransition(event: LifecycleEvent)",
          "line": 48,
          "signature": "public fun onTransition(event: LifecycleEvent)\n}\n\n/**\n* Manages the lifecycle state machine for an agent.\n*\n* Thread-safe. All state reads and transitions are synchronized.\n* The manager starts in the [LifecycleState.INITIALIZING] state,\n* which is the initial state for all agents per ANVIL Spec Section 13.2.\n*\n* ANVIL Spec Section 13.2\n*\n* @param listener Optional listener for transition events.\n*/\npublic class LifecycleManager(\nprivate val listener: LifecycleListener?;",
          "documentation": ""
        },
        {
          "name": "public class LifecycleManager(",
          "line": 62,
          "signature": "public class LifecycleManager(\nprivate val listener: LifecycleListener?;",
          "documentation": ""
        },
        {
          "name": "public val currentState: LifecycleState",
          "line": 72,
          "signature": "public val currentState: LifecycleState\nget();",
          "documentation": ""
        },
        {
          "name": "public val transitionHistory: List<LifecycleEvent>",
          "line": 78,
          "signature": "public val transitionHistory: List<LifecycleEvent>\nget();",
          "documentation": ""
        },
        {
          "name": "public fun transition(to: LifecycleState, reason: String)",
          "line": 93,
          "signature": "public fun transition(to: LifecycleState, reason: String)",
          "documentation": ""
        },
        {
          "name": "public fun tryTransition(to: LifecycleState, reason: String): Boolean",
          "line": 124,
          "signature": "public fun tryTransition(to: LifecycleState, reason: String): Boolean",
          "documentation": ""
        },
        {
          "name": "public val isTerminal: Boolean",
          "line": 136,
          "signature": "public val isTerminal: Boolean\nget();",
          "documentation": ""
        },
        {
          "name": "public val isOperational: Boolean",
          "line": 144,
          "signature": "public val isOperational: Boolean\nget();",
          "documentation": ""
        },
        {
          "name": "public val validTargets: Set<LifecycleState>",
          "line": 150,
          "signature": "public val validTargets: Set<LifecycleState>\nget();",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/LifecycleState.kt",
      "sha256": "e8a34c39e021765b3ba3b2b2046f8d748581ae681d6c14e56a22aa1fac5b7870",
      "artifactSha256": "ab9e87c278a0fb16e32b00a1c3c357cb458818af8ba3780fb7a342a5121ce7f1",
      "url": "/reference/source/forge-kt/forge-health/src/main/kotlin/com/l1fe/forge/health/LifecycleState.kt.txt",
      "declarations": [
        {
          "name": "public enum class LifecycleState(public val value: String)",
          "line": 31,
          "signature": "public enum class LifecycleState(public val value: String)",
          "documentation": ""
        },
        {
          "name": "public fun isTerminal(): Boolean;",
          "line": 88,
          "signature": "public fun isTerminal(): Boolean;",
          "documentation": ""
        },
        {
          "name": "public fun isOperational(): Boolean;",
          "line": 97,
          "signature": "public fun isOperational(): Boolean;",
          "documentation": ""
        },
        {
          "name": "public val VALID_TRANSITIONS: Map<LifecycleState, Set<LifecycleState>>;",
          "line": 117,
          "signature": "public val VALID_TRANSITIONS: Map<LifecycleState, Set<LifecycleState>>;",
          "documentation": ""
        },
        {
          "name": "public fun validTargets(from: LifecycleState): Set<LifecycleState> =",
          "line": 132,
          "signature": "public fun validTargets(from: LifecycleState): Set<LifecycleState> =",
          "documentation": ""
        },
        {
          "name": "public fun isValidTransition(from: LifecycleState, to: LifecycleState): Boolean =",
          "line": 142,
          "signature": "public fun isValidTransition(from: LifecycleState, to: LifecycleState): Boolean =",
          "documentation": ""
        }
      ]
    }
  ]
}
