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,569 @@
1
+ /**
2
+ * Audit trail implementation.
3
+ * S ref: I-03, I-06, §3.5, FM-08, T-5
4
+ *
5
+ * Phase: 1 (Kernel) -- Build Order 3
6
+ * Must exist before any state mutation occurs.
7
+ *
8
+ * I-03: Every state mutation and its audit entry in same transaction.
9
+ * I-06: Append-only. No modify, no delete. Retention = archival.
10
+ * §3.5: SHA-256 hash chaining. Monotonic sequence numbers. Append-only.
11
+ * FM-08: Defense against audit trail tampering via hash chain + triggers.
12
+ */
13
+ import { randomUUID } from 'node:crypto';
14
+ import { createRequire } from 'node:module';
15
+ // ─── Genesis hash: SHA-256 of empty string ───
16
+ // Well-known constant. Anchors the hash chain (SDD A06-3).
17
+ const GENESIS_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
18
+ /**
19
+ * FM-10 + §3.5: Unwrap tenant-scoped connection for audit chain queries.
20
+ * The audit hash chain is GLOBAL (all tenants share one monotonic sequence).
21
+ * TenantScopedConnection.raw provides the unscoped connection.
22
+ * If conn is not scoped, returns conn unchanged.
23
+ *
24
+ * S ref: §3.5 (global hash chain), FM-10 (tenant scoping must not corrupt chain)
25
+ */
26
+ function unwrapForChainQuery(conn) {
27
+ return 'raw' in conn && conn.raw !== undefined
28
+ ? conn.raw
29
+ : conn;
30
+ }
31
+ /**
32
+ * Compute SHA-256 hash for audit chain entry.
33
+ * Uses a deterministic field ordering for consistent hashing.
34
+ * S ref: §3.5 (SHA-256 hash chaining)
35
+ */
36
+ function computeEntryHash(sha256Fn, previousHash, input, timestamp, seqNo) {
37
+ // Deterministic serialization: fixed field order, canonical JSON
38
+ const data = [
39
+ previousHash,
40
+ String(seqNo),
41
+ timestamp,
42
+ input.actorType,
43
+ input.actorId,
44
+ input.operation,
45
+ input.resourceType,
46
+ input.resourceId,
47
+ input.detail ? JSON.stringify(input.detail, Object.keys(input.detail).sort()) : '',
48
+ ].join('|');
49
+ return sha256Fn(data);
50
+ }
51
+ /**
52
+ * Create an AuditTrail implementation.
53
+ * Requires a sha256 function from the crypto module.
54
+ * S ref: I-03 (atomic audit), I-06 (immutability),
55
+ * §3.5 (hash chaining), FM-08 (tamper detection)
56
+ */
57
+ export function createAuditTrail(sha256Fn, time) {
58
+ const clock = time ?? { nowISO: () => new Date().toISOString(), nowMs: () => Date.now() };
59
+ return {
60
+ /**
61
+ * Append entry. MUST be called within same transaction as mutation (I-03).
62
+ * S ref: I-03 (atomic audit), §3.5 (hash chaining, monotonic sequence)
63
+ */
64
+ append(conn, input) {
65
+ try {
66
+ const id = randomUUID();
67
+ const timestamp = clock.nowISO();
68
+ // Get previous hash (chain head or genesis)
69
+ // FM-10: Use raw connection — hash chain is GLOBAL, not per-tenant (§3.5)
70
+ const rawConn = unwrapForChainQuery(conn);
71
+ const lastEntry = rawConn.get(`SELECT current_hash, seq_no FROM core_audit_log ORDER BY seq_no DESC LIMIT 1`);
72
+ const previousHash = lastEntry?.current_hash ?? GENESIS_HASH;
73
+ const seqNo = (lastEntry?.seq_no ?? 0) + 1;
74
+ // Compute hash for this entry
75
+ const currentHash = computeEntryHash(sha256Fn, previousHash, input, timestamp, seqNo);
76
+ // Insert into audit log
77
+ const detailJson = input.detail ? JSON.stringify(input.detail) : null;
78
+ conn.run(`INSERT INTO core_audit_log (id, seq_no, tenant_id, timestamp, actor_type, actor_id,
79
+ operation, resource_type, resource_id, detail, previous_hash, current_hash)
80
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [id, seqNo, input.tenantId, timestamp, input.actorType, input.actorId,
81
+ input.operation, input.resourceType, input.resourceId,
82
+ detailJson, previousHash, currentHash]);
83
+ const entry = {
84
+ seqNo,
85
+ id,
86
+ tenantId: input.tenantId,
87
+ timestamp,
88
+ actorType: input.actorType,
89
+ actorId: input.actorId,
90
+ operation: input.operation,
91
+ resourceType: input.resourceType,
92
+ resourceId: input.resourceId,
93
+ detail: input.detail ?? null,
94
+ previousHash,
95
+ currentHash,
96
+ };
97
+ return { ok: true, value: entry };
98
+ }
99
+ catch (err) {
100
+ return {
101
+ ok: false,
102
+ error: {
103
+ code: 'AUDIT_APPEND_FAILED',
104
+ message: err instanceof Error ? err.message : String(err),
105
+ spec: 'I-03, I-06',
106
+ },
107
+ };
108
+ }
109
+ },
110
+ /**
111
+ * Batch append for observational (non-mutating) audits.
112
+ * S ref: §3.5 (observational audit batching)
113
+ */
114
+ appendBatch(conn, inputs) {
115
+ try {
116
+ const entries = [];
117
+ // Get chain head once
118
+ // FM-10: Use raw connection — hash chain is GLOBAL, not per-tenant (§3.5)
119
+ const rawConn = unwrapForChainQuery(conn);
120
+ const lastEntry = rawConn.get(`SELECT current_hash, seq_no FROM core_audit_log ORDER BY seq_no DESC LIMIT 1`);
121
+ let previousHash = lastEntry?.current_hash ?? GENESIS_HASH;
122
+ let seqNo = (lastEntry?.seq_no ?? 0);
123
+ const insertStmt = `INSERT INTO core_audit_log (id, seq_no, tenant_id, timestamp, actor_type, actor_id,
124
+ operation, resource_type, resource_id, detail, previous_hash, current_hash)
125
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
126
+ for (const input of inputs) {
127
+ const id = randomUUID();
128
+ const timestamp = clock.nowISO();
129
+ seqNo += 1;
130
+ const currentHash = computeEntryHash(sha256Fn, previousHash, input, timestamp, seqNo);
131
+ const detailJson = input.detail ? JSON.stringify(input.detail) : null;
132
+ conn.run(insertStmt, [id, seqNo, input.tenantId, timestamp, input.actorType, input.actorId,
133
+ input.operation, input.resourceType, input.resourceId,
134
+ detailJson, previousHash, currentHash]);
135
+ entries.push({
136
+ seqNo,
137
+ id,
138
+ tenantId: input.tenantId,
139
+ timestamp,
140
+ actorType: input.actorType,
141
+ actorId: input.actorId,
142
+ operation: input.operation,
143
+ resourceType: input.resourceType,
144
+ resourceId: input.resourceId,
145
+ detail: input.detail ?? null,
146
+ previousHash,
147
+ currentHash,
148
+ });
149
+ previousHash = currentHash;
150
+ }
151
+ return { ok: true, value: entries };
152
+ }
153
+ catch (err) {
154
+ return {
155
+ ok: false,
156
+ error: {
157
+ code: 'AUDIT_BATCH_FAILED',
158
+ message: err instanceof Error ? err.message : String(err),
159
+ spec: 'I-03, I-06',
160
+ },
161
+ };
162
+ }
163
+ },
164
+ /**
165
+ * Query entries. RBAC: requires 'view_audit' permission.
166
+ * S ref: I-13 (authorization on audit read)
167
+ */
168
+ query(conn, ctx, filter) {
169
+ try {
170
+ // I-13: Check view_audit permission
171
+ if (ctx.permissions.size > 0 && !ctx.permissions.has('view_audit')) {
172
+ return {
173
+ ok: false,
174
+ error: {
175
+ code: 'PERMISSION_DENIED',
176
+ message: 'view_audit permission required to query audit entries',
177
+ spec: 'I-13',
178
+ },
179
+ };
180
+ }
181
+ const conditions = [];
182
+ const params = [];
183
+ if (filter.tenantId !== undefined) {
184
+ conditions.push('tenant_id = ?');
185
+ params.push(filter.tenantId);
186
+ }
187
+ if (filter.actorId !== undefined) {
188
+ conditions.push('actor_id = ?');
189
+ params.push(filter.actorId);
190
+ }
191
+ if (filter.operation !== undefined) {
192
+ conditions.push('operation = ?');
193
+ params.push(filter.operation);
194
+ }
195
+ if (filter.resourceType !== undefined) {
196
+ conditions.push('resource_type = ?');
197
+ params.push(filter.resourceType);
198
+ }
199
+ if (filter.resourceId !== undefined) {
200
+ conditions.push('resource_id = ?');
201
+ params.push(filter.resourceId);
202
+ }
203
+ if (filter.fromTimestamp !== undefined) {
204
+ conditions.push('timestamp >= ?');
205
+ params.push(filter.fromTimestamp);
206
+ }
207
+ if (filter.toTimestamp !== undefined) {
208
+ conditions.push('timestamp <= ?');
209
+ params.push(filter.toTimestamp);
210
+ }
211
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
212
+ const limit = filter.limit ?? 100;
213
+ const offset = filter.offset ?? 0;
214
+ const sql = `SELECT seq_no, id, tenant_id, timestamp, actor_type, actor_id,
215
+ operation, resource_type, resource_id, detail, previous_hash, current_hash
216
+ FROM core_audit_log ${where}
217
+ ORDER BY seq_no ASC LIMIT ? OFFSET ?`;
218
+ params.push(limit, offset);
219
+ const rows = conn.query(sql, params);
220
+ const entries = rows.map(row => ({
221
+ seqNo: row.seq_no,
222
+ id: row.id,
223
+ tenantId: row.tenant_id,
224
+ timestamp: row.timestamp,
225
+ actorType: row.actor_type,
226
+ actorId: row.actor_id,
227
+ operation: row.operation,
228
+ resourceType: row.resource_type,
229
+ resourceId: row.resource_id,
230
+ detail: row.detail ? JSON.parse(row.detail) : null,
231
+ previousHash: row.previous_hash,
232
+ currentHash: row.current_hash,
233
+ }));
234
+ return { ok: true, value: entries };
235
+ }
236
+ catch (err) {
237
+ return {
238
+ ok: false,
239
+ error: {
240
+ code: 'AUDIT_QUERY_FAILED',
241
+ message: err instanceof Error ? err.message : String(err),
242
+ spec: 'I-06',
243
+ },
244
+ };
245
+ }
246
+ },
247
+ /**
248
+ * Verify hash chain integrity.
249
+ * S ref: FM-08 (chain verification as runtime health check)
250
+ */
251
+ verifyChain(conn, tenantId) {
252
+ try {
253
+ const tenantFilter = tenantId !== undefined ? 'WHERE tenant_id = ?' : '';
254
+ const params = tenantId !== undefined ? [tenantId] : [];
255
+ const rows = conn.query(`SELECT seq_no, tenant_id, timestamp, actor_type, actor_id, operation,
256
+ resource_type, resource_id, detail, previous_hash, current_hash
257
+ FROM core_audit_log ${tenantFilter} ORDER BY seq_no ASC`, params);
258
+ if (rows.length === 0) {
259
+ return {
260
+ ok: true,
261
+ value: {
262
+ valid: true,
263
+ totalEntries: 0,
264
+ firstSeqNo: 0,
265
+ lastSeqNo: 0,
266
+ brokenAt: null,
267
+ expectedHash: null,
268
+ actualHash: null,
269
+ gaps: [],
270
+ },
271
+ };
272
+ }
273
+ const gaps = [];
274
+ let valid = true;
275
+ let brokenAt = null;
276
+ let expectedHash = null;
277
+ let actualHash = null;
278
+ let prevHash = GENESIS_HASH;
279
+ for (let i = 0; i < rows.length; i++) {
280
+ const row = rows[i];
281
+ // Check for sequence gaps
282
+ if (i > 0) {
283
+ const prevSeqNo = rows[i - 1].seq_no;
284
+ for (let s = prevSeqNo + 1; s < row.seq_no; s++) {
285
+ gaps.push(s);
286
+ }
287
+ }
288
+ // Verify previousHash links
289
+ if (row.previous_hash !== prevHash) {
290
+ valid = false;
291
+ brokenAt = row.seq_no;
292
+ expectedHash = prevHash;
293
+ actualHash = row.previous_hash;
294
+ break;
295
+ }
296
+ // Recompute hash
297
+ const input = {
298
+ tenantId: row.tenant_id,
299
+ actorType: row.actor_type,
300
+ actorId: row.actor_id,
301
+ operation: row.operation,
302
+ resourceType: row.resource_type,
303
+ resourceId: row.resource_id,
304
+ ...(row.detail ? { detail: JSON.parse(row.detail) } : {}),
305
+ };
306
+ const recomputedHash = computeEntryHash(sha256Fn, row.previous_hash, input, row.timestamp, row.seq_no);
307
+ if (recomputedHash !== row.current_hash) {
308
+ valid = false;
309
+ brokenAt = row.seq_no;
310
+ expectedHash = recomputedHash;
311
+ actualHash = row.current_hash;
312
+ break;
313
+ }
314
+ prevHash = row.current_hash;
315
+ }
316
+ return {
317
+ ok: true,
318
+ value: {
319
+ valid: valid && gaps.length === 0,
320
+ totalEntries: rows.length,
321
+ firstSeqNo: rows[0].seq_no,
322
+ lastSeqNo: rows[rows.length - 1].seq_no,
323
+ brokenAt,
324
+ expectedHash,
325
+ actualHash,
326
+ gaps,
327
+ },
328
+ };
329
+ }
330
+ catch (err) {
331
+ return {
332
+ ok: false,
333
+ error: {
334
+ code: 'CHAIN_VERIFY_FAILED',
335
+ message: err instanceof Error ? err.message : String(err),
336
+ spec: 'FM-08',
337
+ },
338
+ };
339
+ }
340
+ },
341
+ /**
342
+ * Archive entries to sealed file.
343
+ * S ref: I-06 (archival to sealed file, not deletion)
344
+ */
345
+ archive(conn, olderThan, outputPath) {
346
+ try {
347
+ // Find entries to archive
348
+ const entries = conn.query(`SELECT seq_no, current_hash FROM core_audit_log WHERE timestamp < ? ORDER BY seq_no ASC`, [olderThan]);
349
+ if (entries.length === 0) {
350
+ return {
351
+ ok: false,
352
+ error: {
353
+ code: 'NO_ENTRIES_TO_ARCHIVE',
354
+ message: 'No audit entries found older than the specified timestamp',
355
+ spec: 'I-06',
356
+ },
357
+ };
358
+ }
359
+ const firstSeqNo = entries[0].seq_no;
360
+ const lastSeqNo = entries[entries.length - 1].seq_no;
361
+ const finalHash = entries[entries.length - 1].current_hash;
362
+ const segmentId = randomUUID();
363
+ // Create archive database and copy entries
364
+ // NOTE: Archive DB creation uses better-sqlite3 directly
365
+ // This is the only place outside database_lifecycle.ts that opens a DB
366
+ // because archive files are independent sealed databases.
367
+ // S ref: I-06 (sealed archive files are independent SQLite databases)
368
+ const require = createRequire(import.meta.url);
369
+ // eslint-disable-next-line @typescript-eslint/no-require-imports -- synchronous import required for sealed archive DB (I-06)
370
+ const BetterSqlite3 = require('better-sqlite3');
371
+ const archiveDb = new BetterSqlite3(outputPath);
372
+ archiveDb.exec(`
373
+ CREATE TABLE core_audit_log (
374
+ seq_no INTEGER PRIMARY KEY,
375
+ id TEXT NOT NULL UNIQUE,
376
+ tenant_id TEXT,
377
+ timestamp TEXT NOT NULL,
378
+ actor_type TEXT NOT NULL,
379
+ actor_id TEXT NOT NULL,
380
+ operation TEXT NOT NULL,
381
+ resource_type TEXT NOT NULL,
382
+ resource_id TEXT NOT NULL,
383
+ detail TEXT,
384
+ previous_hash TEXT NOT NULL,
385
+ current_hash TEXT NOT NULL
386
+ );
387
+ `);
388
+ // Copy entries
389
+ const sourceEntries = conn.query(`SELECT * FROM core_audit_log WHERE seq_no >= ? AND seq_no <= ? ORDER BY seq_no ASC`, [firstSeqNo, lastSeqNo]);
390
+ const insertStmt = archiveDb.prepare(`INSERT INTO core_audit_log VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
391
+ const insertAll = archiveDb.transaction(() => {
392
+ for (const entry of sourceEntries) {
393
+ insertStmt.run(entry.seq_no, entry.id, entry.tenant_id, entry.timestamp, entry.actor_type, entry.actor_id, entry.operation, entry.resource_type, entry.resource_id, entry.detail, entry.previous_hash, entry.current_hash);
394
+ }
395
+ });
396
+ insertAll();
397
+ archiveDb.close();
398
+ // Record archive segment
399
+ conn.run(`INSERT INTO core_audit_archive_segments (id, file_path, first_seq_no, last_seq_no, final_hash, entry_count, archived_at)
400
+ VALUES (?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ','now'))`, [segmentId, outputPath, firstSeqNo, lastSeqNo, finalHash, entries.length]);
401
+ // Remove archived entries from active table.
402
+ // SEC-004 fix: Set archival flag to bypass DELETE trigger (I-06 defense-in-depth).
403
+ // The trigger WHEN clause checks core_audit_archive_active; if a row exists, DELETE is allowed.
404
+ // Flag is inserted and removed within the same transaction for atomicity.
405
+ conn.run(`INSERT OR IGNORE INTO core_audit_archive_active (id) VALUES (1)`);
406
+ conn.run(`DELETE FROM core_audit_log WHERE seq_no >= ? AND seq_no <= ?`, [firstSeqNo, lastSeqNo]);
407
+ conn.run(`DELETE FROM core_audit_archive_active WHERE id = 1`);
408
+ return {
409
+ ok: true,
410
+ value: {
411
+ segmentId,
412
+ archivedEntries: entries.length,
413
+ firstSeqNo,
414
+ lastSeqNo,
415
+ finalHash,
416
+ filePath: outputPath,
417
+ },
418
+ };
419
+ }
420
+ catch (err) {
421
+ return {
422
+ ok: false,
423
+ error: {
424
+ code: 'ARCHIVE_FAILED',
425
+ message: err instanceof Error ? err.message : String(err),
426
+ spec: 'I-06',
427
+ },
428
+ };
429
+ }
430
+ },
431
+ /**
432
+ * CF-035, GDPR Art. 17: Tombstone audit entries for a tenant.
433
+ * Replaces PII fields (detail, actor_id) with sanitized values
434
+ * while preserving hash chain integrity via cascade re-hash.
435
+ *
436
+ * Algorithm:
437
+ * 1. Find all entries for the given tenant
438
+ * 2. Set tombstone flag (bypasses I-06 UPDATE trigger)
439
+ * 3. For each tenant entry: replace detail → {"purged":true,"purge_date":"..."}, actor_id → "purged"
440
+ * 4. Starting from the earliest tombstoned entry, cascade re-hash ALL subsequent entries
441
+ * (even non-tenant entries, because the chain is global per DEC-CERT-001)
442
+ * 5. Clear tombstone flag
443
+ * 6. Verify chain integrity
444
+ *
445
+ * S ref: I-06 (controlled UPDATE exception), I-02 (right to erasure),
446
+ * DEC-CERT-001 (global chain GDPR condition), §3.5 (hash chaining)
447
+ */
448
+ tombstone(conn, tenantId) {
449
+ try {
450
+ // FM-10: Use raw connection — hash chain is GLOBAL (§3.5)
451
+ const rawConn = unwrapForChainQuery(conn);
452
+ // Find entries to tombstone
453
+ const tenantEntries = rawConn.query(`SELECT seq_no FROM core_audit_log WHERE tenant_id = ? ORDER BY seq_no ASC`, [tenantId]);
454
+ if (tenantEntries.length === 0) {
455
+ return {
456
+ ok: true,
457
+ value: { tombstonedEntries: 0, rehashedEntries: 0, chainValid: true },
458
+ };
459
+ }
460
+ const firstTombstoneSeqNo = tenantEntries[0].seq_no;
461
+ const purgeDate = clock.nowISO().split('T')[0]; // YYYY-MM-DD
462
+ const tombstoneDetail = JSON.stringify({ purged: true, purge_date: purgeDate });
463
+ // Execute within a transaction for atomicity
464
+ rawConn.transaction(() => {
465
+ // Set tombstone flag to bypass I-06 UPDATE trigger
466
+ rawConn.run(`INSERT OR IGNORE INTO core_audit_tombstone_active (id) VALUES (1)`);
467
+ // Step 1: Tombstone all tenant entries (replace PII fields)
468
+ rawConn.run(`UPDATE core_audit_log SET detail = ?, actor_id = 'purged' WHERE tenant_id = ?`, [tombstoneDetail, tenantId]);
469
+ // Step 2: Cascade re-hash from first tombstoned entry to end of chain
470
+ // Read ALL entries from first tombstoned entry onward
471
+ const allEntries = rawConn.query(`SELECT seq_no, tenant_id, timestamp, actor_type, actor_id, operation,
472
+ resource_type, resource_id, detail, previous_hash, current_hash
473
+ FROM core_audit_log WHERE seq_no >= ? ORDER BY seq_no ASC`, [firstTombstoneSeqNo]);
474
+ // Get the previous_hash for the first entry in the re-hash range
475
+ let prevHash;
476
+ if (firstTombstoneSeqNo === 1) {
477
+ prevHash = GENESIS_HASH;
478
+ }
479
+ else {
480
+ const predecessor = rawConn.get(`SELECT current_hash FROM core_audit_log WHERE seq_no < ? ORDER BY seq_no DESC LIMIT 1`, [firstTombstoneSeqNo]);
481
+ prevHash = predecessor?.current_hash ?? GENESIS_HASH;
482
+ }
483
+ // Re-hash each entry
484
+ for (const entry of allEntries) {
485
+ const input = {
486
+ tenantId: entry.tenant_id,
487
+ actorType: entry.actor_type,
488
+ actorId: entry.actor_id,
489
+ operation: entry.operation,
490
+ resourceType: entry.resource_type,
491
+ resourceId: entry.resource_id,
492
+ ...(entry.detail ? { detail: JSON.parse(entry.detail) } : {}),
493
+ };
494
+ const newHash = computeEntryHash(sha256Fn, prevHash, input, entry.timestamp, entry.seq_no);
495
+ rawConn.run(`UPDATE core_audit_log SET previous_hash = ?, current_hash = ? WHERE seq_no = ?`, [prevHash, newHash, entry.seq_no]);
496
+ prevHash = newHash;
497
+ }
498
+ // Clear tombstone flag
499
+ rawConn.run(`DELETE FROM core_audit_tombstone_active WHERE id = 1`);
500
+ });
501
+ // Verify chain integrity post-tombstone
502
+ const verifyResult = this.verifyChain(rawConn);
503
+ const chainValid = verifyResult.ok ? verifyResult.value.valid : false;
504
+ const rehashedEntries = rawConn.get(`SELECT COUNT(*) as count FROM core_audit_log WHERE seq_no >= ?`, [firstTombstoneSeqNo])?.count ?? 0;
505
+ // FO-001: Meta-audit entry recording the tombstone operation itself.
506
+ // Uses null tenantId because this is a system-level operation on the global chain.
507
+ // Appended AFTER the tombstone transaction so it extends the chain normally.
508
+ this.append(conn, {
509
+ tenantId: null,
510
+ actorType: 'system',
511
+ actorId: 'gdpr_tombstone',
512
+ operation: 'gdpr_tombstone',
513
+ resourceType: 'audit_trail',
514
+ resourceId: tenantId,
515
+ detail: { tombstonedEntries: tenantEntries.length, rehashedEntries, chainValid },
516
+ });
517
+ return {
518
+ ok: true,
519
+ value: { tombstonedEntries: tenantEntries.length, rehashedEntries, chainValid },
520
+ };
521
+ }
522
+ catch (err) {
523
+ // Ensure tombstone flag is cleaned up on error
524
+ try {
525
+ const rawConn = unwrapForChainQuery(conn);
526
+ rawConn.run(`DELETE FROM core_audit_tombstone_active WHERE id = 1`);
527
+ }
528
+ catch { /* cleanup best-effort */ }
529
+ return {
530
+ ok: false,
531
+ error: {
532
+ code: 'TOMBSTONE_FAILED',
533
+ message: err instanceof Error ? err.message : String(err),
534
+ spec: 'CF-035, I-06, GDPR Art. 17',
535
+ },
536
+ };
537
+ }
538
+ },
539
+ /**
540
+ * Get current chain head hash.
541
+ * S ref: §3.5 (hash chaining state)
542
+ */
543
+ getChainHead(conn, tenantId) {
544
+ try {
545
+ const tenantFilter = tenantId !== undefined ? 'WHERE tenant_id = ?' : '';
546
+ const params = tenantId !== undefined ? [tenantId] : [];
547
+ const row = conn.get(`SELECT current_hash FROM core_audit_log ${tenantFilter} ORDER BY seq_no DESC LIMIT 1`, params);
548
+ // If no entries, check archive segments for chain continuity
549
+ if (!row) {
550
+ const archiveRow = conn.get(`SELECT final_hash FROM core_audit_archive_segments ORDER BY last_seq_no DESC LIMIT 1`);
551
+ return { ok: true, value: archiveRow?.final_hash ?? GENESIS_HASH };
552
+ }
553
+ return { ok: true, value: row.current_hash };
554
+ }
555
+ catch (err) {
556
+ return {
557
+ ok: false,
558
+ error: {
559
+ code: 'CHAIN_HEAD_FAILED',
560
+ message: err instanceof Error ? err.message : String(err),
561
+ spec: '§3.5',
562
+ },
563
+ };
564
+ }
565
+ },
566
+ };
567
+ }
568
+ export { GENESIS_HASH };
569
+ //# sourceMappingURL=audit_trail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit_trail.js","sourceRoot":"","sources":["../../../src/kernel/audit/audit_trail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Cryptographic primitives implementation.
3
+ * S ref: I-11, FM-10, IP-1, IP-6
4
+ *
5
+ * Phase: 1 (Kernel) -- Build Order 4
6
+ * Required by audit (SHA-256 hash chaining) and vault.
7
+ *
8
+ * I-11: AES-256-GCM default encryption. PBKDF2 key derivation (600k iterations).
9
+ * IP-1: Vault for secure credential storage.
10
+ * IP-6: HMAC-SHA256 for webhook signing.
11
+ *
12
+ * All crypto uses Node.js built-in crypto module (I-01 compliance).
13
+ */
14
+ import type { CryptoEngine, VaultOperations } from '../interfaces/index.js';
15
+ /** AES-256-GCM constants. S ref: I-11. */
16
+ declare const AES_256_GCM: "aes-256-gcm";
17
+ declare const KEY_LENGTH = 32;
18
+ declare const IV_LENGTH = 12;
19
+ declare const AUTH_TAG_LENGTH = 16;
20
+ /** Default PBKDF2 iterations. S ref: I-11. */
21
+ declare const DEFAULT_PBKDF2_ITERATIONS = 600000;
22
+ /**
23
+ * Create a CryptoEngine implementation.
24
+ * S ref: I-11 (encryption at rest), §3.5 (SHA-256), IP-6 (HMAC)
25
+ */
26
+ export declare function createCryptoEngine(): CryptoEngine;
27
+ /**
28
+ * Create VaultOperations implementation.
29
+ * S ref: I-11 (encryption at rest), IP-1 (secure credential storage)
30
+ */
31
+ export declare function createVaultOperations(crypto: CryptoEngine, masterKey: Buffer): VaultOperations;
32
+ /**
33
+ * CF-010: String-level encryption adapter.
34
+ * Wraps CryptoEngine's Buffer-based AES-256-GCM encrypt/decrypt into a
35
+ * string-in/string-out interface suitable for LLM gateway and event bus.
36
+ *
37
+ * Format: base64(iv):base64(authTag):base64(ciphertext)
38
+ * Uses the first 32 bytes of masterKey directly (no derivation — derivation
39
+ * is for per-tenant vault entries, not for system-level encryption).
40
+ *
41
+ * S ref: I-11 (encryption at rest), CF-010 (LLM + webhook encryption)
42
+ */
43
+ export interface StringEncryption {
44
+ encrypt(plaintext: string): string;
45
+ decrypt(ciphertext: string): string;
46
+ }
47
+ export declare function createStringEncryption(crypto: CryptoEngine, masterKey: Buffer): StringEncryption;
48
+ export { DEFAULT_PBKDF2_ITERATIONS, KEY_LENGTH, IV_LENGTH, AUTH_TAG_LENGTH, AES_256_GCM };
49
+ //# sourceMappingURL=crypto_engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto_engine.d.ts","sourceRoot":"","sources":["../../../src/kernel/crypto/crypto_engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAEV,YAAY,EAAE,eAAe,EAE9B,MAAM,wBAAwB,CAAC;AAEhC,0CAA0C;AAC1C,QAAA,MAAM,WAAW,EAAG,aAAsB,CAAC;AAC3C,QAAA,MAAM,UAAU,KAAK,CAAC;AACtB,QAAA,MAAM,SAAS,KAAK,CAAC;AACrB,QAAA,MAAM,eAAe,KAAK,CAAC;AAE3B,8CAA8C;AAC9C,QAAA,MAAM,yBAAyB,SAAU,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAiIjD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CA6L9F;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CACrC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAkChG;AAED,OAAO,EAAE,yBAAyB,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}