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,245 @@
1
+ /**
2
+ * Limen — CrossAgentTransfer Implementation
3
+ * Phase 4E-2e: Learning System Convergence Subsystems
4
+ *
5
+ * Implements the CrossAgentTransfer interface from learning_types.ts.
6
+ * Human gate required. Confidence resets to 0.4 on transfer.
7
+ * Source provenance chain preserved.
8
+ *
9
+ * S ref: S29.8 (cross-agent transfer protocol), I-07 (agent isolation),
10
+ * I-03 (audit atomicity), DEC-4E-002 (cross-tenant blocked)
11
+ *
12
+ * Engineering decisions:
13
+ * D1: Qualification gate enforced at requestTransfer (§29.8 Step 1, BRK-S29-002).
14
+ * Source technique must have confidence > 0.8, success_rate > 0.7,
15
+ * applicationCount > 50. This prevents low-quality techniques from being
16
+ * proposed for transfer.
17
+ * D2: Clone mechanics: approveTransfer creates a NEW technique via store.create()
18
+ * with the target agent's ID. Source technique is unaffected (clone, not move).
19
+ * D3: Provenance preservation: the cloned technique's sourceMemoryIds = the source
20
+ * technique's sourceMemoryIds. Full provenance chain maintained.
21
+ * D4: DEC-4E-002 enforcement: TransferRequest has single tenantId field. The
22
+ * implementation uses this tenantId for all queries — no cross-tenant path exists.
23
+ * D5: Self-transfer (sourceAgentId === targetAgentId) is rejected immediately.
24
+ * No request record created (§29.8, I-07).
25
+ */
26
+ import { randomUUID } from 'node:crypto';
27
+ import { TRANSFER_MIN_CONFIDENCE, TRANSFER_MIN_SUCCESS_RATE, TRANSFER_MIN_APPLICATIONS, CONFIDENCE_RESET_TRANSFER, } from '../interfaces/index.js';
28
+ // ─── Audit Helpers ───
29
+ function actorType(ctx) {
30
+ if (ctx.userId)
31
+ return 'user';
32
+ if (ctx.agentId)
33
+ return 'agent';
34
+ return 'system';
35
+ }
36
+ function actorId(ctx) {
37
+ return (ctx.userId ?? ctx.agentId ?? 'system');
38
+ }
39
+ // ─── Factory ───
40
+ /**
41
+ * Create a CrossAgentTransfer implementation.
42
+ * Follows the Limen store pattern: factory → Object.freeze.
43
+ *
44
+ * S29.8: Transfer lifecycle: request → pending → approved/rejected.
45
+ * Human gate required. Confidence resets to 0.4.
46
+ */
47
+ export function createCrossAgentTransfer(deps, store) {
48
+ // ─── requestTransfer ───
49
+ function requestTransfer(conn, ctx, request) {
50
+ // D5: Self-transfer rejection
51
+ if (request.sourceAgentId === request.targetAgentId) {
52
+ return {
53
+ ok: false,
54
+ error: {
55
+ code: 'SELF_TRANSFER',
56
+ message: 'Cannot transfer technique to the same agent',
57
+ spec: 'S29.8',
58
+ },
59
+ };
60
+ }
61
+ // Get source technique (by id + tenant_id, no agent filter — we're verifying the source)
62
+ const technique = conn.get(`SELECT * FROM learning_techniques WHERE id = ? AND tenant_id = ?`, [request.sourceTechniqueId, request.tenantId]);
63
+ if (!technique) {
64
+ return {
65
+ ok: false,
66
+ error: {
67
+ code: 'TECHNIQUE_NOT_FOUND',
68
+ message: `Source technique ${request.sourceTechniqueId} not found`,
69
+ spec: 'S29.8',
70
+ },
71
+ };
72
+ }
73
+ // Verify source agent owns this technique
74
+ if (technique.agent_id !== request.sourceAgentId) {
75
+ return {
76
+ ok: false,
77
+ error: {
78
+ code: 'AGENT_MISMATCH',
79
+ message: `Source agent ${request.sourceAgentId} does not own technique ${request.sourceTechniqueId}`,
80
+ spec: 'I-07',
81
+ },
82
+ };
83
+ }
84
+ // Cannot transfer retired or suspended technique (FS-14)
85
+ if (technique.status !== 'active') {
86
+ return {
87
+ ok: false,
88
+ error: {
89
+ code: 'TECHNIQUE_NOT_ACTIVE',
90
+ message: `Cannot transfer technique in state ${technique.status} — must be active`,
91
+ spec: 'S29.8',
92
+ },
93
+ };
94
+ }
95
+ // D1: Qualification gate (§29.8 Step 1, BRK-S29-002)
96
+ if (technique.confidence <= TRANSFER_MIN_CONFIDENCE ||
97
+ technique.success_rate <= TRANSFER_MIN_SUCCESS_RATE ||
98
+ technique.application_count <= TRANSFER_MIN_APPLICATIONS) {
99
+ return {
100
+ ok: false,
101
+ error: {
102
+ code: 'TRANSFER_QUALIFICATION_FAILED',
103
+ message: `Technique does not meet transfer qualification: confidence > ${TRANSFER_MIN_CONFIDENCE}, success_rate > ${TRANSFER_MIN_SUCCESS_RATE}, applicationCount > ${TRANSFER_MIN_APPLICATIONS}`,
104
+ spec: 'S29.8',
105
+ },
106
+ };
107
+ }
108
+ const requestId = randomUUID();
109
+ const now = deps.time.nowISO();
110
+ conn.transaction(() => {
111
+ conn.run(`INSERT INTO learning_transfer_requests
112
+ (id, tenant_id, source_agent_id, target_agent_id, technique_id, status, created_at, resolved_at)
113
+ VALUES (?, ?, ?, ?, ?, 'pending', ?, NULL)`, [requestId, request.tenantId, request.sourceAgentId, request.targetAgentId,
114
+ request.sourceTechniqueId, now]);
115
+ deps.audit.append(conn, {
116
+ tenantId: request.tenantId,
117
+ actorType: actorType(ctx),
118
+ actorId: actorId(ctx),
119
+ operation: 'transfer.request',
120
+ resourceType: 'transfer',
121
+ resourceId: requestId,
122
+ });
123
+ });
124
+ return { ok: true, value: requestId };
125
+ }
126
+ // ─── approveTransfer ───
127
+ function approveTransfer(conn, ctx, requestId) {
128
+ const callerTenantId = ctx.tenantId;
129
+ const request = conn.get(`SELECT * FROM learning_transfer_requests WHERE id = ? AND tenant_id = ?`, [requestId, callerTenantId]);
130
+ if (!request) {
131
+ return {
132
+ ok: false,
133
+ error: {
134
+ code: 'TRANSFER_REQUEST_NOT_FOUND',
135
+ message: `Transfer request ${requestId} not found`,
136
+ spec: 'S29.8',
137
+ },
138
+ };
139
+ }
140
+ if (request.status !== 'pending') {
141
+ return {
142
+ ok: false,
143
+ error: {
144
+ code: 'TRANSFER_NOT_PENDING',
145
+ message: `Transfer request ${requestId} is ${request.status}, not pending`,
146
+ spec: 'S29.8',
147
+ },
148
+ };
149
+ }
150
+ // Get source technique for cloning
151
+ const technique = conn.get(`SELECT * FROM learning_techniques WHERE id = ? AND tenant_id = ?`, [request.technique_id, request.tenant_id]);
152
+ if (!technique) {
153
+ return {
154
+ ok: false,
155
+ error: {
156
+ code: 'SOURCE_TECHNIQUE_NOT_FOUND',
157
+ message: `Source technique ${request.technique_id} no longer exists`,
158
+ spec: 'S29.8',
159
+ },
160
+ };
161
+ }
162
+ const sourceMemoryIds = JSON.parse(technique.source_memory_ids);
163
+ const targetAgentId = request.target_agent_id;
164
+ const tenantId = request.tenant_id;
165
+ const now = deps.time.nowISO();
166
+ // D2: Clone technique for target agent via store.create()
167
+ // D3: Provenance preserved — same sourceMemoryIds
168
+ const createResult = store.create(conn, ctx, {
169
+ tenantId,
170
+ agentId: targetAgentId,
171
+ type: technique.type,
172
+ content: technique.content,
173
+ sourceMemoryIds,
174
+ initialConfidence: CONFIDENCE_RESET_TRANSFER, // 0.4 per S29.8
175
+ });
176
+ if (!createResult.ok) {
177
+ return createResult;
178
+ }
179
+ conn.transaction(() => {
180
+ conn.run(`UPDATE learning_transfer_requests SET status = 'approved', resolved_at = ? WHERE id = ?`, [now, requestId]);
181
+ deps.audit.append(conn, {
182
+ tenantId,
183
+ actorType: actorType(ctx),
184
+ actorId: actorId(ctx),
185
+ operation: 'transfer.approve',
186
+ resourceType: 'transfer',
187
+ resourceId: requestId,
188
+ });
189
+ });
190
+ return {
191
+ ok: true,
192
+ value: {
193
+ newTechniqueId: createResult.value.id,
194
+ sourceProvenanceChain: sourceMemoryIds,
195
+ confidence: CONFIDENCE_RESET_TRANSFER,
196
+ },
197
+ };
198
+ }
199
+ // ─── rejectTransfer ───
200
+ function rejectTransfer(conn, ctx, requestId) {
201
+ const rejectCallerTenantId = ctx.tenantId;
202
+ const request = conn.get(`SELECT * FROM learning_transfer_requests WHERE id = ? AND tenant_id = ?`, [requestId, rejectCallerTenantId]);
203
+ if (!request) {
204
+ return {
205
+ ok: false,
206
+ error: {
207
+ code: 'TRANSFER_REQUEST_NOT_FOUND',
208
+ message: `Transfer request ${requestId} not found`,
209
+ spec: 'S29.8',
210
+ },
211
+ };
212
+ }
213
+ if (request.status !== 'pending') {
214
+ return {
215
+ ok: false,
216
+ error: {
217
+ code: 'TRANSFER_NOT_PENDING',
218
+ message: `Transfer request ${requestId} is ${request.status}, not pending`,
219
+ spec: 'S29.8',
220
+ },
221
+ };
222
+ }
223
+ const now = deps.time.nowISO();
224
+ const tenantId = request.tenant_id;
225
+ conn.transaction(() => {
226
+ conn.run(`UPDATE learning_transfer_requests SET status = 'rejected', resolved_at = ? WHERE id = ?`, [now, requestId]);
227
+ deps.audit.append(conn, {
228
+ tenantId,
229
+ actorType: actorType(ctx),
230
+ actorId: actorId(ctx),
231
+ operation: 'transfer.reject',
232
+ resourceType: 'transfer',
233
+ resourceId: requestId,
234
+ });
235
+ });
236
+ return { ok: true, value: undefined };
237
+ }
238
+ // ─── Return frozen transfer ───
239
+ return Object.freeze({
240
+ requestTransfer,
241
+ approveTransfer,
242
+ rejectTransfer,
243
+ });
244
+ }
245
+ //# sourceMappingURL=cross_agent_transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross_agent_transfer.js","sourceRoot":"","sources":["../../../src/learning/transfer/cross_agent_transfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AA+BhC,wBAAwB;AAExB,SAAS,SAAS,CAAC,GAAqB;IACtC,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,GAAqB;IACpC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAW,CAAC;AAC3D,CAAC;AAED,kBAAkB;AAElB;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAkB,EAAE,KAAqB;IAEhF,0BAA0B;IAE1B,SAAS,eAAe,CACtB,IAAwB,EACxB,GAAqB,EACrB,OAAwB;QAExB,8BAA8B;QAC9B,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;YACpD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,6CAA6C;oBACtD,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,yFAAyF;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,kEAAkE,EAClE,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAC9C,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,oBAAoB,OAAO,CAAC,iBAAiB,YAAY;oBAClE,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,IAAI,SAAS,CAAC,QAAQ,KAAM,OAAO,CAAC,aAAwB,EAAE,CAAC;YAC7D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,gBAAgB,OAAO,CAAC,aAAa,2BAA2B,OAAO,CAAC,iBAAiB,EAAE;oBACpG,IAAI,EAAE,MAAM;iBACb;aACF,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,sCAAsC,SAAS,CAAC,MAAM,mBAAmB;oBAClF,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,IAAI,SAAS,CAAC,UAAU,IAAI,uBAAuB;YAC/C,SAAS,CAAC,YAAY,IAAI,yBAAyB;YACnD,SAAS,CAAC,iBAAiB,IAAI,yBAAyB,EAAE,CAAC;YAC7D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,+BAA+B;oBACrC,OAAO,EAAE,gEAAgE,uBAAuB,oBAAoB,yBAAyB,wBAAwB,yBAAyB,EAAE;oBAChM,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAE/B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,GAAG,CACN;;oDAE4C,EAC5C,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACzE,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CACjC,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;gBACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;gBACrB,SAAS,EAAE,kBAAkB;gBAC7B,YAAY,EAAE,UAAU;gBACxB,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,0BAA0B;IAE1B,SAAS,eAAe,CACtB,IAAwB,EACxB,GAAqB,EACrB,SAAiB;QAEjB,MAAM,cAAc,GAAG,GAAG,CAAC,QAA+D,CAAC;QAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,yEAAyE,EACzE,CAAC,SAAS,EAAE,cAAc,CAAC,CAC5B,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EAAE,oBAAoB,SAAS,YAAY;oBAClD,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,oBAAoB,SAAS,OAAO,OAAO,CAAC,MAAM,eAAe;oBAC1E,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,kEAAkE,EAClE,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAC1C,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EAAE,oBAAoB,OAAO,CAAC,YAAY,mBAAmB;oBACpE,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAsB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,OAAO,CAAC,eAA0B,CAAC;QACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAgE,CAAC;QAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAE/B,0DAA0D;QAC1D,kDAAkD;QAClD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC3C,QAAQ;YACR,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,SAAS,CAAC,IAAsD;YACtE,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,eAAe;YACf,iBAAiB,EAAE,yBAAyB,EAAE,gBAAgB;SAC/D,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,YAAsC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,GAAG,CACN,yFAAyF,EACzF,CAAC,GAAG,EAAE,SAAS,CAAC,CACjB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;gBACtB,QAAQ;gBACR,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;gBACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;gBACrB,SAAS,EAAE,kBAAkB;gBAC7B,YAAY,EAAE,UAAU;gBACxB,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE;gBACL,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;gBACrC,qBAAqB,EAAE,eAAe;gBACtC,UAAU,EAAE,yBAAyB;aACtC;SACF,CAAC;IACJ,CAAC;IAED,yBAAyB;IAEzB,SAAS,cAAc,CACrB,IAAwB,EACxB,GAAqB,EACrB,SAAiB;QAEjB,MAAM,oBAAoB,GAAG,GAAG,CAAC,QAA+D,CAAC;QACjG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,yEAAyE,EACzE,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAClC,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EAAE,oBAAoB,SAAS,YAAY;oBAClD,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,oBAAoB,SAAS,OAAO,OAAO,CAAC,MAAM,eAAe;oBAC1E,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAgE,CAAC;QAE1F,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,GAAG,CACN,yFAAyF,EACzF,CAAC,GAAG,EAAE,SAAS,CAAC,CACjB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;gBACtB,QAAQ;gBACR,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;gBACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;gBACrB,SAAS,EAAE,iBAAiB;gBAC5B,YAAY,EAAE,UAAU;gBACxB,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,iCAAiC;IAEjC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,eAAe;QACf,eAAe;QACf,cAAc;KACf,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Artifact Store -- Immutable artifact workspace with dependency tracking.
3
+ * S ref: S8 (Artifact), I-19 (immutability), I-23 (dependency tracking),
4
+ * FM-15 (artifact entropy)
5
+ *
6
+ * Phase: 3 (Orchestration)
7
+ * Implements: Artifact creation (INSERT-only, never UPDATE per I-19),
8
+ * version management via composite PK (id, version),
9
+ * dependency tracking on read, lifecycle state management.
10
+ *
11
+ * SD-03: Composite PK (id, version) from Alpha. Each row is an immutable version.
12
+ */
13
+ import type { ArtifactStore } from '../interfaces/orchestration.js';
14
+ /**
15
+ * S8: Create the artifact store module.
16
+ * Factory function returns frozen object per C-07.
17
+ */
18
+ export declare function createArtifactStore(): ArtifactStore;
19
+ //# sourceMappingURL=artifact_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact_store.d.ts","sourceRoot":"","sources":["../../../src/orchestration/artifacts/artifact_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EACS,aAAa,EAGjC,MAAM,gCAAgC,CAAC;AAOxC;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAwQnD"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Artifact Store -- Immutable artifact workspace with dependency tracking.
3
+ * S ref: S8 (Artifact), I-19 (immutability), I-23 (dependency tracking),
4
+ * FM-15 (artifact entropy)
5
+ *
6
+ * Phase: 3 (Orchestration)
7
+ * Implements: Artifact creation (INSERT-only, never UPDATE per I-19),
8
+ * version management via composite PK (id, version),
9
+ * dependency tracking on read, lifecycle state management.
10
+ *
11
+ * SD-03: Composite PK (id, version) from Alpha. Each row is an immutable version.
12
+ */
13
+ import { MISSION_TREE_DEFAULTS, generateId } from '../interfaces/orchestration.js';
14
+ import { walkCascade } from './cascade_walker.js';
15
+ // CF-013: Maximum artifact content size (10MB)
16
+ const MAX_ARTIFACT_CONTENT_BYTES = 10_485_760;
17
+ /**
18
+ * S8: Create the artifact store module.
19
+ * Factory function returns frozen object per C-07.
20
+ */
21
+ export function createArtifactStore() {
22
+ /** S18: Create artifact (INSERT-only, I-19) */
23
+ function create(deps, ctx, input) {
24
+ // Verify mission is in active state
25
+ const mission = deps.conn.get('SELECT state FROM core_missions WHERE id = ?', [input.missionId]);
26
+ if (!mission) {
27
+ return { ok: false, error: { code: 'MISSION_NOT_ACTIVE', message: 'Mission not found', spec: 'S18' } };
28
+ }
29
+ const activeStates = ['CREATED', 'PLANNING', 'EXECUTING', 'REVIEWING'];
30
+ if (!activeStates.includes(mission.state)) {
31
+ return { ok: false, error: { code: 'MISSION_NOT_ACTIVE', message: `Mission in state ${mission.state}`, spec: 'S18' } };
32
+ }
33
+ // I-20: Artifact limit check
34
+ const countResult = getArtifactCount(deps, input.missionId);
35
+ if (countResult.ok && countResult.value >= MISSION_TREE_DEFAULTS.maxArtifacts) {
36
+ return { ok: false, error: { code: 'ARTIFACT_LIMIT_EXCEEDED', message: `Artifact count ${countResult.value} >= max ${MISSION_TREE_DEFAULTS.maxArtifacts}`, spec: 'I-20' } };
37
+ }
38
+ // CF-013: Hard cap on artifact content size (10MB)
39
+ const contentSize = typeof input.content === 'string'
40
+ ? Buffer.byteLength(input.content, 'utf-8')
41
+ : input.content.length;
42
+ if (contentSize > MAX_ARTIFACT_CONTENT_BYTES) {
43
+ return { ok: false, error: { code: 'INVALID_INPUT', message: `Artifact content exceeds maximum size (${contentSize} bytes > ${MAX_ARTIFACT_CONTENT_BYTES} bytes limit)`, spec: 'S18/CF-013' } };
44
+ }
45
+ // CQ-10 fix: S18 STORAGE_EXCEEDED -- check storage budget before artifact creation
46
+ const resource = deps.conn.get('SELECT storage_max_bytes, storage_consumed_bytes FROM core_resources WHERE mission_id = ?', [input.missionId]);
47
+ if (!resource) {
48
+ // Debt 2: Missing resource row means storage budget enforcement is impossible — do not silently skip
49
+ return { ok: false, error: { code: 'STORAGE_EXCEEDED', message: `Resource record missing for mission ${input.missionId} — cannot verify storage budget`, spec: 'S18' } };
50
+ }
51
+ if (resource.storage_max_bytes > 0 && (resource.storage_consumed_bytes + contentSize) > resource.storage_max_bytes) {
52
+ return { ok: false, error: { code: 'STORAGE_EXCEEDED', message: `Content size ${contentSize} would exceed storage budget (consumed ${resource.storage_consumed_bytes} of max ${resource.storage_max_bytes})`, spec: 'S18' } };
53
+ }
54
+ // Determine version
55
+ let artifactId;
56
+ let version;
57
+ if (input.parentArtifactId !== null) {
58
+ // Revision: same artifact id, next version
59
+ artifactId = input.parentArtifactId;
60
+ const maxVersion = deps.conn.get('SELECT MAX(version) as mv FROM core_artifacts WHERE id = ?', [input.parentArtifactId]);
61
+ version = (maxVersion?.mv ?? 0) + 1;
62
+ }
63
+ else {
64
+ // New artifact
65
+ artifactId = generateId();
66
+ version = 1;
67
+ }
68
+ const now = deps.time.nowISO();
69
+ const contentBlob = typeof input.content === 'string'
70
+ ? Buffer.from(input.content, 'utf-8')
71
+ : input.content;
72
+ deps.conn.transaction(() => {
73
+ // I-19: INSERT only -- never UPDATE
74
+ deps.conn.run(`INSERT INTO core_artifacts (id, version, mission_id, tenant_id, name, type,
75
+ format, content, lifecycle_state, source_task_id, parent_artifact_id,
76
+ relevance_decay, metadata_json, created_at)
77
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'ACTIVE', ?, ?, 0, ?, ?)`, [
78
+ artifactId,
79
+ version,
80
+ input.missionId,
81
+ ctx.tenantId,
82
+ input.name,
83
+ input.type,
84
+ input.format,
85
+ contentBlob,
86
+ input.sourceTaskId,
87
+ input.parentArtifactId,
88
+ JSON.stringify(input.metadata),
89
+ now,
90
+ ]);
91
+ // I-03: Audit entry
92
+ deps.audit.append(deps.conn, {
93
+ tenantId: ctx.tenantId,
94
+ actorType: ctx.userId ? 'user' : 'agent',
95
+ actorId: (ctx.userId ?? ctx.agentId ?? 'system'),
96
+ operation: 'create_artifact',
97
+ resourceType: 'artifact',
98
+ resourceId: `${artifactId}@v${version}`,
99
+ detail: { missionId: input.missionId, name: input.name, type: input.type, version },
100
+ });
101
+ });
102
+ return {
103
+ ok: true,
104
+ value: { artifactId, version },
105
+ };
106
+ }
107
+ /** S19: Read artifact with dependency tracking (I-23) */
108
+ function read(deps, _ctx, input) {
109
+ let row;
110
+ if (input.version === 'latest') {
111
+ row = deps.conn.get('SELECT * FROM core_artifacts WHERE id = ? ORDER BY version DESC LIMIT 1', [input.artifactId]);
112
+ }
113
+ else {
114
+ row = deps.conn.get('SELECT * FROM core_artifacts WHERE id = ? AND version = ?', [input.artifactId, input.version]);
115
+ }
116
+ if (!row) {
117
+ return { ok: false, error: { code: 'NOT_FOUND', message: `Artifact ${input.artifactId} not found`, spec: 'S19' } };
118
+ }
119
+ const lifecycleState = row['lifecycle_state'];
120
+ if (lifecycleState === 'ARCHIVED' || lifecycleState === 'DELETED') {
121
+ return { ok: false, error: { code: 'ARCHIVED', message: `Artifact is ${lifecycleState}`, spec: 'S19' } };
122
+ }
123
+ const content = row['content'];
124
+ const metadata = row['metadata_json'] ? JSON.parse(row['metadata_json']) : {};
125
+ return {
126
+ ok: true,
127
+ value: {
128
+ artifact: {
129
+ id: row['id'],
130
+ version: row['version'],
131
+ missionId: row['mission_id'],
132
+ name: row['name'],
133
+ type: row['type'],
134
+ format: row['format'],
135
+ content,
136
+ lifecycleState: lifecycleState,
137
+ metadata,
138
+ },
139
+ },
140
+ };
141
+ }
142
+ /** I-23: Track dependency edge */
143
+ function trackDependency(deps, readingMissionId, artifactId, version, isCrossMission) {
144
+ const now = deps.time.nowISO();
145
+ // FM-10: Derive tenant_id from reading mission
146
+ const missionRow = deps.conn.get('SELECT tenant_id FROM core_missions WHERE id = ?', [readingMissionId]);
147
+ if (!missionRow) {
148
+ // Debt 2: Missing mission means tenant identity cannot be established — do not fabricate null tenant
149
+ return { ok: false, error: { code: 'MISSION_NOT_FOUND', message: `Mission ${readingMissionId} not found — cannot derive tenant for dependency tracking`, spec: 'FM-10' } };
150
+ }
151
+ const depTenantId = (missionRow.tenant_id ?? null);
152
+ // CQ-06 fix: I-03 -- dependency tracking INSERT + audit in same transaction
153
+ deps.conn.transaction(() => {
154
+ // FM-10: tenant_id inherited from reading mission
155
+ deps.conn.run(`INSERT OR IGNORE INTO core_artifact_dependencies
156
+ (reading_mission_id, artifact_id, artifact_version, is_cross_mission, tenant_id, created_at)
157
+ VALUES (?, ?, ?, ?, ?, ?)`, [readingMissionId, artifactId, version, isCrossMission ? 1 : 0, depTenantId, now]);
158
+ deps.audit.append(deps.conn, {
159
+ tenantId: depTenantId,
160
+ actorType: 'system',
161
+ actorId: 'artifact_store',
162
+ operation: 'track_dependency',
163
+ resourceType: 'artifact_dependency',
164
+ resourceId: `${artifactId}@v${version}`,
165
+ detail: { readingMissionId, artifactId, version, isCrossMission },
166
+ });
167
+ });
168
+ return { ok: true, value: undefined };
169
+ }
170
+ /** FM-15: Get artifact count for mission */
171
+ function getArtifactCount(deps, missionId) {
172
+ const row = deps.conn.get('SELECT COUNT(*) as cnt FROM core_artifacts WHERE mission_id = ?', [missionId]);
173
+ return { ok: true, value: row?.cnt ?? 0 };
174
+ }
175
+ /** I-21: Archive artifacts for compaction */
176
+ function archiveForMission(deps, missionId) {
177
+ // Debt 3: Derive tenant_id from mission for audit trail
178
+ const archiveMissionRow = deps.conn.get('SELECT tenant_id FROM core_missions WHERE id = ?', [missionId]);
179
+ const archiveTenantId = (archiveMissionRow?.tenant_id ?? null);
180
+ // CQ-07 fix: I-03 -- archive UPDATE + audit + cascade in same transaction
181
+ let archived = 0;
182
+ deps.conn.transaction(() => {
183
+ const result = deps.conn.run(`UPDATE core_artifacts SET lifecycle_state = 'ARCHIVED' WHERE mission_id = ? AND lifecycle_state = 'ACTIVE'`, [missionId]);
184
+ archived = result.changes;
185
+ if (archived > 0) {
186
+ // I-23: Collect the archived artifact IDs for cascade
187
+ const archivedRows = deps.conn.query(`SELECT DISTINCT id FROM core_artifacts WHERE mission_id = ? AND lifecycle_state = 'ARCHIVED'`, [missionId]);
188
+ const archivedArtifactIds = archivedRows.map(r => r.id);
189
+ deps.audit.append(deps.conn, {
190
+ tenantId: archiveTenantId,
191
+ actorType: 'system',
192
+ actorId: 'artifact_store',
193
+ operation: 'archive_artifacts',
194
+ resourceType: 'artifact',
195
+ resourceId: missionId,
196
+ detail: { missionId, archivedCount: archived },
197
+ });
198
+ // I-23: Cascade STALE flag to transitive dependents (BFS)
199
+ // Both archive and cascade in the same transaction
200
+ walkCascade(archivedArtifactIds, deps.conn, archiveTenantId, deps.audit);
201
+ }
202
+ });
203
+ return { ok: true, value: archived };
204
+ }
205
+ return Object.freeze({
206
+ create,
207
+ read,
208
+ trackDependency,
209
+ getArtifactCount,
210
+ archiveForMission,
211
+ });
212
+ }
213
+ //# sourceMappingURL=artifact_store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact_store.js","sourceRoot":"","sources":["../../../src/orchestration/artifacts/artifact_store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Cascade Walker — BFS STALE flag propagation through artifact dependency graph.
3
+ * S ref: I-23 (Artifact Dependency Tracking), I-19 (Artifact Immutability)
4
+ *
5
+ * Phase: Sprint 3 (Knowledge Graph)
6
+ *
7
+ * Algorithm: Breadth-first search starting from archived artifact IDs.
8
+ * For each artifact: find missions that depend on it, find their ACTIVE+FRESH
9
+ * artifacts, mark them STALE, add to BFS queue.
10
+ *
11
+ * Safety constraints:
12
+ * - COALESCE tenant pattern on EVERY query (FM-10)
13
+ * - Column-specific UPDATE (staleness_flag only) — I-19 content/type triggers NOT fired
14
+ * - Visited set prevents infinite loops on circular dependencies
15
+ * - MAX_CASCADE_DEPTH = 10 hard safety bound
16
+ * - Only cascades to ACTIVE + FRESH artifacts (skip ARCHIVED/DELETED/SUMMARIZED/STALE)
17
+ * - Single audit entry per cascade invocation
18
+ *
19
+ * Spec trace: §4 I-23, §8 S18/S19, §19 Side Effects
20
+ */
21
+ import type { DatabaseConnection, AuditTrail, TenantId } from '../../kernel/interfaces/index.js';
22
+ /** Result of a cascade operation. */
23
+ export interface CascadeResult {
24
+ /** Number of artifacts marked STALE. */
25
+ readonly affectedCount: number;
26
+ /** IDs of artifacts marked STALE (artifact_id:version format). */
27
+ readonly affectedIds: readonly string[];
28
+ }
29
+ /**
30
+ * Walk the artifact dependency graph via BFS, marking transitive dependents as STALE.
31
+ *
32
+ * @param sourceArtifactIds - Artifact IDs that were just archived (cascade source)
33
+ * @param conn - Database connection (must be inside a transaction already)
34
+ * @param tenantId - Tenant ID for isolation (null for single-tenant)
35
+ * @param audit - Audit trail for recording the cascade
36
+ * @returns CascadeResult with affected count and IDs
37
+ */
38
+ export declare function walkCascade(sourceArtifactIds: readonly string[], conn: DatabaseConnection, tenantId: TenantId | null, audit: AuditTrail): CascadeResult;
39
+ //# sourceMappingURL=cascade_walker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade_walker.d.ts","sourceRoot":"","sources":["../../../src/orchestration/artifacts/cascade_walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAKjG,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,KAAK,EAAE,UAAU,GAChB,aAAa,CAiGf"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Cascade Walker — BFS STALE flag propagation through artifact dependency graph.
3
+ * S ref: I-23 (Artifact Dependency Tracking), I-19 (Artifact Immutability)
4
+ *
5
+ * Phase: Sprint 3 (Knowledge Graph)
6
+ *
7
+ * Algorithm: Breadth-first search starting from archived artifact IDs.
8
+ * For each artifact: find missions that depend on it, find their ACTIVE+FRESH
9
+ * artifacts, mark them STALE, add to BFS queue.
10
+ *
11
+ * Safety constraints:
12
+ * - COALESCE tenant pattern on EVERY query (FM-10)
13
+ * - Column-specific UPDATE (staleness_flag only) — I-19 content/type triggers NOT fired
14
+ * - Visited set prevents infinite loops on circular dependencies
15
+ * - MAX_CASCADE_DEPTH = 10 hard safety bound
16
+ * - Only cascades to ACTIVE + FRESH artifacts (skip ARCHIVED/DELETED/SUMMARIZED/STALE)
17
+ * - Single audit entry per cascade invocation
18
+ *
19
+ * Spec trace: §4 I-23, §8 S18/S19, §19 Side Effects
20
+ */
21
+ /** Maximum BFS depth to prevent unbounded traversal. */
22
+ const MAX_CASCADE_DEPTH = 10;
23
+ /**
24
+ * Walk the artifact dependency graph via BFS, marking transitive dependents as STALE.
25
+ *
26
+ * @param sourceArtifactIds - Artifact IDs that were just archived (cascade source)
27
+ * @param conn - Database connection (must be inside a transaction already)
28
+ * @param tenantId - Tenant ID for isolation (null for single-tenant)
29
+ * @param audit - Audit trail for recording the cascade
30
+ * @returns CascadeResult with affected count and IDs
31
+ */
32
+ export function walkCascade(sourceArtifactIds, conn, tenantId, audit) {
33
+ if (sourceArtifactIds.length === 0) {
34
+ return { affectedCount: 0, affectedIds: [] };
35
+ }
36
+ // Visited set: `${artifactId}:${version}` — prevents cycles
37
+ const visited = new Set();
38
+ const affectedIds = [];
39
+ // BFS queue: each entry is { artifactId, depth }
40
+ const queue = [];
41
+ // Seed the queue with source artifact IDs
42
+ for (const id of sourceArtifactIds) {
43
+ queue.push({ artifactId: id, depth: 0 });
44
+ }
45
+ while (queue.length > 0) {
46
+ const current = queue.shift();
47
+ // Safety bound: stop if max depth exceeded
48
+ if (current.depth >= MAX_CASCADE_DEPTH) {
49
+ continue;
50
+ }
51
+ // Find all missions that depend on this artifact
52
+ // COALESCE tenant pattern (FM-10)
53
+ const dependentMissions = conn.query(`SELECT DISTINCT reading_mission_id
54
+ FROM core_artifact_dependencies
55
+ WHERE artifact_id = ?
56
+ AND COALESCE(tenant_id, '__NULL__') = COALESCE(?, '__NULL__')`, [current.artifactId, tenantId]);
57
+ for (const dep of dependentMissions) {
58
+ // Find ACTIVE + FRESH artifacts in this dependent mission
59
+ // COALESCE tenant pattern (FM-10)
60
+ const freshArtifacts = conn.query(`SELECT id, version
61
+ FROM core_artifacts
62
+ WHERE mission_id = ?
63
+ AND lifecycle_state = 'ACTIVE'
64
+ AND staleness_flag = 'FRESH'
65
+ AND COALESCE(tenant_id, '__NULL__') = COALESCE(?, '__NULL__')`, [dep.reading_mission_id, tenantId]);
66
+ for (const artifact of freshArtifacts) {
67
+ const visitKey = `${artifact.id}:${artifact.version}`;
68
+ // Skip already-visited artifacts (cycle prevention)
69
+ if (visited.has(visitKey)) {
70
+ continue;
71
+ }
72
+ visited.add(visitKey);
73
+ // Column-specific UPDATE: only staleness_flag — I-19 safe
74
+ // Uses version in WHERE clause for optimistic concurrency
75
+ const result = conn.run(`UPDATE core_artifacts
76
+ SET staleness_flag = 'STALE'
77
+ WHERE id = ? AND version = ?`, [artifact.id, artifact.version]);
78
+ if (result.changes > 0) {
79
+ affectedIds.push(visitKey);
80
+ // Add to BFS queue for further propagation
81
+ queue.push({ artifactId: artifact.id, depth: current.depth + 1 });
82
+ }
83
+ }
84
+ }
85
+ }
86
+ // Single audit entry per cascade invocation (not per artifact)
87
+ if (affectedIds.length > 0) {
88
+ audit.append(conn, {
89
+ tenantId,
90
+ actorType: 'system',
91
+ actorId: 'cascade_walker',
92
+ operation: 'cascade_stale',
93
+ resourceType: 'artifact',
94
+ resourceId: `cascade:${sourceArtifactIds.join(',')}`,
95
+ detail: {
96
+ sourceArtifactIds,
97
+ affectedCount: affectedIds.length,
98
+ affectedIds,
99
+ },
100
+ });
101
+ }
102
+ return {
103
+ affectedCount: affectedIds.length,
104
+ affectedIds,
105
+ };
106
+ }
107
+ //# sourceMappingURL=cascade_walker.js.map