@dcyfr/ai 1.0.4 → 2.1.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 (411) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +381 -9
  3. package/dist/ai/agents/agent-loader.d.ts +12 -0
  4. package/dist/ai/agents/agent-loader.d.ts.map +1 -1
  5. package/dist/ai/agents/agent-loader.js +74 -65
  6. package/dist/ai/agents/agent-loader.js.map +1 -1
  7. package/dist/ai/agents/agent-registry.d.ts +2 -0
  8. package/dist/ai/agents/agent-registry.d.ts.map +1 -1
  9. package/dist/ai/agents/agent-registry.js +15 -14
  10. package/dist/ai/agents/agent-registry.js.map +1 -1
  11. package/dist/ai/agents/agent-router.d.ts +20 -5
  12. package/dist/ai/agents/agent-router.d.ts.map +1 -1
  13. package/dist/ai/agents/agent-router.js +89 -43
  14. package/dist/ai/agents/agent-router.js.map +1 -1
  15. package/dist/ai/agents/index.d.ts +6 -1
  16. package/dist/ai/agents/index.d.ts.map +1 -1
  17. package/dist/ai/agents/index.js +9 -3
  18. package/dist/ai/agents/index.js.map +1 -1
  19. package/dist/ai/agents/instruction-template.d.ts +45 -0
  20. package/dist/ai/agents/instruction-template.d.ts.map +1 -0
  21. package/dist/ai/agents/instruction-template.js +197 -0
  22. package/dist/ai/agents/instruction-template.js.map +1 -0
  23. package/dist/ai/agents/persona-resolver.d.ts +90 -0
  24. package/dist/ai/agents/persona-resolver.d.ts.map +1 -0
  25. package/dist/ai/agents/persona-resolver.js +121 -0
  26. package/dist/ai/agents/persona-resolver.js.map +1 -0
  27. package/dist/ai/agents/schema.d.ts +166 -0
  28. package/dist/ai/agents/schema.d.ts.map +1 -0
  29. package/dist/ai/agents/schema.js +94 -0
  30. package/dist/ai/agents/schema.js.map +1 -0
  31. package/dist/ai/agents/types.d.ts +102 -0
  32. package/dist/ai/agents/types.d.ts.map +1 -1
  33. package/dist/ai/agents-builtin/architecture/index.js +3 -3
  34. package/dist/ai/agents-builtin/content/index.js +1 -1
  35. package/dist/ai/agents-builtin/data/index.js +1 -1
  36. package/dist/ai/agents-builtin/development/index.js +4 -4
  37. package/dist/ai/agents-builtin/devops/index.js +1 -1
  38. package/dist/ai/agents-builtin/index.js +33 -33
  39. package/dist/ai/agents-builtin/performance/index.js +1 -1
  40. package/dist/ai/agents-builtin/research/index.js +1 -1
  41. package/dist/ai/agents-builtin/security/index.js +1 -1
  42. package/dist/ai/agents-builtin/testing/index.js +2 -2
  43. package/dist/ai/config/loader.d.ts.map +1 -1
  44. package/dist/ai/config/loader.js +6 -3
  45. package/dist/ai/config/loader.js.map +1 -1
  46. package/dist/ai/config/schema.d.ts +242 -1156
  47. package/dist/ai/config/schema.d.ts.map +1 -1
  48. package/dist/ai/config/schema.js +69 -20
  49. package/dist/ai/config/schema.js.map +1 -1
  50. package/dist/ai/core/provider-registry.d.ts +32 -0
  51. package/dist/ai/core/provider-registry.d.ts.map +1 -1
  52. package/dist/ai/core/provider-registry.js +189 -14
  53. package/dist/ai/core/provider-registry.js.map +1 -1
  54. package/dist/ai/core/telemetry-engine.d.ts +26 -0
  55. package/dist/ai/core/telemetry-engine.d.ts.map +1 -1
  56. package/dist/ai/core/telemetry-engine.js +81 -1
  57. package/dist/ai/core/telemetry-engine.js.map +1 -1
  58. package/dist/ai/delegation/agent-registry.d.ts +143 -0
  59. package/dist/ai/delegation/agent-registry.d.ts.map +1 -0
  60. package/dist/ai/delegation/agent-registry.js +231 -0
  61. package/dist/ai/delegation/agent-registry.js.map +1 -0
  62. package/dist/ai/delegation/blast-radius-tracker.d.ts +65 -0
  63. package/dist/ai/delegation/blast-radius-tracker.d.ts.map +1 -0
  64. package/dist/ai/delegation/blast-radius-tracker.js +81 -0
  65. package/dist/ai/delegation/blast-radius-tracker.js.map +1 -0
  66. package/dist/ai/delegation/capability-bootstrap.d.ts +40 -0
  67. package/dist/ai/delegation/capability-bootstrap.d.ts.map +1 -0
  68. package/dist/ai/delegation/capability-bootstrap.js +431 -0
  69. package/dist/ai/delegation/capability-bootstrap.js.map +1 -0
  70. package/dist/ai/delegation/capability-registry.d.ts +81 -0
  71. package/dist/ai/delegation/capability-registry.d.ts.map +1 -0
  72. package/dist/ai/delegation/capability-registry.js +339 -0
  73. package/dist/ai/delegation/capability-registry.js.map +1 -0
  74. package/dist/ai/delegation/chain-tracker.d.ts +152 -0
  75. package/dist/ai/delegation/chain-tracker.d.ts.map +1 -0
  76. package/dist/ai/delegation/chain-tracker.js +336 -0
  77. package/dist/ai/delegation/chain-tracker.js.map +1 -0
  78. package/dist/ai/delegation/circuit-breaker.d.ts +59 -0
  79. package/dist/ai/delegation/circuit-breaker.d.ts.map +1 -0
  80. package/dist/ai/delegation/circuit-breaker.js +153 -0
  81. package/dist/ai/delegation/circuit-breaker.js.map +1 -0
  82. package/dist/ai/delegation/contract-manager.d.ts +415 -0
  83. package/dist/ai/delegation/contract-manager.d.ts.map +1 -0
  84. package/dist/ai/delegation/contract-manager.js +1258 -0
  85. package/dist/ai/delegation/contract-manager.js.map +1 -0
  86. package/dist/ai/delegation/delegation-manager.d.ts +505 -0
  87. package/dist/ai/delegation/delegation-manager.d.ts.map +1 -0
  88. package/dist/ai/delegation/delegation-manager.js +773 -0
  89. package/dist/ai/delegation/delegation-manager.js.map +1 -0
  90. package/dist/ai/delegation/event-schemas.d.ts +101 -0
  91. package/dist/ai/delegation/event-schemas.d.ts.map +1 -0
  92. package/dist/ai/delegation/event-schemas.js +59 -0
  93. package/dist/ai/delegation/event-schemas.js.map +1 -0
  94. package/dist/ai/delegation/execution-mode-dashboard.d.ts +109 -0
  95. package/dist/ai/delegation/execution-mode-dashboard.d.ts.map +1 -0
  96. package/dist/ai/delegation/execution-mode-dashboard.js +167 -0
  97. package/dist/ai/delegation/execution-mode-dashboard.js.map +1 -0
  98. package/dist/ai/delegation/feature-flags.d.ts +191 -0
  99. package/dist/ai/delegation/feature-flags.d.ts.map +1 -0
  100. package/dist/ai/delegation/feature-flags.js +332 -0
  101. package/dist/ai/delegation/feature-flags.js.map +1 -0
  102. package/dist/ai/delegation/index.d.ts +51 -0
  103. package/dist/ai/delegation/index.d.ts.map +1 -0
  104. package/dist/ai/delegation/index.js +39 -0
  105. package/dist/ai/delegation/index.js.map +1 -0
  106. package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts +39 -0
  107. package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts.map +1 -0
  108. package/dist/ai/delegation/middleware/chain-depth-middleware.js +77 -0
  109. package/dist/ai/delegation/middleware/chain-depth-middleware.js.map +1 -0
  110. package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts +46 -0
  111. package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts.map +1 -0
  112. package/dist/ai/delegation/middleware/chain-tracker-middleware.js +89 -0
  113. package/dist/ai/delegation/middleware/chain-tracker-middleware.js.map +1 -0
  114. package/dist/ai/delegation/middleware/content-policy-middleware.d.ts +31 -0
  115. package/dist/ai/delegation/middleware/content-policy-middleware.d.ts.map +1 -0
  116. package/dist/ai/delegation/middleware/content-policy-middleware.js +82 -0
  117. package/dist/ai/delegation/middleware/content-policy-middleware.js.map +1 -0
  118. package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts +46 -0
  119. package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts.map +1 -0
  120. package/dist/ai/delegation/middleware/feature-flag-middleware.js +59 -0
  121. package/dist/ai/delegation/middleware/feature-flag-middleware.js.map +1 -0
  122. package/dist/ai/delegation/middleware/identity-middleware.d.ts +23 -0
  123. package/dist/ai/delegation/middleware/identity-middleware.d.ts.map +1 -0
  124. package/dist/ai/delegation/middleware/identity-middleware.js +64 -0
  125. package/dist/ai/delegation/middleware/identity-middleware.js.map +1 -0
  126. package/dist/ai/delegation/middleware/permissions-middleware.d.ts +48 -0
  127. package/dist/ai/delegation/middleware/permissions-middleware.d.ts.map +1 -0
  128. package/dist/ai/delegation/middleware/permissions-middleware.js +107 -0
  129. package/dist/ai/delegation/middleware/permissions-middleware.js.map +1 -0
  130. package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts +38 -0
  131. package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts.map +1 -0
  132. package/dist/ai/delegation/middleware/rate-limiter-middleware.js +65 -0
  133. package/dist/ai/delegation/middleware/rate-limiter-middleware.js.map +1 -0
  134. package/dist/ai/delegation/middleware/reputation-middleware.d.ts +39 -0
  135. package/dist/ai/delegation/middleware/reputation-middleware.d.ts.map +1 -0
  136. package/dist/ai/delegation/middleware/reputation-middleware.js +75 -0
  137. package/dist/ai/delegation/middleware/reputation-middleware.js.map +1 -0
  138. package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts +52 -0
  139. package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts.map +1 -0
  140. package/dist/ai/delegation/middleware/resource-limiter-middleware.js +112 -0
  141. package/dist/ai/delegation/middleware/resource-limiter-middleware.js.map +1 -0
  142. package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts +23 -0
  143. package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts.map +1 -0
  144. package/dist/ai/delegation/middleware/threat-validator-middleware.js +83 -0
  145. package/dist/ai/delegation/middleware/threat-validator-middleware.js.map +1 -0
  146. package/dist/ai/delegation/middleware/tlp-middleware.d.ts +23 -0
  147. package/dist/ai/delegation/middleware/tlp-middleware.d.ts.map +1 -0
  148. package/dist/ai/delegation/middleware/tlp-middleware.js +59 -0
  149. package/dist/ai/delegation/middleware/tlp-middleware.js.map +1 -0
  150. package/dist/ai/delegation/monitoring.d.ts +298 -0
  151. package/dist/ai/delegation/monitoring.d.ts.map +1 -0
  152. package/dist/ai/delegation/monitoring.js +584 -0
  153. package/dist/ai/delegation/monitoring.js.map +1 -0
  154. package/dist/ai/delegation/security-middleware-chain.d.ts +71 -0
  155. package/dist/ai/delegation/security-middleware-chain.d.ts.map +1 -0
  156. package/dist/ai/delegation/security-middleware-chain.js +163 -0
  157. package/dist/ai/delegation/security-middleware-chain.js.map +1 -0
  158. package/dist/ai/delegation/session-checkpoint.d.ts +77 -0
  159. package/dist/ai/delegation/session-checkpoint.d.ts.map +1 -0
  160. package/dist/ai/delegation/session-checkpoint.js +131 -0
  161. package/dist/ai/delegation/session-checkpoint.js.map +1 -0
  162. package/dist/ai/delegation/session-manager.d.ts +131 -0
  163. package/dist/ai/delegation/session-manager.d.ts.map +1 -0
  164. package/dist/ai/delegation/session-manager.js +243 -0
  165. package/dist/ai/delegation/session-manager.js.map +1 -0
  166. package/dist/ai/delegation/session-queue.d.ts +95 -0
  167. package/dist/ai/delegation/session-queue.d.ts.map +1 -0
  168. package/dist/ai/delegation/session-queue.js +136 -0
  169. package/dist/ai/delegation/session-queue.js.map +1 -0
  170. package/dist/ai/delegation/timeout-watchdog.d.ts +60 -0
  171. package/dist/ai/delegation/timeout-watchdog.d.ts.map +1 -0
  172. package/dist/ai/delegation/timeout-watchdog.js +100 -0
  173. package/dist/ai/delegation/timeout-watchdog.js.map +1 -0
  174. package/dist/ai/examples/integration-demo.d.ts +27 -0
  175. package/dist/ai/examples/integration-demo.d.ts.map +1 -0
  176. package/dist/ai/examples/integration-demo.js +536 -0
  177. package/dist/ai/examples/integration-demo.js.map +1 -0
  178. package/dist/ai/index.d.ts +25 -0
  179. package/dist/ai/index.d.ts.map +1 -1
  180. package/dist/ai/index.js +31 -11
  181. package/dist/ai/index.js.map +1 -1
  182. package/dist/ai/mcp/servers/analytics/index.js +67 -11
  183. package/dist/ai/mcp/servers/analytics/index.js.map +1 -1
  184. package/dist/ai/mcp/servers/content-manager/index.d.ts.map +1 -1
  185. package/dist/ai/mcp/servers/content-manager/index.js +50 -4
  186. package/dist/ai/mcp/servers/content-manager/index.js.map +1 -1
  187. package/dist/ai/mcp/servers/delegation-monitor/index.d.ts +36 -0
  188. package/dist/ai/mcp/servers/delegation-monitor/index.d.ts.map +1 -0
  189. package/dist/ai/mcp/servers/delegation-monitor/index.js +757 -0
  190. package/dist/ai/mcp/servers/delegation-monitor/index.js.map +1 -0
  191. package/dist/ai/mcp/servers/design-tokens/index.d.ts.map +1 -1
  192. package/dist/ai/mcp/servers/design-tokens/index.js +62 -39
  193. package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -1
  194. package/dist/ai/mcp/servers/promptintel/index.js +15 -3
  195. package/dist/ai/mcp/servers/promptintel/index.js.map +1 -1
  196. package/dist/ai/mcp/servers/shared/rate-limiter.d.ts.map +1 -1
  197. package/dist/ai/mcp/servers/shared/rate-limiter.js +3 -1
  198. package/dist/ai/mcp/servers/shared/rate-limiter.js.map +1 -1
  199. package/dist/ai/mcp/servers/shared/redis-client.d.ts.map +1 -1
  200. package/dist/ai/mcp/servers/shared/redis-client.js +54 -47
  201. package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -1
  202. package/dist/ai/mcp/servers/shared/types.d.ts +9 -0
  203. package/dist/ai/mcp/servers/shared/types.d.ts.map +1 -1
  204. package/dist/ai/mcp/servers/shared/utils.d.ts +9 -1
  205. package/dist/ai/mcp/servers/shared/utils.d.ts.map +1 -1
  206. package/dist/ai/mcp/servers/shared/utils.js +52 -2
  207. package/dist/ai/mcp/servers/shared/utils.js.map +1 -1
  208. package/dist/ai/memory/config.d.ts +18 -3
  209. package/dist/ai/memory/config.d.ts.map +1 -1
  210. package/dist/ai/memory/config.js +61 -15
  211. package/dist/ai/memory/config.js.map +1 -1
  212. package/dist/ai/memory/dcyfr-memory.d.ts +4 -0
  213. package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -1
  214. package/dist/ai/memory/dcyfr-memory.js +44 -6
  215. package/dist/ai/memory/dcyfr-memory.js.map +1 -1
  216. package/dist/ai/memory/mem0-client.d.ts.map +1 -1
  217. package/dist/ai/memory/mem0-client.js +53 -14
  218. package/dist/ai/memory/mem0-client.js.map +1 -1
  219. package/dist/ai/permissions/attenuation-engine.d.ts +159 -0
  220. package/dist/ai/permissions/attenuation-engine.d.ts.map +1 -0
  221. package/dist/ai/permissions/attenuation-engine.js +511 -0
  222. package/dist/ai/permissions/attenuation-engine.js.map +1 -0
  223. package/dist/ai/plugins/plugin-loader.d.ts +4 -0
  224. package/dist/ai/plugins/plugin-loader.d.ts.map +1 -1
  225. package/dist/ai/plugins/plugin-loader.js +28 -28
  226. package/dist/ai/plugins/plugin-loader.js.map +1 -1
  227. package/dist/ai/reputation/execution-mode-reputation.d.ts +104 -0
  228. package/dist/ai/reputation/execution-mode-reputation.d.ts.map +1 -0
  229. package/dist/ai/reputation/execution-mode-reputation.js +142 -0
  230. package/dist/ai/reputation/execution-mode-reputation.js.map +1 -0
  231. package/dist/ai/reputation/reputation-engine.d.ts +204 -0
  232. package/dist/ai/reputation/reputation-engine.d.ts.map +1 -0
  233. package/dist/ai/reputation/reputation-engine.js +426 -0
  234. package/dist/ai/reputation/reputation-engine.js.map +1 -0
  235. package/dist/ai/runtime/agent-runtime.d.ts +193 -0
  236. package/dist/ai/runtime/agent-runtime.d.ts.map +1 -0
  237. package/dist/ai/runtime/agent-runtime.js +1009 -0
  238. package/dist/ai/runtime/agent-runtime.js.map +1 -0
  239. package/dist/ai/runtime/index.d.ts +11 -0
  240. package/dist/ai/runtime/index.d.ts.map +1 -0
  241. package/dist/ai/runtime/index.js +9 -0
  242. package/dist/ai/runtime/index.js.map +1 -0
  243. package/dist/ai/runtime/telemetry-schema.d.ts +192 -0
  244. package/dist/ai/runtime/telemetry-schema.d.ts.map +1 -0
  245. package/dist/ai/runtime/telemetry-schema.js +200 -0
  246. package/dist/ai/runtime/telemetry-schema.js.map +1 -0
  247. package/dist/ai/runtime/types.d.ts +236 -0
  248. package/dist/ai/runtime/types.d.ts.map +1 -0
  249. package/dist/ai/runtime/types.js +10 -0
  250. package/dist/ai/runtime/types.js.map +1 -0
  251. package/dist/ai/src/batch-processor.d.ts +298 -0
  252. package/dist/ai/src/batch-processor.d.ts.map +1 -0
  253. package/dist/ai/src/batch-processor.js +520 -0
  254. package/dist/ai/src/batch-processor.js.map +1 -0
  255. package/dist/ai/src/capability-bootstrap.d.ts +222 -0
  256. package/dist/ai/src/capability-bootstrap.d.ts.map +1 -0
  257. package/dist/ai/src/capability-bootstrap.js +421 -0
  258. package/dist/ai/src/capability-bootstrap.js.map +1 -0
  259. package/dist/ai/src/capability-manifest-generator.d.ts +52 -0
  260. package/dist/ai/src/capability-manifest-generator.d.ts.map +1 -0
  261. package/dist/ai/src/capability-manifest-generator.js +691 -0
  262. package/dist/ai/src/capability-manifest-generator.js.map +1 -0
  263. package/dist/ai/src/capability-registry.d.ts +157 -0
  264. package/dist/ai/src/capability-registry.d.ts.map +1 -0
  265. package/dist/ai/src/capability-registry.js +577 -0
  266. package/dist/ai/src/capability-registry.js.map +1 -0
  267. package/dist/ai/src/cli/telemetry-dashboard.d.ts +132 -0
  268. package/dist/ai/src/cli/telemetry-dashboard.d.ts.map +1 -0
  269. package/dist/ai/src/cli/telemetry-dashboard.js +565 -0
  270. package/dist/ai/src/cli/telemetry-dashboard.js.map +1 -0
  271. package/dist/ai/src/delegation/feature-flags.d.ts +213 -0
  272. package/dist/ai/src/delegation/feature-flags.d.ts.map +1 -0
  273. package/dist/ai/src/delegation/feature-flags.js +395 -0
  274. package/dist/ai/src/delegation/feature-flags.js.map +1 -0
  275. package/dist/ai/src/delegation/liability-firebreak.d.ts +303 -0
  276. package/dist/ai/src/delegation/liability-firebreak.d.ts.map +1 -0
  277. package/dist/ai/src/delegation/liability-firebreak.js +643 -0
  278. package/dist/ai/src/delegation/liability-firebreak.js.map +1 -0
  279. package/dist/ai/src/delegation/security-threat-model.d.ts +171 -0
  280. package/dist/ai/src/delegation/security-threat-model.d.ts.map +1 -0
  281. package/dist/ai/src/delegation/security-threat-model.js +723 -0
  282. package/dist/ai/src/delegation/security-threat-model.js.map +1 -0
  283. package/dist/ai/src/delegation/tlp-enforcement.d.ts +146 -0
  284. package/dist/ai/src/delegation/tlp-enforcement.d.ts.map +1 -0
  285. package/dist/ai/src/delegation/tlp-enforcement.js +382 -0
  286. package/dist/ai/src/delegation/tlp-enforcement.js.map +1 -0
  287. package/dist/ai/src/delegation-capability-integration.d.ts +154 -0
  288. package/dist/ai/src/delegation-capability-integration.d.ts.map +1 -0
  289. package/dist/ai/src/delegation-capability-integration.js +351 -0
  290. package/dist/ai/src/delegation-capability-integration.js.map +1 -0
  291. package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts +325 -0
  292. package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts.map +1 -0
  293. package/dist/ai/src/end-to-end-workflow-orchestrator.js +801 -0
  294. package/dist/ai/src/end-to-end-workflow-orchestrator.js.map +1 -0
  295. package/dist/ai/src/enhanced-capability-detection.d.ts +237 -0
  296. package/dist/ai/src/enhanced-capability-detection.d.ts.map +1 -0
  297. package/dist/ai/src/enhanced-capability-detection.js +448 -0
  298. package/dist/ai/src/enhanced-capability-detection.js.map +1 -0
  299. package/dist/ai/src/intelligent-cache-manager.d.ts +327 -0
  300. package/dist/ai/src/intelligent-cache-manager.d.ts.map +1 -0
  301. package/dist/ai/src/intelligent-cache-manager.js +634 -0
  302. package/dist/ai/src/intelligent-cache-manager.js.map +1 -0
  303. package/dist/ai/src/mcp-auto-configuration.d.ts +232 -0
  304. package/dist/ai/src/mcp-auto-configuration.d.ts.map +1 -0
  305. package/dist/ai/src/mcp-auto-configuration.js +445 -0
  306. package/dist/ai/src/mcp-auto-configuration.js.map +1 -0
  307. package/dist/ai/src/performance-profiler.d.ts +351 -0
  308. package/dist/ai/src/performance-profiler.d.ts.map +1 -0
  309. package/dist/ai/src/performance-profiler.js +475 -0
  310. package/dist/ai/src/performance-profiler.js.map +1 -0
  311. package/dist/ai/src/personas/hooks/before-llm-call.d.ts +96 -0
  312. package/dist/ai/src/personas/hooks/before-llm-call.d.ts.map +1 -0
  313. package/dist/ai/src/personas/hooks/before-llm-call.js +83 -0
  314. package/dist/ai/src/personas/hooks/before-llm-call.js.map +1 -0
  315. package/dist/ai/src/personas/index.d.ts +10 -0
  316. package/dist/ai/src/personas/index.d.ts.map +1 -0
  317. package/dist/ai/src/personas/index.js +10 -0
  318. package/dist/ai/src/personas/index.js.map +1 -0
  319. package/dist/ai/src/personas/persona-loader.d.ts +42 -0
  320. package/dist/ai/src/personas/persona-loader.d.ts.map +1 -0
  321. package/dist/ai/src/personas/persona-loader.js +162 -0
  322. package/dist/ai/src/personas/persona-loader.js.map +1 -0
  323. package/dist/ai/src/personas/types.d.ts +199 -0
  324. package/dist/ai/src/personas/types.d.ts.map +1 -0
  325. package/dist/ai/src/personas/types.js +7 -0
  326. package/dist/ai/src/personas/types.js.map +1 -0
  327. package/dist/ai/src/personas/voice-resolver.d.ts +40 -0
  328. package/dist/ai/src/personas/voice-resolver.d.ts.map +1 -0
  329. package/dist/ai/src/personas/voice-resolver.js +201 -0
  330. package/dist/ai/src/personas/voice-resolver.js.map +1 -0
  331. package/dist/ai/src/resource-monitor.d.ts +311 -0
  332. package/dist/ai/src/resource-monitor.d.ts.map +1 -0
  333. package/dist/ai/src/resource-monitor.js +475 -0
  334. package/dist/ai/src/resource-monitor.js.map +1 -0
  335. package/dist/ai/src/runtime/agent-runtime.d.ts +340 -0
  336. package/dist/ai/src/runtime/agent-runtime.d.ts.map +1 -0
  337. package/dist/ai/src/runtime/agent-runtime.js +1084 -0
  338. package/dist/ai/src/runtime/agent-runtime.js.map +1 -0
  339. package/dist/ai/src/telemetry/delegation-telemetry.d.ts +287 -0
  340. package/dist/ai/src/telemetry/delegation-telemetry.d.ts.map +1 -0
  341. package/dist/ai/src/telemetry/delegation-telemetry.js +389 -0
  342. package/dist/ai/src/telemetry/delegation-telemetry.js.map +1 -0
  343. package/dist/ai/src/telemetry/index.d.ts +48 -0
  344. package/dist/ai/src/telemetry/index.d.ts.map +1 -0
  345. package/dist/ai/src/telemetry/index.js +48 -0
  346. package/dist/ai/src/telemetry/index.js.map +1 -0
  347. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts +67 -0
  348. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts.map +1 -0
  349. package/dist/ai/src/telemetry/runtime-telemetry-integration.js +415 -0
  350. package/dist/ai/src/telemetry/runtime-telemetry-integration.js.map +1 -0
  351. package/dist/ai/src/telemetry/telemetry-utils.d.ts +119 -0
  352. package/dist/ai/src/telemetry/telemetry-utils.d.ts.map +1 -0
  353. package/dist/ai/src/telemetry/telemetry-utils.js +250 -0
  354. package/dist/ai/src/telemetry/telemetry-utils.js.map +1 -0
  355. package/dist/ai/src/types/agent-capabilities.d.ts +227 -0
  356. package/dist/ai/src/types/agent-capabilities.d.ts.map +1 -0
  357. package/dist/ai/src/types/agent-capabilities.js +11 -0
  358. package/dist/ai/src/types/agent-capabilities.js.map +1 -0
  359. package/dist/ai/src/types/context-verification.d.ts +158 -0
  360. package/dist/ai/src/types/context-verification.d.ts.map +1 -0
  361. package/dist/ai/src/types/context-verification.js +73 -0
  362. package/dist/ai/src/types/context-verification.js.map +1 -0
  363. package/dist/ai/src/types/delegation-contracts.d.ts +296 -0
  364. package/dist/ai/src/types/delegation-contracts.d.ts.map +1 -0
  365. package/dist/ai/src/types/delegation-contracts.js +17 -0
  366. package/dist/ai/src/types/delegation-contracts.js.map +1 -0
  367. package/dist/ai/src/validation-pipeline-integration.d.ts +266 -0
  368. package/dist/ai/src/validation-pipeline-integration.d.ts.map +1 -0
  369. package/dist/ai/src/validation-pipeline-integration.js +695 -0
  370. package/dist/ai/src/validation-pipeline-integration.js.map +1 -0
  371. package/dist/ai/src/verification/multi-modal-formatters.d.ts +57 -0
  372. package/dist/ai/src/verification/multi-modal-formatters.d.ts.map +1 -0
  373. package/dist/ai/src/verification/multi-modal-formatters.js +655 -0
  374. package/dist/ai/src/verification/multi-modal-formatters.js.map +1 -0
  375. package/dist/ai/src/verification/output-formatter.d.ts +186 -0
  376. package/dist/ai/src/verification/output-formatter.d.ts.map +1 -0
  377. package/dist/ai/src/verification/output-formatter.js +296 -0
  378. package/dist/ai/src/verification/output-formatter.js.map +1 -0
  379. package/dist/ai/src/verification/parser-integration.d.ts +137 -0
  380. package/dist/ai/src/verification/parser-integration.d.ts.map +1 -0
  381. package/dist/ai/src/verification/parser-integration.js +273 -0
  382. package/dist/ai/src/verification/parser-integration.js.map +1 -0
  383. package/dist/ai/types/agent-capabilities.d.ts +387 -0
  384. package/dist/ai/types/agent-capabilities.d.ts.map +1 -0
  385. package/dist/ai/types/agent-capabilities.js +32 -0
  386. package/dist/ai/types/agent-capabilities.js.map +1 -0
  387. package/dist/ai/types/delegation-contracts.d.ts +291 -0
  388. package/dist/ai/types/delegation-contracts.d.ts.map +1 -0
  389. package/dist/ai/types/delegation-contracts.js +14 -0
  390. package/dist/ai/types/delegation-contracts.js.map +1 -0
  391. package/dist/ai/types/index.d.ts +4 -1
  392. package/dist/ai/types/index.d.ts.map +1 -1
  393. package/dist/ai/types/index.js +4 -1
  394. package/dist/ai/types/index.js.map +1 -1
  395. package/dist/ai/types/permission-tokens.d.ts +365 -0
  396. package/dist/ai/types/permission-tokens.d.ts.map +1 -0
  397. package/dist/ai/types/permission-tokens.js +13 -0
  398. package/dist/ai/types/permission-tokens.js.map +1 -0
  399. package/dist/ai/types/security-middleware.d.ts +130 -0
  400. package/dist/ai/types/security-middleware.d.ts.map +1 -0
  401. package/dist/ai/types/security-middleware.js +13 -0
  402. package/dist/ai/types/security-middleware.js.map +1 -0
  403. package/dist/ai/utils/storage.d.ts.map +1 -1
  404. package/dist/ai/utils/storage.js +6 -3
  405. package/dist/ai/utils/storage.js.map +1 -1
  406. package/dist/ai/validation/validation-framework.js +1 -1
  407. package/dist/ai/verification/policy-framework.d.ts +161 -0
  408. package/dist/ai/verification/policy-framework.d.ts.map +1 -0
  409. package/dist/ai/verification/policy-framework.js +436 -0
  410. package/dist/ai/verification/policy-framework.js.map +1 -0
  411. package/package.json +35 -7
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Security Middleware Chain
3
+ * TLP:AMBER - Internal Use Only
4
+ *
5
+ * Composable pipeline that runs a registered set of SecurityMiddleware
6
+ * implementations against a SecurityContext. The chain:
7
+ *
8
+ * 1. Iterates middleware in registration order.
9
+ * 2. Short-circuits on the first `block` verdict.
10
+ * 3. Accumulates `warn` verdicts and continues.
11
+ * 4. Returns a SecurityChainResult with full audit detail.
12
+ *
13
+ * Design decision D1: Fixed-order middleware chain — simpler to reason about
14
+ * than a DAG; the canonical order is enforced by the builder helpers exported
15
+ * at the bottom of this file.
16
+ *
17
+ * @module delegation/security-middleware-chain
18
+ * @version 1.0.0
19
+ * @date 2026-02-24
20
+ */
21
+ import { EventEmitter } from 'events';
22
+ // ──────────────────────────────────────────────────────────────────────────────
23
+ // Chain class
24
+ // ──────────────────────────────────────────────────────────────────────────────
25
+ /**
26
+ * SecurityMiddlewareChain
27
+ *
28
+ * Usage:
29
+ * ```typescript
30
+ * const chain = new SecurityMiddlewareChain();
31
+ * chain.use(new FeatureFlagMiddleware(flagManager));
32
+ * chain.use(new IdentityMiddleware(agentRegistry));
33
+ * chain.use(new TLPMiddleware(tlpEngine));
34
+ * // …
35
+ *
36
+ * const result = await chain.evaluate(context);
37
+ * if (result.action === 'block') { throw … }
38
+ * ```
39
+ *
40
+ * Alternatively use `buildDefaultChain()` for the canonical ordering.
41
+ */
42
+ export class SecurityMiddlewareChain extends EventEmitter {
43
+ middleware = [];
44
+ /** Add a middleware to the END of the chain */
45
+ use(mw) {
46
+ this.middleware.push(mw);
47
+ return this;
48
+ }
49
+ /** Add a middleware at a specific index (for patching canonical order) */
50
+ insert(index, mw) {
51
+ this.middleware.splice(index, 0, mw);
52
+ return this;
53
+ }
54
+ /** Return a snapshot of registered middleware names */
55
+ get names() {
56
+ return this.middleware.map(m => m.name);
57
+ }
58
+ /**
59
+ * Evaluate all middleware against `context`.
60
+ *
61
+ * Events emitted:
62
+ * - `security_warning` { middleware, verdict, context }
63
+ * - `security_blocked` { middleware, verdict, context }
64
+ * - `chain_evaluated` { result, context }
65
+ */
66
+ async evaluate(context) {
67
+ const start = Date.now();
68
+ const middlewareResults = [];
69
+ const warnings = [];
70
+ let blockingVerdict;
71
+ let blockedBy;
72
+ for (const mw of this.middleware) {
73
+ // Skip if feature flag is absent/false
74
+ if (mw.featureFlag && !context.feature_flags?.[mw.featureFlag]) {
75
+ middlewareResults.push({
76
+ middleware: mw.name,
77
+ verdict: { action: 'allow' },
78
+ elapsed_ms: 0,
79
+ });
80
+ continue;
81
+ }
82
+ // Skip if operations filter doesn't match
83
+ if (mw.appliesTo && !mw.appliesTo.includes(context.operation)) {
84
+ middlewareResults.push({
85
+ middleware: mw.name,
86
+ verdict: { action: 'allow' },
87
+ elapsed_ms: 0,
88
+ });
89
+ continue;
90
+ }
91
+ const mwStart = Date.now();
92
+ let verdict;
93
+ try {
94
+ verdict = await mw.evaluate(context);
95
+ }
96
+ catch (err) {
97
+ // Middleware threw — treat as a blocking error to fail safe
98
+ verdict = {
99
+ action: 'block',
100
+ reason: `Middleware '${mw.name}' threw an unexpected error: ${err.message}`,
101
+ threat_type: 'anomaly',
102
+ severity: 'critical',
103
+ evidence: { error: String(err) },
104
+ };
105
+ }
106
+ const elapsed_ms = Date.now() - mwStart;
107
+ middlewareResults.push({ middleware: mw.name, verdict, elapsed_ms });
108
+ if (verdict.action === 'warn') {
109
+ warnings.push(verdict);
110
+ this.emit('security_warning', { middleware: mw.name, verdict, context });
111
+ }
112
+ else if (verdict.action === 'block') {
113
+ blockingVerdict = verdict;
114
+ blockedBy = mw.name;
115
+ this.emit('security_blocked', { middleware: mw.name, verdict, context });
116
+ break; // short-circuit
117
+ }
118
+ }
119
+ const evaluation_time_ms = Date.now() - start;
120
+ const action = blockingVerdict ? 'block' : warnings.length > 0 ? 'warn' : 'allow';
121
+ const result = {
122
+ action,
123
+ blocking_verdict: blockingVerdict,
124
+ warnings,
125
+ blocked_by: blockedBy,
126
+ evaluation_time_ms,
127
+ middleware_results: middlewareResults,
128
+ };
129
+ this.emit('chain_evaluated', { result, context });
130
+ return result;
131
+ }
132
+ }
133
+ // ──────────────────────────────────────────────────────────────────────────────
134
+ // Internal stub middleware (used during bootstrap before real engines load)
135
+ // ──────────────────────────────────────────────────────────────────────────────
136
+ /** Always allows — useful as a placeholder / no-op in tests */
137
+ export class AllowAllMiddleware {
138
+ name;
139
+ constructor(name) {
140
+ this.name = name;
141
+ }
142
+ async evaluate() {
143
+ return { action: 'allow' };
144
+ }
145
+ }
146
+ /** Always blocks with a fixed reason — useful in tests */
147
+ export class BlockAllMiddleware {
148
+ name;
149
+ reason;
150
+ constructor(name, reason = 'blocked by test fixture') {
151
+ this.name = name;
152
+ this.reason = reason;
153
+ }
154
+ async evaluate() {
155
+ return {
156
+ action: 'block',
157
+ reason: this.reason,
158
+ threat_type: 'anomaly',
159
+ severity: 'critical',
160
+ };
161
+ }
162
+ }
163
+ //# sourceMappingURL=security-middleware-chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-middleware-chain.js","sourceRoot":"","sources":["../../../packages/ai/delegation/security-middleware-chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * DCYFR Session Checkpoint System
3
+ * TLP:AMBER - Internal Use Only
4
+ *
5
+ * Manages point-in-time snapshots of delegation session state.
6
+ * Checkpoints are persisted to disk for crash recovery and handoff.
7
+ *
8
+ * Checkpoint triggers:
9
+ * - Every 5 conversation messages (automatic rolling checkpoint)
10
+ * - Immediately before a session handoff
11
+ * - Immediately before verification begins
12
+ *
13
+ * Storage path: `logs/delegation/checkpoints/<session-id>-<timestamp>.json`
14
+ *
15
+ * @module delegation/session-checkpoint
16
+ * @version 1.0.0
17
+ */
18
+ import type { SessionState } from '../types/agent-capabilities.js';
19
+ /** Auto-checkpoint every N messages. */
20
+ export declare const CHECKPOINT_MESSAGE_INTERVAL = 5;
21
+ /** Reasons a checkpoint can be created. */
22
+ export type CheckpointReason = 'automatic' | 'pre-handoff' | 'pre-verification' | 'manual';
23
+ /** Serialised checkpoint written to disk. */
24
+ export interface CheckpointRecord {
25
+ /** Unique checkpoint identifier: `<sessionId>-<timestamp>` */
26
+ id: string;
27
+ sessionId: string;
28
+ contractId: string;
29
+ reason: CheckpointReason;
30
+ /** ISO 8601 creation timestamp. */
31
+ createdAt: string;
32
+ /** Message index at the time of the checkpoint. */
33
+ messageIndex: number;
34
+ /** Full session state snapshot. */
35
+ sessionState: SessionState;
36
+ /** Arbitrary key/value metadata. */
37
+ metadata?: Record<string, unknown>;
38
+ }
39
+ /**
40
+ * Manages session checkpoints for crash recovery and handoff.
41
+ */
42
+ export declare class SessionCheckpoint {
43
+ private readonly checkpointDir;
44
+ /**
45
+ * @param checkpointBaseDir - Base directory for checkpoints.
46
+ * Defaults to `<workspace-root>/logs/delegation/checkpoints`.
47
+ */
48
+ constructor(checkpointBaseDir?: string);
49
+ /**
50
+ * Create and persist a checkpoint for a session.
51
+ *
52
+ * @returns The persisted checkpoint record.
53
+ */
54
+ create(sessionId: string, contractId: string, sessionState: SessionState, reason: CheckpointReason, messageIndex: number, metadata?: Record<string, unknown>): CheckpointRecord;
55
+ /**
56
+ * Determine whether a checkpoint should be created based on the current
57
+ * message index (automatic rolling checkpoints every 5 messages).
58
+ */
59
+ shouldCheckpoint(messageIndex: number): boolean;
60
+ /**
61
+ * Load the most recent checkpoint for a given session.
62
+ * Returns `undefined` if no checkpoints exist.
63
+ */
64
+ loadLatest(sessionId: string): CheckpointRecord | undefined;
65
+ /**
66
+ * List all checkpoint records for a given session, ordered oldest-first.
67
+ */
68
+ listAll(sessionId: string): CheckpointRecord[];
69
+ /**
70
+ * Return the absolute path of a checkpoint file given its ID.
71
+ */
72
+ checkpointPath(id: string): string;
73
+ private _persist;
74
+ private _listSessionCheckpoints;
75
+ private _load;
76
+ }
77
+ //# sourceMappingURL=session-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-checkpoint.d.ts","sourceRoot":"","sources":["../../../packages/ai/delegation/session-checkpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,aAAa,GAAG,kBAAkB,GAAG,QAAQ,CAAC;AAE3F,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;OAGG;gBACS,iBAAiB,CAAC,EAAE,MAAM;IActC;;;;OAIG;IACH,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,gBAAgB;IAqBnB;;;OAGG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI/C;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAU3D;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAM9C;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAMlC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,KAAK;CASd"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * DCYFR Session Checkpoint System
3
+ * TLP:AMBER - Internal Use Only
4
+ *
5
+ * Manages point-in-time snapshots of delegation session state.
6
+ * Checkpoints are persisted to disk for crash recovery and handoff.
7
+ *
8
+ * Checkpoint triggers:
9
+ * - Every 5 conversation messages (automatic rolling checkpoint)
10
+ * - Immediately before a session handoff
11
+ * - Immediately before verification begins
12
+ *
13
+ * Storage path: `logs/delegation/checkpoints/<session-id>-<timestamp>.json`
14
+ *
15
+ * @module delegation/session-checkpoint
16
+ * @version 1.0.0
17
+ */
18
+ import { writeFileSync, mkdirSync, readFileSync, readdirSync, existsSync } from 'fs';
19
+ import { join, dirname } from 'path';
20
+ import { fileURLToPath } from 'url';
21
+ /** Auto-checkpoint every N messages. */
22
+ export const CHECKPOINT_MESSAGE_INTERVAL = 5;
23
+ /**
24
+ * Manages session checkpoints for crash recovery and handoff.
25
+ */
26
+ export class SessionCheckpoint {
27
+ checkpointDir;
28
+ /**
29
+ * @param checkpointBaseDir - Base directory for checkpoints.
30
+ * Defaults to `<workspace-root>/logs/delegation/checkpoints`.
31
+ */
32
+ constructor(checkpointBaseDir) {
33
+ if (checkpointBaseDir) {
34
+ this.checkpointDir = checkpointBaseDir;
35
+ }
36
+ else {
37
+ // Resolve workspace root relative to this file (packages/ai/delegation/)
38
+ const thisDir = dirname(fileURLToPath(import.meta.url));
39
+ // packages/ai/ → ../../.. → workspace root
40
+ const workspaceRoot = join(thisDir, '..', '..', '..', '..', '..', '..');
41
+ this.checkpointDir = join(workspaceRoot, 'logs', 'delegation', 'checkpoints');
42
+ }
43
+ }
44
+ // ───────────── Public API ─────────────
45
+ /**
46
+ * Create and persist a checkpoint for a session.
47
+ *
48
+ * @returns The persisted checkpoint record.
49
+ */
50
+ create(sessionId, contractId, sessionState, reason, messageIndex, metadata) {
51
+ const now = new Date().toISOString();
52
+ // Use compact timestamp for filename compatibility (replace colons)
53
+ const safeTimestamp = now.replace(/[:.]/g, '-');
54
+ const id = `${sessionId}-${safeTimestamp}`;
55
+ const record = {
56
+ id,
57
+ sessionId,
58
+ contractId,
59
+ reason,
60
+ createdAt: now,
61
+ messageIndex,
62
+ sessionState,
63
+ ...(metadata !== undefined && { metadata }),
64
+ };
65
+ this._persist(id, record);
66
+ return record;
67
+ }
68
+ /**
69
+ * Determine whether a checkpoint should be created based on the current
70
+ * message index (automatic rolling checkpoints every 5 messages).
71
+ */
72
+ shouldCheckpoint(messageIndex) {
73
+ return messageIndex > 0 && messageIndex % CHECKPOINT_MESSAGE_INTERVAL === 0;
74
+ }
75
+ /**
76
+ * Load the most recent checkpoint for a given session.
77
+ * Returns `undefined` if no checkpoints exist.
78
+ */
79
+ loadLatest(sessionId) {
80
+ const files = this._listSessionCheckpoints(sessionId);
81
+ if (files.length === 0)
82
+ return undefined;
83
+ // Files are named `<sessionId>-<timestamp>.json`; sort descending by name
84
+ files.sort((a, b) => b.localeCompare(a));
85
+ const latest = files[0];
86
+ return this._load(latest);
87
+ }
88
+ /**
89
+ * List all checkpoint records for a given session, ordered oldest-first.
90
+ */
91
+ listAll(sessionId) {
92
+ const files = this._listSessionCheckpoints(sessionId);
93
+ files.sort((a, b) => a.localeCompare(b));
94
+ return files.map((f) => this._load(f)).filter(Boolean);
95
+ }
96
+ /**
97
+ * Return the absolute path of a checkpoint file given its ID.
98
+ */
99
+ checkpointPath(id) {
100
+ return join(this.checkpointDir, `${id}.json`);
101
+ }
102
+ // ───────────── Private helpers ─────────────
103
+ _persist(id, record) {
104
+ mkdirSync(this.checkpointDir, { recursive: true });
105
+ const path = this.checkpointPath(id);
106
+ writeFileSync(path, JSON.stringify(record, null, 2), 'utf8');
107
+ }
108
+ _listSessionCheckpoints(sessionId) {
109
+ if (!existsSync(this.checkpointDir))
110
+ return [];
111
+ try {
112
+ return readdirSync(this.checkpointDir)
113
+ .filter((f) => f.startsWith(`${sessionId}-`) && f.endsWith('.json'))
114
+ .map((f) => f.replace(/\.json$/, ''));
115
+ }
116
+ catch {
117
+ return [];
118
+ }
119
+ }
120
+ _load(id) {
121
+ const path = this.checkpointPath(id);
122
+ try {
123
+ const raw = readFileSync(path, 'utf8');
124
+ return JSON.parse(raw);
125
+ }
126
+ catch {
127
+ return undefined;
128
+ }
129
+ }
130
+ }
131
+ //# sourceMappingURL=session-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-checkpoint.js","sourceRoot":"","sources":["../../../packages/ai/delegation/session-checkpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * DCYFR Session Manager
3
+ * TLP:AMBER - Internal Use Only
4
+ *
5
+ * Lifecycle tracking for delegation sessions.
6
+ *
7
+ * Manages:
8
+ * - In-memory session store with periodic flush to disk
9
+ * - Session state transitions: active → paused → archived
10
+ * - Status indicators: unread | in-progress | blocked
11
+ * - Archived session persistence at `logs/delegation/sessions/YYYY-MM-DD/<session-id>.jsonl`
12
+ *
13
+ * @module delegation/session-manager
14
+ * @version 1.0.0
15
+ */
16
+ import { EventEmitter } from 'events';
17
+ import type { SessionState, ExecutionMode } from '../types/agent-capabilities.js';
18
+ /** Visibility / workflow status that is user-facing (separate from lifecycle). */
19
+ export type SessionStatus = 'unread' | 'in-progress' | 'blocked';
20
+ /** Full lifecycle state for a managed session. */
21
+ export interface ManagedSession {
22
+ sessionId: string;
23
+ contractId: string;
24
+ executionMode: ExecutionMode;
25
+ /** Lifecycle phase (maps to `SessionState.status`). */
26
+ lifeCycle: 'active' | 'paused' | 'archived';
27
+ /** User-visible workflow indicator. */
28
+ status: SessionStatus;
29
+ state: SessionState;
30
+ /** ISO 8601 creation timestamp. */
31
+ createdAt: string;
32
+ /** ISO 8601 last-updated timestamp. */
33
+ updatedAt: string;
34
+ /** ISO 8601 archive timestamp. */
35
+ archivedAt?: string;
36
+ /** Optional block reason when status is 'blocked'. */
37
+ blockReason?: string;
38
+ }
39
+ /** Options passed to `SessionManager` constructor. */
40
+ export interface SessionManagerOptions {
41
+ /** Override base directory for persisted session archives. */
42
+ archiveBaseDir?: string;
43
+ /** Flush interval in milliseconds (default: 60 000 ms / 1 minute). */
44
+ flushIntervalMs?: number;
45
+ }
46
+ /**
47
+ * Tracks delegation session lifecycle and status indicators.
48
+ *
49
+ * Emits:
50
+ * - `session:created` — A new session was registered.
51
+ * - `session:updated` — A session's state or status changed.
52
+ * - `session:paused` — A session transitioned to paused.
53
+ * - `session:archived` — A session was archived (written to disk).
54
+ * - `session:blocked` — A session became blocked.
55
+ * - `session:unblocked` — A blocked session was cleared.
56
+ * - `flush` — Periodic background flush completed.
57
+ */
58
+ export declare class SessionManager extends EventEmitter {
59
+ private readonly sessions;
60
+ private readonly archiveBaseDir;
61
+ private flushTimer;
62
+ constructor(options?: SessionManagerOptions);
63
+ /**
64
+ * Register a new session (initial status: 'unread', lifecycle: 'active').
65
+ */
66
+ register(sessionId: string, contractId: string, executionMode: ExecutionMode, initialState: SessionState): ManagedSession;
67
+ /**
68
+ * Update the in-memory state for an existing session.
69
+ * Automatically marks lifecycle as 'active' if it was 'paused'.
70
+ */
71
+ updateState(sessionId: string, newState: Partial<SessionState>): ManagedSession;
72
+ /**
73
+ * Pause a session (lifecycle: 'paused').
74
+ */
75
+ pause(sessionId: string): ManagedSession;
76
+ /**
77
+ * Archive a session — transitions to 'archived' and queues disk write.
78
+ * Archived sessions are dropped from the in-memory store after the next flush.
79
+ */
80
+ archive(sessionId: string): ManagedSession;
81
+ /**
82
+ * Mark a session as 'in-progress' (user has read it and work is active).
83
+ */
84
+ markInProgress(sessionId: string): ManagedSession;
85
+ /**
86
+ * Mark a session as 'blocked' with an optional reason.
87
+ */
88
+ block(sessionId: string, reason?: string): ManagedSession;
89
+ /**
90
+ * Clear a 'blocked' status — transitions back to 'in-progress'.
91
+ */
92
+ unblock(sessionId: string): ManagedSession;
93
+ /** Retrieve a session by ID. Returns `undefined` if not found. */
94
+ get(sessionId: string): ManagedSession | undefined;
95
+ /** Return all in-memory sessions. */
96
+ getAll(): ManagedSession[];
97
+ /** Return sessions filtered by lifecycle. */
98
+ getByLifeCycle(lifeCycle: ManagedSession['lifeCycle']): ManagedSession[];
99
+ /** Return sessions filtered by workflow status. */
100
+ getByStatus(status: SessionStatus): ManagedSession[];
101
+ /** Return all unread sessions. */
102
+ getUnread(): ManagedSession[];
103
+ /** Return all in-progress sessions. */
104
+ getInProgress(): ManagedSession[];
105
+ /** Return all blocked sessions. */
106
+ getBlocked(): ManagedSession[];
107
+ /** Return sessions by execution mode. */
108
+ getByMode(mode: ExecutionMode): ManagedSession[];
109
+ /** Return all active sessions associated with a given contract ID. */
110
+ getByContractId(contractId: string): ManagedSession[];
111
+ /** Return the first active session for a contract, or undefined if none found. */
112
+ getActiveSessionForContract(contractId: string): ManagedSession | undefined;
113
+ /** Total count of in-memory sessions. */
114
+ get size(): number;
115
+ /**
116
+ * Stop the background flush timer and release resources.
117
+ */
118
+ destroy(): void;
119
+ private _requireSession;
120
+ /**
121
+ * Write an archived session as a JSONL line to the date-based archive file.
122
+ * Path: `<archiveBaseDir>/YYYY-MM-DD/<session-id>.jsonl`
123
+ */
124
+ private _writeArchivedSession;
125
+ /**
126
+ * Periodic flush: nothing to flush for in-memory only — the archive write
127
+ * happens inline in `archive()`. This hook is reserved for future batching.
128
+ */
129
+ private _flushArchived;
130
+ }
131
+ //# sourceMappingURL=session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../packages/ai/delegation/session-manager.ts"],"names":[],"mappings":"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"}