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,324 @@
1
+ /**
2
+ * Webhook delivery module — async HTTP delivery with HMAC-SHA256 signing.
3
+ * S ref: IP-6 (Webhook delivery with at-least-once semantics, max 3 retries)
4
+ *
5
+ * Phase: Sprint 5 (Performance & Events)
6
+ * Implements: Real HTTP delivery for webhook subscriptions, replacing the
7
+ * placeholder in event_bus.ts processWebhooks().
8
+ *
9
+ * This module is STANDALONE — it does not modify the EventBus interface (frozen zone).
10
+ * It queries pending deliveries from obs_webhook_deliveries, makes HTTP calls with
11
+ * HMAC-SHA256 signatures, and updates delivery status in the database.
12
+ *
13
+ * Security requirements:
14
+ * - HMAC-SHA256 via createHmac('sha256', secret).update(body).digest('hex')
15
+ * - X-Limen-Signature header on every delivery
16
+ * - AbortSignal.timeout(5000) for 5-second deadline per delivery
17
+ * - Exponential backoff: Math.pow(2, attempt) * 10 seconds
18
+ * - Max 3 retries (schema default: max_attempts = 3)
19
+ * - Response status captured in obs_webhook_deliveries.response_status
20
+ * - Error message captured (webhook secrets NEVER in error messages)
21
+ * - URL validation: must start with 'https://' (no http, no localhost)
22
+ *
23
+ * Invariants enforced: IP-6 (at-least-once delivery)
24
+ * Failure modes defended: FM-06 (external endpoint unavailability)
25
+ */
26
+ import { createHmac } from 'node:crypto';
27
+ // ============================================================================
28
+ // URL Validation
29
+ // ============================================================================
30
+ /**
31
+ * IP-6: Validate webhook URL. Must use HTTPS in production.
32
+ * Rejects http://, localhost, and non-URL strings.
33
+ *
34
+ * @param url - URL to validate
35
+ * @returns true if URL is safe for webhook delivery
36
+ */
37
+ export function isValidWebhookUrl(url) {
38
+ if (!url.startsWith('https://'))
39
+ return false;
40
+ try {
41
+ const parsed = new URL(url);
42
+ // Strip brackets from IPv6 hostnames (Node URL parser includes them)
43
+ const hostname = parsed.hostname.toLowerCase().replace(/^\[|\]$/g, '');
44
+ // F-S5-001 FIX: Reject localhost, loopback (IPv4 + IPv6), and 0.0.0.0
45
+ if (hostname === 'localhost' ||
46
+ hostname === '127.0.0.1' ||
47
+ hostname === '::1' ||
48
+ hostname === '0.0.0.0') {
49
+ return false;
50
+ }
51
+ // F-S5-002 FIX: Reject RFC 1918 private ranges + link-local + AWS metadata
52
+ // 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16
53
+ if (hostname.startsWith('10.') ||
54
+ hostname.startsWith('192.168.') ||
55
+ hostname.startsWith('169.254.') ||
56
+ isInRange172(hostname)) {
57
+ return false;
58
+ }
59
+ return true;
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ }
65
+ /**
66
+ * Check if an IPv4 hostname falls in 172.16.0.0/12 (172.16.x.x - 172.31.x.x).
67
+ * @internal
68
+ */
69
+ function isInRange172(hostname) {
70
+ if (!hostname.startsWith('172.'))
71
+ return false;
72
+ const parts = hostname.split('.');
73
+ if (parts.length !== 4)
74
+ return false;
75
+ const second = parseInt(parts[1], 10);
76
+ return second >= 16 && second <= 31;
77
+ }
78
+ // ============================================================================
79
+ // HMAC Signature
80
+ // ============================================================================
81
+ /**
82
+ * IP-6: Compute HMAC-SHA256 signature for a webhook payload.
83
+ *
84
+ * @param secret - Webhook secret (plaintext)
85
+ * @param body - JSON payload body
86
+ * @returns Hex-encoded HMAC-SHA256 signature
87
+ */
88
+ export function computeWebhookSignature(secret, body) {
89
+ return createHmac('sha256', secret).update(body).digest('hex');
90
+ }
91
+ // ============================================================================
92
+ // Delivery Engine
93
+ // ============================================================================
94
+ /**
95
+ * IP-6: Deliver pending webhooks via HTTP POST.
96
+ *
97
+ * Queries obs_webhook_deliveries for pending/failed deliveries, makes HTTP calls
98
+ * with HMAC-SHA256 signed payloads, and updates delivery status.
99
+ *
100
+ * This function is ASYNC and is called separately from the synchronous
101
+ * EventBus.processWebhooks(). It handles the actual HTTP transport.
102
+ *
103
+ * @param conn - Database connection
104
+ * @param encryption - Optional encryption for decrypting webhook secrets
105
+ * @param time - TimeProvider for timestamps (Hard Stop #7)
106
+ * @param batchSize - Maximum deliveries to process per call (default: 100)
107
+ * @returns WebhookDeliveryResult with delivery statistics
108
+ */
109
+ export async function deliverWebhooks(conn, encryption, time, batchSize = 100) {
110
+ const clock = time ?? { nowISO: () => new Date().toISOString(), nowMs: () => Date.now() }; // clock-exempt: fallback only
111
+ let delivered = 0;
112
+ let failed = 0;
113
+ let exhausted = 0;
114
+ let skipped = 0;
115
+ const attempts = [];
116
+ // Query pending deliveries
117
+ const pendingDeliveries = conn.query(`SELECT id, subscription_id, event_id, attempts, max_attempts
118
+ FROM obs_webhook_deliveries
119
+ WHERE status IN ('pending', 'failed')
120
+ AND (next_retry_at IS NULL OR next_retry_at <= ?)
121
+ ORDER BY created_at ASC LIMIT ?`, [clock.nowISO(), batchSize]);
122
+ // Process each delivery
123
+ const deliveryPromises = pendingDeliveries.map(async (delivery) => {
124
+ return deliverSingle(conn, delivery, encryption, clock);
125
+ });
126
+ // Execute deliveries with Promise.allSettled for fault isolation
127
+ const results = await Promise.allSettled(deliveryPromises);
128
+ for (const result of results) {
129
+ if (result.status === 'fulfilled') {
130
+ const attempt = result.value;
131
+ attempts.push(attempt);
132
+ switch (attempt.status) {
133
+ case 'delivered':
134
+ delivered++;
135
+ break;
136
+ case 'failed':
137
+ failed++;
138
+ break;
139
+ case 'exhausted':
140
+ exhausted++;
141
+ break;
142
+ case 'skipped':
143
+ skipped++;
144
+ break;
145
+ }
146
+ }
147
+ else {
148
+ // Promise rejection — should not happen with our error handling,
149
+ // but count as skipped to avoid losing visibility
150
+ skipped++;
151
+ }
152
+ }
153
+ return { delivered, failed, exhausted, skipped, attempts };
154
+ }
155
+ // ============================================================================
156
+ // Single Delivery
157
+ // ============================================================================
158
+ /**
159
+ * Attempt delivery of a single webhook.
160
+ *
161
+ * @internal
162
+ */
163
+ async function deliverSingle(conn, delivery, encryption, clock) {
164
+ // 1. Get subscription config
165
+ const sub = conn.get(`SELECT handler_config FROM obs_event_subscriptions WHERE id = ?`, [delivery.subscription_id]);
166
+ if (!sub) {
167
+ // Subscription deleted — mark exhausted
168
+ conn.run(`UPDATE obs_webhook_deliveries SET status = 'exhausted', last_attempt_at = ?
169
+ WHERE id = ?`, [clock.nowISO(), delivery.id]);
170
+ return {
171
+ deliveryId: delivery.id,
172
+ subscriptionId: delivery.subscription_id,
173
+ eventId: delivery.event_id,
174
+ status: 'skipped',
175
+ errorMessage: 'Subscription not found',
176
+ };
177
+ }
178
+ const config = JSON.parse(sub.handler_config);
179
+ // 2. Validate URL
180
+ if (!isValidWebhookUrl(config.url)) {
181
+ conn.run(`UPDATE obs_webhook_deliveries SET status = 'exhausted', last_attempt_at = ?,
182
+ error_message = 'Invalid webhook URL: must use HTTPS'
183
+ WHERE id = ?`, [clock.nowISO(), delivery.id]);
184
+ return {
185
+ deliveryId: delivery.id,
186
+ subscriptionId: delivery.subscription_id,
187
+ eventId: delivery.event_id,
188
+ status: 'exhausted',
189
+ errorMessage: 'Invalid webhook URL: must use HTTPS',
190
+ };
191
+ }
192
+ // 3. Decrypt secret if encrypted
193
+ let webhookSecret;
194
+ try {
195
+ webhookSecret = config.encrypted && encryption
196
+ ? encryption.decrypt(config.secret)
197
+ : config.secret;
198
+ }
199
+ catch {
200
+ // Decryption failure — do NOT include secret in error
201
+ conn.run(`UPDATE obs_webhook_deliveries SET status = 'exhausted', last_attempt_at = ?,
202
+ error_message = 'Webhook secret decryption failed'
203
+ WHERE id = ?`, [clock.nowISO(), delivery.id]);
204
+ return {
205
+ deliveryId: delivery.id,
206
+ subscriptionId: delivery.subscription_id,
207
+ eventId: delivery.event_id,
208
+ status: 'exhausted',
209
+ errorMessage: 'Webhook secret decryption failed',
210
+ };
211
+ }
212
+ // 4. Get event payload
213
+ const event = conn.get(`SELECT id, type, scope, payload, timestamp FROM obs_events WHERE id = ?`, [delivery.event_id]);
214
+ if (!event) {
215
+ conn.run(`UPDATE obs_webhook_deliveries SET status = 'exhausted', last_attempt_at = ?
216
+ WHERE id = ?`, [clock.nowISO(), delivery.id]);
217
+ return {
218
+ deliveryId: delivery.id,
219
+ subscriptionId: delivery.subscription_id,
220
+ eventId: delivery.event_id,
221
+ status: 'skipped',
222
+ errorMessage: 'Event not found',
223
+ };
224
+ }
225
+ // 5. Build payload
226
+ const eventPayload = JSON.stringify({
227
+ id: event.id,
228
+ type: event.type,
229
+ scope: event.scope,
230
+ payload: JSON.parse(event.payload),
231
+ timestamp: event.timestamp,
232
+ });
233
+ // 6. Compute HMAC-SHA256 signature
234
+ const signature = computeWebhookSignature(webhookSecret, eventPayload);
235
+ // 7. Attempt HTTP delivery
236
+ const newAttempts = delivery.attempts + 1;
237
+ const nowISO = clock.nowISO();
238
+ try {
239
+ const response = await fetch(config.url, {
240
+ method: 'POST',
241
+ headers: {
242
+ 'Content-Type': 'application/json',
243
+ 'X-Limen-Signature': signature,
244
+ 'X-Limen-Event-Id': event.id,
245
+ 'X-Limen-Event-Type': event.type,
246
+ },
247
+ body: eventPayload,
248
+ signal: AbortSignal.timeout(5000),
249
+ });
250
+ if (response.ok) {
251
+ // Successful delivery
252
+ conn.run(`UPDATE obs_webhook_deliveries SET
253
+ status = 'delivered', attempts = ?, last_attempt_at = ?,
254
+ response_status = ?
255
+ WHERE id = ?`, [newAttempts, nowISO, response.status, delivery.id]);
256
+ return {
257
+ deliveryId: delivery.id,
258
+ subscriptionId: delivery.subscription_id,
259
+ eventId: delivery.event_id,
260
+ status: 'delivered',
261
+ responseStatus: response.status,
262
+ };
263
+ }
264
+ // Non-2xx response — treat as failure
265
+ return handleDeliveryFailure(conn, delivery, newAttempts, nowISO, `HTTP ${response.status}`, response.status);
266
+ }
267
+ catch (err) {
268
+ // Network error, timeout, etc.
269
+ // SECURITY: Do not include webhook secret in error message
270
+ const errorMessage = err instanceof Error
271
+ ? err.name === 'TimeoutError'
272
+ ? 'Delivery timeout (5s exceeded)'
273
+ : `Network error: ${err.message}`
274
+ : 'Unknown delivery error';
275
+ return handleDeliveryFailure(conn, delivery, newAttempts, nowISO, errorMessage, undefined);
276
+ }
277
+ }
278
+ // ============================================================================
279
+ // Failure Handling
280
+ // ============================================================================
281
+ /**
282
+ * Handle a failed delivery attempt. Either retry with exponential backoff
283
+ * or mark as exhausted if max attempts reached.
284
+ *
285
+ * @internal
286
+ */
287
+ function handleDeliveryFailure(conn, delivery, newAttempts, nowISO, errorMessage, responseStatus) {
288
+ if (newAttempts >= delivery.max_attempts) {
289
+ // Max retries exhausted
290
+ conn.run(`UPDATE obs_webhook_deliveries SET
291
+ status = 'exhausted', attempts = ?, last_attempt_at = ?,
292
+ error_message = ?${responseStatus !== undefined ? ', response_status = ?' : ''}
293
+ WHERE id = ?`, responseStatus !== undefined
294
+ ? [newAttempts, nowISO, errorMessage, responseStatus, delivery.id]
295
+ : [newAttempts, nowISO, errorMessage, delivery.id]);
296
+ return {
297
+ deliveryId: delivery.id,
298
+ subscriptionId: delivery.subscription_id,
299
+ eventId: delivery.event_id,
300
+ status: 'exhausted',
301
+ ...(responseStatus !== undefined ? { responseStatus } : {}),
302
+ errorMessage,
303
+ };
304
+ }
305
+ // Schedule retry with exponential backoff: 2^attempt * 10 seconds
306
+ const backoffSeconds = Math.pow(2, newAttempts) * 10;
307
+ conn.run(`UPDATE obs_webhook_deliveries SET
308
+ status = 'failed', attempts = ?, last_attempt_at = ?,
309
+ error_message = ?,
310
+ next_retry_at = strftime('%Y-%m-%dT%H:%M:%fZ', ?, '+' || ? || ' seconds')
311
+ ${responseStatus !== undefined ? ', response_status = ?' : ''}
312
+ WHERE id = ?`, responseStatus !== undefined
313
+ ? [newAttempts, nowISO, errorMessage, nowISO, backoffSeconds, responseStatus, delivery.id]
314
+ : [newAttempts, nowISO, errorMessage, nowISO, backoffSeconds, delivery.id]);
315
+ return {
316
+ deliveryId: delivery.id,
317
+ subscriptionId: delivery.subscription_id,
318
+ eventId: delivery.event_id,
319
+ status: 'failed',
320
+ ...(responseStatus !== undefined ? { responseStatus } : {}),
321
+ errorMessage,
322
+ };
323
+ }
324
+ //# sourceMappingURL=webhook_delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook_delivery.js","sourceRoot":"","sources":["../../../src/kernel/events/webhook_delivery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Kernel factory: createKernel and destroyKernel.
3
+ * S ref: C-07 (Object.freeze), C-06 (no shared mutable state), §3.3 (engine not framework)
4
+ *
5
+ * Phase: 1 (Kernel)
6
+ * The top-level entry point for the kernel module.
7
+ *
8
+ * C-07: Object.freeze on public API.
9
+ * C-06: Two createKernel() calls produce independent instances.
10
+ * §3.3: Engine, not framework -- consumer receives complete opaque object.
11
+ *
12
+ * Build order justification (SDD Section 7):
13
+ * 1. Database lifecycle (foundation)
14
+ * 2. Namespace enforcement (before tables)
15
+ * 3. Audit trail (before mutations)
16
+ * 4. Crypto (needed by audit + vault)
17
+ * 5. Event bus (needed by all modules)
18
+ * 6. RBAC + Rate limiter (needed by API)
19
+ * 7. Retention + Tenant + Config
20
+ */
21
+ import type { Result, Kernel, KernelConfig } from './interfaces/index.js';
22
+ /**
23
+ * Create an independent kernel instance.
24
+ * Returns a frozen object per C-07. Each call produces an independent instance per C-06.
25
+ *
26
+ * S ref: C-07 (Object.freeze), C-06 (no shared mutable state),
27
+ * §3.3 (engine not framework), SDD FPD-7
28
+ */
29
+ export declare function createKernel(config: KernelConfig): Result<Readonly<Kernel>>;
30
+ /**
31
+ * Graceful shutdown: close kernel's internal database connection.
32
+ * CF-011: Properly closes the connection tracked during createKernel.
33
+ * Idempotent: calling destroyKernel twice is safe (second call is a no-op).
34
+ *
35
+ * S ref: I-05 (clean shutdown), §3.4 (WAL checkpoint)
36
+ */
37
+ export declare function destroyKernel(kernel: Kernel): Result<void>;
38
+ export type * from './interfaces/index.js';
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,MAAM,EAAE,MAAM,EAAE,YAAY,EAC7B,MAAM,uBAAuB,CAAC;AAqB/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CA2M3E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CA2B1D;AAGD,mBAAmB,uBAAuB,CAAC"}
@@ -0,0 +1,263 @@
1
+ /**
2
+ * Kernel factory: createKernel and destroyKernel.
3
+ * S ref: C-07 (Object.freeze), C-06 (no shared mutable state), §3.3 (engine not framework)
4
+ *
5
+ * Phase: 1 (Kernel)
6
+ * The top-level entry point for the kernel module.
7
+ *
8
+ * C-07: Object.freeze on public API.
9
+ * C-06: Two createKernel() calls produce independent instances.
10
+ * §3.3: Engine, not framework -- consumer receives complete opaque object.
11
+ *
12
+ * Build order justification (SDD Section 7):
13
+ * 1. Database lifecycle (foundation)
14
+ * 2. Namespace enforcement (before tables)
15
+ * 3. Audit trail (before mutations)
16
+ * 4. Crypto (needed by audit + vault)
17
+ * 5. Event bus (needed by all modules)
18
+ * 6. RBAC + Rate limiter (needed by API)
19
+ * 7. Retention + Tenant + Config
20
+ */
21
+ import { createDatabaseLifecycle } from './database/database_lifecycle.js';
22
+ // CF-011: Module-level connection tracker for destroyKernel.
23
+ // WeakMap so that unreferenced kernels can be garbage-collected.
24
+ // This avoids modifying the frozen Kernel interface while giving
25
+ // destroyKernel access to the connection it needs to close.
26
+ const kernelConnections = new WeakMap();
27
+ import { getPhase1Migrations } from './database/migrations.js';
28
+ import { createNamespaceEnforcer } from './namespace/namespace_enforcer.js';
29
+ import { createAuditTrail } from './audit/audit_trail.js';
30
+ import { createCryptoEngine, createVaultOperations, createStringEncryption } from './crypto/crypto_engine.js';
31
+ import { createEventBus } from './events/event_bus.js';
32
+ import { createRbacEngine } from './rbac/rbac_engine.js';
33
+ import { createRateLimiter } from './rate_limiter/rate_limiter.js';
34
+ import { createRetentionScheduler, DEFAULT_POLICIES } from './retention/retention_scheduler.js';
35
+ import { createTenantContext } from './tenant/tenant_context.js';
36
+ import { createSystemTimeProvider } from './time/time_provider.js';
37
+ import { randomUUID } from 'node:crypto';
38
+ /**
39
+ * Create an independent kernel instance.
40
+ * Returns a frozen object per C-07. Each call produces an independent instance per C-06.
41
+ *
42
+ * S ref: C-07 (Object.freeze), C-06 (no shared mutable state),
43
+ * §3.3 (engine not framework), SDD FPD-7
44
+ */
45
+ export function createKernel(config) {
46
+ try {
47
+ const time = createSystemTimeProvider();
48
+ const startTime = time.nowMs();
49
+ // ─── Build Order 1: Database lifecycle ───
50
+ const database = createDatabaseLifecycle();
51
+ const openResult = database.open({
52
+ dataDir: config.dataDir,
53
+ tenancy: config.tenancy,
54
+ ...(config.busyTimeoutMs !== undefined ? { busyTimeoutMs: config.busyTimeoutMs } : {}),
55
+ });
56
+ if (!openResult.ok)
57
+ return openResult;
58
+ const conn = openResult.value;
59
+ // ─── Build Order 2: Namespace enforcement ───
60
+ const namespace = createNamespaceEnforcer();
61
+ // Validate all migration SQL before applying
62
+ const migrations = getPhase1Migrations();
63
+ for (const migration of migrations) {
64
+ const validationResult = namespace.validateMigration(migration.sql);
65
+ if (!validationResult.ok) {
66
+ conn.close();
67
+ return validationResult;
68
+ }
69
+ }
70
+ // Run migrations
71
+ const migrateResult = database.migrate(conn, migrations);
72
+ if (!migrateResult.ok) {
73
+ conn.close();
74
+ return migrateResult;
75
+ }
76
+ // ─── Build Order 4: Crypto engine ───
77
+ // (Built before audit because audit needs sha256)
78
+ const crypto = createCryptoEngine();
79
+ const vault = createVaultOperations(crypto, config.masterKey);
80
+ // ─── Build Order 3: Audit trail ───
81
+ const audit = createAuditTrail(crypto.sha256);
82
+ // ─── Build Order 5: Event bus ───
83
+ // CF-010: Wire encryption adapter for webhook secret encryption at rest
84
+ const stringEncryption = createStringEncryption(crypto, config.masterKey);
85
+ const events = createEventBus(stringEncryption);
86
+ // ─── Build Order 6: RBAC + Rate limiter ───
87
+ // CF-006: Pass conn to restore RBAC active state from existing custom roles
88
+ const rbac = createRbacEngine(conn);
89
+ const rateLimiter = createRateLimiter();
90
+ // CF-005 / DEC-4D-001: Clean stale archive flag on startup.
91
+ // If kernel crashed mid-archive, the flag remains and the DELETE trigger is
92
+ // permanently disabled. Clean it unconditionally — archive() is transactional,
93
+ // so a stale flag means the archive didn't complete.
94
+ conn.run('DELETE FROM core_audit_archive_active');
95
+ // CF-035: Clean stale tombstone flag on startup (same rationale as archive flag).
96
+ // CF-011: Guard with try/catch — table is created by Phase 4D4 migration
97
+ // which may not have run yet on first startup.
98
+ try {
99
+ conn.run('DELETE FROM core_audit_tombstone_active');
100
+ }
101
+ catch {
102
+ // Table does not exist yet (first run before Phase 4D4 migrations).
103
+ // This is safe — no stale flag can exist if the table doesn't exist.
104
+ }
105
+ // Seed default roles in a transaction (I-03: mutation + audit in same txn)
106
+ conn.transaction(() => {
107
+ rbac.seedDefaultRoles(conn);
108
+ // Seed default retention policies
109
+ for (const policy of DEFAULT_POLICIES) {
110
+ const id = randomUUID();
111
+ conn.run(`INSERT INTO core_retention_policies (id, tenant_id, data_type, retention_days, action, enabled)
112
+ VALUES (?, NULL, ?, ?, ?, 1)
113
+ ON CONFLICT(tenant_id, data_type) DO NOTHING`, [id, policy.dataType, policy.retentionDays, policy.action]);
114
+ }
115
+ // Audit the kernel initialization
116
+ audit.append(conn, {
117
+ tenantId: null,
118
+ actorType: 'system',
119
+ actorId: 'kernel',
120
+ operation: 'kernel.initialized',
121
+ resourceType: 'kernel',
122
+ resourceId: 'kernel',
123
+ detail: {
124
+ dataDir: config.dataDir,
125
+ tenancyMode: config.tenancy.mode,
126
+ schemaVersion: migrateResult.value.currentVersion,
127
+ migrationsApplied: migrateResult.value.applied,
128
+ },
129
+ });
130
+ });
131
+ // ─── Build Order 7: Retention + Tenant ───
132
+ const retention = createRetentionScheduler(audit);
133
+ const tenant = createTenantContext(conn);
134
+ // ─── Assemble Kernel ───
135
+ const kernel = {
136
+ database,
137
+ audit,
138
+ crypto,
139
+ vault,
140
+ events,
141
+ rbac,
142
+ retention,
143
+ namespace,
144
+ tenant,
145
+ rateLimiter,
146
+ time,
147
+ /**
148
+ * Aggregated kernel health check.
149
+ * S ref: I-05 (database consistency), I-06 (audit chain valid)
150
+ */
151
+ health() {
152
+ try {
153
+ // Database health
154
+ const dbHealthResult = database.health(conn);
155
+ if (!dbHealthResult.ok) {
156
+ return {
157
+ ok: true,
158
+ value: {
159
+ status: 'unhealthy',
160
+ database: {
161
+ status: 'unhealthy',
162
+ walSize: 0,
163
+ pageCount: 0,
164
+ freePages: 0,
165
+ schemaVersion: 0,
166
+ integrityOk: false,
167
+ },
168
+ auditChainValid: false,
169
+ migrationsCurrent: false,
170
+ rbacActive: rbac.isActive(),
171
+ uptimeMs: time.nowMs() - startTime,
172
+ },
173
+ };
174
+ }
175
+ // Audit chain verification
176
+ const chainResult = audit.verifyChain(conn);
177
+ const auditChainValid = chainResult.ok && chainResult.value.valid;
178
+ // Schema verification
179
+ const schemaResult = database.verifySchema(conn);
180
+ const migrationsCurrent = schemaResult.ok && schemaResult.value.valid;
181
+ const dbHealth = dbHealthResult.value;
182
+ const status = dbHealth.integrityOk && auditChainValid && migrationsCurrent
183
+ ? 'healthy'
184
+ : dbHealth.integrityOk
185
+ ? 'degraded'
186
+ : 'unhealthy';
187
+ return {
188
+ ok: true,
189
+ value: {
190
+ status,
191
+ database: dbHealth,
192
+ auditChainValid,
193
+ migrationsCurrent,
194
+ rbacActive: rbac.isActive(),
195
+ uptimeMs: time.nowMs() - startTime,
196
+ },
197
+ };
198
+ }
199
+ catch (err) {
200
+ return {
201
+ ok: false,
202
+ error: {
203
+ code: 'HEALTH_CHECK_FAILED',
204
+ message: err instanceof Error ? err.message : String(err),
205
+ spec: 'I-05',
206
+ },
207
+ };
208
+ }
209
+ },
210
+ };
211
+ // CF-011: Track connection for destroyKernel cleanup
212
+ kernelConnections.set(kernel, conn);
213
+ // C-07: Freeze the kernel object to prevent mutation
214
+ return { ok: true, value: Object.freeze(kernel) };
215
+ }
216
+ catch (err) {
217
+ return {
218
+ ok: false,
219
+ error: {
220
+ code: 'KERNEL_CREATE_FAILED',
221
+ message: err instanceof Error ? err.message : String(err),
222
+ spec: 'C-07, C-06, §3.3',
223
+ },
224
+ };
225
+ }
226
+ }
227
+ /**
228
+ * Graceful shutdown: close kernel's internal database connection.
229
+ * CF-011: Properly closes the connection tracked during createKernel.
230
+ * Idempotent: calling destroyKernel twice is safe (second call is a no-op).
231
+ *
232
+ * S ref: I-05 (clean shutdown), §3.4 (WAL checkpoint)
233
+ */
234
+ export function destroyKernel(kernel) {
235
+ try {
236
+ const conn = kernelConnections.get(kernel);
237
+ if (conn) {
238
+ // WAL checkpoint before close: ensures all pending writes are flushed
239
+ // to the main database file. PASSIVE mode doesn't block readers.
240
+ try {
241
+ conn.run('PRAGMA wal_checkpoint(PASSIVE)');
242
+ }
243
+ catch {
244
+ // Checkpoint failure is non-fatal — SQLite will replay WAL on next open
245
+ }
246
+ conn.close();
247
+ kernelConnections.delete(kernel);
248
+ }
249
+ // If no connection found, kernel was already destroyed (idempotent).
250
+ return { ok: true, value: undefined };
251
+ }
252
+ catch (err) {
253
+ return {
254
+ ok: false,
255
+ error: {
256
+ code: 'KERNEL_DESTROY_FAILED',
257
+ message: err instanceof Error ? err.message : String(err),
258
+ spec: 'I-05',
259
+ },
260
+ };
261
+ }
262
+ }
263
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"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"}