limen-ai 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/LICENSE +190 -0
  3. package/README.md +546 -0
  4. package/dist/api/agents/agent_api.d.ts +126 -0
  5. package/dist/api/agents/agent_api.d.ts.map +1 -0
  6. package/dist/api/agents/agent_api.js +467 -0
  7. package/dist/api/agents/agent_api.js.map +1 -0
  8. package/dist/api/agents/trust_progression.d.ts +78 -0
  9. package/dist/api/agents/trust_progression.d.ts.map +1 -0
  10. package/dist/api/agents/trust_progression.js +124 -0
  11. package/dist/api/agents/trust_progression.js.map +1 -0
  12. package/dist/api/chat/chat_pipeline.d.ts +91 -0
  13. package/dist/api/chat/chat_pipeline.d.ts.map +1 -0
  14. package/dist/api/chat/chat_pipeline.js +630 -0
  15. package/dist/api/chat/chat_pipeline.js.map +1 -0
  16. package/dist/api/chat/technique_injector.d.ts +86 -0
  17. package/dist/api/chat/technique_injector.d.ts.map +1 -0
  18. package/dist/api/chat/technique_injector.js +125 -0
  19. package/dist/api/chat/technique_injector.js.map +1 -0
  20. package/dist/api/data/data_api.d.ts +91 -0
  21. package/dist/api/data/data_api.d.ts.map +1 -0
  22. package/dist/api/data/data_api.js +306 -0
  23. package/dist/api/data/data_api.js.map +1 -0
  24. package/dist/api/enforcement/cost_tracker.d.ts +105 -0
  25. package/dist/api/enforcement/cost_tracker.d.ts.map +1 -0
  26. package/dist/api/enforcement/cost_tracker.js +227 -0
  27. package/dist/api/enforcement/cost_tracker.js.map +1 -0
  28. package/dist/api/enforcement/latency_harness.d.ts +94 -0
  29. package/dist/api/enforcement/latency_harness.d.ts.map +1 -0
  30. package/dist/api/enforcement/latency_harness.js +120 -0
  31. package/dist/api/enforcement/latency_harness.js.map +1 -0
  32. package/dist/api/enforcement/rate_guard.d.ts +52 -0
  33. package/dist/api/enforcement/rate_guard.d.ts.map +1 -0
  34. package/dist/api/enforcement/rate_guard.js +79 -0
  35. package/dist/api/enforcement/rate_guard.js.map +1 -0
  36. package/dist/api/enforcement/rbac_guard.d.ts +55 -0
  37. package/dist/api/enforcement/rbac_guard.d.ts.map +1 -0
  38. package/dist/api/enforcement/rbac_guard.js +77 -0
  39. package/dist/api/enforcement/rbac_guard.js.map +1 -0
  40. package/dist/api/errors/limen_error.d.ts +81 -0
  41. package/dist/api/errors/limen_error.d.ts.map +1 -0
  42. package/dist/api/errors/limen_error.js +324 -0
  43. package/dist/api/errors/limen_error.js.map +1 -0
  44. package/dist/api/facades/claim_facade.d.ts +47 -0
  45. package/dist/api/facades/claim_facade.d.ts.map +1 -0
  46. package/dist/api/facades/claim_facade.js +67 -0
  47. package/dist/api/facades/claim_facade.js.map +1 -0
  48. package/dist/api/facades/working_memory_facade.d.ts +47 -0
  49. package/dist/api/facades/working_memory_facade.d.ts.map +1 -0
  50. package/dist/api/facades/working_memory_facade.js +74 -0
  51. package/dist/api/facades/working_memory_facade.js.map +1 -0
  52. package/dist/api/governance/governed_orchestration.d.ts +76 -0
  53. package/dist/api/governance/governed_orchestration.d.ts.map +1 -0
  54. package/dist/api/governance/governed_orchestration.js +413 -0
  55. package/dist/api/governance/governed_orchestration.js.map +1 -0
  56. package/dist/api/index.d.ts +84 -0
  57. package/dist/api/index.d.ts.map +1 -0
  58. package/dist/api/index.js +847 -0
  59. package/dist/api/index.js.map +1 -0
  60. package/dist/api/infer/infer_pipeline.d.ts +51 -0
  61. package/dist/api/infer/infer_pipeline.d.ts.map +1 -0
  62. package/dist/api/infer/infer_pipeline.js +291 -0
  63. package/dist/api/infer/infer_pipeline.js.map +1 -0
  64. package/dist/api/interfaces/api.d.ts +940 -0
  65. package/dist/api/interfaces/api.d.ts.map +1 -0
  66. package/dist/api/interfaces/api.js +21 -0
  67. package/dist/api/interfaces/api.js.map +1 -0
  68. package/dist/api/knowledge/knowledge_api.d.ts +55 -0
  69. package/dist/api/knowledge/knowledge_api.d.ts.map +1 -0
  70. package/dist/api/knowledge/knowledge_api.js +89 -0
  71. package/dist/api/knowledge/knowledge_api.js.map +1 -0
  72. package/dist/api/migration/023_agent_persistence.d.ts +32 -0
  73. package/dist/api/migration/023_agent_persistence.d.ts.map +1 -0
  74. package/dist/api/migration/023_agent_persistence.js +158 -0
  75. package/dist/api/migration/023_agent_persistence.js.map +1 -0
  76. package/dist/api/migration/024_trust_learning.d.ts +36 -0
  77. package/dist/api/migration/024_trust_learning.d.ts.map +1 -0
  78. package/dist/api/migration/024_trust_learning.js +194 -0
  79. package/dist/api/migration/024_trust_learning.js.map +1 -0
  80. package/dist/api/migration/025_knowledge_graph.d.ts +29 -0
  81. package/dist/api/migration/025_knowledge_graph.d.ts.map +1 -0
  82. package/dist/api/migration/025_knowledge_graph.js +97 -0
  83. package/dist/api/migration/025_knowledge_graph.js.map +1 -0
  84. package/dist/api/migration/026_replay_pipeline.d.ts +30 -0
  85. package/dist/api/migration/026_replay_pipeline.d.ts.map +1 -0
  86. package/dist/api/migration/026_replay_pipeline.js +118 -0
  87. package/dist/api/migration/026_replay_pipeline.js.map +1 -0
  88. package/dist/api/missions/mission_api.d.ts +74 -0
  89. package/dist/api/missions/mission_api.d.ts.map +1 -0
  90. package/dist/api/missions/mission_api.js +408 -0
  91. package/dist/api/missions/mission_api.js.map +1 -0
  92. package/dist/api/observability/health.d.ts +36 -0
  93. package/dist/api/observability/health.d.ts.map +1 -0
  94. package/dist/api/observability/health.js +92 -0
  95. package/dist/api/observability/health.js.map +1 -0
  96. package/dist/api/observability/metrics.d.ts +95 -0
  97. package/dist/api/observability/metrics.d.ts.map +1 -0
  98. package/dist/api/observability/metrics.js +260 -0
  99. package/dist/api/observability/metrics.js.map +1 -0
  100. package/dist/api/roles/roles_api.d.ts +45 -0
  101. package/dist/api/roles/roles_api.d.ts.map +1 -0
  102. package/dist/api/roles/roles_api.js +77 -0
  103. package/dist/api/roles/roles_api.js.map +1 -0
  104. package/dist/api/sessions/session_manager.d.ts +110 -0
  105. package/dist/api/sessions/session_manager.d.ts.map +1 -0
  106. package/dist/api/sessions/session_manager.js +278 -0
  107. package/dist/api/sessions/session_manager.js.map +1 -0
  108. package/dist/budget/harness/dba_harness.d.ts +36 -0
  109. package/dist/budget/harness/dba_harness.d.ts.map +1 -0
  110. package/dist/budget/harness/dba_harness.js +58 -0
  111. package/dist/budget/harness/dba_harness.js.map +1 -0
  112. package/dist/budget/impl/dba_impl.d.ts +47 -0
  113. package/dist/budget/impl/dba_impl.d.ts.map +1 -0
  114. package/dist/budget/impl/dba_impl.js +402 -0
  115. package/dist/budget/impl/dba_impl.js.map +1 -0
  116. package/dist/budget/interfaces/dba_types.d.ts +708 -0
  117. package/dist/budget/interfaces/dba_types.d.ts.map +1 -0
  118. package/dist/budget/interfaces/dba_types.js +124 -0
  119. package/dist/budget/interfaces/dba_types.js.map +1 -0
  120. package/dist/claims/evidence/capability_scope_validator.d.ts +32 -0
  121. package/dist/claims/evidence/capability_scope_validator.d.ts.map +1 -0
  122. package/dist/claims/evidence/capability_scope_validator.js +72 -0
  123. package/dist/claims/evidence/capability_scope_validator.js.map +1 -0
  124. package/dist/claims/evidence/evidence_validator.d.ts +35 -0
  125. package/dist/claims/evidence/evidence_validator.d.ts.map +1 -0
  126. package/dist/claims/evidence/evidence_validator.js +118 -0
  127. package/dist/claims/evidence/evidence_validator.js.map +1 -0
  128. package/dist/claims/harness/claim_harness.d.ts +22 -0
  129. package/dist/claims/harness/claim_harness.d.ts.map +1 -0
  130. package/dist/claims/harness/claim_harness.js +26 -0
  131. package/dist/claims/harness/claim_harness.js.map +1 -0
  132. package/dist/claims/interfaces/claim_types.d.ts +858 -0
  133. package/dist/claims/interfaces/claim_types.d.ts.map +1 -0
  134. package/dist/claims/interfaces/claim_types.js +201 -0
  135. package/dist/claims/interfaces/claim_types.js.map +1 -0
  136. package/dist/claims/migration/019_ccp_claims.d.ts +23 -0
  137. package/dist/claims/migration/019_ccp_claims.d.ts.map +1 -0
  138. package/dist/claims/migration/019_ccp_claims.js +196 -0
  139. package/dist/claims/migration/019_ccp_claims.js.map +1 -0
  140. package/dist/claims/store/claim_stores.d.ts +27 -0
  141. package/dist/claims/store/claim_stores.d.ts.map +1 -0
  142. package/dist/claims/store/claim_stores.js +1352 -0
  143. package/dist/claims/store/claim_stores.js.map +1 -0
  144. package/dist/context/harness/cgp_harness.d.ts +32 -0
  145. package/dist/context/harness/cgp_harness.d.ts.map +1 -0
  146. package/dist/context/harness/cgp_harness.js +295 -0
  147. package/dist/context/harness/cgp_harness.js.map +1 -0
  148. package/dist/context/interfaces/cgp_types.d.ts +905 -0
  149. package/dist/context/interfaces/cgp_types.d.ts.map +1 -0
  150. package/dist/context/interfaces/cgp_types.js +112 -0
  151. package/dist/context/interfaces/cgp_types.js.map +1 -0
  152. package/dist/context/stores/cgp_stores.d.ts +42 -0
  153. package/dist/context/stores/cgp_stores.d.ts.map +1 -0
  154. package/dist/context/stores/cgp_stores.js +856 -0
  155. package/dist/context/stores/cgp_stores.js.map +1 -0
  156. package/dist/execution/harness/egp_harness.d.ts +43 -0
  157. package/dist/execution/harness/egp_harness.d.ts.map +1 -0
  158. package/dist/execution/harness/egp_harness.js +54 -0
  159. package/dist/execution/harness/egp_harness.js.map +1 -0
  160. package/dist/execution/interfaces/egp_types.d.ts +1042 -0
  161. package/dist/execution/interfaces/egp_types.d.ts.map +1 -0
  162. package/dist/execution/interfaces/egp_types.js +195 -0
  163. package/dist/execution/interfaces/egp_types.js.map +1 -0
  164. package/dist/execution/stores/egp_stores.d.ts +29 -0
  165. package/dist/execution/stores/egp_stores.d.ts.map +1 -0
  166. package/dist/execution/stores/egp_stores.js +1250 -0
  167. package/dist/execution/stores/egp_stores.js.map +1 -0
  168. package/dist/execution/wiring/execution_gate.d.ts +56 -0
  169. package/dist/execution/wiring/execution_gate.d.ts.map +1 -0
  170. package/dist/execution/wiring/execution_gate.js +77 -0
  171. package/dist/execution/wiring/execution_gate.js.map +1 -0
  172. package/dist/execution/wiring/floor_enforcer.d.ts +68 -0
  173. package/dist/execution/wiring/floor_enforcer.d.ts.map +1 -0
  174. package/dist/execution/wiring/floor_enforcer.js +96 -0
  175. package/dist/execution/wiring/floor_enforcer.js.map +1 -0
  176. package/dist/execution/wiring/invocation_gate.d.ts +58 -0
  177. package/dist/execution/wiring/invocation_gate.d.ts.map +1 -0
  178. package/dist/execution/wiring/invocation_gate.js +69 -0
  179. package/dist/execution/wiring/invocation_gate.js.map +1 -0
  180. package/dist/execution/wiring/terminal_release.d.ts +56 -0
  181. package/dist/execution/wiring/terminal_release.d.ts.map +1 -0
  182. package/dist/execution/wiring/terminal_release.js +85 -0
  183. package/dist/execution/wiring/terminal_release.js.map +1 -0
  184. package/dist/governance/harness/governance_harness.d.ts +54 -0
  185. package/dist/governance/harness/governance_harness.d.ts.map +1 -0
  186. package/dist/governance/harness/governance_harness.js +60 -0
  187. package/dist/governance/harness/governance_harness.js.map +1 -0
  188. package/dist/governance/migration/012_governance_runs_traces.d.ts +21 -0
  189. package/dist/governance/migration/012_governance_runs_traces.d.ts.map +1 -0
  190. package/dist/governance/migration/012_governance_runs_traces.js +115 -0
  191. package/dist/governance/migration/012_governance_runs_traces.js.map +1 -0
  192. package/dist/governance/migration/013_governance_contracts.d.ts +18 -0
  193. package/dist/governance/migration/013_governance_contracts.d.ts.map +1 -0
  194. package/dist/governance/migration/013_governance_contracts.js +59 -0
  195. package/dist/governance/migration/013_governance_contracts.js.map +1 -0
  196. package/dist/governance/migration/014_governance_supervisor.d.ts +16 -0
  197. package/dist/governance/migration/014_governance_supervisor.d.ts.map +1 -0
  198. package/dist/governance/migration/014_governance_supervisor.js +75 -0
  199. package/dist/governance/migration/014_governance_supervisor.js.map +1 -0
  200. package/dist/governance/migration/015_governance_eval.d.ts +18 -0
  201. package/dist/governance/migration/015_governance_eval.d.ts.map +1 -0
  202. package/dist/governance/migration/015_governance_eval.js +65 -0
  203. package/dist/governance/migration/015_governance_eval.js.map +1 -0
  204. package/dist/governance/migration/016_governance_capabilities.d.ts +16 -0
  205. package/dist/governance/migration/016_governance_capabilities.d.ts.map +1 -0
  206. package/dist/governance/migration/016_governance_capabilities.js +60 -0
  207. package/dist/governance/migration/016_governance_capabilities.js.map +1 -0
  208. package/dist/governance/migration/017_governance_handoffs_idempotency.d.ts +20 -0
  209. package/dist/governance/migration/017_governance_handoffs_idempotency.d.ts.map +1 -0
  210. package/dist/governance/migration/017_governance_handoffs_idempotency.js +103 -0
  211. package/dist/governance/migration/017_governance_handoffs_idempotency.js.map +1 -0
  212. package/dist/governance/migration/018_supervisor_decision_delete_trigger.d.ts +17 -0
  213. package/dist/governance/migration/018_supervisor_decision_delete_trigger.d.ts.map +1 -0
  214. package/dist/governance/migration/018_supervisor_decision_delete_trigger.js +37 -0
  215. package/dist/governance/migration/018_supervisor_decision_delete_trigger.js.map +1 -0
  216. package/dist/governance/stores/governance_stores.d.ts +78 -0
  217. package/dist/governance/stores/governance_stores.d.ts.map +1 -0
  218. package/dist/governance/stores/governance_stores.js +1117 -0
  219. package/dist/governance/stores/governance_stores.js.map +1 -0
  220. package/dist/kernel/audit/audit_trail.d.ts +24 -0
  221. package/dist/kernel/audit/audit_trail.d.ts.map +1 -0
  222. package/dist/kernel/audit/audit_trail.js +569 -0
  223. package/dist/kernel/audit/audit_trail.js.map +1 -0
  224. package/dist/kernel/crypto/crypto_engine.d.ts +49 -0
  225. package/dist/kernel/crypto/crypto_engine.d.ts.map +1 -0
  226. package/dist/kernel/crypto/crypto_engine.js +350 -0
  227. package/dist/kernel/crypto/crypto_engine.js.map +1 -0
  228. package/dist/kernel/database/database_lifecycle.d.ts +24 -0
  229. package/dist/kernel/database/database_lifecycle.d.ts.map +1 -0
  230. package/dist/kernel/database/database_lifecycle.js +404 -0
  231. package/dist/kernel/database/database_lifecycle.js.map +1 -0
  232. package/dist/kernel/database/migrations.d.ts +21 -0
  233. package/dist/kernel/database/migrations.d.ts.map +1 -0
  234. package/dist/kernel/database/migrations.js +407 -0
  235. package/dist/kernel/database/migrations.js.map +1 -0
  236. package/dist/kernel/events/event_bus.d.ts +25 -0
  237. package/dist/kernel/events/event_bus.d.ts.map +1 -0
  238. package/dist/kernel/events/event_bus.js +302 -0
  239. package/dist/kernel/events/event_bus.js.map +1 -0
  240. package/dist/kernel/events/webhook_delivery.d.ts +90 -0
  241. package/dist/kernel/events/webhook_delivery.d.ts.map +1 -0
  242. package/dist/kernel/events/webhook_delivery.js +324 -0
  243. package/dist/kernel/events/webhook_delivery.js.map +1 -0
  244. package/dist/kernel/index.d.ts +39 -0
  245. package/dist/kernel/index.d.ts.map +1 -0
  246. package/dist/kernel/index.js +263 -0
  247. package/dist/kernel/index.js.map +1 -0
  248. package/dist/kernel/interfaces/audit.d.ts +146 -0
  249. package/dist/kernel/interfaces/audit.d.ts.map +1 -0
  250. package/dist/kernel/interfaces/audit.js +15 -0
  251. package/dist/kernel/interfaces/audit.js.map +1 -0
  252. package/dist/kernel/interfaces/capability_manifest.d.ts +104 -0
  253. package/dist/kernel/interfaces/capability_manifest.d.ts.map +1 -0
  254. package/dist/kernel/interfaces/capability_manifest.js +44 -0
  255. package/dist/kernel/interfaces/capability_manifest.js.map +1 -0
  256. package/dist/kernel/interfaces/common.d.ts +91 -0
  257. package/dist/kernel/interfaces/common.d.ts.map +1 -0
  258. package/dist/kernel/interfaces/common.js +10 -0
  259. package/dist/kernel/interfaces/common.js.map +1 -0
  260. package/dist/kernel/interfaces/crypto.d.ts +95 -0
  261. package/dist/kernel/interfaces/crypto.d.ts.map +1 -0
  262. package/dist/kernel/interfaces/crypto.js +14 -0
  263. package/dist/kernel/interfaces/crypto.js.map +1 -0
  264. package/dist/kernel/interfaces/database.d.ts +157 -0
  265. package/dist/kernel/interfaces/database.d.ts.map +1 -0
  266. package/dist/kernel/interfaces/database.js +10 -0
  267. package/dist/kernel/interfaces/database.js.map +1 -0
  268. package/dist/kernel/interfaces/eval.d.ts +93 -0
  269. package/dist/kernel/interfaces/eval.d.ts.map +1 -0
  270. package/dist/kernel/interfaces/eval.js +17 -0
  271. package/dist/kernel/interfaces/eval.js.map +1 -0
  272. package/dist/kernel/interfaces/events.d.ts +73 -0
  273. package/dist/kernel/interfaces/events.d.ts.map +1 -0
  274. package/dist/kernel/interfaces/events.js +13 -0
  275. package/dist/kernel/interfaces/events.js.map +1 -0
  276. package/dist/kernel/interfaces/governance_ids.d.ts +93 -0
  277. package/dist/kernel/interfaces/governance_ids.d.ts.map +1 -0
  278. package/dist/kernel/interfaces/governance_ids.js +18 -0
  279. package/dist/kernel/interfaces/governance_ids.js.map +1 -0
  280. package/dist/kernel/interfaces/idempotency.d.ts +143 -0
  281. package/dist/kernel/interfaces/idempotency.d.ts.map +1 -0
  282. package/dist/kernel/interfaces/idempotency.js +22 -0
  283. package/dist/kernel/interfaces/idempotency.js.map +1 -0
  284. package/dist/kernel/interfaces/index.d.ts +29 -0
  285. package/dist/kernel/interfaces/index.d.ts.map +1 -0
  286. package/dist/kernel/interfaces/index.js +9 -0
  287. package/dist/kernel/interfaces/index.js.map +1 -0
  288. package/dist/kernel/interfaces/kernel.d.ts +79 -0
  289. package/dist/kernel/interfaces/kernel.d.ts.map +1 -0
  290. package/dist/kernel/interfaces/kernel.js +13 -0
  291. package/dist/kernel/interfaces/kernel.js.map +1 -0
  292. package/dist/kernel/interfaces/lifecycle.d.ts +115 -0
  293. package/dist/kernel/interfaces/lifecycle.d.ts.map +1 -0
  294. package/dist/kernel/interfaces/lifecycle.js +53 -0
  295. package/dist/kernel/interfaces/lifecycle.js.map +1 -0
  296. package/dist/kernel/interfaces/mission_contract.d.ts +106 -0
  297. package/dist/kernel/interfaces/mission_contract.d.ts.map +1 -0
  298. package/dist/kernel/interfaces/mission_contract.js +20 -0
  299. package/dist/kernel/interfaces/mission_contract.js.map +1 -0
  300. package/dist/kernel/interfaces/namespace.d.ts +30 -0
  301. package/dist/kernel/interfaces/namespace.d.ts.map +1 -0
  302. package/dist/kernel/interfaces/namespace.js +12 -0
  303. package/dist/kernel/interfaces/namespace.js.map +1 -0
  304. package/dist/kernel/interfaces/rate_limiter.d.ts +42 -0
  305. package/dist/kernel/interfaces/rate_limiter.d.ts.map +1 -0
  306. package/dist/kernel/interfaces/rate_limiter.js +12 -0
  307. package/dist/kernel/interfaces/rate_limiter.js.map +1 -0
  308. package/dist/kernel/interfaces/rbac.d.ts +58 -0
  309. package/dist/kernel/interfaces/rbac.d.ts.map +1 -0
  310. package/dist/kernel/interfaces/rbac.js +13 -0
  311. package/dist/kernel/interfaces/rbac.js.map +1 -0
  312. package/dist/kernel/interfaces/retention.d.ts +58 -0
  313. package/dist/kernel/interfaces/retention.d.ts.map +1 -0
  314. package/dist/kernel/interfaces/retention.js +13 -0
  315. package/dist/kernel/interfaces/retention.js.map +1 -0
  316. package/dist/kernel/interfaces/run_identity.d.ts +132 -0
  317. package/dist/kernel/interfaces/run_identity.d.ts.map +1 -0
  318. package/dist/kernel/interfaces/run_identity.js +16 -0
  319. package/dist/kernel/interfaces/run_identity.js.map +1 -0
  320. package/dist/kernel/interfaces/supervisor.d.ts +175 -0
  321. package/dist/kernel/interfaces/supervisor.d.ts.map +1 -0
  322. package/dist/kernel/interfaces/supervisor.js +25 -0
  323. package/dist/kernel/interfaces/supervisor.js.map +1 -0
  324. package/dist/kernel/interfaces/tenant.d.ts +34 -0
  325. package/dist/kernel/interfaces/tenant.d.ts.map +1 -0
  326. package/dist/kernel/interfaces/tenant.js +12 -0
  327. package/dist/kernel/interfaces/tenant.js.map +1 -0
  328. package/dist/kernel/interfaces/time.d.ts +29 -0
  329. package/dist/kernel/interfaces/time.d.ts.map +1 -0
  330. package/dist/kernel/interfaces/time.js +13 -0
  331. package/dist/kernel/interfaces/time.js.map +1 -0
  332. package/dist/kernel/interfaces/trace.d.ts +264 -0
  333. package/dist/kernel/interfaces/trace.d.ts.map +1 -0
  334. package/dist/kernel/interfaces/trace.js +17 -0
  335. package/dist/kernel/interfaces/trace.js.map +1 -0
  336. package/dist/kernel/namespace/namespace_enforcer.d.ts +20 -0
  337. package/dist/kernel/namespace/namespace_enforcer.d.ts.map +1 -0
  338. package/dist/kernel/namespace/namespace_enforcer.js +91 -0
  339. package/dist/kernel/namespace/namespace_enforcer.js.map +1 -0
  340. package/dist/kernel/rate_limiter/rate_limiter.d.ts +23 -0
  341. package/dist/kernel/rate_limiter/rate_limiter.d.ts.map +1 -0
  342. package/dist/kernel/rate_limiter/rate_limiter.js +146 -0
  343. package/dist/kernel/rate_limiter/rate_limiter.js.map +1 -0
  344. package/dist/kernel/rbac/rbac_engine.d.ts +20 -0
  345. package/dist/kernel/rbac/rbac_engine.d.ts.map +1 -0
  346. package/dist/kernel/rbac/rbac_engine.js +257 -0
  347. package/dist/kernel/rbac/rbac_engine.js.map +1 -0
  348. package/dist/kernel/retention/retention_scheduler.d.ts +41 -0
  349. package/dist/kernel/retention/retention_scheduler.d.ts.map +1 -0
  350. package/dist/kernel/retention/retention_scheduler.js +218 -0
  351. package/dist/kernel/retention/retention_scheduler.js.map +1 -0
  352. package/dist/kernel/tenant/tenant_context.d.ts +22 -0
  353. package/dist/kernel/tenant/tenant_context.d.ts.map +1 -0
  354. package/dist/kernel/tenant/tenant_context.js +107 -0
  355. package/dist/kernel/tenant/tenant_context.js.map +1 -0
  356. package/dist/kernel/tenant/tenant_scope.d.ts +81 -0
  357. package/dist/kernel/tenant/tenant_scope.d.ts.map +1 -0
  358. package/dist/kernel/tenant/tenant_scope.js +168 -0
  359. package/dist/kernel/tenant/tenant_scope.js.map +1 -0
  360. package/dist/kernel/time/time_provider.d.ts +39 -0
  361. package/dist/kernel/time/time_provider.d.ts.map +1 -0
  362. package/dist/kernel/time/time_provider.js +58 -0
  363. package/dist/kernel/time/time_provider.js.map +1 -0
  364. package/dist/learning/applicator/technique_applicator.d.ts +41 -0
  365. package/dist/learning/applicator/technique_applicator.d.ts.map +1 -0
  366. package/dist/learning/applicator/technique_applicator.js +200 -0
  367. package/dist/learning/applicator/technique_applicator.js.map +1 -0
  368. package/dist/learning/cold_start/cold_start_manager.d.ts +35 -0
  369. package/dist/learning/cold_start/cold_start_manager.d.ts.map +1 -0
  370. package/dist/learning/cold_start/cold_start_manager.js +146 -0
  371. package/dist/learning/cold_start/cold_start_manager.js.map +1 -0
  372. package/dist/learning/cycle/learning_cycle_orchestrator.d.ts +45 -0
  373. package/dist/learning/cycle/learning_cycle_orchestrator.d.ts.map +1 -0
  374. package/dist/learning/cycle/learning_cycle_orchestrator.js +165 -0
  375. package/dist/learning/cycle/learning_cycle_orchestrator.js.map +1 -0
  376. package/dist/learning/extractor/technique_extractor.d.ts +48 -0
  377. package/dist/learning/extractor/technique_extractor.d.ts.map +1 -0
  378. package/dist/learning/extractor/technique_extractor.js +357 -0
  379. package/dist/learning/extractor/technique_extractor.js.map +1 -0
  380. package/dist/learning/harness/learning_harness.d.ts +26 -0
  381. package/dist/learning/harness/learning_harness.d.ts.map +1 -0
  382. package/dist/learning/harness/learning_harness.js +58 -0
  383. package/dist/learning/harness/learning_harness.js.map +1 -0
  384. package/dist/learning/interfaces/index.d.ts +7 -0
  385. package/dist/learning/interfaces/index.d.ts.map +1 -0
  386. package/dist/learning/interfaces/index.js +10 -0
  387. package/dist/learning/interfaces/index.js.map +1 -0
  388. package/dist/learning/interfaces/learning_types.d.ts +398 -0
  389. package/dist/learning/interfaces/learning_types.d.ts.map +1 -0
  390. package/dist/learning/interfaces/learning_types.js +69 -0
  391. package/dist/learning/interfaces/learning_types.js.map +1 -0
  392. package/dist/learning/migration/007_learning_techniques.d.ts +23 -0
  393. package/dist/learning/migration/007_learning_techniques.d.ts.map +1 -0
  394. package/dist/learning/migration/007_learning_techniques.js +86 -0
  395. package/dist/learning/migration/007_learning_techniques.js.map +1 -0
  396. package/dist/learning/migration/008_learning_outcomes.d.ts +23 -0
  397. package/dist/learning/migration/008_learning_outcomes.d.ts.map +1 -0
  398. package/dist/learning/migration/008_learning_outcomes.js +79 -0
  399. package/dist/learning/migration/008_learning_outcomes.js.map +1 -0
  400. package/dist/learning/migration/009_learning_applications.d.ts +25 -0
  401. package/dist/learning/migration/009_learning_applications.d.ts.map +1 -0
  402. package/dist/learning/migration/009_learning_applications.js +82 -0
  403. package/dist/learning/migration/009_learning_applications.js.map +1 -0
  404. package/dist/learning/migration/010_learning_quarantine.d.ts +22 -0
  405. package/dist/learning/migration/010_learning_quarantine.d.ts.map +1 -0
  406. package/dist/learning/migration/010_learning_quarantine.js +78 -0
  407. package/dist/learning/migration/010_learning_quarantine.js.map +1 -0
  408. package/dist/learning/migration/011_learning_transfers.d.ts +22 -0
  409. package/dist/learning/migration/011_learning_transfers.d.ts.map +1 -0
  410. package/dist/learning/migration/011_learning_transfers.js +77 -0
  411. package/dist/learning/migration/011_learning_transfers.js.map +1 -0
  412. package/dist/learning/quarantine/quarantine_manager.d.ts +34 -0
  413. package/dist/learning/quarantine/quarantine_manager.d.ts.map +1 -0
  414. package/dist/learning/quarantine/quarantine_manager.js +200 -0
  415. package/dist/learning/quarantine/quarantine_manager.js.map +1 -0
  416. package/dist/learning/retirement/retirement_evaluator.d.ts +35 -0
  417. package/dist/learning/retirement/retirement_evaluator.d.ts.map +1 -0
  418. package/dist/learning/retirement/retirement_evaluator.js +131 -0
  419. package/dist/learning/retirement/retirement_evaluator.js.map +1 -0
  420. package/dist/learning/specialization/over_specialization_detector.d.ts +32 -0
  421. package/dist/learning/specialization/over_specialization_detector.d.ts.map +1 -0
  422. package/dist/learning/specialization/over_specialization_detector.js +105 -0
  423. package/dist/learning/specialization/over_specialization_detector.js.map +1 -0
  424. package/dist/learning/store/technique_store.d.ts +22 -0
  425. package/dist/learning/store/technique_store.d.ts.map +1 -0
  426. package/dist/learning/store/technique_store.js +369 -0
  427. package/dist/learning/store/technique_store.js.map +1 -0
  428. package/dist/learning/tracker/effectiveness_tracker.d.ts +26 -0
  429. package/dist/learning/tracker/effectiveness_tracker.d.ts.map +1 -0
  430. package/dist/learning/tracker/effectiveness_tracker.js +158 -0
  431. package/dist/learning/tracker/effectiveness_tracker.js.map +1 -0
  432. package/dist/learning/transfer/cross_agent_transfer.d.ts +35 -0
  433. package/dist/learning/transfer/cross_agent_transfer.d.ts.map +1 -0
  434. package/dist/learning/transfer/cross_agent_transfer.js +245 -0
  435. package/dist/learning/transfer/cross_agent_transfer.js.map +1 -0
  436. package/dist/orchestration/artifacts/artifact_store.d.ts +19 -0
  437. package/dist/orchestration/artifacts/artifact_store.d.ts.map +1 -0
  438. package/dist/orchestration/artifacts/artifact_store.js +213 -0
  439. package/dist/orchestration/artifacts/artifact_store.js.map +1 -0
  440. package/dist/orchestration/artifacts/cascade_walker.d.ts +39 -0
  441. package/dist/orchestration/artifacts/cascade_walker.d.ts.map +1 -0
  442. package/dist/orchestration/artifacts/cascade_walker.js +107 -0
  443. package/dist/orchestration/artifacts/cascade_walker.js.map +1 -0
  444. package/dist/orchestration/budget/budget_governance.d.ts +20 -0
  445. package/dist/orchestration/budget/budget_governance.d.ts.map +1 -0
  446. package/dist/orchestration/budget/budget_governance.js +182 -0
  447. package/dist/orchestration/budget/budget_governance.js.map +1 -0
  448. package/dist/orchestration/checkpoints/checkpoint_coordinator.d.ts +22 -0
  449. package/dist/orchestration/checkpoints/checkpoint_coordinator.d.ts.map +1 -0
  450. package/dist/orchestration/checkpoints/checkpoint_coordinator.js +252 -0
  451. package/dist/orchestration/checkpoints/checkpoint_coordinator.js.map +1 -0
  452. package/dist/orchestration/checkpoints/drift_engine.d.ts +52 -0
  453. package/dist/orchestration/checkpoints/drift_engine.d.ts.map +1 -0
  454. package/dist/orchestration/checkpoints/drift_engine.js +126 -0
  455. package/dist/orchestration/checkpoints/drift_engine.js.map +1 -0
  456. package/dist/orchestration/compaction/bounded_cognition.d.ts +22 -0
  457. package/dist/orchestration/compaction/bounded_cognition.d.ts.map +1 -0
  458. package/dist/orchestration/compaction/bounded_cognition.js +124 -0
  459. package/dist/orchestration/compaction/bounded_cognition.js.map +1 -0
  460. package/dist/orchestration/conversation/conversation_manager.d.ts +25 -0
  461. package/dist/orchestration/conversation/conversation_manager.d.ts.map +1 -0
  462. package/dist/orchestration/conversation/conversation_manager.js +260 -0
  463. package/dist/orchestration/conversation/conversation_manager.js.map +1 -0
  464. package/dist/orchestration/events/event_propagation.d.ts +20 -0
  465. package/dist/orchestration/events/event_propagation.d.ts.map +1 -0
  466. package/dist/orchestration/events/event_propagation.js +160 -0
  467. package/dist/orchestration/events/event_propagation.js.map +1 -0
  468. package/dist/orchestration/index.d.ts +28 -0
  469. package/dist/orchestration/index.d.ts.map +1 -0
  470. package/dist/orchestration/index.js +147 -0
  471. package/dist/orchestration/index.js.map +1 -0
  472. package/dist/orchestration/interfaces/orchestration.d.ts +494 -0
  473. package/dist/orchestration/interfaces/orchestration.d.ts.map +1 -0
  474. package/dist/orchestration/interfaces/orchestration.js +64 -0
  475. package/dist/orchestration/interfaces/orchestration.js.map +1 -0
  476. package/dist/orchestration/migration/003_orchestration.d.ts +27 -0
  477. package/dist/orchestration/migration/003_orchestration.d.ts.map +1 -0
  478. package/dist/orchestration/migration/003_orchestration.js +336 -0
  479. package/dist/orchestration/migration/003_orchestration.js.map +1 -0
  480. package/dist/orchestration/migration/004_tenant_isolation.d.ts +22 -0
  481. package/dist/orchestration/migration/004_tenant_isolation.d.ts.map +1 -0
  482. package/dist/orchestration/migration/004_tenant_isolation.js +179 -0
  483. package/dist/orchestration/migration/004_tenant_isolation.js.map +1 -0
  484. package/dist/orchestration/migration/005_immutability_triggers.d.ts +30 -0
  485. package/dist/orchestration/migration/005_immutability_triggers.d.ts.map +1 -0
  486. package/dist/orchestration/migration/005_immutability_triggers.js +93 -0
  487. package/dist/orchestration/migration/005_immutability_triggers.js.map +1 -0
  488. package/dist/orchestration/migration/006_audit_tombstone.d.ts +26 -0
  489. package/dist/orchestration/migration/006_audit_tombstone.d.ts.map +1 -0
  490. package/dist/orchestration/migration/006_audit_tombstone.js +71 -0
  491. package/dist/orchestration/migration/006_audit_tombstone.js.map +1 -0
  492. package/dist/orchestration/missions/mission_recovery.d.ts +60 -0
  493. package/dist/orchestration/missions/mission_recovery.d.ts.map +1 -0
  494. package/dist/orchestration/missions/mission_recovery.js +251 -0
  495. package/dist/orchestration/missions/mission_recovery.js.map +1 -0
  496. package/dist/orchestration/missions/mission_store.d.ts +16 -0
  497. package/dist/orchestration/missions/mission_store.d.ts.map +1 -0
  498. package/dist/orchestration/missions/mission_store.js +280 -0
  499. package/dist/orchestration/missions/mission_store.js.map +1 -0
  500. package/dist/orchestration/syscalls/create_artifact.d.ts +13 -0
  501. package/dist/orchestration/syscalls/create_artifact.d.ts.map +1 -0
  502. package/dist/orchestration/syscalls/create_artifact.js +23 -0
  503. package/dist/orchestration/syscalls/create_artifact.js.map +1 -0
  504. package/dist/orchestration/syscalls/emit_event.d.ts +13 -0
  505. package/dist/orchestration/syscalls/emit_event.d.ts.map +1 -0
  506. package/dist/orchestration/syscalls/emit_event.js +13 -0
  507. package/dist/orchestration/syscalls/emit_event.js.map +1 -0
  508. package/dist/orchestration/syscalls/propose_mission.d.ts +14 -0
  509. package/dist/orchestration/syscalls/propose_mission.d.ts.map +1 -0
  510. package/dist/orchestration/syscalls/propose_mission.js +27 -0
  511. package/dist/orchestration/syscalls/propose_mission.js.map +1 -0
  512. package/dist/orchestration/syscalls/propose_task_execution.d.ts +13 -0
  513. package/dist/orchestration/syscalls/propose_task_execution.d.ts.map +1 -0
  514. package/dist/orchestration/syscalls/propose_task_execution.js +84 -0
  515. package/dist/orchestration/syscalls/propose_task_execution.js.map +1 -0
  516. package/dist/orchestration/syscalls/propose_task_graph.d.ts +13 -0
  517. package/dist/orchestration/syscalls/propose_task_graph.d.ts.map +1 -0
  518. package/dist/orchestration/syscalls/propose_task_graph.js +22 -0
  519. package/dist/orchestration/syscalls/propose_task_graph.js.map +1 -0
  520. package/dist/orchestration/syscalls/read_artifact.d.ts +14 -0
  521. package/dist/orchestration/syscalls/read_artifact.d.ts.map +1 -0
  522. package/dist/orchestration/syscalls/read_artifact.js +31 -0
  523. package/dist/orchestration/syscalls/read_artifact.js.map +1 -0
  524. package/dist/orchestration/syscalls/request_budget.d.ts +14 -0
  525. package/dist/orchestration/syscalls/request_budget.d.ts.map +1 -0
  526. package/dist/orchestration/syscalls/request_budget.js +46 -0
  527. package/dist/orchestration/syscalls/request_budget.js.map +1 -0
  528. package/dist/orchestration/syscalls/request_capability.d.ts +13 -0
  529. package/dist/orchestration/syscalls/request_capability.d.ts.map +1 -0
  530. package/dist/orchestration/syscalls/request_capability.js +136 -0
  531. package/dist/orchestration/syscalls/request_capability.js.map +1 -0
  532. package/dist/orchestration/syscalls/respond_checkpoint.d.ts +12 -0
  533. package/dist/orchestration/syscalls/respond_checkpoint.d.ts.map +1 -0
  534. package/dist/orchestration/syscalls/respond_checkpoint.js +12 -0
  535. package/dist/orchestration/syscalls/respond_checkpoint.js.map +1 -0
  536. package/dist/orchestration/syscalls/submit_result.d.ts +15 -0
  537. package/dist/orchestration/syscalls/submit_result.d.ts.map +1 -0
  538. package/dist/orchestration/syscalls/submit_result.js +97 -0
  539. package/dist/orchestration/syscalls/submit_result.js.map +1 -0
  540. package/dist/orchestration/tasks/task_graph.d.ts +26 -0
  541. package/dist/orchestration/tasks/task_graph.d.ts.map +1 -0
  542. package/dist/orchestration/tasks/task_graph.js +204 -0
  543. package/dist/orchestration/tasks/task_graph.js.map +1 -0
  544. package/dist/orchestration/tasks/task_store.d.ts +18 -0
  545. package/dist/orchestration/tasks/task_store.d.ts.map +1 -0
  546. package/dist/orchestration/tasks/task_store.js +99 -0
  547. package/dist/orchestration/tasks/task_store.js.map +1 -0
  548. package/dist/reference-agent/artifact_manager.d.ts +119 -0
  549. package/dist/reference-agent/artifact_manager.d.ts.map +1 -0
  550. package/dist/reference-agent/artifact_manager.js +149 -0
  551. package/dist/reference-agent/artifact_manager.js.map +1 -0
  552. package/dist/reference-agent/checkpoint_handler.d.ts +186 -0
  553. package/dist/reference-agent/checkpoint_handler.d.ts.map +1 -0
  554. package/dist/reference-agent/checkpoint_handler.js +423 -0
  555. package/dist/reference-agent/checkpoint_handler.js.map +1 -0
  556. package/dist/reference-agent/index.d.ts +43 -0
  557. package/dist/reference-agent/index.d.ts.map +1 -0
  558. package/dist/reference-agent/index.js +53 -0
  559. package/dist/reference-agent/index.js.map +1 -0
  560. package/dist/reference-agent/mission_planner.d.ts +163 -0
  561. package/dist/reference-agent/mission_planner.d.ts.map +1 -0
  562. package/dist/reference-agent/mission_planner.js +375 -0
  563. package/dist/reference-agent/mission_planner.js.map +1 -0
  564. package/dist/reference-agent/reference_agent.d.ts +130 -0
  565. package/dist/reference-agent/reference_agent.d.ts.map +1 -0
  566. package/dist/reference-agent/reference_agent.js +360 -0
  567. package/dist/reference-agent/reference_agent.js.map +1 -0
  568. package/dist/reference-agent/reference_agent.types.d.ts +199 -0
  569. package/dist/reference-agent/reference_agent.types.d.ts.map +1 -0
  570. package/dist/reference-agent/reference_agent.types.js +59 -0
  571. package/dist/reference-agent/reference_agent.types.js.map +1 -0
  572. package/dist/reference-agent/result_aggregator.d.ts +107 -0
  573. package/dist/reference-agent/result_aggregator.d.ts.map +1 -0
  574. package/dist/reference-agent/result_aggregator.js +219 -0
  575. package/dist/reference-agent/result_aggregator.js.map +1 -0
  576. package/dist/reference-agent/system_call_client.d.ts +106 -0
  577. package/dist/reference-agent/system_call_client.d.ts.map +1 -0
  578. package/dist/reference-agent/system_call_client.js +231 -0
  579. package/dist/reference-agent/system_call_client.js.map +1 -0
  580. package/dist/reference-agent/task_executor.d.ts +108 -0
  581. package/dist/reference-agent/task_executor.d.ts.map +1 -0
  582. package/dist/reference-agent/task_executor.js +249 -0
  583. package/dist/reference-agent/task_executor.js.map +1 -0
  584. package/dist/substrate/accounting/resource_accounting.d.ts +52 -0
  585. package/dist/substrate/accounting/resource_accounting.d.ts.map +1 -0
  586. package/dist/substrate/accounting/resource_accounting.js +200 -0
  587. package/dist/substrate/accounting/resource_accounting.js.map +1 -0
  588. package/dist/substrate/adapters/capability_registry.d.ts +28 -0
  589. package/dist/substrate/adapters/capability_registry.d.ts.map +1 -0
  590. package/dist/substrate/adapters/capability_registry.js +196 -0
  591. package/dist/substrate/adapters/capability_registry.js.map +1 -0
  592. package/dist/substrate/gateway/llm_gateway.d.ts +68 -0
  593. package/dist/substrate/gateway/llm_gateway.d.ts.map +1 -0
  594. package/dist/substrate/gateway/llm_gateway.js +442 -0
  595. package/dist/substrate/gateway/llm_gateway.js.map +1 -0
  596. package/dist/substrate/heartbeat/heartbeat_monitor.d.ts +40 -0
  597. package/dist/substrate/heartbeat/heartbeat_monitor.d.ts.map +1 -0
  598. package/dist/substrate/heartbeat/heartbeat_monitor.js +170 -0
  599. package/dist/substrate/heartbeat/heartbeat_monitor.js.map +1 -0
  600. package/dist/substrate/index.d.ts +59 -0
  601. package/dist/substrate/index.d.ts.map +1 -0
  602. package/dist/substrate/index.js +143 -0
  603. package/dist/substrate/index.js.map +1 -0
  604. package/dist/substrate/interfaces/substrate.d.ts +486 -0
  605. package/dist/substrate/interfaces/substrate.d.ts.map +1 -0
  606. package/dist/substrate/interfaces/substrate.js +14 -0
  607. package/dist/substrate/interfaces/substrate.js.map +1 -0
  608. package/dist/substrate/migration/002_substrate.d.ts +24 -0
  609. package/dist/substrate/migration/002_substrate.d.ts.map +1 -0
  610. package/dist/substrate/migration/002_substrate.js +188 -0
  611. package/dist/substrate/migration/002_substrate.js.map +1 -0
  612. package/dist/substrate/migration/022_transport_deliberation.d.ts +31 -0
  613. package/dist/substrate/migration/022_transport_deliberation.d.ts.map +1 -0
  614. package/dist/substrate/migration/022_transport_deliberation.js +77 -0
  615. package/dist/substrate/migration/022_transport_deliberation.js.map +1 -0
  616. package/dist/substrate/replay/replay_engine.d.ts +65 -0
  617. package/dist/substrate/replay/replay_engine.d.ts.map +1 -0
  618. package/dist/substrate/replay/replay_engine.js +316 -0
  619. package/dist/substrate/replay/replay_engine.js.map +1 -0
  620. package/dist/substrate/scheduler/task_scheduler.d.ts +38 -0
  621. package/dist/substrate/scheduler/task_scheduler.d.ts.map +1 -0
  622. package/dist/substrate/scheduler/task_scheduler.js +486 -0
  623. package/dist/substrate/scheduler/task_scheduler.js.map +1 -0
  624. package/dist/substrate/transport/adapters/anthropic_adapter.d.ts +57 -0
  625. package/dist/substrate/transport/adapters/anthropic_adapter.d.ts.map +1 -0
  626. package/dist/substrate/transport/adapters/anthropic_adapter.js +455 -0
  627. package/dist/substrate/transport/adapters/anthropic_adapter.js.map +1 -0
  628. package/dist/substrate/transport/adapters/gemini_adapter.d.ts +86 -0
  629. package/dist/substrate/transport/adapters/gemini_adapter.d.ts.map +1 -0
  630. package/dist/substrate/transport/adapters/gemini_adapter.js +456 -0
  631. package/dist/substrate/transport/adapters/gemini_adapter.js.map +1 -0
  632. package/dist/substrate/transport/adapters/groq_adapter.d.ts +50 -0
  633. package/dist/substrate/transport/adapters/groq_adapter.d.ts.map +1 -0
  634. package/dist/substrate/transport/adapters/groq_adapter.js +179 -0
  635. package/dist/substrate/transport/adapters/groq_adapter.js.map +1 -0
  636. package/dist/substrate/transport/adapters/mistral_adapter.d.ts +50 -0
  637. package/dist/substrate/transport/adapters/mistral_adapter.d.ts.map +1 -0
  638. package/dist/substrate/transport/adapters/mistral_adapter.js +179 -0
  639. package/dist/substrate/transport/adapters/mistral_adapter.js.map +1 -0
  640. package/dist/substrate/transport/adapters/ollama_adapter.d.ts +66 -0
  641. package/dist/substrate/transport/adapters/ollama_adapter.d.ts.map +1 -0
  642. package/dist/substrate/transport/adapters/ollama_adapter.js +347 -0
  643. package/dist/substrate/transport/adapters/ollama_adapter.js.map +1 -0
  644. package/dist/substrate/transport/adapters/openai_adapter.d.ts +68 -0
  645. package/dist/substrate/transport/adapters/openai_adapter.d.ts.map +1 -0
  646. package/dist/substrate/transport/adapters/openai_adapter.js +439 -0
  647. package/dist/substrate/transport/adapters/openai_adapter.js.map +1 -0
  648. package/dist/substrate/transport/adapters/openai_compat.d.ts +64 -0
  649. package/dist/substrate/transport/adapters/openai_compat.d.ts.map +1 -0
  650. package/dist/substrate/transport/adapters/openai_compat.js +326 -0
  651. package/dist/substrate/transport/adapters/openai_compat.js.map +1 -0
  652. package/dist/substrate/transport/index.d.ts +17 -0
  653. package/dist/substrate/transport/index.d.ts.map +1 -0
  654. package/dist/substrate/transport/index.js +25 -0
  655. package/dist/substrate/transport/index.js.map +1 -0
  656. package/dist/substrate/transport/stream_parser.d.ts +69 -0
  657. package/dist/substrate/transport/stream_parser.d.ts.map +1 -0
  658. package/dist/substrate/transport/stream_parser.js +280 -0
  659. package/dist/substrate/transport/stream_parser.js.map +1 -0
  660. package/dist/substrate/transport/transport_engine.d.ts +53 -0
  661. package/dist/substrate/transport/transport_engine.d.ts.map +1 -0
  662. package/dist/substrate/transport/transport_engine.js +444 -0
  663. package/dist/substrate/transport/transport_engine.js.map +1 -0
  664. package/dist/substrate/transport/transport_types.d.ts +207 -0
  665. package/dist/substrate/transport/transport_types.d.ts.map +1 -0
  666. package/dist/substrate/transport/transport_types.js +13 -0
  667. package/dist/substrate/transport/transport_types.js.map +1 -0
  668. package/dist/substrate/workers/worker_runtime.d.ts +40 -0
  669. package/dist/substrate/workers/worker_runtime.d.ts.map +1 -0
  670. package/dist/substrate/workers/worker_runtime.js +294 -0
  671. package/dist/substrate/workers/worker_runtime.js.map +1 -0
  672. package/dist/techniques/harness/tgp_harness.d.ts +39 -0
  673. package/dist/techniques/harness/tgp_harness.d.ts.map +1 -0
  674. package/dist/techniques/harness/tgp_harness.js +49 -0
  675. package/dist/techniques/harness/tgp_harness.js.map +1 -0
  676. package/dist/techniques/interfaces/tgp_types.d.ts +646 -0
  677. package/dist/techniques/interfaces/tgp_types.d.ts.map +1 -0
  678. package/dist/techniques/interfaces/tgp_types.js +160 -0
  679. package/dist/techniques/interfaces/tgp_types.js.map +1 -0
  680. package/dist/techniques/migration/020_tgp_governance.d.ts +36 -0
  681. package/dist/techniques/migration/020_tgp_governance.d.ts.map +1 -0
  682. package/dist/techniques/migration/020_tgp_governance.js +249 -0
  683. package/dist/techniques/migration/020_tgp_governance.js.map +1 -0
  684. package/dist/techniques/store/tgp_stores.d.ts +36 -0
  685. package/dist/techniques/store/tgp_stores.d.ts.map +1 -0
  686. package/dist/techniques/store/tgp_stores.js +854 -0
  687. package/dist/techniques/store/tgp_stores.js.map +1 -0
  688. package/dist/working-memory/harness/wmp_harness.d.ts +43 -0
  689. package/dist/working-memory/harness/wmp_harness.d.ts.map +1 -0
  690. package/dist/working-memory/harness/wmp_harness.js +81 -0
  691. package/dist/working-memory/harness/wmp_harness.js.map +1 -0
  692. package/dist/working-memory/interfaces/wmp_types.d.ts +635 -0
  693. package/dist/working-memory/interfaces/wmp_types.d.ts.map +1 -0
  694. package/dist/working-memory/interfaces/wmp_types.js +144 -0
  695. package/dist/working-memory/interfaces/wmp_types.js.map +1 -0
  696. package/dist/working-memory/migration/021_wmp.d.ts +21 -0
  697. package/dist/working-memory/migration/021_wmp.d.ts.map +1 -0
  698. package/dist/working-memory/migration/021_wmp.js +139 -0
  699. package/dist/working-memory/migration/021_wmp.js.map +1 -0
  700. package/dist/working-memory/stores/wmp_stores.d.ts +28 -0
  701. package/dist/working-memory/stores/wmp_stores.d.ts.map +1 -0
  702. package/dist/working-memory/stores/wmp_stores.js +754 -0
  703. package/dist/working-memory/stores/wmp_stores.js.map +1 -0
  704. package/package.json +84 -0
