@dcyfr/ai 1.0.3 → 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 (455) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/LICENSE +27 -1
  3. package/README.md +720 -9
  4. package/dist/ai/agents/agent-loader.d.ts +12 -0
  5. package/dist/ai/agents/agent-loader.d.ts.map +1 -1
  6. package/dist/ai/agents/agent-loader.js +74 -65
  7. package/dist/ai/agents/agent-loader.js.map +1 -1
  8. package/dist/ai/agents/agent-registry.d.ts +2 -0
  9. package/dist/ai/agents/agent-registry.d.ts.map +1 -1
  10. package/dist/ai/agents/agent-registry.js +15 -14
  11. package/dist/ai/agents/agent-registry.js.map +1 -1
  12. package/dist/ai/agents/agent-router.d.ts +20 -5
  13. package/dist/ai/agents/agent-router.d.ts.map +1 -1
  14. package/dist/ai/agents/agent-router.js +89 -43
  15. package/dist/ai/agents/agent-router.js.map +1 -1
  16. package/dist/ai/agents/index.d.ts +6 -1
  17. package/dist/ai/agents/index.d.ts.map +1 -1
  18. package/dist/ai/agents/index.js +9 -3
  19. package/dist/ai/agents/index.js.map +1 -1
  20. package/dist/ai/agents/instruction-template.d.ts +45 -0
  21. package/dist/ai/agents/instruction-template.d.ts.map +1 -0
  22. package/dist/ai/agents/instruction-template.js +197 -0
  23. package/dist/ai/agents/instruction-template.js.map +1 -0
  24. package/dist/ai/agents/persona-resolver.d.ts +90 -0
  25. package/dist/ai/agents/persona-resolver.d.ts.map +1 -0
  26. package/dist/ai/agents/persona-resolver.js +121 -0
  27. package/dist/ai/agents/persona-resolver.js.map +1 -0
  28. package/dist/ai/agents/schema.d.ts +166 -0
  29. package/dist/ai/agents/schema.d.ts.map +1 -0
  30. package/dist/ai/agents/schema.js +94 -0
  31. package/dist/ai/agents/schema.js.map +1 -0
  32. package/dist/ai/agents/types.d.ts +102 -0
  33. package/dist/ai/agents/types.d.ts.map +1 -1
  34. package/dist/ai/agents-builtin/architecture/index.js +3 -3
  35. package/dist/ai/agents-builtin/content/index.js +1 -1
  36. package/dist/ai/agents-builtin/data/index.js +1 -1
  37. package/dist/ai/agents-builtin/development/index.js +4 -4
  38. package/dist/ai/agents-builtin/devops/index.js +1 -1
  39. package/dist/ai/agents-builtin/index.js +33 -33
  40. package/dist/ai/agents-builtin/performance/index.js +1 -1
  41. package/dist/ai/agents-builtin/research/index.js +1 -1
  42. package/dist/ai/agents-builtin/security/index.js +1 -1
  43. package/dist/ai/agents-builtin/testing/index.js +2 -2
  44. package/dist/ai/config/loader.d.ts.map +1 -1
  45. package/dist/ai/config/loader.js +6 -3
  46. package/dist/ai/config/loader.js.map +1 -1
  47. package/dist/ai/config/schema.d.ts +242 -1156
  48. package/dist/ai/config/schema.d.ts.map +1 -1
  49. package/dist/ai/config/schema.js +69 -20
  50. package/dist/ai/config/schema.js.map +1 -1
  51. package/dist/ai/core/provider-registry.d.ts +32 -0
  52. package/dist/ai/core/provider-registry.d.ts.map +1 -1
  53. package/dist/ai/core/provider-registry.js +189 -14
  54. package/dist/ai/core/provider-registry.js.map +1 -1
  55. package/dist/ai/core/telemetry-engine.d.ts +26 -0
  56. package/dist/ai/core/telemetry-engine.d.ts.map +1 -1
  57. package/dist/ai/core/telemetry-engine.js +81 -1
  58. package/dist/ai/core/telemetry-engine.js.map +1 -1
  59. package/dist/ai/delegation/agent-registry.d.ts +143 -0
  60. package/dist/ai/delegation/agent-registry.d.ts.map +1 -0
  61. package/dist/ai/delegation/agent-registry.js +231 -0
  62. package/dist/ai/delegation/agent-registry.js.map +1 -0
  63. package/dist/ai/delegation/blast-radius-tracker.d.ts +65 -0
  64. package/dist/ai/delegation/blast-radius-tracker.d.ts.map +1 -0
  65. package/dist/ai/delegation/blast-radius-tracker.js +81 -0
  66. package/dist/ai/delegation/blast-radius-tracker.js.map +1 -0
  67. package/dist/ai/delegation/capability-bootstrap.d.ts +40 -0
  68. package/dist/ai/delegation/capability-bootstrap.d.ts.map +1 -0
  69. package/dist/ai/delegation/capability-bootstrap.js +431 -0
  70. package/dist/ai/delegation/capability-bootstrap.js.map +1 -0
  71. package/dist/ai/delegation/capability-registry.d.ts +81 -0
  72. package/dist/ai/delegation/capability-registry.d.ts.map +1 -0
  73. package/dist/ai/delegation/capability-registry.js +339 -0
  74. package/dist/ai/delegation/capability-registry.js.map +1 -0
  75. package/dist/ai/delegation/chain-tracker.d.ts +152 -0
  76. package/dist/ai/delegation/chain-tracker.d.ts.map +1 -0
  77. package/dist/ai/delegation/chain-tracker.js +336 -0
  78. package/dist/ai/delegation/chain-tracker.js.map +1 -0
  79. package/dist/ai/delegation/circuit-breaker.d.ts +59 -0
  80. package/dist/ai/delegation/circuit-breaker.d.ts.map +1 -0
  81. package/dist/ai/delegation/circuit-breaker.js +153 -0
  82. package/dist/ai/delegation/circuit-breaker.js.map +1 -0
  83. package/dist/ai/delegation/contract-manager.d.ts +415 -0
  84. package/dist/ai/delegation/contract-manager.d.ts.map +1 -0
  85. package/dist/ai/delegation/contract-manager.js +1258 -0
  86. package/dist/ai/delegation/contract-manager.js.map +1 -0
  87. package/dist/ai/delegation/delegation-manager.d.ts +505 -0
  88. package/dist/ai/delegation/delegation-manager.d.ts.map +1 -0
  89. package/dist/ai/delegation/delegation-manager.js +773 -0
  90. package/dist/ai/delegation/delegation-manager.js.map +1 -0
  91. package/dist/ai/delegation/event-schemas.d.ts +101 -0
  92. package/dist/ai/delegation/event-schemas.d.ts.map +1 -0
  93. package/dist/ai/delegation/event-schemas.js +59 -0
  94. package/dist/ai/delegation/event-schemas.js.map +1 -0
  95. package/dist/ai/delegation/execution-mode-dashboard.d.ts +109 -0
  96. package/dist/ai/delegation/execution-mode-dashboard.d.ts.map +1 -0
  97. package/dist/ai/delegation/execution-mode-dashboard.js +167 -0
  98. package/dist/ai/delegation/execution-mode-dashboard.js.map +1 -0
  99. package/dist/ai/delegation/feature-flags.d.ts +191 -0
  100. package/dist/ai/delegation/feature-flags.d.ts.map +1 -0
  101. package/dist/ai/delegation/feature-flags.js +332 -0
  102. package/dist/ai/delegation/feature-flags.js.map +1 -0
  103. package/dist/ai/delegation/index.d.ts +51 -0
  104. package/dist/ai/delegation/index.d.ts.map +1 -0
  105. package/dist/ai/delegation/index.js +39 -0
  106. package/dist/ai/delegation/index.js.map +1 -0
  107. package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts +39 -0
  108. package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts.map +1 -0
  109. package/dist/ai/delegation/middleware/chain-depth-middleware.js +77 -0
  110. package/dist/ai/delegation/middleware/chain-depth-middleware.js.map +1 -0
  111. package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts +46 -0
  112. package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts.map +1 -0
  113. package/dist/ai/delegation/middleware/chain-tracker-middleware.js +89 -0
  114. package/dist/ai/delegation/middleware/chain-tracker-middleware.js.map +1 -0
  115. package/dist/ai/delegation/middleware/content-policy-middleware.d.ts +31 -0
  116. package/dist/ai/delegation/middleware/content-policy-middleware.d.ts.map +1 -0
  117. package/dist/ai/delegation/middleware/content-policy-middleware.js +82 -0
  118. package/dist/ai/delegation/middleware/content-policy-middleware.js.map +1 -0
  119. package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts +46 -0
  120. package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts.map +1 -0
  121. package/dist/ai/delegation/middleware/feature-flag-middleware.js +59 -0
  122. package/dist/ai/delegation/middleware/feature-flag-middleware.js.map +1 -0
  123. package/dist/ai/delegation/middleware/identity-middleware.d.ts +23 -0
  124. package/dist/ai/delegation/middleware/identity-middleware.d.ts.map +1 -0
  125. package/dist/ai/delegation/middleware/identity-middleware.js +64 -0
  126. package/dist/ai/delegation/middleware/identity-middleware.js.map +1 -0
  127. package/dist/ai/delegation/middleware/permissions-middleware.d.ts +48 -0
  128. package/dist/ai/delegation/middleware/permissions-middleware.d.ts.map +1 -0
  129. package/dist/ai/delegation/middleware/permissions-middleware.js +107 -0
  130. package/dist/ai/delegation/middleware/permissions-middleware.js.map +1 -0
  131. package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts +38 -0
  132. package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts.map +1 -0
  133. package/dist/ai/delegation/middleware/rate-limiter-middleware.js +65 -0
  134. package/dist/ai/delegation/middleware/rate-limiter-middleware.js.map +1 -0
  135. package/dist/ai/delegation/middleware/reputation-middleware.d.ts +39 -0
  136. package/dist/ai/delegation/middleware/reputation-middleware.d.ts.map +1 -0
  137. package/dist/ai/delegation/middleware/reputation-middleware.js +75 -0
  138. package/dist/ai/delegation/middleware/reputation-middleware.js.map +1 -0
  139. package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts +52 -0
  140. package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts.map +1 -0
  141. package/dist/ai/delegation/middleware/resource-limiter-middleware.js +112 -0
  142. package/dist/ai/delegation/middleware/resource-limiter-middleware.js.map +1 -0
  143. package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts +23 -0
  144. package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts.map +1 -0
  145. package/dist/ai/delegation/middleware/threat-validator-middleware.js +83 -0
  146. package/dist/ai/delegation/middleware/threat-validator-middleware.js.map +1 -0
  147. package/dist/ai/delegation/middleware/tlp-middleware.d.ts +23 -0
  148. package/dist/ai/delegation/middleware/tlp-middleware.d.ts.map +1 -0
  149. package/dist/ai/delegation/middleware/tlp-middleware.js +59 -0
  150. package/dist/ai/delegation/middleware/tlp-middleware.js.map +1 -0
  151. package/dist/ai/delegation/monitoring.d.ts +298 -0
  152. package/dist/ai/delegation/monitoring.d.ts.map +1 -0
  153. package/dist/ai/delegation/monitoring.js +584 -0
  154. package/dist/ai/delegation/monitoring.js.map +1 -0
  155. package/dist/ai/delegation/security-middleware-chain.d.ts +71 -0
  156. package/dist/ai/delegation/security-middleware-chain.d.ts.map +1 -0
  157. package/dist/ai/delegation/security-middleware-chain.js +163 -0
  158. package/dist/ai/delegation/security-middleware-chain.js.map +1 -0
  159. package/dist/ai/delegation/session-checkpoint.d.ts +77 -0
  160. package/dist/ai/delegation/session-checkpoint.d.ts.map +1 -0
  161. package/dist/ai/delegation/session-checkpoint.js +131 -0
  162. package/dist/ai/delegation/session-checkpoint.js.map +1 -0
  163. package/dist/ai/delegation/session-manager.d.ts +131 -0
  164. package/dist/ai/delegation/session-manager.d.ts.map +1 -0
  165. package/dist/ai/delegation/session-manager.js +243 -0
  166. package/dist/ai/delegation/session-manager.js.map +1 -0
  167. package/dist/ai/delegation/session-queue.d.ts +95 -0
  168. package/dist/ai/delegation/session-queue.d.ts.map +1 -0
  169. package/dist/ai/delegation/session-queue.js +136 -0
  170. package/dist/ai/delegation/session-queue.js.map +1 -0
  171. package/dist/ai/delegation/timeout-watchdog.d.ts +60 -0
  172. package/dist/ai/delegation/timeout-watchdog.d.ts.map +1 -0
  173. package/dist/ai/delegation/timeout-watchdog.js +100 -0
  174. package/dist/ai/delegation/timeout-watchdog.js.map +1 -0
  175. package/dist/ai/examples/integration-demo.d.ts +27 -0
  176. package/dist/ai/examples/integration-demo.d.ts.map +1 -0
  177. package/dist/ai/examples/integration-demo.js +536 -0
  178. package/dist/ai/examples/integration-demo.js.map +1 -0
  179. package/dist/ai/index.d.ts +27 -0
  180. package/dist/ai/index.d.ts.map +1 -1
  181. package/dist/ai/index.js +32 -10
  182. package/dist/ai/index.js.map +1 -1
  183. package/dist/ai/mcp/index.d.ts +14 -2
  184. package/dist/ai/mcp/index.d.ts.map +1 -1
  185. package/dist/ai/mcp/index.js +11 -1
  186. package/dist/ai/mcp/index.js.map +1 -1
  187. package/dist/ai/mcp/servers/analytics/index.d.ts +19 -0
  188. package/dist/ai/mcp/servers/analytics/index.d.ts.map +1 -0
  189. package/dist/ai/mcp/servers/analytics/index.js +612 -0
  190. package/dist/ai/mcp/servers/analytics/index.js.map +1 -0
  191. package/dist/ai/mcp/servers/content-manager/content-provider.d.ts +61 -0
  192. package/dist/ai/mcp/servers/content-manager/content-provider.d.ts.map +1 -0
  193. package/dist/ai/mcp/servers/content-manager/content-provider.js +8 -0
  194. package/dist/ai/mcp/servers/content-manager/content-provider.js.map +1 -0
  195. package/dist/ai/mcp/servers/content-manager/index.d.ts +19 -0
  196. package/dist/ai/mcp/servers/content-manager/index.d.ts.map +1 -0
  197. package/dist/ai/mcp/servers/content-manager/index.js +282 -0
  198. package/dist/ai/mcp/servers/content-manager/index.js.map +1 -0
  199. package/dist/ai/mcp/servers/delegation-monitor/index.d.ts +36 -0
  200. package/dist/ai/mcp/servers/delegation-monitor/index.d.ts.map +1 -0
  201. package/dist/ai/mcp/servers/delegation-monitor/index.js +757 -0
  202. package/dist/ai/mcp/servers/delegation-monitor/index.js.map +1 -0
  203. package/dist/ai/mcp/servers/design-tokens/index.d.ts +19 -0
  204. package/dist/ai/mcp/servers/design-tokens/index.d.ts.map +1 -0
  205. package/dist/ai/mcp/servers/design-tokens/index.js +445 -0
  206. package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -0
  207. package/dist/ai/mcp/servers/design-tokens/token-provider.d.ts +59 -0
  208. package/dist/ai/mcp/servers/design-tokens/token-provider.d.ts.map +1 -0
  209. package/dist/ai/mcp/servers/design-tokens/token-provider.js +8 -0
  210. package/dist/ai/mcp/servers/design-tokens/token-provider.js.map +1 -0
  211. package/dist/ai/mcp/servers/promptintel/index.d.ts +19 -0
  212. package/dist/ai/mcp/servers/promptintel/index.d.ts.map +1 -0
  213. package/dist/ai/mcp/servers/promptintel/index.js +335 -0
  214. package/dist/ai/mcp/servers/promptintel/index.js.map +1 -0
  215. package/dist/ai/mcp/servers/shared/cache.d.ts +62 -0
  216. package/dist/ai/mcp/servers/shared/cache.d.ts.map +1 -0
  217. package/dist/ai/mcp/servers/shared/cache.js +117 -0
  218. package/dist/ai/mcp/servers/shared/cache.js.map +1 -0
  219. package/dist/ai/mcp/servers/shared/promptintel-client.d.ts +53 -0
  220. package/dist/ai/mcp/servers/shared/promptintel-client.d.ts.map +1 -0
  221. package/dist/ai/mcp/servers/shared/promptintel-client.js +185 -0
  222. package/dist/ai/mcp/servers/shared/promptintel-client.js.map +1 -0
  223. package/dist/ai/mcp/servers/shared/promptintel-types.d.ts +85 -0
  224. package/dist/ai/mcp/servers/shared/promptintel-types.d.ts.map +1 -0
  225. package/dist/ai/mcp/servers/shared/promptintel-types.js +7 -0
  226. package/dist/ai/mcp/servers/shared/promptintel-types.js.map +1 -0
  227. package/dist/ai/mcp/servers/shared/rate-limiter.d.ts +54 -0
  228. package/dist/ai/mcp/servers/shared/rate-limiter.d.ts.map +1 -0
  229. package/dist/ai/mcp/servers/shared/rate-limiter.js +124 -0
  230. package/dist/ai/mcp/servers/shared/rate-limiter.js.map +1 -0
  231. package/dist/ai/mcp/servers/shared/redis-client.d.ts +54 -0
  232. package/dist/ai/mcp/servers/shared/redis-client.d.ts.map +1 -0
  233. package/dist/ai/mcp/servers/shared/redis-client.js +232 -0
  234. package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -0
  235. package/dist/ai/mcp/servers/shared/types.d.ts +301 -0
  236. package/dist/ai/mcp/servers/shared/types.d.ts.map +1 -0
  237. package/dist/ai/mcp/servers/shared/types.js +6 -0
  238. package/dist/ai/mcp/servers/shared/types.js.map +1 -0
  239. package/dist/ai/mcp/servers/shared/utils.d.ts +49 -0
  240. package/dist/ai/mcp/servers/shared/utils.d.ts.map +1 -0
  241. package/dist/ai/mcp/servers/shared/utils.js +233 -0
  242. package/dist/ai/mcp/servers/shared/utils.js.map +1 -0
  243. package/dist/ai/memory/config.d.ts +102 -0
  244. package/dist/ai/memory/config.d.ts.map +1 -0
  245. package/dist/ai/memory/config.js +200 -0
  246. package/dist/ai/memory/config.js.map +1 -0
  247. package/dist/ai/memory/dcyfr-memory.d.ts +67 -0
  248. package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -0
  249. package/dist/ai/memory/dcyfr-memory.js +308 -0
  250. package/dist/ai/memory/dcyfr-memory.js.map +1 -0
  251. package/dist/ai/memory/index.d.ts +15 -0
  252. package/dist/ai/memory/index.d.ts.map +1 -0
  253. package/dist/ai/memory/index.js +15 -0
  254. package/dist/ai/memory/index.js.map +1 -0
  255. package/dist/ai/memory/mem0-client.d.ts +108 -0
  256. package/dist/ai/memory/mem0-client.d.ts.map +1 -0
  257. package/dist/ai/memory/mem0-client.js +205 -0
  258. package/dist/ai/memory/mem0-client.js.map +1 -0
  259. package/dist/ai/memory/types.d.ts +175 -0
  260. package/dist/ai/memory/types.d.ts.map +1 -0
  261. package/dist/ai/memory/types.js +10 -0
  262. package/dist/ai/memory/types.js.map +1 -0
  263. package/dist/ai/permissions/attenuation-engine.d.ts +159 -0
  264. package/dist/ai/permissions/attenuation-engine.d.ts.map +1 -0
  265. package/dist/ai/permissions/attenuation-engine.js +511 -0
  266. package/dist/ai/permissions/attenuation-engine.js.map +1 -0
  267. package/dist/ai/plugins/plugin-loader.d.ts +4 -0
  268. package/dist/ai/plugins/plugin-loader.d.ts.map +1 -1
  269. package/dist/ai/plugins/plugin-loader.js +28 -28
  270. package/dist/ai/plugins/plugin-loader.js.map +1 -1
  271. package/dist/ai/reputation/execution-mode-reputation.d.ts +104 -0
  272. package/dist/ai/reputation/execution-mode-reputation.d.ts.map +1 -0
  273. package/dist/ai/reputation/execution-mode-reputation.js +142 -0
  274. package/dist/ai/reputation/execution-mode-reputation.js.map +1 -0
  275. package/dist/ai/reputation/reputation-engine.d.ts +204 -0
  276. package/dist/ai/reputation/reputation-engine.d.ts.map +1 -0
  277. package/dist/ai/reputation/reputation-engine.js +426 -0
  278. package/dist/ai/reputation/reputation-engine.js.map +1 -0
  279. package/dist/ai/runtime/agent-runtime.d.ts +193 -0
  280. package/dist/ai/runtime/agent-runtime.d.ts.map +1 -0
  281. package/dist/ai/runtime/agent-runtime.js +1009 -0
  282. package/dist/ai/runtime/agent-runtime.js.map +1 -0
  283. package/dist/ai/runtime/index.d.ts +11 -0
  284. package/dist/ai/runtime/index.d.ts.map +1 -0
  285. package/dist/ai/runtime/index.js +9 -0
  286. package/dist/ai/runtime/index.js.map +1 -0
  287. package/dist/ai/runtime/telemetry-schema.d.ts +192 -0
  288. package/dist/ai/runtime/telemetry-schema.d.ts.map +1 -0
  289. package/dist/ai/runtime/telemetry-schema.js +200 -0
  290. package/dist/ai/runtime/telemetry-schema.js.map +1 -0
  291. package/dist/ai/runtime/types.d.ts +236 -0
  292. package/dist/ai/runtime/types.d.ts.map +1 -0
  293. package/dist/ai/runtime/types.js +10 -0
  294. package/dist/ai/runtime/types.js.map +1 -0
  295. package/dist/ai/src/batch-processor.d.ts +298 -0
  296. package/dist/ai/src/batch-processor.d.ts.map +1 -0
  297. package/dist/ai/src/batch-processor.js +520 -0
  298. package/dist/ai/src/batch-processor.js.map +1 -0
  299. package/dist/ai/src/capability-bootstrap.d.ts +222 -0
  300. package/dist/ai/src/capability-bootstrap.d.ts.map +1 -0
  301. package/dist/ai/src/capability-bootstrap.js +421 -0
  302. package/dist/ai/src/capability-bootstrap.js.map +1 -0
  303. package/dist/ai/src/capability-manifest-generator.d.ts +52 -0
  304. package/dist/ai/src/capability-manifest-generator.d.ts.map +1 -0
  305. package/dist/ai/src/capability-manifest-generator.js +691 -0
  306. package/dist/ai/src/capability-manifest-generator.js.map +1 -0
  307. package/dist/ai/src/capability-registry.d.ts +157 -0
  308. package/dist/ai/src/capability-registry.d.ts.map +1 -0
  309. package/dist/ai/src/capability-registry.js +577 -0
  310. package/dist/ai/src/capability-registry.js.map +1 -0
  311. package/dist/ai/src/cli/telemetry-dashboard.d.ts +132 -0
  312. package/dist/ai/src/cli/telemetry-dashboard.d.ts.map +1 -0
  313. package/dist/ai/src/cli/telemetry-dashboard.js +565 -0
  314. package/dist/ai/src/cli/telemetry-dashboard.js.map +1 -0
  315. package/dist/ai/src/delegation/feature-flags.d.ts +213 -0
  316. package/dist/ai/src/delegation/feature-flags.d.ts.map +1 -0
  317. package/dist/ai/src/delegation/feature-flags.js +395 -0
  318. package/dist/ai/src/delegation/feature-flags.js.map +1 -0
  319. package/dist/ai/src/delegation/liability-firebreak.d.ts +303 -0
  320. package/dist/ai/src/delegation/liability-firebreak.d.ts.map +1 -0
  321. package/dist/ai/src/delegation/liability-firebreak.js +643 -0
  322. package/dist/ai/src/delegation/liability-firebreak.js.map +1 -0
  323. package/dist/ai/src/delegation/security-threat-model.d.ts +171 -0
  324. package/dist/ai/src/delegation/security-threat-model.d.ts.map +1 -0
  325. package/dist/ai/src/delegation/security-threat-model.js +723 -0
  326. package/dist/ai/src/delegation/security-threat-model.js.map +1 -0
  327. package/dist/ai/src/delegation/tlp-enforcement.d.ts +146 -0
  328. package/dist/ai/src/delegation/tlp-enforcement.d.ts.map +1 -0
  329. package/dist/ai/src/delegation/tlp-enforcement.js +382 -0
  330. package/dist/ai/src/delegation/tlp-enforcement.js.map +1 -0
  331. package/dist/ai/src/delegation-capability-integration.d.ts +154 -0
  332. package/dist/ai/src/delegation-capability-integration.d.ts.map +1 -0
  333. package/dist/ai/src/delegation-capability-integration.js +351 -0
  334. package/dist/ai/src/delegation-capability-integration.js.map +1 -0
  335. package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts +325 -0
  336. package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts.map +1 -0
  337. package/dist/ai/src/end-to-end-workflow-orchestrator.js +801 -0
  338. package/dist/ai/src/end-to-end-workflow-orchestrator.js.map +1 -0
  339. package/dist/ai/src/enhanced-capability-detection.d.ts +237 -0
  340. package/dist/ai/src/enhanced-capability-detection.d.ts.map +1 -0
  341. package/dist/ai/src/enhanced-capability-detection.js +448 -0
  342. package/dist/ai/src/enhanced-capability-detection.js.map +1 -0
  343. package/dist/ai/src/intelligent-cache-manager.d.ts +327 -0
  344. package/dist/ai/src/intelligent-cache-manager.d.ts.map +1 -0
  345. package/dist/ai/src/intelligent-cache-manager.js +634 -0
  346. package/dist/ai/src/intelligent-cache-manager.js.map +1 -0
  347. package/dist/ai/src/mcp-auto-configuration.d.ts +232 -0
  348. package/dist/ai/src/mcp-auto-configuration.d.ts.map +1 -0
  349. package/dist/ai/src/mcp-auto-configuration.js +445 -0
  350. package/dist/ai/src/mcp-auto-configuration.js.map +1 -0
  351. package/dist/ai/src/performance-profiler.d.ts +351 -0
  352. package/dist/ai/src/performance-profiler.d.ts.map +1 -0
  353. package/dist/ai/src/performance-profiler.js +475 -0
  354. package/dist/ai/src/performance-profiler.js.map +1 -0
  355. package/dist/ai/src/personas/hooks/before-llm-call.d.ts +96 -0
  356. package/dist/ai/src/personas/hooks/before-llm-call.d.ts.map +1 -0
  357. package/dist/ai/src/personas/hooks/before-llm-call.js +83 -0
  358. package/dist/ai/src/personas/hooks/before-llm-call.js.map +1 -0
  359. package/dist/ai/src/personas/index.d.ts +10 -0
  360. package/dist/ai/src/personas/index.d.ts.map +1 -0
  361. package/dist/ai/src/personas/index.js +10 -0
  362. package/dist/ai/src/personas/index.js.map +1 -0
  363. package/dist/ai/src/personas/persona-loader.d.ts +42 -0
  364. package/dist/ai/src/personas/persona-loader.d.ts.map +1 -0
  365. package/dist/ai/src/personas/persona-loader.js +162 -0
  366. package/dist/ai/src/personas/persona-loader.js.map +1 -0
  367. package/dist/ai/src/personas/types.d.ts +199 -0
  368. package/dist/ai/src/personas/types.d.ts.map +1 -0
  369. package/dist/ai/src/personas/types.js +7 -0
  370. package/dist/ai/src/personas/types.js.map +1 -0
  371. package/dist/ai/src/personas/voice-resolver.d.ts +40 -0
  372. package/dist/ai/src/personas/voice-resolver.d.ts.map +1 -0
  373. package/dist/ai/src/personas/voice-resolver.js +201 -0
  374. package/dist/ai/src/personas/voice-resolver.js.map +1 -0
  375. package/dist/ai/src/resource-monitor.d.ts +311 -0
  376. package/dist/ai/src/resource-monitor.d.ts.map +1 -0
  377. package/dist/ai/src/resource-monitor.js +475 -0
  378. package/dist/ai/src/resource-monitor.js.map +1 -0
  379. package/dist/ai/src/runtime/agent-runtime.d.ts +340 -0
  380. package/dist/ai/src/runtime/agent-runtime.d.ts.map +1 -0
  381. package/dist/ai/src/runtime/agent-runtime.js +1084 -0
  382. package/dist/ai/src/runtime/agent-runtime.js.map +1 -0
  383. package/dist/ai/src/telemetry/delegation-telemetry.d.ts +287 -0
  384. package/dist/ai/src/telemetry/delegation-telemetry.d.ts.map +1 -0
  385. package/dist/ai/src/telemetry/delegation-telemetry.js +389 -0
  386. package/dist/ai/src/telemetry/delegation-telemetry.js.map +1 -0
  387. package/dist/ai/src/telemetry/index.d.ts +48 -0
  388. package/dist/ai/src/telemetry/index.d.ts.map +1 -0
  389. package/dist/ai/src/telemetry/index.js +48 -0
  390. package/dist/ai/src/telemetry/index.js.map +1 -0
  391. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts +67 -0
  392. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts.map +1 -0
  393. package/dist/ai/src/telemetry/runtime-telemetry-integration.js +415 -0
  394. package/dist/ai/src/telemetry/runtime-telemetry-integration.js.map +1 -0
  395. package/dist/ai/src/telemetry/telemetry-utils.d.ts +119 -0
  396. package/dist/ai/src/telemetry/telemetry-utils.d.ts.map +1 -0
  397. package/dist/ai/src/telemetry/telemetry-utils.js +250 -0
  398. package/dist/ai/src/telemetry/telemetry-utils.js.map +1 -0
  399. package/dist/ai/src/types/agent-capabilities.d.ts +227 -0
  400. package/dist/ai/src/types/agent-capabilities.d.ts.map +1 -0
  401. package/dist/ai/src/types/agent-capabilities.js +11 -0
  402. package/dist/ai/src/types/agent-capabilities.js.map +1 -0
  403. package/dist/ai/src/types/context-verification.d.ts +158 -0
  404. package/dist/ai/src/types/context-verification.d.ts.map +1 -0
  405. package/dist/ai/src/types/context-verification.js +73 -0
  406. package/dist/ai/src/types/context-verification.js.map +1 -0
  407. package/dist/ai/src/types/delegation-contracts.d.ts +296 -0
  408. package/dist/ai/src/types/delegation-contracts.d.ts.map +1 -0
  409. package/dist/ai/src/types/delegation-contracts.js +17 -0
  410. package/dist/ai/src/types/delegation-contracts.js.map +1 -0
  411. package/dist/ai/src/validation-pipeline-integration.d.ts +266 -0
  412. package/dist/ai/src/validation-pipeline-integration.d.ts.map +1 -0
  413. package/dist/ai/src/validation-pipeline-integration.js +695 -0
  414. package/dist/ai/src/validation-pipeline-integration.js.map +1 -0
  415. package/dist/ai/src/verification/multi-modal-formatters.d.ts +57 -0
  416. package/dist/ai/src/verification/multi-modal-formatters.d.ts.map +1 -0
  417. package/dist/ai/src/verification/multi-modal-formatters.js +655 -0
  418. package/dist/ai/src/verification/multi-modal-formatters.js.map +1 -0
  419. package/dist/ai/src/verification/output-formatter.d.ts +186 -0
  420. package/dist/ai/src/verification/output-formatter.d.ts.map +1 -0
  421. package/dist/ai/src/verification/output-formatter.js +296 -0
  422. package/dist/ai/src/verification/output-formatter.js.map +1 -0
  423. package/dist/ai/src/verification/parser-integration.d.ts +137 -0
  424. package/dist/ai/src/verification/parser-integration.d.ts.map +1 -0
  425. package/dist/ai/src/verification/parser-integration.js +273 -0
  426. package/dist/ai/src/verification/parser-integration.js.map +1 -0
  427. package/dist/ai/types/agent-capabilities.d.ts +387 -0
  428. package/dist/ai/types/agent-capabilities.d.ts.map +1 -0
  429. package/dist/ai/types/agent-capabilities.js +32 -0
  430. package/dist/ai/types/agent-capabilities.js.map +1 -0
  431. package/dist/ai/types/delegation-contracts.d.ts +291 -0
  432. package/dist/ai/types/delegation-contracts.d.ts.map +1 -0
  433. package/dist/ai/types/delegation-contracts.js +14 -0
  434. package/dist/ai/types/delegation-contracts.js.map +1 -0
  435. package/dist/ai/types/index.d.ts +4 -1
  436. package/dist/ai/types/index.d.ts.map +1 -1
  437. package/dist/ai/types/index.js +4 -1
  438. package/dist/ai/types/index.js.map +1 -1
  439. package/dist/ai/types/permission-tokens.d.ts +365 -0
  440. package/dist/ai/types/permission-tokens.d.ts.map +1 -0
  441. package/dist/ai/types/permission-tokens.js +13 -0
  442. package/dist/ai/types/permission-tokens.js.map +1 -0
  443. package/dist/ai/types/security-middleware.d.ts +130 -0
  444. package/dist/ai/types/security-middleware.d.ts.map +1 -0
  445. package/dist/ai/types/security-middleware.js +13 -0
  446. package/dist/ai/types/security-middleware.js.map +1 -0
  447. package/dist/ai/utils/storage.d.ts.map +1 -1
  448. package/dist/ai/utils/storage.js +6 -3
  449. package/dist/ai/utils/storage.js.map +1 -1
  450. package/dist/ai/validation/validation-framework.js +1 -1
  451. package/dist/ai/verification/policy-framework.d.ts +161 -0
  452. package/dist/ai/verification/policy-framework.d.ts.map +1 -0
  453. package/dist/ai/verification/policy-framework.js +436 -0
  454. package/dist/ai/verification/policy-framework.js.map +1 -0
  455. package/package.json +56 -6
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Shared utilities for MCP servers
3
+ * Common functions used across Analytics, Design Token, and Content Manager MCPs
4
+ */
5
+ // ============================================================================
6
+ // Error Handling
7
+ // ============================================================================
8
+ export class MCPToolError extends Error {
9
+ code;
10
+ details;
11
+ constructor(code, message, details) {
12
+ super(message);
13
+ this.code = code;
14
+ this.details = details;
15
+ this.name = "MCPToolError";
16
+ }
17
+ toJSON() {
18
+ return {
19
+ code: this.code,
20
+ message: this.message,
21
+ details: this.details,
22
+ };
23
+ }
24
+ }
25
+ export function handleToolError(error) {
26
+ if (error instanceof MCPToolError) {
27
+ return `Error [${error.code}]: ${error.message}`;
28
+ }
29
+ if (error instanceof Error) {
30
+ return `Error: ${error.message}`;
31
+ }
32
+ return `Unknown error: ${String(error)}`;
33
+ }
34
+ // ============================================================================
35
+ // Environment Helpers
36
+ // ============================================================================
37
+ export function isProduction() {
38
+ return (process.env.NODE_ENV === "production" ||
39
+ process.env.VERCEL_ENV === "production");
40
+ }
41
+ export function isDevelopment() {
42
+ return (process.env.NODE_ENV === "development" ||
43
+ process.env.VERCEL_ENV === "development");
44
+ }
45
+ export function getEnvironment() {
46
+ if (process.env.VERCEL_ENV) {
47
+ return process.env.VERCEL_ENV;
48
+ }
49
+ if (process.env.NODE_ENV === "production")
50
+ return "production";
51
+ if (process.env.NODE_ENV === "development")
52
+ return "development";
53
+ return "development";
54
+ }
55
+ // ============================================================================
56
+ // Data Filtering
57
+ // ============================================================================
58
+ /**
59
+ * Filters out test/demo data in production environments
60
+ */
61
+ export function filterProductionData(items) {
62
+ if (!isProduction()) {
63
+ return items;
64
+ }
65
+ // In production, exclude test data
66
+ return items.filter((item) => !item.isTest);
67
+ }
68
+ /**
69
+ * Warns if using fallback/demo data in production
70
+ */
71
+ export function warnProductionFallback(dataSource) {
72
+ if (isProduction()) {
73
+ console.error(`❌ CRITICAL: Using demo/fallback data in production (${dataSource})`);
74
+ }
75
+ }
76
+ // ============================================================================
77
+ // Time Helpers
78
+ // ============================================================================
79
+ export function getTimeRangeMs(range) {
80
+ const now = Date.now();
81
+ switch (range) {
82
+ case "1h":
83
+ return 60 * 60 * 1000; // 1 hour
84
+ case "24h":
85
+ return 24 * 60 * 60 * 1000;
86
+ case "7d":
87
+ return 7 * 24 * 60 * 60 * 1000;
88
+ case "30d":
89
+ return 30 * 24 * 60 * 60 * 1000;
90
+ case "all":
91
+ return now; // All time
92
+ default:
93
+ return 7 * 24 * 60 * 60 * 1000; // Default to 7 days
94
+ }
95
+ }
96
+ export function isWithinTimeRange(timestamp, range) {
97
+ if (range === "all")
98
+ return true;
99
+ const now = Date.now();
100
+ const rangeMs = getTimeRangeMs(range);
101
+ return now - timestamp <= rangeMs;
102
+ }
103
+ // ============================================================================
104
+ // String Helpers
105
+ // ============================================================================
106
+ export function sanitizePath(path) {
107
+ // Remove leading/trailing slashes, normalize
108
+ return path.replace(/^\/+|\/+$/g, "").toLowerCase();
109
+ }
110
+ export function extractSlug(filePath) {
111
+ // Extract slug from file path (e.g., "blog/my-post.mdx" -> "my-post")
112
+ const parts = filePath.split("/");
113
+ const fileName = parts[parts.length - 1] || "";
114
+ return fileName.replace(/\.(mdx?|tsx?)$/, "");
115
+ }
116
+ export function calculateReadingTime(wordCount) {
117
+ // Average reading speed: 200 words per minute
118
+ const wordsPerMinute = 200;
119
+ return Math.ceil(wordCount / wordsPerMinute);
120
+ }
121
+ // ============================================================================
122
+ // Array Helpers
123
+ // ============================================================================
124
+ export function dedupe(items) {
125
+ return Array.from(new Set(items));
126
+ }
127
+ export function sortByProperty(items, property, direction = "desc") {
128
+ return [...items].sort((a, b) => {
129
+ const aVal = a[property];
130
+ const bVal = b[property];
131
+ if (typeof aVal === "number" && typeof bVal === "number") {
132
+ return direction === "asc" ? aVal - bVal : bVal - aVal;
133
+ }
134
+ if (typeof aVal === "string" && typeof bVal === "string") {
135
+ return direction === "asc"
136
+ ? aVal.localeCompare(bVal)
137
+ : bVal.localeCompare(aVal);
138
+ }
139
+ return 0;
140
+ });
141
+ }
142
+ export function limitResults(items, limit) {
143
+ if (!limit || limit <= 0)
144
+ return items;
145
+ return items.slice(0, limit);
146
+ }
147
+ // ============================================================================
148
+ // Validation Helpers
149
+ // ============================================================================
150
+ export function isValidUrl(url) {
151
+ try {
152
+ new URL(url);
153
+ return true;
154
+ }
155
+ catch {
156
+ return false;
157
+ }
158
+ }
159
+ export function isValidPath(path) {
160
+ // Basic validation: starts with /, contains no special chars except - and _
161
+ return /^\/[\w\-\/]*$/.test(path);
162
+ }
163
+ // ============================================================================
164
+ // Performance Helpers
165
+ // ============================================================================
166
+ export async function measurePerformance(operation, label) {
167
+ const start = performance.now();
168
+ const result = await operation();
169
+ const durationMs = performance.now() - start;
170
+ if (durationMs > 500) {
171
+ console.warn(`⚠️ Performance warning: ${label} took ${durationMs.toFixed(2)}ms`);
172
+ }
173
+ return { result, durationMs };
174
+ }
175
+ // ============================================================================
176
+ // Logging Helpers
177
+ // ============================================================================
178
+ export function logToolExecution(toolName, params, success, durationMs, delegationContext) {
179
+ const status = success ? "✅" : "❌";
180
+ const duration = durationMs ? ` (${durationMs.toFixed(2)}ms)` : "";
181
+ const delegation = delegationContext
182
+ ? ` [Contract: ${delegationContext.contractId || 'none'}]`
183
+ : "";
184
+ console.warn(`${status} ${toolName}${delegation}`, params, duration);
185
+ }
186
+ // ============================================================================
187
+ // Delegation Event Emission
188
+ // ============================================================================
189
+ export function emitDelegationEvent(eventType, toolName, delegationContext, metadata) {
190
+ if (!delegationContext?.contractId) {
191
+ return; // No delegation context, skip event
192
+ }
193
+ const event = {
194
+ type: eventType,
195
+ timestamp: Date.now(),
196
+ contract_id: delegationContext.contractId,
197
+ delegator_agent_id: delegationContext.delegatorAgentId,
198
+ task_id: delegationContext.taskId,
199
+ tool_name: toolName,
200
+ metadata,
201
+ };
202
+ // Always log to console for debugging
203
+ console.warn('🔗 Delegation Event:', JSON.stringify(event));
204
+ // Attempt to stream to dcyfr-labs observability API
205
+ streamDelegationToObservability(event).catch(error => {
206
+ // Fail silently - MCP servers should not break if observability is down
207
+ console.warn('Failed to stream delegation event to observability API:', error.message);
208
+ });
209
+ }
210
+ async function streamDelegationToObservability(event) {
211
+ // Default to localhost for development, can be overridden with env var
212
+ const apiUrl = process.env.DCYFR_LABS_API_URL || 'http://localhost:3000';
213
+ const endpoint = `${apiUrl}/api/delegation/events`;
214
+ try {
215
+ const response = await fetch(endpoint, {
216
+ method: 'POST',
217
+ headers: {
218
+ 'Content-Type': 'application/json',
219
+ },
220
+ body: JSON.stringify(event),
221
+ // Timeout after 5 seconds to avoid blocking MCP operations
222
+ signal: AbortSignal.timeout(5000),
223
+ });
224
+ if (!response.ok) {
225
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
226
+ }
227
+ }
228
+ catch (error) {
229
+ // Re-throw for handling by caller
230
+ throw error;
231
+ }
232
+ }
233
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/ai/mcp/servers/shared/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Memory Layer Configuration Module
3
+ *
4
+ * Loads and validates environment variables for mem0 memory integration.
5
+ * Supports multiple vector database backends (Qdrant, Pinecone, Weaviate).
6
+ *
7
+ * @module @dcyfr/ai/memory/config
8
+ */
9
+ /**
10
+ * Supported vector database providers
11
+ */
12
+ export type VectorDBProvider = 'qdrant' | 'pinecone' | 'weaviate';
13
+ /**
14
+ * Vector database configuration
15
+ */
16
+ export interface VectorDBConfig {
17
+ provider: VectorDBProvider;
18
+ url?: string;
19
+ apiKey?: string;
20
+ environment?: string;
21
+ index?: string;
22
+ }
23
+ /**
24
+ * LLM configuration for mem0 embeddings
25
+ */
26
+ export type LLMProvider = 'openai' | 'anthropic' | 'ollama' | 'google' | 'gemini' | 'groq' | 'mistral' | 'azure_openai' | 'langchain';
27
+ /**
28
+ * Embedder providers supported by mem0 OSS
29
+ */
30
+ export type EmbedderProvider = 'openai' | 'ollama' | 'google' | 'gemini' | 'azure_openai' | 'langchain';
31
+ export interface LLMConfig {
32
+ provider: LLMProvider;
33
+ apiKey?: string;
34
+ model?: string;
35
+ baseURL?: string;
36
+ embeddingModel?: string;
37
+ embeddingProvider?: EmbedderProvider;
38
+ embeddingApiKey?: string;
39
+ embeddingBaseURL?: string;
40
+ embeddingDims?: number;
41
+ }
42
+ /**
43
+ * Complete memory system configuration
44
+ */
45
+ export interface MemoryConfig {
46
+ vectorDB: VectorDBConfig;
47
+ llm: LLMConfig;
48
+ caching?: {
49
+ enabled: boolean;
50
+ ttl: number;
51
+ maxSize: number;
52
+ };
53
+ }
54
+ /**
55
+ * Default configuration for local development
56
+ */
57
+ export declare const DEFAULT_CONFIG: MemoryConfig;
58
+ /**
59
+ * Load memory configuration from environment variables
60
+ *
61
+ * Environment variables:
62
+ * - VECTOR_DB_PROVIDER: 'qdrant' | 'pinecone' | 'weaviate'
63
+ * - VECTOR_DB_URL: Database URL (for Qdrant, Weaviate)
64
+ * - VECTOR_DB_API_KEY: API key (for Pinecone, authenticated Qdrant)
65
+ * - VECTOR_DB_ENVIRONMENT: Pinecone environment
66
+ * - VECTOR_DB_INDEX: Index/collection name
67
+ * - LLM_PROVIDER: See LLMProvider type
68
+ * - LLM_API_KEY: LLM API key (defaults to provider-specific env key)
69
+ * - LLM_API_BASE: Optional base URL (useful for OpenAI-compatible proxies)
70
+ * - LLM_MODEL: Model name
71
+ * - LLM_EMBEDDING_MODEL: Embedding model name
72
+ * - LLM_EMBEDDING_PROVIDER: Optional embedder provider override
73
+ * - LLM_EMBEDDING_API_KEY: Optional embedder API key override
74
+ * - LLM_EMBEDDING_BASE_URL: Optional embedder base URL override
75
+ * - LLM_EMBEDDING_DIMS: Optional embedding dimensions override
76
+ * - MEMORY_CACHE_ENABLED: 'true' | 'false'
77
+ * - MEMORY_CACHE_TTL: Cache TTL in seconds
78
+ * - MEMORY_CACHE_MAX_SIZE: Max cache entries
79
+ *
80
+ * @returns Complete memory configuration
81
+ * @throws Error if required environment variables are missing
82
+ */
83
+ export declare function loadMemoryConfig(): MemoryConfig;
84
+ /**
85
+ * Validate memory configuration
86
+ *
87
+ * Ensures all required fields are present based on vector DB provider.
88
+ *
89
+ * @param config - Configuration to validate
90
+ * @throws Error if configuration is invalid or missing required fields
91
+ */
92
+ export declare function validateMemoryConfig(config: MemoryConfig): void;
93
+ /**
94
+ * Get validated memory configuration
95
+ *
96
+ * Convenience function that loads and validates configuration in one call.
97
+ *
98
+ * @returns Validated memory configuration
99
+ * @throws Error if configuration is invalid
100
+ */
101
+ export declare function getMemoryConfig(): MemoryConfig;
102
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../packages/ai/memory/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAgB5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAwF/C;AAqDD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAa/D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAI9C"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Memory Layer Configuration Module
3
+ *
4
+ * Loads and validates environment variables for mem0 memory integration.
5
+ * Supports multiple vector database backends (Qdrant, Pinecone, Weaviate).
6
+ *
7
+ * @module @dcyfr/ai/memory/config
8
+ */
9
+ /**
10
+ * Default configuration for local development
11
+ */
12
+ export const DEFAULT_CONFIG = {
13
+ vectorDB: {
14
+ provider: 'qdrant',
15
+ url: 'http://localhost:6333',
16
+ index: 'dcyfr_memories',
17
+ },
18
+ llm: {
19
+ provider: 'openai',
20
+ model: 'gpt-4',
21
+ embeddingModel: 'text-embedding-3-small',
22
+ },
23
+ caching: {
24
+ enabled: true,
25
+ ttl: 300, // 5 minutes
26
+ maxSize: 1000, // 1000 recent searches
27
+ },
28
+ };
29
+ /**
30
+ * Load memory configuration from environment variables
31
+ *
32
+ * Environment variables:
33
+ * - VECTOR_DB_PROVIDER: 'qdrant' | 'pinecone' | 'weaviate'
34
+ * - VECTOR_DB_URL: Database URL (for Qdrant, Weaviate)
35
+ * - VECTOR_DB_API_KEY: API key (for Pinecone, authenticated Qdrant)
36
+ * - VECTOR_DB_ENVIRONMENT: Pinecone environment
37
+ * - VECTOR_DB_INDEX: Index/collection name
38
+ * - LLM_PROVIDER: See LLMProvider type
39
+ * - LLM_API_KEY: LLM API key (defaults to provider-specific env key)
40
+ * - LLM_API_BASE: Optional base URL (useful for OpenAI-compatible proxies)
41
+ * - LLM_MODEL: Model name
42
+ * - LLM_EMBEDDING_MODEL: Embedding model name
43
+ * - LLM_EMBEDDING_PROVIDER: Optional embedder provider override
44
+ * - LLM_EMBEDDING_API_KEY: Optional embedder API key override
45
+ * - LLM_EMBEDDING_BASE_URL: Optional embedder base URL override
46
+ * - LLM_EMBEDDING_DIMS: Optional embedding dimensions override
47
+ * - MEMORY_CACHE_ENABLED: 'true' | 'false'
48
+ * - MEMORY_CACHE_TTL: Cache TTL in seconds
49
+ * - MEMORY_CACHE_MAX_SIZE: Max cache entries
50
+ *
51
+ * @returns Complete memory configuration
52
+ * @throws Error if required environment variables are missing
53
+ */
54
+ export function loadMemoryConfig() {
55
+ const env = process.env;
56
+ // Vector DB configuration
57
+ const vectorDBProvider = (env.VECTOR_DB_PROVIDER || 'qdrant');
58
+ const vectorDBConfig = {
59
+ provider: vectorDBProvider,
60
+ url: env.VECTOR_DB_URL,
61
+ apiKey: env.VECTOR_DB_API_KEY,
62
+ environment: env.VECTOR_DB_ENVIRONMENT,
63
+ index: env.VECTOR_DB_INDEX || 'dcyfr_memories',
64
+ };
65
+ // Apply defaults based on provider
66
+ if (vectorDBProvider === 'qdrant' && !vectorDBConfig.url) {
67
+ vectorDBConfig.url = DEFAULT_CONFIG.vectorDB.url;
68
+ }
69
+ // LLM configuration
70
+ const llmProvider = (env.LLM_PROVIDER || 'openai');
71
+ const providerEnvKeys = {
72
+ openai: 'OPENAI_API_KEY',
73
+ anthropic: 'ANTHROPIC_API_KEY',
74
+ groq: 'GROQ_API_KEY',
75
+ google: 'GOOGLE_API_KEY',
76
+ gemini: 'GOOGLE_API_KEY',
77
+ mistral: 'MISTRAL_API_KEY',
78
+ azure_openai: 'AZURE_OPENAI_API_KEY',
79
+ };
80
+ const providerBaseEnvKeys = {
81
+ openai: 'OPENAI_API_BASE',
82
+ anthropic: 'ANTHROPIC_API_BASE',
83
+ };
84
+ const llmApiKey = env.LLM_API_KEY ||
85
+ (providerEnvKeys[llmProvider]
86
+ ? env[providerEnvKeys[llmProvider]]
87
+ : undefined);
88
+ const llmBaseURL = env.LLM_API_BASE ||
89
+ (providerBaseEnvKeys[llmProvider]
90
+ ? env[providerBaseEnvKeys[llmProvider]]
91
+ : undefined);
92
+ const defaultEmbeddingProvider = llmProvider === 'anthropic' || llmProvider === 'groq' || llmProvider === 'mistral'
93
+ ? 'openai'
94
+ : llmProvider;
95
+ const embeddingProvider = env.LLM_EMBEDDING_PROVIDER || defaultEmbeddingProvider;
96
+ const embeddingApiKey = env.LLM_EMBEDDING_API_KEY ||
97
+ (providerEnvKeys[embeddingProvider]
98
+ ? env[providerEnvKeys[embeddingProvider]]
99
+ : undefined) ||
100
+ llmApiKey;
101
+ const llmConfig = {
102
+ provider: llmProvider,
103
+ apiKey: llmApiKey,
104
+ model: env.LLM_MODEL || DEFAULT_CONFIG.llm.model,
105
+ baseURL: llmBaseURL,
106
+ embeddingModel: env.LLM_EMBEDDING_MODEL || DEFAULT_CONFIG.llm.embeddingModel,
107
+ embeddingProvider,
108
+ embeddingApiKey,
109
+ embeddingBaseURL: env.LLM_EMBEDDING_BASE_URL,
110
+ embeddingDims: env.LLM_EMBEDDING_DIMS ? parseInt(env.LLM_EMBEDDING_DIMS, 10) : undefined,
111
+ };
112
+ // Caching configuration
113
+ const cachingConfig = {
114
+ enabled: env.MEMORY_CACHE_ENABLED !== 'false', // Default true
115
+ ttl: parseInt(env.MEMORY_CACHE_TTL || '300', 10),
116
+ maxSize: parseInt(env.MEMORY_CACHE_MAX_SIZE || '1000', 10),
117
+ };
118
+ return {
119
+ vectorDB: vectorDBConfig,
120
+ llm: llmConfig,
121
+ caching: cachingConfig,
122
+ };
123
+ }
124
+ function validateVectorDBConfig(vectorDB) {
125
+ if (!vectorDB.provider) {
126
+ throw new Error('VECTOR_DB_PROVIDER is required');
127
+ }
128
+ switch (vectorDB.provider) {
129
+ case 'qdrant':
130
+ if (!vectorDB.url) {
131
+ throw new Error('VECTOR_DB_URL is required for Qdrant');
132
+ }
133
+ break;
134
+ case 'pinecone':
135
+ if (!vectorDB.apiKey) {
136
+ throw new Error('VECTOR_DB_API_KEY is required for Pinecone');
137
+ }
138
+ if (!vectorDB.environment) {
139
+ throw new Error('VECTOR_DB_ENVIRONMENT is required for Pinecone');
140
+ }
141
+ break;
142
+ case 'weaviate':
143
+ if (!vectorDB.url) {
144
+ throw new Error('VECTOR_DB_URL is required for Weaviate');
145
+ }
146
+ break;
147
+ default:
148
+ throw new Error(`Unsupported vector DB provider: ${vectorDB.provider}`);
149
+ }
150
+ }
151
+ function validateLLMConfig(llm) {
152
+ if (!llm.provider) {
153
+ throw new Error('LLM_PROVIDER is required');
154
+ }
155
+ if (llm.provider === 'openai' && !llm.apiKey) {
156
+ throw new Error('LLM_API_KEY or OPENAI_API_KEY is required for OpenAI provider');
157
+ }
158
+ if (!llm.embeddingModel) {
159
+ throw new Error('LLM_EMBEDDING_MODEL is required');
160
+ }
161
+ const effectiveEmbeddingApiKey = llm.embeddingApiKey || llm.apiKey;
162
+ if ((llm.embeddingProvider || 'openai') === 'openai' && !effectiveEmbeddingApiKey) {
163
+ throw new Error('LLM_EMBEDDING_API_KEY or OPENAI_API_KEY is required for OpenAI embeddings');
164
+ }
165
+ }
166
+ /**
167
+ * Validate memory configuration
168
+ *
169
+ * Ensures all required fields are present based on vector DB provider.
170
+ *
171
+ * @param config - Configuration to validate
172
+ * @throws Error if configuration is invalid or missing required fields
173
+ */
174
+ export function validateMemoryConfig(config) {
175
+ validateVectorDBConfig(config.vectorDB);
176
+ validateLLMConfig(config.llm);
177
+ // Validate caching configuration
178
+ if (config.caching) {
179
+ if (config.caching.ttl <= 0) {
180
+ throw new Error('MEMORY_CACHE_TTL must be greater than 0');
181
+ }
182
+ if (config.caching.maxSize <= 0) {
183
+ throw new Error('MEMORY_CACHE_MAX_SIZE must be greater than 0');
184
+ }
185
+ }
186
+ }
187
+ /**
188
+ * Get validated memory configuration
189
+ *
190
+ * Convenience function that loads and validates configuration in one call.
191
+ *
192
+ * @returns Validated memory configuration
193
+ * @throws Error if configuration is invalid
194
+ */
195
+ export function getMemoryConfig() {
196
+ const config = loadMemoryConfig();
197
+ validateMemoryConfig(config);
198
+ return config;
199
+ }
200
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../packages/ai/memory/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * DCYFR Memory implementation wrapping mem0 OSS client
3
+ */
4
+ import type { DCYFRMemory, Memory, MemorySearchResult, MemoryContext } from './types.js';
5
+ /**
6
+ * DCYFRMemory implementation using mem0 OSS as the backend
7
+ */
8
+ export declare class DCYFRMemoryImpl implements DCYFRMemory {
9
+ private mem0ClientPromise;
10
+ /**
11
+ * Lazy initialization of mem0 client
12
+ */
13
+ private ensureInitialized;
14
+ /**
15
+ * Retry semantic search briefly to smooth over vector index eventual consistency.
16
+ */
17
+ private searchWithConsistencyRetries;
18
+ /**
19
+ * Add memory associated with a specific user
20
+ */
21
+ addUserMemory(userId: string, message: string, context?: MemoryContext): Promise<string>;
22
+ /**
23
+ * Search user memories using semantic search
24
+ */
25
+ searchUserMemories(userId: string, query: string, limit?: number): Promise<MemorySearchResult[]>;
26
+ /**
27
+ * Get all memories for a user
28
+ */
29
+ getUserMemories(userId: string, topic?: string): Promise<Memory[]>;
30
+ /**
31
+ * Delete all memories for a user
32
+ */
33
+ deleteUserMemories(userId: string): Promise<void>;
34
+ /**
35
+ * Store agent workflow state
36
+ */
37
+ addAgentMemory(agentId: string, sessionId: string, state: Record<string, unknown>): Promise<string>;
38
+ /**
39
+ * Search agent memories
40
+ */
41
+ searchAgentMemories(agentId: string, query: string, limit?: number): Promise<MemorySearchResult[]>;
42
+ /**
43
+ * Get agent workflow state for a specific session
44
+ */
45
+ getAgentState(agentId: string, sessionId: string): Promise<Record<string, unknown> | null>;
46
+ /**
47
+ * Add temporary session context with TTL
48
+ */
49
+ addSessionMemory(sessionId: string, message: string, ttl?: number): Promise<string>;
50
+ /**
51
+ * Get concatenated session context (filters out expired memories)
52
+ */
53
+ getSessionContext(sessionId: string): Promise<string>;
54
+ /**
55
+ * Delete all memories for a session
56
+ */
57
+ deleteSessionMemories(sessionId: string): Promise<void>;
58
+ }
59
+ /**
60
+ * Get singleton DCYFRMemory instance
61
+ */
62
+ export declare function getMemory(): DCYFRMemory;
63
+ /**
64
+ * Reset memory instance (for testing)
65
+ */
66
+ export declare function resetMemory(): void;
67
+ //# sourceMappingURL=dcyfr-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dcyfr-memory.d.ts","sourceRoot":"","sources":["../../../packages/ai/memory/dcyfr-memory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,kBAAkB,EAClB,aAAa,EAEd,MAAM,YAAY,CAAC;AAiBpB;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;OAEG;YACW,iBAAiB;IAQ/B;;OAEG;YACW,4BAA4B;IA2B1C;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,CAAC;IAoClB;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAmC,GACzC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAyBhC;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBxE;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAavD;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,MAAM,CAAC;IAuBlB;;OAEG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAoC,GAC1C,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0BhC;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAwB1C;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAa,GACjB,OAAO,CAAC,MAAM,CAAC;IAqBlB;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B3D;;OAEG;IACG,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ9D;AAQD;;GAEG;AACH,wBAAgB,SAAS,IAAI,WAAW,CAKvC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}