@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,475 @@
1
+ /**
2
+ * Performance Profiler and Optimization Manager
3
+ * TLP:CLEAR
4
+ *
5
+ * Comprehensive performance profiling, monitoring, and optimization
6
+ * system for DCYFR integration workflows. Provides real-time metrics,
7
+ * bottleneck identification, and automatic optimization recommendations.
8
+ *
9
+ * @version 1.0.0
10
+ * @date 2026-02-15
11
+ * @module dcyfr-ai/performance-profiler
12
+ */
13
+ import { EventEmitter } from 'events';
14
+ import { performance } from 'perf_hooks';
15
+ /**
16
+ * Performance Profiler and Optimization Manager
17
+ *
18
+ * Comprehensive performance monitoring and optimization system providing
19
+ * real-time metrics, bottleneck detection, and optimization recommendations.
20
+ */
21
+ export class PerformanceProfiler extends EventEmitter {
22
+ config;
23
+ metrics = new Map();
24
+ benchmarks = new Map();
25
+ bottlenecks = new Map();
26
+ recommendations = new Map();
27
+ activeTimers = new Map();
28
+ monitoringInterval;
29
+ memoryBaseline = 0;
30
+ constructor(config = {}) {
31
+ super();
32
+ this.config = {
33
+ enableRealTimeMonitoring: true,
34
+ monitoringInterval: 5000, // 5 seconds
35
+ enableBottleneckDetection: true,
36
+ baselines: {},
37
+ memoryProfiling: {
38
+ enabled: true,
39
+ sampleInterval: 1000,
40
+ trackAllocations: true,
41
+ },
42
+ cpuProfiling: {
43
+ enabled: true,
44
+ sampleInterval: 100,
45
+ },
46
+ enableOptimizationRecommendations: true,
47
+ alerts: {
48
+ enabled: true,
49
+ thresholds: {
50
+ memoryUsage: 0.8, // 80% of available memory
51
+ cpuUsage: 0.9, // 90% CPU usage
52
+ responseTime: 5000, // 5 second response time
53
+ },
54
+ },
55
+ ...config,
56
+ };
57
+ this.memoryBaseline = this.getMemoryUsage();
58
+ if (this.config.enableRealTimeMonitoring) {
59
+ this.startMonitoring();
60
+ }
61
+ }
62
+ /**
63
+ * Start performance timer
64
+ */
65
+ startTimer(operation) {
66
+ const timerId = `${operation}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
67
+ this.activeTimers.set(timerId, performance.now());
68
+ this.emit('timer_started', { timerId, operation });
69
+ return timerId;
70
+ }
71
+ /**
72
+ * End performance timer and record metric
73
+ */
74
+ endTimer(timerId, context) {
75
+ const startTime = this.activeTimers.get(timerId);
76
+ if (!startTime) {
77
+ throw new Error(`Timer not found: ${timerId}`);
78
+ }
79
+ const endTime = performance.now();
80
+ const executionTime = endTime - startTime;
81
+ this.activeTimers.delete(timerId);
82
+ const metric = {
83
+ id: `timing-${timerId}`,
84
+ name: timerId.split('-')[0],
85
+ value: executionTime,
86
+ unit: 'ms',
87
+ category: 'timing',
88
+ timestamp: new Date(),
89
+ context,
90
+ };
91
+ this.recordMetric(metric);
92
+ this.emit('timer_ended', { timerId, executionTime, context });
93
+ return executionTime;
94
+ }
95
+ /**
96
+ * Record performance metric
97
+ */
98
+ recordMetric(metric) {
99
+ const categoryMetrics = this.metrics.get(metric.category) || [];
100
+ categoryMetrics.push(metric);
101
+ // Keep only last 1000 metrics per category for memory efficiency
102
+ if (categoryMetrics.length > 1000) {
103
+ categoryMetrics.splice(0, categoryMetrics.length - 1000);
104
+ }
105
+ this.metrics.set(metric.category, categoryMetrics);
106
+ // Check for alerts
107
+ if (this.config.alerts.enabled) {
108
+ this.checkPerformanceAlerts(metric);
109
+ }
110
+ // Check for bottlenecks
111
+ if (this.config.enableBottleneckDetection) {
112
+ this.detectBottlenecks(metric);
113
+ }
114
+ this.emit('metric_recorded', metric);
115
+ }
116
+ /**
117
+ * Run performance benchmark
118
+ */
119
+ async benchmark(operation, fn, parameters, iterations = 1) {
120
+ const benchmarkId = `bench-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
121
+ let result;
122
+ let totalExecutionTime = 0;
123
+ let totalMemoryDelta = 0;
124
+ for (let i = 0; i < iterations; i++) {
125
+ const memoryBefore = this.getMemoryUsage();
126
+ const startTime = performance.now();
127
+ if (i === 0) {
128
+ // Only capture result from first iteration
129
+ result = await fn();
130
+ }
131
+ else {
132
+ await fn();
133
+ }
134
+ const endTime = performance.now();
135
+ const memoryAfter = this.getMemoryUsage();
136
+ totalExecutionTime += endTime - startTime;
137
+ totalMemoryDelta += memoryAfter - memoryBefore;
138
+ }
139
+ const avgExecutionTime = totalExecutionTime / iterations;
140
+ const avgMemoryDelta = totalMemoryDelta / iterations;
141
+ const throughput = iterations / (totalExecutionTime / 1000); // ops per second
142
+ const benchmark = {
143
+ benchmarkId,
144
+ operation,
145
+ executionTime: avgExecutionTime,
146
+ memoryBefore: this.memoryBaseline,
147
+ memoryAfter: this.getMemoryUsage(),
148
+ memoryDelta: avgMemoryDelta,
149
+ throughput,
150
+ parameters,
151
+ completedAt: new Date(),
152
+ };
153
+ // Store benchmark result
154
+ const operationBenchmarks = this.benchmarks.get(operation) || [];
155
+ operationBenchmarks.push(benchmark);
156
+ this.benchmarks.set(operation, operationBenchmarks);
157
+ this.emit('benchmark_completed', benchmark);
158
+ return { result: result, benchmark };
159
+ }
160
+ /**
161
+ * Get current memory usage in bytes
162
+ */
163
+ getMemoryUsage() {
164
+ if (typeof process !== 'undefined' && process.memoryUsage) {
165
+ return process.memoryUsage().heapUsed;
166
+ }
167
+ return 0; // Browser environment fallback
168
+ }
169
+ /**
170
+ * Start real-time monitoring
171
+ */
172
+ startMonitoring() {
173
+ this.monitoringInterval = setInterval(() => {
174
+ this.collectSystemMetrics();
175
+ }, this.config.monitoringInterval);
176
+ }
177
+ /**
178
+ * Collect system-wide performance metrics
179
+ */
180
+ collectSystemMetrics() {
181
+ const memoryUsage = this.getMemoryUsage();
182
+ const memoryMetric = {
183
+ id: `memory-${Date.now()}`,
184
+ name: 'memory_usage',
185
+ value: memoryUsage,
186
+ unit: 'bytes',
187
+ category: 'memory',
188
+ timestamp: new Date(),
189
+ };
190
+ this.recordMetric(memoryMetric);
191
+ // Record active timers count
192
+ const timersMetric = {
193
+ id: `timers-${Date.now()}`,
194
+ name: 'active_timers',
195
+ value: this.activeTimers.size,
196
+ unit: 'count',
197
+ category: 'resource',
198
+ timestamp: new Date(),
199
+ };
200
+ this.recordMetric(timersMetric);
201
+ }
202
+ /**
203
+ * Check for performance alerts
204
+ */
205
+ checkPerformanceAlerts(metric) {
206
+ const thresholds = this.config.alerts.thresholds;
207
+ if (metric.name === 'memory_usage' && metric.unit === 'bytes') {
208
+ const memoryThreshold = thresholds.memoryUsage * (1024 * 1024 * 1024); // Convert to bytes
209
+ if (metric.value > memoryThreshold) {
210
+ this.emit('performance_alert', {
211
+ type: 'memory_exceeded',
212
+ metric,
213
+ threshold: memoryThreshold,
214
+ severity: 'high',
215
+ });
216
+ }
217
+ }
218
+ if (metric.category === 'timing' && metric.unit === 'ms') {
219
+ if (metric.value > thresholds.responseTime) {
220
+ this.emit('performance_alert', {
221
+ type: 'slow_response',
222
+ metric,
223
+ threshold: thresholds.responseTime,
224
+ severity: 'medium',
225
+ });
226
+ }
227
+ }
228
+ }
229
+ /**
230
+ * Detect performance bottlenecks
231
+ */
232
+ detectBottlenecks(metric) {
233
+ const baseline = this.config.baselines[metric.name];
234
+ if (!baseline)
235
+ return;
236
+ const performanceImpact = (metric.value - baseline) / baseline;
237
+ if (performanceImpact > 0.5) { // 50% slower than baseline
238
+ const bottleneck = {
239
+ id: `bottleneck-${metric.name}-${Date.now()}`,
240
+ component: metric.name,
241
+ severity: Math.min(10, Math.floor(performanceImpact * 10)),
242
+ type: this.categorizeBottleneckType(metric),
243
+ performanceImpact,
244
+ recommendations: this.generateBottleneckRecommendations(metric, performanceImpact),
245
+ detectedAt: new Date(),
246
+ metrics: [metric],
247
+ };
248
+ this.bottlenecks.set(bottleneck.id, bottleneck);
249
+ this.emit('bottleneck_detected', bottleneck);
250
+ if (this.config.enableOptimizationRecommendations) {
251
+ this.generateOptimizationRecommendations(bottleneck);
252
+ }
253
+ }
254
+ }
255
+ /**
256
+ * Categorize bottleneck type based on metric
257
+ */
258
+ categorizeBottleneckType(metric) {
259
+ if (metric.category === 'memory')
260
+ return 'memory';
261
+ if (metric.category === 'timing' && metric.name.includes('network'))
262
+ return 'network';
263
+ if (metric.category === 'timing' && metric.name.includes('io'))
264
+ return 'io';
265
+ if (metric.category === 'timing')
266
+ return 'cpu';
267
+ if (metric.category === 'resource')
268
+ return 'concurrency';
269
+ return 'algorithm';
270
+ }
271
+ /**
272
+ * Generate bottleneck-specific recommendations
273
+ */
274
+ generateBottleneckRecommendations(metric, impact) {
275
+ const recommendations = [];
276
+ if (metric.category === 'timing') {
277
+ if (impact > 2) {
278
+ recommendations.push('Consider implementing caching for frequently accessed data');
279
+ recommendations.push('Evaluate algorithm complexity and optimize if possible');
280
+ }
281
+ if (impact > 1) {
282
+ recommendations.push('Implement batching for bulk operations');
283
+ recommendations.push('Consider parallelization opportunities');
284
+ }
285
+ }
286
+ if (metric.category === 'memory') {
287
+ recommendations.push('Review memory allocation patterns');
288
+ recommendations.push('Implement object pooling for frequently created objects');
289
+ recommendations.push('Add garbage collection optimization');
290
+ }
291
+ return recommendations;
292
+ }
293
+ /**
294
+ * Generate optimization recommendations
295
+ */
296
+ generateOptimizationRecommendations(bottleneck) {
297
+ const recommendation = {
298
+ id: `opt-${bottleneck.id}`,
299
+ target: bottleneck.component,
300
+ type: this.getRecommendationType(bottleneck.type),
301
+ priority: bottleneck.severity,
302
+ expectedImprovement: {
303
+ metric: bottleneck.component,
304
+ currentValue: bottleneck.metrics[0]?.value || 0,
305
+ targetValue: (bottleneck.metrics[0]?.value || 0) * (1 - Math.min(0.5, bottleneck.performanceImpact / 2)),
306
+ improvementPercent: Math.min(50, bottleneck.performanceImpact * 50),
307
+ },
308
+ complexity: this.estimateImplementationComplexity(bottleneck.type),
309
+ description: `Optimize ${bottleneck.component} to address ${bottleneck.type} bottleneck`,
310
+ implementationSteps: bottleneck.recommendations,
311
+ generatedAt: new Date(),
312
+ };
313
+ this.recommendations.set(recommendation.id, recommendation);
314
+ this.emit('optimization_recommendation', recommendation);
315
+ }
316
+ /**
317
+ * Get recommendation type based on bottleneck type
318
+ */
319
+ getRecommendationType(bottleneckType) {
320
+ const mapping = {
321
+ cpu: 'algorithm',
322
+ memory: 'resource',
323
+ io: 'caching',
324
+ network: 'caching',
325
+ concurrency: 'parallelization',
326
+ algorithm: 'algorithm',
327
+ };
328
+ return mapping[bottleneckType] || 'configuration';
329
+ }
330
+ /**
331
+ * Estimate implementation complexity
332
+ */
333
+ estimateImplementationComplexity(bottleneckType) {
334
+ const complexity = {
335
+ cpu: 3,
336
+ memory: 3,
337
+ io: 2,
338
+ network: 2,
339
+ concurrency: 5,
340
+ algorithm: 4,
341
+ };
342
+ return complexity[bottleneckType] || 3;
343
+ }
344
+ /**
345
+ * Get performance metrics summary
346
+ */
347
+ getMetricsSummary() {
348
+ const totalMetrics = Array.from(this.metrics.values()).reduce((sum, metrics) => sum + metrics.length, 0);
349
+ const categories = {};
350
+ for (const [category, metrics] of this.metrics.entries()) {
351
+ categories[category] = metrics.length;
352
+ }
353
+ return {
354
+ totalMetrics,
355
+ categories,
356
+ recentAlerts: 0, // Would track alerts from event emissions
357
+ activeBottlenecks: this.bottlenecks.size,
358
+ pendingRecommendations: this.recommendations.size,
359
+ };
360
+ }
361
+ /**
362
+ * Get benchmark results for operation
363
+ */
364
+ getBenchmarkResults(operation) {
365
+ if (operation) {
366
+ return this.benchmarks.get(operation) || [];
367
+ }
368
+ return Array.from(this.benchmarks.values()).flat();
369
+ }
370
+ /**
371
+ * Get performance bottlenecks
372
+ */
373
+ getBottlenecks() {
374
+ return Array.from(this.bottlenecks.values());
375
+ }
376
+ /**
377
+ * Get optimization recommendations
378
+ */
379
+ getRecommendations(priorityFilter) {
380
+ const recommendations = Array.from(this.recommendations.values());
381
+ if (priorityFilter !== undefined) {
382
+ return recommendations.filter(rec => rec.priority >= priorityFilter);
383
+ }
384
+ return recommendations.sort((a, b) => b.priority - a.priority);
385
+ }
386
+ /**
387
+ * Clear performance data
388
+ */
389
+ clearData(categories) {
390
+ if (categories) {
391
+ for (const category of categories) {
392
+ this.metrics.delete(category);
393
+ }
394
+ }
395
+ else {
396
+ this.metrics.clear();
397
+ this.benchmarks.clear();
398
+ this.bottlenecks.clear();
399
+ this.recommendations.clear();
400
+ }
401
+ this.emit('data_cleared', { categories });
402
+ }
403
+ /**
404
+ * Export performance data
405
+ */
406
+ exportData() {
407
+ return {
408
+ metrics: Object.fromEntries(this.metrics),
409
+ benchmarks: Object.fromEntries(this.benchmarks),
410
+ bottlenecks: Array.from(this.bottlenecks.values()),
411
+ recommendations: Array.from(this.recommendations.values()),
412
+ summary: this.getMetricsSummary(),
413
+ };
414
+ }
415
+ /**
416
+ * Shutdown profiler
417
+ */
418
+ shutdown() {
419
+ if (this.monitoringInterval) {
420
+ clearInterval(this.monitoringInterval);
421
+ }
422
+ this.activeTimers.clear();
423
+ this.removeAllListeners();
424
+ this.emit('shutdown_complete');
425
+ }
426
+ }
427
+ /**
428
+ * Global performance profiler instance
429
+ */
430
+ let globalProfiler = null;
431
+ /**
432
+ * Get or create global performance profiler instance
433
+ */
434
+ export function getGlobalProfiler(config) {
435
+ if (!globalProfiler) {
436
+ globalProfiler = new PerformanceProfiler(config);
437
+ }
438
+ return globalProfiler;
439
+ }
440
+ /**
441
+ * Performance profiling decorator for class methods
442
+ */
443
+ export function profileMethod(operation) {
444
+ return function (target, propertyName, descriptor) {
445
+ const method = descriptor.value;
446
+ const profiler = getGlobalProfiler();
447
+ descriptor.value = async function (...args) {
448
+ const operationName = operation || `${target.constructor.name}.${propertyName}`;
449
+ const timerId = profiler.startTimer(operationName);
450
+ try {
451
+ const result = await method.apply(this, args);
452
+ return result;
453
+ }
454
+ finally {
455
+ profiler.endTimer(timerId, { args: args.length });
456
+ }
457
+ };
458
+ return descriptor;
459
+ };
460
+ }
461
+ /**
462
+ * Performance profiling function wrapper
463
+ */
464
+ export async function profileFunction(operation, fn, profiler) {
465
+ const activeProfiler = profiler || getGlobalProfiler();
466
+ const timerId = activeProfiler.startTimer(operation);
467
+ try {
468
+ return await fn();
469
+ }
470
+ finally {
471
+ activeProfiler.endTimer(timerId);
472
+ }
473
+ }
474
+ export default PerformanceProfiler;
475
+ //# sourceMappingURL=performance-profiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-profiler.js","sourceRoot":"","sources":["../../../packages/ai/src/performance-profiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA4PzC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAC3C,MAAM,CAAsC;IAC5C,OAAO,GAAqC,IAAI,GAAG,EAAE,CAAC;IACtD,UAAU,GAAmC,IAAI,GAAG,EAAE,CAAC;IACvD,WAAW,GAAuC,IAAI,GAAG,EAAE,CAAC;IAC5D,eAAe,GAA4C,IAAI,GAAG,EAAE,CAAC;IACrE,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC9C,kBAAkB,CAAkB;IACpC,cAAc,GAAW,CAAC,CAAC;IAEnC,YAAY,SAAoC,EAAE;QAChD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG;YACZ,wBAAwB,EAAE,IAAI;YAC9B,kBAAkB,EAAE,IAAI,EAAE,YAAY;YACtC,yBAAyB,EAAE,IAAI;YAC/B,SAAS,EAAE,EAAE;YACb,eAAe,EAAE;gBACf,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,IAAI;gBACpB,gBAAgB,EAAE,IAAI;aACvB;YACD,YAAY,EAAE;gBACZ,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,GAAG;aACpB;YACD,iCAAiC,EAAE,IAAI;YACvC,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE;oBACV,WAAW,EAAE,GAAG,EAAE,0BAA0B;oBAC5C,QAAQ,EAAE,GAAG,EAAE,gBAAgB;oBAC/B,YAAY,EAAE,IAAI,EAAE,yBAAyB;iBAC9C;aACF;YACD,GAAG,MAAM;SACV,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5C,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACxF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe,EAAE,OAA6B;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;QAE1C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,MAAM,GAAsB;YAChC,EAAE,EAAE,UAAU,OAAO,EAAE;YACvB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO;SACR,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;QAE9D,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAyB;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7B,iEAAiE;QACjE,IAAI,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAClC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAEnD,mBAAmB;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,EAAwB,EACxB,UAAgC,EAChC,aAAqB,CAAC;QAEtB,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAErF,IAAI,MAAS,CAAC;QACd,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAEpC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,2CAA2C;gBAC3C,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,EAAE,CAAC;YACb,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAE1C,kBAAkB,IAAI,OAAO,GAAG,SAAS,CAAC;YAC1C,gBAAgB,IAAI,WAAW,GAAG,YAAY,CAAC;QACjD,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,UAAU,CAAC;QACzD,MAAM,cAAc,GAAG,gBAAgB,GAAG,UAAU,CAAC;QACrD,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB;QAE9E,MAAM,SAAS,GAAoB;YACjC,WAAW;YACX,SAAS;YACT,aAAa,EAAE,gBAAgB;YAC/B,YAAY,EAAE,IAAI,CAAC,cAAc;YACjC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;YAClC,WAAW,EAAE,cAAc;YAC3B,UAAU;YACV,UAAU;YACV,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,yBAAyB;QACzB,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjE,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,EAAE,MAAM,EAAE,MAAO,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1D,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,+BAA+B;IAC3C,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;YACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAsB;YACtC,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1B,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEhC,6BAA6B;QAC7B,MAAM,YAAY,GAAsB;YACtC,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1B,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;YAC7B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,MAAyB;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAEjD,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9D,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB;YAC1F,IAAI,MAAM,CAAC,KAAK,GAAG,eAAe,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBAC7B,IAAI,EAAE,iBAAiB;oBACvB,MAAM;oBACN,SAAS,EAAE,eAAe;oBAC1B,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzD,IAAI,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBAC7B,IAAI,EAAE,eAAe;oBACrB,MAAM;oBACN,SAAS,EAAE,UAAU,CAAC,YAAY;oBAClC,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,MAAyB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAE/D,IAAI,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC,2BAA2B;YACxD,MAAM,UAAU,GAA0B;gBACxC,EAAE,EAAE,cAAc,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;gBAC7C,SAAS,EAAE,MAAM,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;gBAC3C,iBAAiB;gBACjB,eAAe,EAAE,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAClF,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,OAAO,EAAE,CAAC,MAAM,CAAC;aAClB,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;YAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,iCAAiC,EAAE,CAAC;gBAClD,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,MAAyB;QACxD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAClD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACtF,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5E,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,aAAa,CAAC;QACzD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,iCAAiC,CAAC,MAAyB,EAAE,MAAc;QACjF,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,eAAe,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;gBACnF,eAAe,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,eAAe,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBAC/D,eAAe,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAC1D,eAAe,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAChF,eAAe,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,mCAAmC,CAAC,UAAiC;QAC3E,MAAM,cAAc,GAA+B;YACjD,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE;YAC1B,MAAM,EAAE,UAAU,CAAC,SAAS;YAC5B,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC;YACjD,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,mBAAmB,EAAE;gBACnB,MAAM,EAAE,UAAU,CAAC,SAAS;gBAC5B,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;gBAC/C,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;gBACxG,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;aACpE;YACD,UAAU,EAAE,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,IAAI,CAAC;YAClE,WAAW,EAAE,YAAY,UAAU,CAAC,SAAS,eAAe,UAAU,CAAC,IAAI,aAAa;YACxF,mBAAmB,EAAE,UAAU,CAAC,eAAe;YAC/C,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,cAAc,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,cAA6C;QACzE,MAAM,OAAO,GAA8E;YACzF,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,UAAU;YAClB,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,iBAAiB;YAC9B,SAAS,EAAE,WAAW;SACvB,CAAC;QACF,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,eAAe,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,gCAAgC,CAAC,cAA6C;QACpF,MAAM,UAAU,GAAkD;YAChE,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC;YACT,EAAE,EAAE,CAAC;YACL,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;SACb,CAAC;QACF,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,iBAAiB;QAOf,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzG,MAAM,UAAU,GAA2B,EAAE,CAAC;QAE9C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACxC,CAAC;QAED,OAAO;YACL,YAAY;YACZ,UAAU;YACV,YAAY,EAAE,CAAC,EAAE,0CAA0C;YAC3D,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACxC,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;SAClD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,SAAkB;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,cAAuB;QACxC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAElE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAAqB;QAC7B,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,UAAU;QAOR,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YACzC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/C,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAClD,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,IAAI,cAAc,GAA+B,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAkC;IAClE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,SAAkB;IAC9C,OAAO,UAAS,MAAW,EAAE,YAAoB,EAAE,UAA8B;QAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;QAChC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QAErC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAU,GAAG,IAAW;YAC9C,MAAM,aAAa,GAAG,SAAS,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;YAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAEnD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC9C,OAAO,MAAM,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,EAAwB,EACxB,QAA8B;IAE9B,MAAM,cAAc,GAAG,QAAQ,IAAI,iBAAiB,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @fileoverview BeforeLLMCallHook — injects resolved brand voice and agent
3
+ * persona prefix into the system prompt before each LLM call.
4
+ * @module @dcyfr/ai/personas/hooks/before-llm-call
5
+ * @license MIT
6
+ */
7
+ import type { AgentPersona, ResolvedVoice, VoiceResolverOptions } from '../types';
8
+ /**
9
+ * Input context passed to a BeforeLLMCallHook.
10
+ */
11
+ export interface BeforeLLMCallInput {
12
+ /**
13
+ * Current system prompt (may be empty string)
14
+ */
15
+ systemPrompt: string;
16
+ /**
17
+ * Agent name to resolve persona for (e.g., 'dcyfr-engineer')
18
+ */
19
+ agentName?: string;
20
+ /**
21
+ * Pre-loaded persona (skips persona loading if provided)
22
+ */
23
+ persona?: AgentPersona;
24
+ /**
25
+ * Additional context string (e.g., conversation topic, task type)
26
+ */
27
+ context?: string;
28
+ }
29
+ /**
30
+ * Output returned by a BeforeLLMCallHook.
31
+ */
32
+ export interface BeforeLLMCallOutput {
33
+ /**
34
+ * Modified system prompt with voice prefix injected
35
+ */
36
+ systemPrompt: string;
37
+ /**
38
+ * The voice that was resolved and applied
39
+ */
40
+ resolvedVoice: ResolvedVoice;
41
+ /**
42
+ * Whether the hook was skipped (enabled: false or error)
43
+ */
44
+ skipped: boolean;
45
+ }
46
+ /**
47
+ * Configuration for the BeforeLLMCallHook
48
+ */
49
+ export interface BeforeLLMCallHookConfig {
50
+ /**
51
+ * Enable or disable the hook (default: true)
52
+ */
53
+ enabled?: boolean;
54
+ /**
55
+ * Voice resolver options (tone, verbosity, etc.)
56
+ */
57
+ voiceOptions?: VoiceResolverOptions;
58
+ /**
59
+ * Separator between injected prefix and existing system prompt
60
+ * (default: '\n\n')
61
+ */
62
+ separator?: string;
63
+ /**
64
+ * Placement: prepend (default) or append the voice prefix
65
+ */
66
+ placement?: 'prepend' | 'append';
67
+ }
68
+ /**
69
+ * Interface for before-LLM-call hooks.
70
+ * Implement this to create custom pre-call transformations.
71
+ */
72
+ export interface BeforeLLMCallHook {
73
+ readonly name: string;
74
+ execute(input: BeforeLLMCallInput): BeforeLLMCallOutput | Promise<BeforeLLMCallOutput>;
75
+ }
76
+ /**
77
+ * Brand voice injection hook. Resolves the agent persona and prepends (or
78
+ * appends) the voice system prefix to the system prompt.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const hook = createBrandVoiceHook({ enabled: true, voiceOptions: { verbosity: 2 } });
83
+ * const { systemPrompt } = hook.execute({ agentName: 'dcyfr-engineer', systemPrompt: '' });
84
+ * ```
85
+ */
86
+ export declare class BrandVoiceHook implements BeforeLLMCallHook {
87
+ readonly name = "brand-voice-inject";
88
+ private readonly config;
89
+ constructor(config?: BeforeLLMCallHookConfig);
90
+ execute(input: BeforeLLMCallInput): BeforeLLMCallOutput;
91
+ }
92
+ /**
93
+ * Creates a BrandVoiceHook with the given configuration.
94
+ */
95
+ export declare function createBrandVoiceHook(config?: BeforeLLMCallHookConfig): BrandVoiceHook;
96
+ //# sourceMappingURL=before-llm-call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-llm-call.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/personas/hooks/before-llm-call.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAQlF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACxF;AAMD;;;;;;;;;GASG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,wBAAwB;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAE/C,MAAM,GAAE,uBAA4B;IAShD,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB;CA0CxD;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,cAAc,CAErF"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @fileoverview BeforeLLMCallHook — injects resolved brand voice and agent
3
+ * persona prefix into the system prompt before each LLM call.
4
+ * @module @dcyfr/ai/personas/hooks/before-llm-call
5
+ * @license MIT
6
+ */
7
+ import { loadPersona } from '../persona-loader.js';
8
+ import { resolveVoice } from '../voice-resolver.js';
9
+ // ---------------------------------------------------------------------------
10
+ // Implementation
11
+ // ---------------------------------------------------------------------------
12
+ /**
13
+ * Brand voice injection hook. Resolves the agent persona and prepends (or
14
+ * appends) the voice system prefix to the system prompt.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const hook = createBrandVoiceHook({ enabled: true, voiceOptions: { verbosity: 2 } });
19
+ * const { systemPrompt } = hook.execute({ agentName: 'dcyfr-engineer', systemPrompt: '' });
20
+ * ```
21
+ */
22
+ export class BrandVoiceHook {
23
+ name = 'brand-voice-inject';
24
+ config;
25
+ constructor(config = {}) {
26
+ this.config = {
27
+ enabled: config.enabled ?? true,
28
+ voiceOptions: config.voiceOptions ?? {},
29
+ separator: config.separator ?? '\n\n',
30
+ placement: config.placement ?? 'prepend',
31
+ };
32
+ }
33
+ execute(input) {
34
+ if (!this.config.enabled) {
35
+ const fallbackPersona = input.persona ?? {
36
+ name: input.agentName ?? 'unknown',
37
+ title: 'Agent',
38
+ role: '',
39
+ capabilities: [],
40
+ voice_tone: null,
41
+ };
42
+ return {
43
+ systemPrompt: input.systemPrompt,
44
+ resolvedVoice: resolveVoice(fallbackPersona, { enabled: false }),
45
+ skipped: true,
46
+ };
47
+ }
48
+ // Load or use provided persona
49
+ const persona = input.persona ?? loadPersona(input.agentName ?? 'default').persona;
50
+ // Resolve voice
51
+ const resolvedVoice = resolveVoice(persona, this.config.voiceOptions);
52
+ // Inject prefix
53
+ let systemPrompt;
54
+ if (!resolvedVoice.systemPrefix) {
55
+ systemPrompt = input.systemPrompt;
56
+ }
57
+ else if (this.config.placement === 'append') {
58
+ systemPrompt = [input.systemPrompt, resolvedVoice.systemPrefix]
59
+ .filter(Boolean)
60
+ .join(this.config.separator);
61
+ }
62
+ else {
63
+ systemPrompt = [resolvedVoice.systemPrefix, input.systemPrompt]
64
+ .filter(Boolean)
65
+ .join(this.config.separator);
66
+ }
67
+ return {
68
+ systemPrompt,
69
+ resolvedVoice,
70
+ skipped: false,
71
+ };
72
+ }
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // Factory
76
+ // ---------------------------------------------------------------------------
77
+ /**
78
+ * Creates a BrandVoiceHook with the given configuration.
79
+ */
80
+ export function createBrandVoiceHook(config) {
81
+ return new BrandVoiceHook(config);
82
+ }
83
+ //# sourceMappingURL=before-llm-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-llm-call.js","sourceRoot":"","sources":["../../../../../packages/ai/src/personas/hooks/before-llm-call.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA0FjD,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,oBAAoB,CAAC;IAEpB,MAAM,CAAoC;IAE3D,YAAY,SAAkC,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;SACzC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,KAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,IAAI;gBACvC,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;gBAClC,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,IAAI;aACjB,CAAC;YACF,OAAO;gBACL,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,aAAa,EAAE,YAAY,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBAChE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,OAAO,CAAC;QAEnF,gBAAgB;QAChB,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEtE,gBAAgB;QAChB,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAChC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC9C,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC;iBAC5D,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;iBAC5D,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,OAAO;YACL,YAAY;YACZ,aAAa;YACb,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAgC;IACnE,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}