@@ -0,0 +1,442 @@
1
+ /**
2
+ * LLM Gateway implementation.
3
+ * S ref: §25.4 (LLM Gateway), DL-1 (Provider Routing), I-04 (Provider Independence)
4
+ *
5
+ * Phase: 2 (Execution Substrate)
6
+ * Implements: Provider-independent LLM gateway with circuit breaker pattern,
7
+ * 4-state health tracking, cost accounting, retry logic, and streaming.
8
+ * This is the ONLY async interface in the substrate (FPD-1/SD-02).
9
+ *
10
+ * Invariants enforced: I-01 (no SDK deps), I-03 (audit), I-04 (provider independence),
11
+ * I-05 (transactional), I-25 (deterministic replay logging)
12
+ * Failure modes defended: FM-02 (cost explosion), FM-06 (provider dependency),
13
+ * FM-12 (failover cascade)
14
+ *
15
+ * ASYNC interface. request() and requestStream() return Promise<Result<T>>.
16
+ * All other methods are SYNC returning Result<T>.
17
+ */
18
+ import { createHash, randomUUID } from 'node:crypto';
19
+ import { DEFAULT_BUDGET_LIMIT } from '../accounting/resource_accounting.js';
20
+ // ─── Error Constructors ───
21
+ function err(code, message, spec) {
22
+ return { ok: false, error: { code, message, spec } };
23
+ }
24
+ function ok(value) {
25
+ return { ok: true, value };
26
+ }
27
+ // ─── Circuit Breaker Constants ───
28
+ /** DL-1: Default N=5 consecutive failures before cooldown */
29
+ const DEFAULT_CIRCUIT_BREAKER_N = 5;
30
+ /** DL-1: Default 60s cooldown duration */
31
+ const DEFAULT_COOLDOWN_MS = 60000;
32
+ /**
33
+ * Create an LlmGateway implementation.
34
+ * S ref: §25.4, C-07 (Object.freeze)
35
+ *
36
+ * Provider routing follows DL-1:
37
+ * 1. Capability filter (model supports requested capability)
38
+ * 2. Health filter (only healthy/degraded providers)
39
+ * 3. Strategy sort (lowest cost, then lowest latency)
40
+ * 4. Circuit breaker check
41
+ *
42
+ * All requests are logged to core_llm_request_log for I-25 replay.
43
+ * CF-010: When encryption is provided, request/response bodies are encrypted before storage.
44
+ */
45
+ export function createLlmGateway(audit, encryption, time, transport) {
46
+ const clock = time ?? { nowISO: () => new Date().toISOString(), nowMs: () => Date.now() };
47
+ /**
48
+ * In-memory provider config registry. MUST live inside the closure to prevent
49
+ * cross-tenant leakage via module-scoped mutable state (F-08).
50
+ * S ref: I-07 (Agent Isolation)
51
+ */
52
+ const providerConfigs = new Map();
53
+ /** §25.4: Register a provider */
54
+ function registerProvider(conn, _ctx, config) {
55
+ // Store config in memory
56
+ providerConfigs.set(config.providerId, config);
57
+ // I-03: mutation + audit in same transaction
58
+ conn.transaction(() => {
59
+ // Upsert provider health in SQLite
60
+ conn.run(`INSERT INTO core_provider_health (provider_id, status, circuit_breaker_n, cooldown_duration_ms)
61
+ VALUES (?, 'healthy', ?, ?)
62
+ ON CONFLICT(provider_id) DO UPDATE SET
63
+ status = 'healthy',
64
+ consecutive_failures = 0,
65
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')`, [config.providerId, DEFAULT_CIRCUIT_BREAKER_N, DEFAULT_COOLDOWN_MS]);
66
+ audit?.append(conn, {
67
+ tenantId: null,
68
+ actorType: 'system',
69
+ actorId: 'substrate.gateway',
70
+ operation: 'provider.register',
71
+ resourceType: 'provider',
72
+ resourceId: config.providerId,
73
+ detail: { models: config.models, baseUrl: config.baseUrl },
74
+ });
75
+ });
76
+ return ok(undefined);
77
+ }
78
+ /**
79
+ * DL-1: Select provider by routing algorithm.
80
+ * Returns provider config or null if no healthy provider found.
81
+ */
82
+ function selectProvider(conn, model) {
83
+ // Step 1: Capability filter -- find providers that serve this model
84
+ const candidateConfigs = [];
85
+ for (const [, config] of providerConfigs) {
86
+ if (config.models.includes(model)) {
87
+ candidateConfigs.push(config);
88
+ }
89
+ }
90
+ if (candidateConfigs.length === 0)
91
+ return null;
92
+ // Step 2: Health filter -- only healthy or degraded
93
+ const now = clock.nowISO();
94
+ const healthyProviders = [];
95
+ for (const config of candidateConfigs) {
96
+ const health = conn.get('SELECT provider_id, status, avg_latency_ms, cooldown_until, consecutive_failures, circuit_breaker_n FROM core_provider_health WHERE provider_id = ?', [config.providerId]);
97
+ if (!health)
98
+ continue;
99
+ // Check cooldown expiry
100
+ if (health.status === 'cooldown' && health.cooldown_until) {
101
+ if (now >= health.cooldown_until) {
102
+ // Cooldown expired -- transition to healthy
103
+ conn.run(`UPDATE core_provider_health
104
+ SET status = 'healthy', consecutive_failures = 0, cooldown_until = NULL,
105
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
106
+ WHERE provider_id = ?`, [config.providerId]);
107
+ // I-03: audit health state mutation
108
+ audit?.append(conn, {
109
+ tenantId: null,
110
+ actorType: 'system',
111
+ actorId: 'substrate.gateway',
112
+ operation: 'provider.health_update',
113
+ resourceType: 'provider',
114
+ resourceId: config.providerId,
115
+ detail: { from: 'cooldown', to: 'healthy', reason: 'cooldown_expired' },
116
+ });
117
+ healthyProviders.push({ config, health: { ...health, status: 'healthy' } });
118
+ continue;
119
+ }
120
+ // Still in cooldown -- skip
121
+ continue;
122
+ }
123
+ // Step 4: Circuit breaker check
124
+ if (health.consecutive_failures >= health.circuit_breaker_n) {
125
+ continue; // Circuit breaker open
126
+ }
127
+ if (health.status === 'healthy' || health.status === 'degraded') {
128
+ healthyProviders.push({ config, health });
129
+ }
130
+ }
131
+ if (healthyProviders.length === 0)
132
+ return null;
133
+ // Step 3: Strategy sort -- lowest cost first, then lowest latency
134
+ healthyProviders.sort((a, b) => {
135
+ const costA = (a.config.costPerInputToken ?? 0) + (a.config.costPerOutputToken ?? 0);
136
+ const costB = (b.config.costPerInputToken ?? 0) + (b.config.costPerOutputToken ?? 0);
137
+ if (costA !== costB)
138
+ return costA - costB;
139
+ return (a.health.avg_latency_ms ?? 0) - (b.health.avg_latency_ms ?? 0);
140
+ });
141
+ const first = healthyProviders[0];
142
+ if (!first)
143
+ return null;
144
+ return { config: first.config, health: first.health };
145
+ }
146
+ /** Hash the request for I-25 replay */
147
+ function hashRequest(request) {
148
+ const serialized = JSON.stringify({
149
+ model: request.model,
150
+ messages: request.messages,
151
+ tools: request.tools,
152
+ maxTokens: request.maxTokens,
153
+ temperature: request.temperature,
154
+ systemPrompt: request.systemPrompt,
155
+ });
156
+ return createHash('sha256').update(serialized).digest('hex');
157
+ }
158
+ /** Log request to core_llm_request_log for I-25 */
159
+ function logRequest(conn, requestId, request, promptHash, providerId) {
160
+ // CF-010: Encrypt request body before storage if encryption is available
161
+ const requestJson = JSON.stringify(request);
162
+ const storedBody = encryption ? encryption.encrypt(requestJson) : requestJson;
163
+ conn.run(`INSERT INTO core_llm_request_log
164
+ (request_id, task_id, mission_id, tenant_id, provider_id, model_id,
165
+ prompt_hash, request_body, status)
166
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'pending')`, [
167
+ requestId,
168
+ request.metadata?.taskId ?? '',
169
+ request.metadata?.missionId ?? '',
170
+ request.metadata?.tenantId ?? null,
171
+ providerId,
172
+ request.model,
173
+ promptHash,
174
+ storedBody,
175
+ ]);
176
+ }
177
+ /** Update request log with response */
178
+ function logResponse(conn, requestId, response, error, latencyMs) {
179
+ if (response) {
180
+ // CF-010: Encrypt response body before storage if encryption is available
181
+ const responseJson = JSON.stringify(response);
182
+ const storedBody = encryption ? encryption.encrypt(responseJson) : responseJson;
183
+ conn.run(`UPDATE core_llm_request_log
184
+ SET response_body = ?, input_tokens = ?, output_tokens = ?,
185
+ provider_input_tokens = ?, provider_output_tokens = ?,
186
+ latency_ms = ?, status = 'completed'
187
+ WHERE request_id = ?`, [
188
+ storedBody,
189
+ response.usage.inputTokens,
190
+ response.usage.outputTokens,
191
+ response.usage.providerInputTokens ?? null,
192
+ response.usage.providerOutputTokens ?? null,
193
+ latencyMs,
194
+ requestId,
195
+ ]);
196
+ }
197
+ else {
198
+ conn.run(`UPDATE core_llm_request_log
199
+ SET status = 'failed', error_message = ?, latency_ms = ?
200
+ WHERE request_id = ?`, [error, latencyMs, requestId]);
201
+ }
202
+ }
203
+ /**
204
+ * §25.4: Send LLM request (ASYNC).
205
+ * This is the substrate's interface -- actual HTTP calls to providers
206
+ * would happen here. For now, the gateway provides the routing,
207
+ * logging, and circuit breaker infrastructure. The actual HTTP call
208
+ * is stubbed as PROVIDER_UNAVAILABLE since no providers are wired.
209
+ *
210
+ * In production, this would:
211
+ * 1. Select provider via DL-1
212
+ * 2. Translate request to provider-specific format (per-provider codec)
213
+ * 3. Make HTTP call via fetch() (I-01: no SDK deps)
214
+ * 4. Translate response back to internal format
215
+ * 5. Log for I-25 replay
216
+ * 6. Update provider health
217
+ */
218
+ async function request(conn, _ctx, req) {
219
+ // F-02: Input validation
220
+ if (typeof req.maxTokens !== 'number' || req.maxTokens <= 0) {
221
+ return err('INVALID_INPUT', 'maxTokens must be > 0', '§25.4');
222
+ }
223
+ if (!req.messages || req.messages.length === 0) {
224
+ return err('INVALID_INPUT', 'messages must contain at least one message', '§25.4');
225
+ }
226
+ const provider = selectProvider(conn, req.model);
227
+ if (!provider) {
228
+ return err('PROVIDER_UNAVAILABLE', `No healthy provider found for model ${req.model}`, 'I-16');
229
+ }
230
+ const requestId = randomUUID();
231
+ const promptHash = hashRequest(req);
232
+ const startTime = clock.nowMs();
233
+ // I-25: Log the request
234
+ logRequest(conn, requestId, req, promptHash, provider.config.providerId);
235
+ // Phase 5A: When transport is provided, delegate to transport engine
236
+ if (transport) {
237
+ const adapter = transport.adapters.get(provider.config.providerId);
238
+ if (!adapter) {
239
+ const latencyMs = clock.nowMs() - startTime;
240
+ logResponse(conn, requestId, null, 'No adapter registered for provider', latencyMs);
241
+ return err('PROVIDER_UNAVAILABLE', `No transport adapter for provider ${provider.config.providerId}`, '§25.4');
242
+ }
243
+ try {
244
+ const transportResult = await transport.engine.execute(adapter, { request: req });
245
+ const latencyMs = clock.nowMs() - startTime;
246
+ // Set correct latencyMs and providerId on the response
247
+ const response = {
248
+ ...transportResult.response,
249
+ latencyMs,
250
+ providerId: provider.config.providerId,
251
+ };
252
+ // I-25: Log the response
253
+ logResponse(conn, requestId, response, null, latencyMs);
254
+ // Record deliberation data via supplementary SQL in same transaction
255
+ recordDeliberation(conn, requestId, transportResult.deliberation);
256
+ return ok(response);
257
+ }
258
+ catch (transportErr) {
259
+ const latencyMs = clock.nowMs() - startTime;
260
+ const errorMsg = transportErr instanceof Error ? transportErr.message : String(transportErr);
261
+ logResponse(conn, requestId, null, errorMsg, latencyMs);
262
+ return err('PROVIDER_UNAVAILABLE', errorMsg, '§25.4');
263
+ }
264
+ }
265
+ // Fallback: No transport configured (Phase 2 stub behavior)
266
+ const latencyMs = clock.nowMs() - startTime;
267
+ logResponse(conn, requestId, null, 'No HTTP transport configured', latencyMs);
268
+ return err('PROVIDER_UNAVAILABLE', 'LLM gateway HTTP transport not configured -- infrastructure only in Phase 2', '§25.4');
269
+ }
270
+ /** §25.4, §27: Send streaming LLM request (ASYNC) */
271
+ async function requestStream(conn, _ctx, req) {
272
+ const provider = selectProvider(conn, req.model);
273
+ if (!provider) {
274
+ return err('PROVIDER_UNAVAILABLE', `No healthy provider found for model ${req.model}`, 'I-16');
275
+ }
276
+ // Phase 5A: When transport is provided, delegate to transport engine
277
+ if (transport) {
278
+ const adapter = transport.adapters.get(provider.config.providerId);
279
+ if (!adapter) {
280
+ return err('PROVIDER_UNAVAILABLE', `No transport adapter for provider ${provider.config.providerId}`, '§25.4/§27');
281
+ }
282
+ // Check if adapter supports streaming
283
+ if (!adapter.supportsStreaming()) {
284
+ return err('PROVIDER_UNAVAILABLE', `Provider ${provider.config.providerId} does not support streaming`, '§25.4/§27');
285
+ }
286
+ const requestId = randomUUID();
287
+ const promptHash = hashRequest(req);
288
+ logRequest(conn, requestId, req, promptHash, provider.config.providerId);
289
+ try {
290
+ const streamResult = await transport.engine.executeStream(adapter, { request: req });
291
+ // Wrap chunks to record deliberation on completion
292
+ async function* wrappedChunks() {
293
+ try {
294
+ for await (const chunk of streamResult.stream) {
295
+ yield chunk;
296
+ }
297
+ }
298
+ finally {
299
+ // Record deliberation after stream completes
300
+ const deliberation = streamResult.getDeliberation();
301
+ recordDeliberation(conn, requestId, deliberation);
302
+ }
303
+ }
304
+ return ok(wrappedChunks());
305
+ }
306
+ catch (transportErr) {
307
+ const errorMsg = transportErr instanceof Error ? transportErr.message : String(transportErr);
308
+ logResponse(conn, requestId, null, errorMsg, 0);
309
+ return err('PROVIDER_UNAVAILABLE', errorMsg, '§25.4/§27');
310
+ }
311
+ }
312
+ // Fallback: No transport configured (Phase 2 stub behavior)
313
+ return err('PROVIDER_UNAVAILABLE', 'LLM gateway streaming transport not configured -- infrastructure only in Phase 2', '§25.4/§27');
314
+ }
315
+ /** DL-1: Get all provider health snapshots */
316
+ function getProviderHealth(conn) {
317
+ const rows = conn.query('SELECT provider_id, status, consecutive_failures, error_rate_5min, avg_latency_ms, total_requests, last_success_at, last_failure_at, cooldown_until FROM core_provider_health');
318
+ const snapshots = rows.map((row) => ({
319
+ providerId: row.provider_id,
320
+ status: row.status,
321
+ consecutiveFailures: row.consecutive_failures,
322
+ errorRate5min: row.error_rate_5min,
323
+ avgLatencyMs: row.avg_latency_ms,
324
+ totalRequests: row.total_requests,
325
+ lastSuccessAt: row.last_success_at,
326
+ lastFailureAt: row.last_failure_at,
327
+ cooldownUntil: row.cooldown_until,
328
+ }));
329
+ return ok(snapshots);
330
+ }
331
+ /** I-16: Check if any healthy provider exists */
332
+ function hasHealthyProvider(conn) {
333
+ const row = conn.get(`SELECT COUNT(*) as cnt FROM core_provider_health
334
+ WHERE status IN ('healthy', 'degraded')`);
335
+ return ok((row?.cnt ?? 0) > 0);
336
+ }
337
+ /**
338
+ * FM-12: Check failover budget before switching providers.
339
+ * Failover policy determines behavior when budget is insufficient:
340
+ * - 'block': reject the failover (return allowed=false)
341
+ * - 'degrade': allow but warn
342
+ * - 'allow-overdraft': allow even if over budget
343
+ */
344
+ function checkFailoverBudget(conn, missionId, estimatedTokens, failoverPolicy) {
345
+ // Check remaining budget for this mission
346
+ const row = conn.get(`SELECT COALESCE(SUM(effective_input_tokens + effective_output_tokens), 0) as total_effective
347
+ FROM meter_interaction_accounting
348
+ WHERE mission_id = ?`, [missionId]);
349
+ const consumed = row?.total_effective ?? 0;
350
+ const budgetLimit = DEFAULT_BUDGET_LIMIT;
351
+ const remaining = budgetLimit - consumed;
352
+ if (estimatedTokens <= remaining) {
353
+ return ok({ allowed: true });
354
+ }
355
+ // Over budget -- apply policy
356
+ switch (failoverPolicy) {
357
+ case 'block':
358
+ return ok({
359
+ allowed: false,
360
+ reason: `Failover blocked: estimated ${estimatedTokens} tokens exceeds remaining budget of ${remaining}`,
361
+ });
362
+ case 'degrade':
363
+ return ok({
364
+ allowed: true,
365
+ reason: `Failover degraded: estimated ${estimatedTokens} tokens exceeds remaining budget of ${remaining}. System operating in degraded mode.`,
366
+ });
367
+ case 'allow-overdraft':
368
+ return ok({
369
+ allowed: true,
370
+ reason: `Failover allowed with overdraft: estimated ${estimatedTokens} tokens exceeds remaining budget of ${remaining}`,
371
+ });
372
+ default:
373
+ return ok({ allowed: false, reason: 'Unknown failover policy' });
374
+ }
375
+ }
376
+ /**
377
+ * Record deliberation data via supplementary UPDATE on core_llm_request_log.
378
+ * S ref: §25.4/§25.6 deliberation tracking, I-03 (same transaction)
379
+ */
380
+ function recordDeliberation(conn, requestId, deliberation) {
381
+ conn.run(`UPDATE core_llm_request_log
382
+ SET deliberation_tokens = ?
383
+ WHERE request_id = ?`, [deliberation.deliberationTokens, requestId]);
384
+ }
385
+ // Expose internal helpers for testing/substrate integration
386
+ const gateway = {
387
+ registerProvider,
388
+ request,
389
+ requestStream,
390
+ getProviderHealth,
391
+ hasHealthyProvider,
392
+ checkFailoverBudget,
393
+ };
394
+ return Object.freeze(gateway);
395
+ }
396
+ /**
397
+ * Exported for internal substrate use: record provider success/failure.
398
+ * Called by the actual HTTP transport layer when it processes responses.
399
+ */
400
+ export function updateProviderHealth(conn, providerId, success, latencyMs, errorMessage, time) {
401
+ const hClock = time ?? { nowISO: () => new Date().toISOString(), nowMs: () => Date.now() };
402
+ if (success) {
403
+ conn.run(`UPDATE core_provider_health
404
+ SET consecutive_failures = 0,
405
+ total_requests = total_requests + 1,
406
+ last_success_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
407
+ last_request_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
408
+ avg_latency_ms = (avg_latency_ms * total_requests + ?) / (total_requests + 1),
409
+ status = CASE WHEN status = 'degraded' THEN 'healthy' ELSE status END,
410
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
411
+ WHERE provider_id = ?`, [latencyMs, providerId]);
412
+ }
413
+ else {
414
+ const health = conn.get('SELECT consecutive_failures, circuit_breaker_n, cooldown_duration_ms FROM core_provider_health WHERE provider_id = ?', [providerId]);
415
+ if (!health)
416
+ return;
417
+ const newFailures = health.consecutive_failures + 1;
418
+ if (newFailures >= health.circuit_breaker_n) {
419
+ const cooldownUntil = new Date(hClock.nowMs() + health.cooldown_duration_ms).toISOString();
420
+ conn.run(`UPDATE core_provider_health
421
+ SET consecutive_failures = ?, total_requests = total_requests + 1,
422
+ total_failures = total_failures + 1, status = 'cooldown',
423
+ cooldown_until = ?, last_failure_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
424
+ last_request_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
425
+ last_error_message = ?,
426
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
427
+ WHERE provider_id = ?`, [newFailures, cooldownUntil, errorMessage ?? 'Unknown error', providerId]);
428
+ }
429
+ else {
430
+ const newStatus = newFailures >= 2 ? 'degraded' : 'healthy';
431
+ conn.run(`UPDATE core_provider_health
432
+ SET consecutive_failures = ?, total_requests = total_requests + 1,
433
+ total_failures = total_failures + 1, status = ?,
434
+ last_failure_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
435
+ last_request_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
436
+ last_error_message = ?,
437
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
438
+ WHERE provider_id = ?`, [newFailures, newStatus, errorMessage ?? 'Unknown error', providerId]);
439
+ }
440
+ }
441
+ }
442
+ //# sourceMappingURL=llm_gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm_gateway.js","sourceRoot":"","sources":["../../../src/substrate/gateway/llm_gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Heartbeat Monitor implementation.
3
+ * S ref: §25.5 (Heartbeat Protocol), FM-20 (Infinite Loops / Hung Workers)
4
+ *
5
+ * Phase: 2 (Execution Substrate)
6
+ * Implements: 30s default heartbeat interval with escalation ladder:
7
+ * 1 miss = warn, 2 misses = notify orchestrator, 3 misses = kill worker + retry.
8
+ *
9
+ * Heartbeat state is colocated in core_task_queue (FPD-5/DL-2) to avoid JOINs
10
+ * on the hot path per I-14.
11
+ *
12
+ * Invariants enforced: I-12 (execution timeout as defense-in-depth), I-14 (latency)
13
+ * Failure modes defended: FM-20 (hung workers via escalation ladder)
14
+ *
15
+ * SYNC interface. All methods return Result<T>.
16
+ */
17
+ import type { DatabaseConnection } from '../../kernel/interfaces/index.js';
18
+ import type { Result, AuditCreateInput } from '../../kernel/interfaces/index.js';
19
+ import type { TimeProvider } from '../../kernel/interfaces/time.js';
20
+ /**
21
+ * Minimal audit dependency. Uses only the append method to keep coupling lightweight.
22
+ * S ref: I-03 (every state mutation and its audit entry in same transaction)
23
+ */
24
+ interface AuditDep {
25
+ append(conn: DatabaseConnection, input: AuditCreateInput): Result<unknown>;
26
+ }
27
+ import type { HeartbeatMonitor } from '../interfaces/substrate.js';
28
+ /**
29
+ * Create a HeartbeatMonitor implementation.
30
+ * S ref: §25.5, C-07 (Object.freeze)
31
+ *
32
+ * Heartbeat data is stored in core_task_queue columns:
33
+ * last_heartbeat_at, missed_heartbeats, heartbeat_interval_ms
34
+ *
35
+ * The checkCycle() method is designed to be called every polling interval
36
+ * by the scheduler. It scans all RUNNING tasks and checks for missed heartbeats.
37
+ */
38
+ export declare function createHeartbeatMonitor(audit?: AuditDep, time?: TimeProvider): HeartbeatMonitor;
39
+ export {};
40
+ //# sourceMappingURL=heartbeat_monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat_monitor.d.ts","sourceRoot":"","sources":["../../../src/substrate/heartbeat/heartbeat_monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EACV,MAAM,EAIN,gBAAgB,EACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;;GAGG;AACH,UAAU,QAAQ;IAChB,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;CAC5E;AACD,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,4BAA4B,CAAC;AAcpC;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,gBAAgB,CA6L9F"}