@dcyfr/ai 1.0.4 → 2.1.1

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 +116 -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 +34 -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 +61 -0
  260. package/dist/ai/src/capability-manifest-generator.d.ts.map +1 -0
  261. package/dist/ai/src/capability-manifest-generator.js +700 -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 +36 -8
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview Personas module - Agent persona and brand voice management
3
+ * @module @dcyfr/ai/personas
4
+ * @license MIT
5
+ */
6
+ export * from './types';
7
+ export * from './voice-resolver';
8
+ export * from './persona-loader';
9
+ export * from './hooks/before-llm-call';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/ai/src/personas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview Personas module - Agent persona and brand voice management
3
+ * @module @dcyfr/ai/personas
4
+ * @license MIT
5
+ */
6
+ export * from './types.js';
7
+ export * from './voice-resolver.js';
8
+ export * from './persona-loader.js';
9
+ export * from './hooks/before-llm-call.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/ai/src/personas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fileoverview PersonaLoader — loads and validates agent persona profiles from
3
+ * the filesystem, with fallback to a default persona.
4
+ * @module @dcyfr/ai/personas/persona-loader
5
+ * @license MIT
6
+ */
7
+ import type { AgentPersona, PersonaLoadResult, PersonaLoaderOptions } from './types';
8
+ /**
9
+ * Validates an AgentPersona object and returns a list of validation errors.
10
+ * An empty array indicates a valid persona.
11
+ */
12
+ export declare function validatePersona(persona: unknown): string[];
13
+ /**
14
+ * Clears the persona loader cache (useful in tests).
15
+ */
16
+ export declare function clearPersonaCache(): void;
17
+ /**
18
+ * Loads an agent persona by name from the filesystem.
19
+ *
20
+ * Resolution order:
21
+ * 1. Cache (if `useCache: true`)
22
+ * 2. `<baseDir>/<agentName>/agent.json`
23
+ * 3. `<baseDir>/<agentName>.json`
24
+ * 4. Default persona (if `allowFallback: true`)
25
+ *
26
+ * @param agentName - The agent identifier (e.g., 'dcyfr-engineer')
27
+ * @param options - Loader options
28
+ * @returns PersonaLoadResult with loaded persona and metadata
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const { persona } = loadPersona('dcyfr-engineer');
33
+ * const voice = resolveVoice(persona);
34
+ * ```
35
+ */
36
+ export declare function loadPersona(agentName: string, options?: PersonaLoaderOptions): PersonaLoadResult;
37
+ /**
38
+ * Convenience wrapper: loads a persona and returns only the AgentPersona.
39
+ * Throws if the persona cannot be loaded and `allowFallback` is false.
40
+ */
41
+ export declare function getPersona(agentName: string, options?: PersonaLoaderOptions): AgentPersona;
42
+ //# sourceMappingURL=persona-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-loader.d.ts","sourceRoot":"","sources":["../../../../packages/ai/src/personas/persona-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAe,MAAM,SAAS,CAAC;AA8BlG;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAgC1D;AAQD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,oBAAyB,GACjC,iBAAiB,CA2EnB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,YAAY,CAG1F"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * @fileoverview PersonaLoader — loads and validates agent persona profiles from
3
+ * the filesystem, with fallback to a default persona.
4
+ * @module @dcyfr/ai/personas/persona-loader
5
+ * @license MIT
6
+ */
7
+ // ---------------------------------------------------------------------------
8
+ // Default persona
9
+ // ---------------------------------------------------------------------------
10
+ const DEFAULT_PERSONA = {
11
+ name: 'default',
12
+ title: 'DCYFR Agent',
13
+ role: 'General-purpose AI assistant',
14
+ capabilities: ['analysis', 'writing', 'code-review', 'explanation'],
15
+ voice_tone: 'collaborative-expert',
16
+ };
17
+ // ---------------------------------------------------------------------------
18
+ // Validation
19
+ // ---------------------------------------------------------------------------
20
+ const VALID_TONE_PROFILES = new Set([
21
+ 'precise',
22
+ 'conversational',
23
+ 'technical',
24
+ 'empathetic',
25
+ 'collaborative-expert',
26
+ 'patient',
27
+ 'diagnostic',
28
+ 'urgent',
29
+ 'enthusiastic',
30
+ ]);
31
+ /**
32
+ * Validates an AgentPersona object and returns a list of validation errors.
33
+ * An empty array indicates a valid persona.
34
+ */
35
+ export function validatePersona(persona) {
36
+ const errors = [];
37
+ if (!persona || typeof persona !== 'object') {
38
+ return ['Persona must be a non-null object'];
39
+ }
40
+ const p = persona;
41
+ if (typeof p['name'] !== 'string' || p['name'].trim() === '') {
42
+ errors.push('name must be a non-empty string');
43
+ }
44
+ if (typeof p['title'] !== 'string' || p['title'].trim() === '') {
45
+ errors.push('title must be a non-empty string');
46
+ }
47
+ if (!Array.isArray(p['capabilities'])) {
48
+ errors.push('capabilities must be an array');
49
+ }
50
+ if (p['voice_tone'] !== null && p['voice_tone'] !== undefined) {
51
+ if (typeof p['voice_tone'] !== 'string' || !VALID_TONE_PROFILES.has(p['voice_tone'])) {
52
+ errors.push(`voice_tone must be null or one of: ${[...VALID_TONE_PROFILES].join(', ')}`);
53
+ }
54
+ }
55
+ if (p['personality_overrides'] !== undefined) {
56
+ if (typeof p['personality_overrides'] !== 'object' || p['personality_overrides'] === null) {
57
+ errors.push('personality_overrides must be an object if present');
58
+ }
59
+ }
60
+ return errors;
61
+ }
62
+ // ---------------------------------------------------------------------------
63
+ // Cache
64
+ // ---------------------------------------------------------------------------
65
+ const _personaCache = new Map();
66
+ /**
67
+ * Clears the persona loader cache (useful in tests).
68
+ */
69
+ export function clearPersonaCache() {
70
+ _personaCache.clear();
71
+ }
72
+ // ---------------------------------------------------------------------------
73
+ // PersonaLoader
74
+ // ---------------------------------------------------------------------------
75
+ /**
76
+ * Loads an agent persona by name from the filesystem.
77
+ *
78
+ * Resolution order:
79
+ * 1. Cache (if `useCache: true`)
80
+ * 2. `<baseDir>/<agentName>/agent.json`
81
+ * 3. `<baseDir>/<agentName>.json`
82
+ * 4. Default persona (if `allowFallback: true`)
83
+ *
84
+ * @param agentName - The agent identifier (e.g., 'dcyfr-engineer')
85
+ * @param options - Loader options
86
+ * @returns PersonaLoadResult with loaded persona and metadata
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const { persona } = loadPersona('dcyfr-engineer');
91
+ * const voice = resolveVoice(persona);
92
+ * ```
93
+ */
94
+ export function loadPersona(agentName, options = {}) {
95
+ const { baseDir = 'agents', allowFallback = true, useCache = true, validate = true, } = options;
96
+ const cacheKey = `${baseDir}:${agentName}`;
97
+ if (useCache && _personaCache.has(cacheKey)) {
98
+ return {
99
+ persona: _personaCache.get(cacheKey),
100
+ source: 'cache',
101
+ };
102
+ }
103
+ try {
104
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
105
+ const fs = require('node:fs');
106
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
107
+ const path = require('node:path');
108
+ const candidates = [
109
+ path.resolve(process.cwd(), baseDir, agentName, 'agent.json'),
110
+ path.resolve(process.cwd(), baseDir, `${agentName}.json`),
111
+ ];
112
+ for (const candidate of candidates) {
113
+ if (!fs.existsSync(candidate))
114
+ continue;
115
+ const raw = fs.readFileSync(candidate, 'utf-8');
116
+ let parsed;
117
+ try {
118
+ parsed = JSON.parse(raw);
119
+ }
120
+ catch {
121
+ const errors = [`Failed to parse JSON at ${candidate}`];
122
+ if (!allowFallback) {
123
+ return { persona: DEFAULT_PERSONA, source: 'fallback', path: candidate, errors };
124
+ }
125
+ return { persona: DEFAULT_PERSONA, source: 'fallback', path: candidate, errors };
126
+ }
127
+ const errors = validate ? validatePersona(parsed) : [];
128
+ if (errors.length > 0 && !allowFallback) {
129
+ return { persona: DEFAULT_PERSONA, source: 'fallback', path: candidate, errors };
130
+ }
131
+ const persona = parsed;
132
+ if (useCache) {
133
+ _personaCache.set(cacheKey, persona);
134
+ }
135
+ return { persona, source: 'file', path: candidate, errors: errors.length > 0 ? errors : undefined };
136
+ }
137
+ }
138
+ catch {
139
+ // Filesystem unavailable — fall through to default
140
+ }
141
+ if (!allowFallback) {
142
+ // Return default persona but flag it as not found
143
+ return {
144
+ persona: { ...DEFAULT_PERSONA, name: agentName },
145
+ source: 'fallback',
146
+ errors: [`Agent '${agentName}' not found and fallback is disabled`],
147
+ };
148
+ }
149
+ return {
150
+ persona: { ...DEFAULT_PERSONA, name: agentName },
151
+ source: 'fallback',
152
+ };
153
+ }
154
+ /**
155
+ * Convenience wrapper: loads a persona and returns only the AgentPersona.
156
+ * Throws if the persona cannot be loaded and `allowFallback` is false.
157
+ */
158
+ export function getPersona(agentName, options) {
159
+ const result = loadPersona(agentName, options);
160
+ return result.persona;
161
+ }
162
+ //# sourceMappingURL=persona-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-loader.js","sourceRoot":"","sources":["../../../../packages/ai/src/personas/persona-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * @fileoverview Brand voice and agent persona type definitions for DCYFR AI framework
3
+ * @module @dcyfr/ai/personas/types
4
+ * @license MIT
5
+ */
6
+ /**
7
+ * Tone profile for different communication scenarios
8
+ */
9
+ export type ToneProfile = 'precise' | 'conversational' | 'technical' | 'empathetic' | 'collaborative-expert' | 'patient' | 'diagnostic' | 'urgent' | 'enthusiastic';
10
+ /**
11
+ * Personality trait score (0.0 = none, 1.0 = maximum)
12
+ */
13
+ export interface PersonalityTraits {
14
+ warmth: number;
15
+ formality: number;
16
+ humor?: number;
17
+ directness: number;
18
+ technicality: number;
19
+ empathy: number;
20
+ }
21
+ /**
22
+ * Situational tone adjustment
23
+ */
24
+ export interface SituationalTone {
25
+ tone: string;
26
+ warmth: number;
27
+ formality: number;
28
+ }
29
+ /**
30
+ * Core brand identity
31
+ */
32
+ export interface BrandIdentity {
33
+ name: string;
34
+ tagline: string;
35
+ archetype: string;
36
+ description: string;
37
+ }
38
+ /**
39
+ * Core voice attributes
40
+ */
41
+ export interface CoreVoice {
42
+ attributes: string[];
43
+ personality_traits: PersonalityTraits;
44
+ perspective: 'first-person' | 'first-person-plural' | 'second-person' | 'third-person';
45
+ pronouns: string;
46
+ }
47
+ /**
48
+ * Tone spectrum with default and situational variants
49
+ */
50
+ export interface ToneSpectrum {
51
+ default: ToneProfile;
52
+ situational: Record<string, SituationalTone>;
53
+ }
54
+ /**
55
+ * Workspace-level brand voice (from DCYFR_CONTEXT.json)
56
+ */
57
+ export interface BrandVoice {
58
+ version: string;
59
+ identity: BrandIdentity;
60
+ core_voice: CoreVoice;
61
+ tone_spectrum: ToneSpectrum;
62
+ }
63
+ /**
64
+ * Agent-specific persona configuration
65
+ */
66
+ export interface AgentPersona {
67
+ /**
68
+ * Agent identifier (e.g., 'dcyfr-engineer', 'dcyfr-analyst')
69
+ */
70
+ name: string;
71
+ /**
72
+ * Human-readable display title
73
+ */
74
+ title: string;
75
+ /**
76
+ * Agent role description
77
+ */
78
+ role: string;
79
+ /**
80
+ * Primary capabilities
81
+ */
82
+ capabilities: string[];
83
+ /**
84
+ * Voice tone override (null = use brand default)
85
+ */
86
+ voice_tone: ToneProfile | null;
87
+ /**
88
+ * Personality trait overrides (null = use brand defaults)
89
+ */
90
+ personality_overrides?: Partial<PersonalityTraits>;
91
+ /**
92
+ * Context-specific prompt injections
93
+ */
94
+ context_injections?: {
95
+ before_prompt?: string;
96
+ after_prompt?: string;
97
+ system_prefix?: string;
98
+ };
99
+ /**
100
+ * Custom metadata
101
+ */
102
+ metadata?: Record<string, unknown>;
103
+ }
104
+ /**
105
+ * Voice resolver options
106
+ */
107
+ export interface VoiceResolverOptions {
108
+ /**
109
+ * Enable voice resolution (default: true)
110
+ */
111
+ enabled?: boolean;
112
+ /**
113
+ * Override tone (null = use persona default)
114
+ */
115
+ tone?: ToneProfile | null;
116
+ /**
117
+ * Verbosity level (0 = minimal, 5 = maximum)
118
+ */
119
+ verbosity?: number;
120
+ /**
121
+ * Include personality trait scores in output
122
+ */
123
+ includeTraits?: boolean;
124
+ /**
125
+ * Custom brand voice (null = load from DCYFR_CONTEXT)
126
+ */
127
+ brandVoice?: BrandVoice | null;
128
+ }
129
+ /**
130
+ * Resolved voice output
131
+ */
132
+ export interface ResolvedVoice {
133
+ /**
134
+ * System prompt prefix (inject before main prompt)
135
+ */
136
+ systemPrefix: string;
137
+ /**
138
+ * Applied tone profile
139
+ */
140
+ appliedTone: ToneProfile;
141
+ /**
142
+ * Merged personality traits
143
+ */
144
+ personalityTraits: PersonalityTraits;
145
+ /**
146
+ * Agent name
147
+ */
148
+ agentName: string;
149
+ /**
150
+ * Resolution metadata
151
+ */
152
+ metadata: {
153
+ resolvedFrom: 'brand' | 'persona' | 'override';
154
+ timestamp: string;
155
+ };
156
+ }
157
+ /**
158
+ * Persona loader options
159
+ */
160
+ export interface PersonaLoaderOptions {
161
+ /**
162
+ * Base directory for agent profiles (default: 'agents/')
163
+ */
164
+ baseDir?: string;
165
+ /**
166
+ * Allow fallback to default persona (default: true)
167
+ */
168
+ allowFallback?: boolean;
169
+ /**
170
+ * Cache loaded personas (default: true)
171
+ */
172
+ useCache?: boolean;
173
+ /**
174
+ * Validate against AgentPersona schema (default: true)
175
+ */
176
+ validate?: boolean;
177
+ }
178
+ /**
179
+ * Persona load result
180
+ */
181
+ export interface PersonaLoadResult {
182
+ /**
183
+ * Loaded persona
184
+ */
185
+ persona: AgentPersona;
186
+ /**
187
+ * Load source
188
+ */
189
+ source: 'file' | 'cache' | 'fallback';
190
+ /**
191
+ * Load path (if loaded from file)
192
+ */
193
+ path?: string;
194
+ /**
195
+ * Validation errors (if any)
196
+ */
197
+ errors?: string[];
198
+ }
199
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/ai/src/personas/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Brand voice and agent persona type definitions for DCYFR AI framework
3
+ * @module @dcyfr/ai/personas/types
4
+ * @license MIT
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/ai/src/personas/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @fileoverview VoiceResolver — merges workspace brand voice with agent persona
3
+ * to produce a rendered system prompt prefix.
4
+ * @module @dcyfr/ai/personas/voice-resolver
5
+ * @license MIT
6
+ */
7
+ import type { AgentPersona, BrandVoice, ResolvedVoice, ToneProfile, VoiceResolverOptions } from './types';
8
+ /**
9
+ * Renders the persona identity block as a prompt fragment.
10
+ */
11
+ export declare function renderPersonaBlock(persona: AgentPersona): string;
12
+ /**
13
+ * Returns tone guideline text for a given tone profile.
14
+ */
15
+ export declare function applyToneGuidelines(tone: ToneProfile): string;
16
+ /**
17
+ * Loads the brand voice from DCYFR_CONTEXT.json. Falls back to the built-in
18
+ * default if the file is unavailable or malformed.
19
+ */
20
+ export declare function loadBrandVoice(contextPath?: string): BrandVoice;
21
+ /**
22
+ * Clears the brand voice cache (useful in tests).
23
+ */
24
+ export declare function clearBrandVoiceCache(): void;
25
+ /**
26
+ * Resolves the effective voice for an agent by merging workspace brand voice
27
+ * with persona-specific overrides, then renders a system prompt prefix.
28
+ *
29
+ * @param persona - The agent persona to resolve voice for
30
+ * @param options - Resolver options (tone override, verbosity, etc.)
31
+ * @returns ResolvedVoice containing the system prompt prefix and metadata
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const voice = resolveVoice(engineerPersona, { verbosity: 2 });
36
+ * systemPrompt = voice.systemPrefix + '\n\n' + userPrompt;
37
+ * ```
38
+ */
39
+ export declare function resolveVoice(persona: AgentPersona, options?: VoiceResolverOptions): ResolvedVoice;
40
+ //# sourceMappingURL=voice-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-resolver.d.ts","sourceRoot":"","sources":["../../../../packages/ai/src/personas/voice-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAEV,aAAa,EACb,WAAW,EACX,oBAAoB,EACrB,MAAM,SAAS,CAAC;AA+CjB;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAgBhE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAuB7D;AAoBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAkC/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAuEf"}