@dcyfr/ai 1.0.4 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +381 -9
  3. package/dist/ai/agents/agent-loader.d.ts +12 -0
  4. package/dist/ai/agents/agent-loader.d.ts.map +1 -1
  5. package/dist/ai/agents/agent-loader.js +74 -65
  6. package/dist/ai/agents/agent-loader.js.map +1 -1
  7. package/dist/ai/agents/agent-registry.d.ts +2 -0
  8. package/dist/ai/agents/agent-registry.d.ts.map +1 -1
  9. package/dist/ai/agents/agent-registry.js +15 -14
  10. package/dist/ai/agents/agent-registry.js.map +1 -1
  11. package/dist/ai/agents/agent-router.d.ts +20 -5
  12. package/dist/ai/agents/agent-router.d.ts.map +1 -1
  13. package/dist/ai/agents/agent-router.js +89 -43
  14. package/dist/ai/agents/agent-router.js.map +1 -1
  15. package/dist/ai/agents/index.d.ts +6 -1
  16. package/dist/ai/agents/index.d.ts.map +1 -1
  17. package/dist/ai/agents/index.js +9 -3
  18. package/dist/ai/agents/index.js.map +1 -1
  19. package/dist/ai/agents/instruction-template.d.ts +45 -0
  20. package/dist/ai/agents/instruction-template.d.ts.map +1 -0
  21. package/dist/ai/agents/instruction-template.js +197 -0
  22. package/dist/ai/agents/instruction-template.js.map +1 -0
  23. package/dist/ai/agents/persona-resolver.d.ts +90 -0
  24. package/dist/ai/agents/persona-resolver.d.ts.map +1 -0
  25. package/dist/ai/agents/persona-resolver.js +121 -0
  26. package/dist/ai/agents/persona-resolver.js.map +1 -0
  27. package/dist/ai/agents/schema.d.ts +166 -0
  28. package/dist/ai/agents/schema.d.ts.map +1 -0
  29. package/dist/ai/agents/schema.js +94 -0
  30. package/dist/ai/agents/schema.js.map +1 -0
  31. package/dist/ai/agents/types.d.ts +102 -0
  32. package/dist/ai/agents/types.d.ts.map +1 -1
  33. package/dist/ai/agents-builtin/architecture/index.js +3 -3
  34. package/dist/ai/agents-builtin/content/index.js +1 -1
  35. package/dist/ai/agents-builtin/data/index.js +1 -1
  36. package/dist/ai/agents-builtin/development/index.js +4 -4
  37. package/dist/ai/agents-builtin/devops/index.js +1 -1
  38. package/dist/ai/agents-builtin/index.js +33 -33
  39. package/dist/ai/agents-builtin/performance/index.js +1 -1
  40. package/dist/ai/agents-builtin/research/index.js +1 -1
  41. package/dist/ai/agents-builtin/security/index.js +1 -1
  42. package/dist/ai/agents-builtin/testing/index.js +2 -2
  43. package/dist/ai/config/loader.d.ts.map +1 -1
  44. package/dist/ai/config/loader.js +6 -3
  45. package/dist/ai/config/loader.js.map +1 -1
  46. package/dist/ai/config/schema.d.ts +242 -1156
  47. package/dist/ai/config/schema.d.ts.map +1 -1
  48. package/dist/ai/config/schema.js +69 -20
  49. package/dist/ai/config/schema.js.map +1 -1
  50. package/dist/ai/core/provider-registry.d.ts +32 -0
  51. package/dist/ai/core/provider-registry.d.ts.map +1 -1
  52. package/dist/ai/core/provider-registry.js +189 -14
  53. package/dist/ai/core/provider-registry.js.map +1 -1
  54. package/dist/ai/core/telemetry-engine.d.ts +26 -0
  55. package/dist/ai/core/telemetry-engine.d.ts.map +1 -1
  56. package/dist/ai/core/telemetry-engine.js +81 -1
  57. package/dist/ai/core/telemetry-engine.js.map +1 -1
  58. package/dist/ai/delegation/agent-registry.d.ts +143 -0
  59. package/dist/ai/delegation/agent-registry.d.ts.map +1 -0
  60. package/dist/ai/delegation/agent-registry.js +231 -0
  61. package/dist/ai/delegation/agent-registry.js.map +1 -0
  62. package/dist/ai/delegation/blast-radius-tracker.d.ts +65 -0
  63. package/dist/ai/delegation/blast-radius-tracker.d.ts.map +1 -0
  64. package/dist/ai/delegation/blast-radius-tracker.js +81 -0
  65. package/dist/ai/delegation/blast-radius-tracker.js.map +1 -0
  66. package/dist/ai/delegation/capability-bootstrap.d.ts +40 -0
  67. package/dist/ai/delegation/capability-bootstrap.d.ts.map +1 -0
  68. package/dist/ai/delegation/capability-bootstrap.js +431 -0
  69. package/dist/ai/delegation/capability-bootstrap.js.map +1 -0
  70. package/dist/ai/delegation/capability-registry.d.ts +81 -0
  71. package/dist/ai/delegation/capability-registry.d.ts.map +1 -0
  72. package/dist/ai/delegation/capability-registry.js +339 -0
  73. package/dist/ai/delegation/capability-registry.js.map +1 -0
  74. package/dist/ai/delegation/chain-tracker.d.ts +152 -0
  75. package/dist/ai/delegation/chain-tracker.d.ts.map +1 -0
  76. package/dist/ai/delegation/chain-tracker.js +336 -0
  77. package/dist/ai/delegation/chain-tracker.js.map +1 -0
  78. package/dist/ai/delegation/circuit-breaker.d.ts +59 -0
  79. package/dist/ai/delegation/circuit-breaker.d.ts.map +1 -0
  80. package/dist/ai/delegation/circuit-breaker.js +153 -0
  81. package/dist/ai/delegation/circuit-breaker.js.map +1 -0
  82. package/dist/ai/delegation/contract-manager.d.ts +415 -0
  83. package/dist/ai/delegation/contract-manager.d.ts.map +1 -0
  84. package/dist/ai/delegation/contract-manager.js +1258 -0
  85. package/dist/ai/delegation/contract-manager.js.map +1 -0
  86. package/dist/ai/delegation/delegation-manager.d.ts +505 -0
  87. package/dist/ai/delegation/delegation-manager.d.ts.map +1 -0
  88. package/dist/ai/delegation/delegation-manager.js +773 -0
  89. package/dist/ai/delegation/delegation-manager.js.map +1 -0
  90. package/dist/ai/delegation/event-schemas.d.ts +101 -0
  91. package/dist/ai/delegation/event-schemas.d.ts.map +1 -0
  92. package/dist/ai/delegation/event-schemas.js +59 -0
  93. package/dist/ai/delegation/event-schemas.js.map +1 -0
  94. package/dist/ai/delegation/execution-mode-dashboard.d.ts +109 -0
  95. package/dist/ai/delegation/execution-mode-dashboard.d.ts.map +1 -0
  96. package/dist/ai/delegation/execution-mode-dashboard.js +167 -0
  97. package/dist/ai/delegation/execution-mode-dashboard.js.map +1 -0
  98. package/dist/ai/delegation/feature-flags.d.ts +191 -0
  99. package/dist/ai/delegation/feature-flags.d.ts.map +1 -0
  100. package/dist/ai/delegation/feature-flags.js +332 -0
  101. package/dist/ai/delegation/feature-flags.js.map +1 -0
  102. package/dist/ai/delegation/index.d.ts +51 -0
  103. package/dist/ai/delegation/index.d.ts.map +1 -0
  104. package/dist/ai/delegation/index.js +39 -0
  105. package/dist/ai/delegation/index.js.map +1 -0
  106. package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts +39 -0
  107. package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts.map +1 -0
  108. package/dist/ai/delegation/middleware/chain-depth-middleware.js +77 -0
  109. package/dist/ai/delegation/middleware/chain-depth-middleware.js.map +1 -0
  110. package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts +46 -0
  111. package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts.map +1 -0
  112. package/dist/ai/delegation/middleware/chain-tracker-middleware.js +89 -0
  113. package/dist/ai/delegation/middleware/chain-tracker-middleware.js.map +1 -0
  114. package/dist/ai/delegation/middleware/content-policy-middleware.d.ts +31 -0
  115. package/dist/ai/delegation/middleware/content-policy-middleware.d.ts.map +1 -0
  116. package/dist/ai/delegation/middleware/content-policy-middleware.js +82 -0
  117. package/dist/ai/delegation/middleware/content-policy-middleware.js.map +1 -0
  118. package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts +46 -0
  119. package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts.map +1 -0
  120. package/dist/ai/delegation/middleware/feature-flag-middleware.js +59 -0
  121. package/dist/ai/delegation/middleware/feature-flag-middleware.js.map +1 -0
  122. package/dist/ai/delegation/middleware/identity-middleware.d.ts +23 -0
  123. package/dist/ai/delegation/middleware/identity-middleware.d.ts.map +1 -0
  124. package/dist/ai/delegation/middleware/identity-middleware.js +64 -0
  125. package/dist/ai/delegation/middleware/identity-middleware.js.map +1 -0
  126. package/dist/ai/delegation/middleware/permissions-middleware.d.ts +48 -0
  127. package/dist/ai/delegation/middleware/permissions-middleware.d.ts.map +1 -0
  128. package/dist/ai/delegation/middleware/permissions-middleware.js +107 -0
  129. package/dist/ai/delegation/middleware/permissions-middleware.js.map +1 -0
  130. package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts +38 -0
  131. package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts.map +1 -0
  132. package/dist/ai/delegation/middleware/rate-limiter-middleware.js +65 -0
  133. package/dist/ai/delegation/middleware/rate-limiter-middleware.js.map +1 -0
  134. package/dist/ai/delegation/middleware/reputation-middleware.d.ts +39 -0
  135. package/dist/ai/delegation/middleware/reputation-middleware.d.ts.map +1 -0
  136. package/dist/ai/delegation/middleware/reputation-middleware.js +75 -0
  137. package/dist/ai/delegation/middleware/reputation-middleware.js.map +1 -0
  138. package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts +52 -0
  139. package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts.map +1 -0
  140. package/dist/ai/delegation/middleware/resource-limiter-middleware.js +112 -0
  141. package/dist/ai/delegation/middleware/resource-limiter-middleware.js.map +1 -0
  142. package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts +23 -0
  143. package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts.map +1 -0
  144. package/dist/ai/delegation/middleware/threat-validator-middleware.js +83 -0
  145. package/dist/ai/delegation/middleware/threat-validator-middleware.js.map +1 -0
  146. package/dist/ai/delegation/middleware/tlp-middleware.d.ts +23 -0
  147. package/dist/ai/delegation/middleware/tlp-middleware.d.ts.map +1 -0
  148. package/dist/ai/delegation/middleware/tlp-middleware.js +59 -0
  149. package/dist/ai/delegation/middleware/tlp-middleware.js.map +1 -0
  150. package/dist/ai/delegation/monitoring.d.ts +298 -0
  151. package/dist/ai/delegation/monitoring.d.ts.map +1 -0
  152. package/dist/ai/delegation/monitoring.js +584 -0
  153. package/dist/ai/delegation/monitoring.js.map +1 -0
  154. package/dist/ai/delegation/security-middleware-chain.d.ts +71 -0
  155. package/dist/ai/delegation/security-middleware-chain.d.ts.map +1 -0
  156. package/dist/ai/delegation/security-middleware-chain.js +163 -0
  157. package/dist/ai/delegation/security-middleware-chain.js.map +1 -0
  158. package/dist/ai/delegation/session-checkpoint.d.ts +77 -0
  159. package/dist/ai/delegation/session-checkpoint.d.ts.map +1 -0
  160. package/dist/ai/delegation/session-checkpoint.js +131 -0
  161. package/dist/ai/delegation/session-checkpoint.js.map +1 -0
  162. package/dist/ai/delegation/session-manager.d.ts +131 -0
  163. package/dist/ai/delegation/session-manager.d.ts.map +1 -0
  164. package/dist/ai/delegation/session-manager.js +243 -0
  165. package/dist/ai/delegation/session-manager.js.map +1 -0
  166. package/dist/ai/delegation/session-queue.d.ts +95 -0
  167. package/dist/ai/delegation/session-queue.d.ts.map +1 -0
  168. package/dist/ai/delegation/session-queue.js +136 -0
  169. package/dist/ai/delegation/session-queue.js.map +1 -0
  170. package/dist/ai/delegation/timeout-watchdog.d.ts +60 -0
  171. package/dist/ai/delegation/timeout-watchdog.d.ts.map +1 -0
  172. package/dist/ai/delegation/timeout-watchdog.js +100 -0
  173. package/dist/ai/delegation/timeout-watchdog.js.map +1 -0
  174. package/dist/ai/examples/integration-demo.d.ts +27 -0
  175. package/dist/ai/examples/integration-demo.d.ts.map +1 -0
  176. package/dist/ai/examples/integration-demo.js +536 -0
  177. package/dist/ai/examples/integration-demo.js.map +1 -0
  178. package/dist/ai/index.d.ts +25 -0
  179. package/dist/ai/index.d.ts.map +1 -1
  180. package/dist/ai/index.js +31 -11
  181. package/dist/ai/index.js.map +1 -1
  182. package/dist/ai/mcp/servers/analytics/index.js +67 -11
  183. package/dist/ai/mcp/servers/analytics/index.js.map +1 -1
  184. package/dist/ai/mcp/servers/content-manager/index.d.ts.map +1 -1
  185. package/dist/ai/mcp/servers/content-manager/index.js +50 -4
  186. package/dist/ai/mcp/servers/content-manager/index.js.map +1 -1
  187. package/dist/ai/mcp/servers/delegation-monitor/index.d.ts +36 -0
  188. package/dist/ai/mcp/servers/delegation-monitor/index.d.ts.map +1 -0
  189. package/dist/ai/mcp/servers/delegation-monitor/index.js +757 -0
  190. package/dist/ai/mcp/servers/delegation-monitor/index.js.map +1 -0
  191. package/dist/ai/mcp/servers/design-tokens/index.d.ts.map +1 -1
  192. package/dist/ai/mcp/servers/design-tokens/index.js +62 -39
  193. package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -1
  194. package/dist/ai/mcp/servers/promptintel/index.js +15 -3
  195. package/dist/ai/mcp/servers/promptintel/index.js.map +1 -1
  196. package/dist/ai/mcp/servers/shared/rate-limiter.d.ts.map +1 -1
  197. package/dist/ai/mcp/servers/shared/rate-limiter.js +3 -1
  198. package/dist/ai/mcp/servers/shared/rate-limiter.js.map +1 -1
  199. package/dist/ai/mcp/servers/shared/redis-client.d.ts.map +1 -1
  200. package/dist/ai/mcp/servers/shared/redis-client.js +54 -47
  201. package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -1
  202. package/dist/ai/mcp/servers/shared/types.d.ts +9 -0
  203. package/dist/ai/mcp/servers/shared/types.d.ts.map +1 -1
  204. package/dist/ai/mcp/servers/shared/utils.d.ts +9 -1
  205. package/dist/ai/mcp/servers/shared/utils.d.ts.map +1 -1
  206. package/dist/ai/mcp/servers/shared/utils.js +52 -2
  207. package/dist/ai/mcp/servers/shared/utils.js.map +1 -1
  208. package/dist/ai/memory/config.d.ts +18 -3
  209. package/dist/ai/memory/config.d.ts.map +1 -1
  210. package/dist/ai/memory/config.js +61 -15
  211. package/dist/ai/memory/config.js.map +1 -1
  212. package/dist/ai/memory/dcyfr-memory.d.ts +4 -0
  213. package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -1
  214. package/dist/ai/memory/dcyfr-memory.js +44 -6
  215. package/dist/ai/memory/dcyfr-memory.js.map +1 -1
  216. package/dist/ai/memory/mem0-client.d.ts.map +1 -1
  217. package/dist/ai/memory/mem0-client.js +53 -14
  218. package/dist/ai/memory/mem0-client.js.map +1 -1
  219. package/dist/ai/permissions/attenuation-engine.d.ts +159 -0
  220. package/dist/ai/permissions/attenuation-engine.d.ts.map +1 -0
  221. package/dist/ai/permissions/attenuation-engine.js +511 -0
  222. package/dist/ai/permissions/attenuation-engine.js.map +1 -0
  223. package/dist/ai/plugins/plugin-loader.d.ts +4 -0
  224. package/dist/ai/plugins/plugin-loader.d.ts.map +1 -1
  225. package/dist/ai/plugins/plugin-loader.js +28 -28
  226. package/dist/ai/plugins/plugin-loader.js.map +1 -1
  227. package/dist/ai/reputation/execution-mode-reputation.d.ts +104 -0
  228. package/dist/ai/reputation/execution-mode-reputation.d.ts.map +1 -0
  229. package/dist/ai/reputation/execution-mode-reputation.js +142 -0
  230. package/dist/ai/reputation/execution-mode-reputation.js.map +1 -0
  231. package/dist/ai/reputation/reputation-engine.d.ts +204 -0
  232. package/dist/ai/reputation/reputation-engine.d.ts.map +1 -0
  233. package/dist/ai/reputation/reputation-engine.js +426 -0
  234. package/dist/ai/reputation/reputation-engine.js.map +1 -0
  235. package/dist/ai/runtime/agent-runtime.d.ts +193 -0
  236. package/dist/ai/runtime/agent-runtime.d.ts.map +1 -0
  237. package/dist/ai/runtime/agent-runtime.js +1009 -0
  238. package/dist/ai/runtime/agent-runtime.js.map +1 -0
  239. package/dist/ai/runtime/index.d.ts +11 -0
  240. package/dist/ai/runtime/index.d.ts.map +1 -0
  241. package/dist/ai/runtime/index.js +9 -0
  242. package/dist/ai/runtime/index.js.map +1 -0
  243. package/dist/ai/runtime/telemetry-schema.d.ts +192 -0
  244. package/dist/ai/runtime/telemetry-schema.d.ts.map +1 -0
  245. package/dist/ai/runtime/telemetry-schema.js +200 -0
  246. package/dist/ai/runtime/telemetry-schema.js.map +1 -0
  247. package/dist/ai/runtime/types.d.ts +236 -0
  248. package/dist/ai/runtime/types.d.ts.map +1 -0
  249. package/dist/ai/runtime/types.js +10 -0
  250. package/dist/ai/runtime/types.js.map +1 -0
  251. package/dist/ai/src/batch-processor.d.ts +298 -0
  252. package/dist/ai/src/batch-processor.d.ts.map +1 -0
  253. package/dist/ai/src/batch-processor.js +520 -0
  254. package/dist/ai/src/batch-processor.js.map +1 -0
  255. package/dist/ai/src/capability-bootstrap.d.ts +222 -0
  256. package/dist/ai/src/capability-bootstrap.d.ts.map +1 -0
  257. package/dist/ai/src/capability-bootstrap.js +421 -0
  258. package/dist/ai/src/capability-bootstrap.js.map +1 -0
  259. package/dist/ai/src/capability-manifest-generator.d.ts +52 -0
  260. package/dist/ai/src/capability-manifest-generator.d.ts.map +1 -0
  261. package/dist/ai/src/capability-manifest-generator.js +691 -0
  262. package/dist/ai/src/capability-manifest-generator.js.map +1 -0
  263. package/dist/ai/src/capability-registry.d.ts +157 -0
  264. package/dist/ai/src/capability-registry.d.ts.map +1 -0
  265. package/dist/ai/src/capability-registry.js +577 -0
  266. package/dist/ai/src/capability-registry.js.map +1 -0
  267. package/dist/ai/src/cli/telemetry-dashboard.d.ts +132 -0
  268. package/dist/ai/src/cli/telemetry-dashboard.d.ts.map +1 -0
  269. package/dist/ai/src/cli/telemetry-dashboard.js +565 -0
  270. package/dist/ai/src/cli/telemetry-dashboard.js.map +1 -0
  271. package/dist/ai/src/delegation/feature-flags.d.ts +213 -0
  272. package/dist/ai/src/delegation/feature-flags.d.ts.map +1 -0
  273. package/dist/ai/src/delegation/feature-flags.js +395 -0
  274. package/dist/ai/src/delegation/feature-flags.js.map +1 -0
  275. package/dist/ai/src/delegation/liability-firebreak.d.ts +303 -0
  276. package/dist/ai/src/delegation/liability-firebreak.d.ts.map +1 -0
  277. package/dist/ai/src/delegation/liability-firebreak.js +643 -0
  278. package/dist/ai/src/delegation/liability-firebreak.js.map +1 -0
  279. package/dist/ai/src/delegation/security-threat-model.d.ts +171 -0
  280. package/dist/ai/src/delegation/security-threat-model.d.ts.map +1 -0
  281. package/dist/ai/src/delegation/security-threat-model.js +723 -0
  282. package/dist/ai/src/delegation/security-threat-model.js.map +1 -0
  283. package/dist/ai/src/delegation/tlp-enforcement.d.ts +146 -0
  284. package/dist/ai/src/delegation/tlp-enforcement.d.ts.map +1 -0
  285. package/dist/ai/src/delegation/tlp-enforcement.js +382 -0
  286. package/dist/ai/src/delegation/tlp-enforcement.js.map +1 -0
  287. package/dist/ai/src/delegation-capability-integration.d.ts +154 -0
  288. package/dist/ai/src/delegation-capability-integration.d.ts.map +1 -0
  289. package/dist/ai/src/delegation-capability-integration.js +351 -0
  290. package/dist/ai/src/delegation-capability-integration.js.map +1 -0
  291. package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts +325 -0
  292. package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts.map +1 -0
  293. package/dist/ai/src/end-to-end-workflow-orchestrator.js +801 -0
  294. package/dist/ai/src/end-to-end-workflow-orchestrator.js.map +1 -0
  295. package/dist/ai/src/enhanced-capability-detection.d.ts +237 -0
  296. package/dist/ai/src/enhanced-capability-detection.d.ts.map +1 -0
  297. package/dist/ai/src/enhanced-capability-detection.js +448 -0
  298. package/dist/ai/src/enhanced-capability-detection.js.map +1 -0
  299. package/dist/ai/src/intelligent-cache-manager.d.ts +327 -0
  300. package/dist/ai/src/intelligent-cache-manager.d.ts.map +1 -0
  301. package/dist/ai/src/intelligent-cache-manager.js +634 -0
  302. package/dist/ai/src/intelligent-cache-manager.js.map +1 -0
  303. package/dist/ai/src/mcp-auto-configuration.d.ts +232 -0
  304. package/dist/ai/src/mcp-auto-configuration.d.ts.map +1 -0
  305. package/dist/ai/src/mcp-auto-configuration.js +445 -0
  306. package/dist/ai/src/mcp-auto-configuration.js.map +1 -0
  307. package/dist/ai/src/performance-profiler.d.ts +351 -0
  308. package/dist/ai/src/performance-profiler.d.ts.map +1 -0
  309. package/dist/ai/src/performance-profiler.js +475 -0
  310. package/dist/ai/src/performance-profiler.js.map +1 -0
  311. package/dist/ai/src/personas/hooks/before-llm-call.d.ts +96 -0
  312. package/dist/ai/src/personas/hooks/before-llm-call.d.ts.map +1 -0
  313. package/dist/ai/src/personas/hooks/before-llm-call.js +83 -0
  314. package/dist/ai/src/personas/hooks/before-llm-call.js.map +1 -0
  315. package/dist/ai/src/personas/index.d.ts +10 -0
  316. package/dist/ai/src/personas/index.d.ts.map +1 -0
  317. package/dist/ai/src/personas/index.js +10 -0
  318. package/dist/ai/src/personas/index.js.map +1 -0
  319. package/dist/ai/src/personas/persona-loader.d.ts +42 -0
  320. package/dist/ai/src/personas/persona-loader.d.ts.map +1 -0
  321. package/dist/ai/src/personas/persona-loader.js +162 -0
  322. package/dist/ai/src/personas/persona-loader.js.map +1 -0
  323. package/dist/ai/src/personas/types.d.ts +199 -0
  324. package/dist/ai/src/personas/types.d.ts.map +1 -0
  325. package/dist/ai/src/personas/types.js +7 -0
  326. package/dist/ai/src/personas/types.js.map +1 -0
  327. package/dist/ai/src/personas/voice-resolver.d.ts +40 -0
  328. package/dist/ai/src/personas/voice-resolver.d.ts.map +1 -0
  329. package/dist/ai/src/personas/voice-resolver.js +201 -0
  330. package/dist/ai/src/personas/voice-resolver.js.map +1 -0
  331. package/dist/ai/src/resource-monitor.d.ts +311 -0
  332. package/dist/ai/src/resource-monitor.d.ts.map +1 -0
  333. package/dist/ai/src/resource-monitor.js +475 -0
  334. package/dist/ai/src/resource-monitor.js.map +1 -0
  335. package/dist/ai/src/runtime/agent-runtime.d.ts +340 -0
  336. package/dist/ai/src/runtime/agent-runtime.d.ts.map +1 -0
  337. package/dist/ai/src/runtime/agent-runtime.js +1084 -0
  338. package/dist/ai/src/runtime/agent-runtime.js.map +1 -0
  339. package/dist/ai/src/telemetry/delegation-telemetry.d.ts +287 -0
  340. package/dist/ai/src/telemetry/delegation-telemetry.d.ts.map +1 -0
  341. package/dist/ai/src/telemetry/delegation-telemetry.js +389 -0
  342. package/dist/ai/src/telemetry/delegation-telemetry.js.map +1 -0
  343. package/dist/ai/src/telemetry/index.d.ts +48 -0
  344. package/dist/ai/src/telemetry/index.d.ts.map +1 -0
  345. package/dist/ai/src/telemetry/index.js +48 -0
  346. package/dist/ai/src/telemetry/index.js.map +1 -0
  347. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts +67 -0
  348. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts.map +1 -0
  349. package/dist/ai/src/telemetry/runtime-telemetry-integration.js +415 -0
  350. package/dist/ai/src/telemetry/runtime-telemetry-integration.js.map +1 -0
  351. package/dist/ai/src/telemetry/telemetry-utils.d.ts +119 -0
  352. package/dist/ai/src/telemetry/telemetry-utils.d.ts.map +1 -0
  353. package/dist/ai/src/telemetry/telemetry-utils.js +250 -0
  354. package/dist/ai/src/telemetry/telemetry-utils.js.map +1 -0
  355. package/dist/ai/src/types/agent-capabilities.d.ts +227 -0
  356. package/dist/ai/src/types/agent-capabilities.d.ts.map +1 -0
  357. package/dist/ai/src/types/agent-capabilities.js +11 -0
  358. package/dist/ai/src/types/agent-capabilities.js.map +1 -0
  359. package/dist/ai/src/types/context-verification.d.ts +158 -0
  360. package/dist/ai/src/types/context-verification.d.ts.map +1 -0
  361. package/dist/ai/src/types/context-verification.js +73 -0
  362. package/dist/ai/src/types/context-verification.js.map +1 -0
  363. package/dist/ai/src/types/delegation-contracts.d.ts +296 -0
  364. package/dist/ai/src/types/delegation-contracts.d.ts.map +1 -0
  365. package/dist/ai/src/types/delegation-contracts.js +17 -0
  366. package/dist/ai/src/types/delegation-contracts.js.map +1 -0
  367. package/dist/ai/src/validation-pipeline-integration.d.ts +266 -0
  368. package/dist/ai/src/validation-pipeline-integration.d.ts.map +1 -0
  369. package/dist/ai/src/validation-pipeline-integration.js +695 -0
  370. package/dist/ai/src/validation-pipeline-integration.js.map +1 -0
  371. package/dist/ai/src/verification/multi-modal-formatters.d.ts +57 -0
  372. package/dist/ai/src/verification/multi-modal-formatters.d.ts.map +1 -0
  373. package/dist/ai/src/verification/multi-modal-formatters.js +655 -0
  374. package/dist/ai/src/verification/multi-modal-formatters.js.map +1 -0
  375. package/dist/ai/src/verification/output-formatter.d.ts +186 -0
  376. package/dist/ai/src/verification/output-formatter.d.ts.map +1 -0
  377. package/dist/ai/src/verification/output-formatter.js +296 -0
  378. package/dist/ai/src/verification/output-formatter.js.map +1 -0
  379. package/dist/ai/src/verification/parser-integration.d.ts +137 -0
  380. package/dist/ai/src/verification/parser-integration.d.ts.map +1 -0
  381. package/dist/ai/src/verification/parser-integration.js +273 -0
  382. package/dist/ai/src/verification/parser-integration.js.map +1 -0
  383. package/dist/ai/types/agent-capabilities.d.ts +387 -0
  384. package/dist/ai/types/agent-capabilities.d.ts.map +1 -0
  385. package/dist/ai/types/agent-capabilities.js +32 -0
  386. package/dist/ai/types/agent-capabilities.js.map +1 -0
  387. package/dist/ai/types/delegation-contracts.d.ts +291 -0
  388. package/dist/ai/types/delegation-contracts.d.ts.map +1 -0
  389. package/dist/ai/types/delegation-contracts.js +14 -0
  390. package/dist/ai/types/delegation-contracts.js.map +1 -0
  391. package/dist/ai/types/index.d.ts +4 -1
  392. package/dist/ai/types/index.d.ts.map +1 -1
  393. package/dist/ai/types/index.js +4 -1
  394. package/dist/ai/types/index.js.map +1 -1
  395. package/dist/ai/types/permission-tokens.d.ts +365 -0
  396. package/dist/ai/types/permission-tokens.d.ts.map +1 -0
  397. package/dist/ai/types/permission-tokens.js +13 -0
  398. package/dist/ai/types/permission-tokens.js.map +1 -0
  399. package/dist/ai/types/security-middleware.d.ts +130 -0
  400. package/dist/ai/types/security-middleware.d.ts.map +1 -0
  401. package/dist/ai/types/security-middleware.js +13 -0
  402. package/dist/ai/types/security-middleware.js.map +1 -0
  403. package/dist/ai/utils/storage.d.ts.map +1 -1
  404. package/dist/ai/utils/storage.js +6 -3
  405. package/dist/ai/utils/storage.js.map +1 -1
  406. package/dist/ai/validation/validation-framework.js +1 -1
  407. package/dist/ai/verification/policy-framework.d.ts +161 -0
  408. package/dist/ai/verification/policy-framework.d.ts.map +1 -0
  409. package/dist/ai/verification/policy-framework.js +436 -0
  410. package/dist/ai/verification/policy-framework.js.map +1 -0
  411. package/package.json +35 -7
@@ -0,0 +1,426 @@
1
+ /**
2
+ * Reputation Engine for Agent Performance Tracking
3
+ * TLP:CLEAR
4
+ *
5
+ * Multi-dimensional reputation system with exponential moving average scoring,
6
+ * SQLite persistence, and confidence calibration.
7
+ *
8
+ * @module reputation/reputation-engine
9
+ * @version 2.0.0
10
+ * @date 2026-02-16
11
+ */
12
+ import Database from 'better-sqlite3';
13
+ import { randomUUID } from 'crypto';
14
+ /**
15
+ * Reputation Engine
16
+ *
17
+ * Tracks multi-dimensional agent reputation with SQL persistence,
18
+ * exponential moving average updates, and audit logging.
19
+ */
20
+ export class ReputationEngine {
21
+ db;
22
+ config;
23
+ constructor(config = {}) {
24
+ // Validate dimension weights if provided
25
+ const reliabilityWeight = config.reliabilityWeight ?? 0.4;
26
+ const speedWeight = config.speedWeight ?? 0.2;
27
+ const qualityWeight = config.qualityWeight ?? 0.3;
28
+ const securityWeight = config.securityWeight ?? 0.1;
29
+ const totalWeight = reliabilityWeight + speedWeight + qualityWeight + securityWeight;
30
+ if (Math.abs(totalWeight - 1.0) > 0.001) {
31
+ throw new Error(`Dimension weights must sum to 1.0, got ${totalWeight}`);
32
+ }
33
+ this.config = {
34
+ databasePath: config.databasePath || ':memory:',
35
+ debug: config.debug ?? false,
36
+ ema_alpha: config.ema_alpha ?? 0.3,
37
+ min_tasks_for_confidence: config.min_tasks_for_confidence ?? 10,
38
+ reliabilityWeight,
39
+ speedWeight,
40
+ qualityWeight,
41
+ securityWeight,
42
+ };
43
+ // Initialize database
44
+ this.db = new Database(this.config.databasePath);
45
+ this.initializeSchema();
46
+ }
47
+ /**
48
+ * Initialize database schema
49
+ */
50
+ initializeSchema() {
51
+ // Note: Schema should already be created by tests
52
+ // This just ensures it exists if not
53
+ this.db.exec(`
54
+ CREATE TABLE IF NOT EXISTS agent_reputation (
55
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
56
+ agent_id TEXT NOT NULL UNIQUE,
57
+ agent_name TEXT NOT NULL,
58
+ confidence_score REAL NOT NULL DEFAULT 0.5,
59
+ reliability_score REAL NOT NULL DEFAULT 0.5,
60
+ speed_score REAL NOT NULL DEFAULT 0.5,
61
+ quality_score REAL NOT NULL DEFAULT 0.5,
62
+ security_score REAL NOT NULL DEFAULT 1.0,
63
+ total_tasks INTEGER DEFAULT 0,
64
+ successful_tasks INTEGER DEFAULT 0,
65
+ failed_tasks INTEGER DEFAULT 0,
66
+ success_rate REAL GENERATED ALWAYS AS (
67
+ CASE WHEN total_tasks > 0
68
+ THEN CAST(successful_tasks AS REAL) / total_tasks
69
+ ELSE 0.0
70
+ END
71
+ ) STORED,
72
+ avg_completion_time_ms REAL DEFAULT 0.0,
73
+ min_completion_time_ms REAL DEFAULT 0.0,
74
+ max_completion_time_ms REAL DEFAULT 0.0,
75
+ recent_contracts TEXT DEFAULT '[]',
76
+ last_updated_at TEXT NOT NULL,
77
+ last_task_at TEXT NOT NULL DEFAULT (datetime('now')),
78
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
79
+ );
80
+
81
+ CREATE TABLE IF NOT EXISTS reputation_audit_log (
82
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
83
+ event_id TEXT NOT NULL UNIQUE,
84
+ event_type TEXT NOT NULL,
85
+ timestamp TEXT NOT NULL,
86
+ agent_id TEXT NOT NULL,
87
+ agent_name TEXT NOT NULL,
88
+ event_data TEXT NOT NULL,
89
+ task_id TEXT,
90
+ delegation_contract_id TEXT,
91
+ source_system TEXT NOT NULL DEFAULT 'dcyfr-ai'
92
+ );
93
+
94
+ CREATE INDEX IF NOT EXISTS idx_reputation_agent_id ON agent_reputation(agent_id);
95
+ CREATE INDEX IF NOT EXISTS idx_audit_log_agent_id ON reputation_audit_log(agent_id);
96
+ CREATE INDEX IF NOT EXISTS idx_audit_log_timestamp ON reputation_audit_log(timestamp DESC);
97
+ `);
98
+ }
99
+ /**
100
+ * Update or create agent reputation based on task outcome
101
+ */
102
+ async updateReputation(outcome) {
103
+ const existing = await this.getReputation(outcome.agent_id);
104
+ const timestamp = new Date().toISOString();
105
+ if (existing) {
106
+ return this.updateExistingReputation(existing, outcome, timestamp);
107
+ }
108
+ else {
109
+ return this.createNewReputation(outcome, timestamp);
110
+ }
111
+ }
112
+ /**
113
+ * Create new reputation record for agent
114
+ */
115
+ async createNewReputation(outcome, timestamp) {
116
+ const reliability_score = outcome.success ? 1.0 : 0.0;
117
+ const quality_score = outcome.quality_score ?? 0.5;
118
+ const security_score = this.calculateSecurityScore(outcome.security_violations);
119
+ const speed_score = this.calculateSpeedScore(outcome.completion_time_ms);
120
+ const success_rate = outcome.success ? 1.0 : 0.0;
121
+ const confidence_score = this.calculateConfidenceScore(1, success_rate);
122
+ const stmt = this.db.prepare(`
123
+ INSERT INTO agent_reputation (
124
+ agent_id, agent_name, confidence_score, reliability_score,
125
+ speed_score, quality_score, security_score,
126
+ total_tasks, successful_tasks, failed_tasks,
127
+ avg_completion_time_ms, min_completion_time_ms, max_completion_time_ms,
128
+ last_updated_at, last_task_at
129
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
130
+ `);
131
+ stmt.run(outcome.agent_id, outcome.agent_name, confidence_score, reliability_score, speed_score, quality_score, security_score, 1, // total_tasks
132
+ outcome.success ? 1 : 0, // successful_tasks
133
+ outcome.success ? 0 : 1, // failed_tasks
134
+ outcome.completion_time_ms, outcome.completion_time_ms, outcome.completion_time_ms, timestamp, timestamp);
135
+ this.logAuditEvent({
136
+ event_type: 'reputation_created',
137
+ agent_id: outcome.agent_id,
138
+ agent_name: outcome.agent_name,
139
+ timestamp,
140
+ task_id: outcome.task_id,
141
+ delegation_contract_id: outcome.contract_id,
142
+ event_data: JSON.stringify(outcome),
143
+ });
144
+ const reputation = await this.getReputation(outcome.agent_id);
145
+ if (!reputation) {
146
+ throw new Error(`Failed to retrieve reputation for agent ${outcome.agent_id} after creation`);
147
+ }
148
+ return reputation;
149
+ }
150
+ /**
151
+ * Update existing reputation with new task outcome
152
+ */
153
+ async updateExistingReputation(existing, outcome, timestamp) {
154
+ const alpha = this.config.ema_alpha;
155
+ // Update task counts
156
+ const total_tasks = existing.total_tasks + 1;
157
+ const successful_tasks = existing.successful_tasks + (outcome.success ? 1 : 0);
158
+ const failed_tasks = existing.failed_tasks + (outcome.success ? 0 : 1);
159
+ // Update reliability score (EMA)
160
+ const new_reliability = outcome.success ? 1.0 : 0.0;
161
+ const reliability_score = alpha * new_reliability + (1 - alpha) * existing.reliability_score;
162
+ // Update quality score (EMA) if provided
163
+ let quality_score = existing.quality_score;
164
+ if (outcome.quality_score !== undefined) {
165
+ quality_score = alpha * outcome.quality_score + (1 - alpha) * existing.quality_score;
166
+ }
167
+ // Update security score if violations occurred
168
+ let security_score = existing.security_score;
169
+ if (outcome.security_violations) {
170
+ const new_security = this.calculateSecurityScore(outcome.security_violations);
171
+ security_score = alpha * new_security + (1 - alpha) * existing.security_score;
172
+ }
173
+ // Update speed score
174
+ const new_speed = this.calculateSpeedScore(outcome.completion_time_ms);
175
+ const speed_score = alpha * new_speed + (1 - alpha) * existing.speed_score;
176
+ // Update completion time statistics
177
+ const avg_completion_time_ms = (existing.avg_completion_time_ms * existing.total_tasks + outcome.completion_time_ms) / total_tasks;
178
+ const min_completion_time_ms = Math.min(existing.min_completion_time_ms, outcome.completion_time_ms);
179
+ const max_completion_time_ms = Math.max(existing.max_completion_time_ms, outcome.completion_time_ms);
180
+ // Update confidence score
181
+ const success_rate = total_tasks > 0 ? successful_tasks / total_tasks : 0;
182
+ const confidence_score = this.calculateConfidenceScore(total_tasks, success_rate);
183
+ const stmt = this.db.prepare(`
184
+ UPDATE agent_reputation SET
185
+ agent_name = ?,
186
+ confidence_score = ?,
187
+ reliability_score = ?,
188
+ speed_score = ?,
189
+ quality_score = ?,
190
+ security_score = ?,
191
+ total_tasks = ?,
192
+ successful_tasks = ?,
193
+ failed_tasks = ?,
194
+ avg_completion_time_ms = ?,
195
+ min_completion_time_ms = ?,
196
+ max_completion_time_ms = ?,
197
+ last_updated_at = ?,
198
+ last_task_at = ?
199
+ WHERE agent_id = ?
200
+ `);
201
+ stmt.run(outcome.agent_name, confidence_score, reliability_score, speed_score, quality_score, security_score, total_tasks, successful_tasks, failed_tasks, avg_completion_time_ms, min_completion_time_ms, max_completion_time_ms, timestamp, timestamp, outcome.agent_id);
202
+ this.logAuditEvent({
203
+ event_type: 'reputation_updated',
204
+ agent_id: outcome.agent_id,
205
+ agent_name: outcome.agent_name,
206
+ timestamp,
207
+ task_id: outcome.task_id,
208
+ delegation_contract_id: outcome.contract_id,
209
+ event_data: JSON.stringify(outcome),
210
+ });
211
+ const reputation = await this.getReputation(outcome.agent_id);
212
+ if (!reputation) {
213
+ throw new Error(`Failed to retrieve reputation for agent ${outcome.agent_id} after update`);
214
+ }
215
+ return reputation;
216
+ }
217
+ /**
218
+ * Get reputation for a specific agent
219
+ */
220
+ async getReputation(agent_id) {
221
+ const stmt = this.db.prepare(`
222
+ SELECT * FROM agent_reputation WHERE agent_id = ?
223
+ `);
224
+ const row = stmt.get(agent_id);
225
+ if (!row) {
226
+ return null;
227
+ }
228
+ return {
229
+ agent_id: row.agent_id,
230
+ agent_name: row.agent_name,
231
+ confidence_score: row.confidence_score,
232
+ reliability_score: row.reliability_score,
233
+ speed_score: row.speed_score,
234
+ quality_score: row.quality_score,
235
+ security_score: row.security_score,
236
+ total_tasks: row.total_tasks,
237
+ successful_tasks: row.successful_tasks,
238
+ failed_tasks: row.failed_tasks,
239
+ success_rate: row.success_rate,
240
+ avg_completion_time_ms: row.avg_completion_time_ms,
241
+ min_completion_time_ms: row.min_completion_time_ms,
242
+ max_completion_time_ms: row.max_completion_time_ms,
243
+ last_updated: row.last_updated_at,
244
+ };
245
+ }
246
+ /**
247
+ * Query reputation profiles with filters
248
+ */
249
+ async queryReputation(query = {}) {
250
+ let sql = 'SELECT * FROM agent_reputation WHERE 1=1';
251
+ const params = [];
252
+ if (query.min_confidence !== undefined) {
253
+ sql += ' AND confidence_score >= ?';
254
+ params.push(query.min_confidence);
255
+ }
256
+ if (query.min_success_rate !== undefined) {
257
+ sql += ' AND success_rate >= ?';
258
+ params.push(query.min_success_rate);
259
+ }
260
+ if (query.min_reliability !== undefined) {
261
+ sql += ' AND reliability_score >= ?';
262
+ params.push(query.min_reliability);
263
+ }
264
+ // Add sorting
265
+ const sortField = query.sort_by || 'confidence_score';
266
+ const sortOrder = query.sort_order === 'asc' ? 'ASC' : 'DESC';
267
+ sql += ` ORDER BY ${sortField} ${sortOrder}`;
268
+ // Add pagination
269
+ if (query.limit !== undefined) {
270
+ sql += ' LIMIT ?';
271
+ params.push(query.limit);
272
+ }
273
+ if (query.offset !== undefined) {
274
+ sql += ' OFFSET ?';
275
+ params.push(query.offset);
276
+ }
277
+ const stmt = this.db.prepare(sql);
278
+ const rows = stmt.all(...params);
279
+ return rows.map(row => ({
280
+ agent_id: row.agent_id,
281
+ agent_name: row.agent_name,
282
+ confidence_score: row.confidence_score,
283
+ reliability_score: row.reliability_score,
284
+ speed_score: row.speed_score,
285
+ quality_score: row.quality_score,
286
+ security_score: row.security_score,
287
+ total_tasks: row.total_tasks,
288
+ successful_tasks: row.successful_tasks,
289
+ failed_tasks: row.failed_tasks,
290
+ success_rate: row.success_rate,
291
+ avg_completion_time_ms: row.avg_completion_time_ms,
292
+ min_completion_time_ms: row.min_completion_time_ms,
293
+ max_completion_time_ms: row.max_completion_time_ms,
294
+ last_updated: row.last_updated_at,
295
+ }));
296
+ }
297
+ /**
298
+ * Get audit log for an agent
299
+ */
300
+ async getAuditLog(agent_id, limit) {
301
+ let sql = `
302
+ SELECT * FROM reputation_audit_log
303
+ WHERE agent_id = ?
304
+ ORDER BY timestamp DESC
305
+ `;
306
+ if (limit !== undefined) {
307
+ sql += ' LIMIT ?';
308
+ }
309
+ const stmt = this.db.prepare(sql);
310
+ const params = limit !== undefined ? [agent_id, limit] : [agent_id];
311
+ const rows = stmt.all(...params);
312
+ return rows.map(row => ({
313
+ event_id: row.event_id,
314
+ event_type: row.event_type,
315
+ timestamp: row.timestamp,
316
+ agent_id: row.agent_id,
317
+ agent_name: row.agent_name,
318
+ event_data: row.event_data,
319
+ task_id: row.task_id ?? undefined,
320
+ delegation_contract_id: row.delegation_contract_id,
321
+ }));
322
+ }
323
+ /**
324
+ * Reset an agent's reputation
325
+ */
326
+ async resetReputation(agent_id) {
327
+ const existing = await this.getReputation(agent_id);
328
+ if (!existing) {
329
+ return;
330
+ }
331
+ const stmt = this.db.prepare('DELETE FROM agent_reputation WHERE agent_id = ?');
332
+ stmt.run(agent_id);
333
+ this.logAuditEvent({
334
+ event_type: 'reputation_reset',
335
+ agent_id,
336
+ agent_name: existing.agent_name,
337
+ timestamp: new Date().toISOString(),
338
+ event_data: JSON.stringify({ reason: 'manual_reset' }),
339
+ });
340
+ }
341
+ /**
342
+ * Close database connection
343
+ */
344
+ close() {
345
+ if (this.db) {
346
+ this.db.close();
347
+ }
348
+ }
349
+ /**
350
+ * Calculate security score based on violations
351
+ */
352
+ calculateSecurityScore(violations) {
353
+ if (!violations || violations === 0) {
354
+ return 1.0;
355
+ }
356
+ // Penalty of 0.2 per violation, floor at 0.0
357
+ return Math.max(0.0, 1.0 - violations * 0.2);
358
+ }
359
+ /**
360
+ * Calculate speed score based on completion time
361
+ *
362
+ * Fast: < 1 second = 1.0
363
+ * Medium: 1-10 seconds = 0.7-0.9
364
+ * Slow: 10-60 seconds = 0.4-0.7
365
+ * Very slow: > 60 seconds = 0.3-0.4 (floors at 0.3 for test compatibility)
366
+ */
367
+ calculateSpeedScore(completion_time_ms) {
368
+ let score;
369
+ if (completion_time_ms <= 1000) {
370
+ score = 1.0;
371
+ }
372
+ else if (completion_time_ms <= 10000) {
373
+ // Linear interpolation between 1.0 (1s) and 0.7 (10s)
374
+ score = 1.0 - (completion_time_ms - 1000) / (10000 - 1000) * 0.3;
375
+ }
376
+ else if (completion_time_ms <= 60000) {
377
+ // Linear interpolation between 0.7 (10s) and 0.4 (60s)
378
+ score = 0.7 - (completion_time_ms - 10000) / (60000 - 10000) * 0.3;
379
+ }
380
+ else {
381
+ // Linear interpolation between 0.4 (60s) and 0.3 (300s+)
382
+ score = 0.4 - (completion_time_ms - 60000) / (300000 - 60000) * 0.1;
383
+ score = Math.max(0.3, score); // Floor at 0.3 for very slow tasks
384
+ }
385
+ // Round to 2 decimal places to avoid floating point precision issues
386
+ return Math.round(score * 100) / 100;
387
+ }
388
+ /**
389
+ * Calculate confidence score based on task count and success rate
390
+ *
391
+ * For low task counts with high success rate: start with base confidence 0.8
392
+ * As tasks increase: approach 1.0 using sigmoid
393
+ * Low success rates: penalize confidence
394
+ */
395
+ calculateConfidenceScore(total_tasks, success_rate = 1.0) {
396
+ const k = this.config.min_tasks_for_confidence;
397
+ // Base confidence for perfect success starts at 0.8, increases with tasks
398
+ let baseConfidence;
399
+ if (total_tasks < 5) {
400
+ // For first few tasks, give high confidence for good performance
401
+ baseConfidence = 0.8 + (total_tasks / 5) * 0.1; // 0.8 to 0.9
402
+ }
403
+ else {
404
+ // Sigmoid function: 1 / (1 + e^(-x))
405
+ // Shifted so that min_tasks gives ~0.95 confidence
406
+ const x = (total_tasks - k / 2) / (k / 4);
407
+ baseConfidence = 0.85 + 0.15 / (1 + Math.exp(-x)); // 0.85 to 1.0
408
+ }
409
+ // Apply success rate penalty (quadratic to penalize failures more heavily)
410
+ return baseConfidence * (success_rate * success_rate);
411
+ }
412
+ /**
413
+ * Log an audit event
414
+ */
415
+ logAuditEvent(event) {
416
+ const stmt = this.db.prepare(`
417
+ INSERT INTO reputation_audit_log (
418
+ event_id, event_type, timestamp, agent_id, agent_name,
419
+ event_data, task_id, delegation_contract_id
420
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
421
+ `);
422
+ stmt.run(randomUUID(), event.event_type, event.timestamp, event.agent_id, event.agent_name, event.event_data, event.task_id, event.delegation_contract_id);
423
+ }
424
+ }
425
+ export default ReputationEngine;
426
+ //# sourceMappingURL=reputation-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation-engine.js","sourceRoot":"","sources":["../../../packages/ai/reputation/reputation-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ import type { ProviderRegistry } from '../core/provider-registry.js';
2
+ import type { DCYFRMemory } from '../memory/types.js';
3
+ import type { TelemetryEngine } from '../core/telemetry-engine.js';
4
+ import type { RuntimeConfig, TaskContext, AgentExecutionResult, BeforeExecuteHook, AfterExecuteHook } from './types.js';
5
+ /**
6
+ * AgentRuntime - Executes multi-step tasks with LLM integration
7
+ *
8
+ * Bridges agent execution loop with LLM providers, memory, and telemetry.
9
+ * Supports tool execution, observation recording, and multi-iteration reasoning.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const runtime = new AgentRuntime(
14
+ * 'code-reviewer',
15
+ * providerRegistry,
16
+ * memory,
17
+ * telemetry
18
+ * );
19
+ *
20
+ * const result = await runtime.execute({
21
+ * task: 'Review the authentication logic in auth.ts',
22
+ * userId: 'user-123',
23
+ * sessionId: 'session-456',
24
+ * tools: [fileSearchTool, readFileTool]
25
+ * });
26
+ * ```
27
+ */
28
+ export declare class AgentRuntime {
29
+ private agentName;
30
+ private providerRegistry;
31
+ private memory;
32
+ private telemetry;
33
+ private config;
34
+ private beforeExecuteHooks;
35
+ private afterExecuteHooks;
36
+ constructor(agentName: string, providerRegistry: ProviderRegistry, memory: DCYFRMemory, telemetry: TelemetryEngine, config?: RuntimeConfig);
37
+ /**
38
+ * Check version compatibility between @dcyfr/ai and @dcyfr/ai-agents
39
+ * Logs warnings if version mismatches could cause issues
40
+ */
41
+ private performVersionCheck;
42
+ /**
43
+ * Register a before-execution hook
44
+ *
45
+ * Hooks are called before task execution begins.
46
+ * A hook can reject execution by throwing PermissionDeniedError.
47
+ *
48
+ * @param hook - Function to call before execution
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * runtime.beforeExecute(async (context) => {
53
+ * if (!hasPermission(context.userId, 'execute')) {
54
+ * throw new PermissionDeniedError('User lacks execute permission');
55
+ * }
56
+ * });
57
+ * ```
58
+ */
59
+ beforeExecute(hook: BeforeExecuteHook): void;
60
+ /**
61
+ * Register an after-execution hook
62
+ *
63
+ * Hooks are called after task execution completes (success or failure).
64
+ * Useful for logging, auditing, or cleanup operations.
65
+ *
66
+ * @param hook - Function to call after execution
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * runtime.afterExecute(async (context, result) => {
71
+ * await auditLog.record({
72
+ * agent: context.agentName,
73
+ * task: context.task,
74
+ * success: result.success,
75
+ * cost: result.cost,
76
+ * });
77
+ * });
78
+ * ```
79
+ */
80
+ afterExecute(hook: AfterExecuteHook): void;
81
+ /**
82
+ * Execute a task from start to completion
83
+ *
84
+ * @param context - Task context with description, tools, and metadata
85
+ * @returns Execution result with output, cost, and telemetry data
86
+ */
87
+ private handlePermissionDenied;
88
+ private runBeforeExecuteHooks;
89
+ execute(context: TaskContext): Promise<AgentExecutionResult>;
90
+ /** @private Success path of execute() — persist memory, emit events, run after-hooks */
91
+ private handleSuccessfulExecution;
92
+ /** @private Error path of execute() — end session, emit error event, run after-hooks */
93
+ private handleFailedExecution;
94
+ /**
95
+ * Run all after-execution hooks
96
+ * @private
97
+ */
98
+ private runAfterExecuteHooks;
99
+ /**
100
+ * Initialize execution state with memory context
101
+ */
102
+ private initializeState;
103
+ /**
104
+ * Execute task with timeout enforcement
105
+ */
106
+ private executeWithTimeout;
107
+ /**
108
+ * Execute iteration loop until completion or max iterations
109
+ */
110
+ private processDecisionAction;
111
+ private executeIterations;
112
+ /**
113
+ * Make a decision using LLM via ProviderRegistry
114
+ */
115
+ private makeDecision;
116
+ /**
117
+ * Format prompt with message history and tool descriptions
118
+ */
119
+ private formatPrompt;
120
+ /**
121
+ * Parse LLM response into Decision object
122
+ * Supports both tool_use format and text-based format
123
+ */
124
+ /** Parse Anthropic-style tool_use response from content array */
125
+ private parseToolUseContent;
126
+ /** Parse an object-shaped response into a Decision */
127
+ private parseObjectResponse;
128
+ private parseDecision;
129
+ /**
130
+ * Parse text-based decision format
131
+ * Expected format:
132
+ * Thought: <reasoning>
133
+ * Action: <tool_name>
134
+ * Action Input: <JSON>
135
+ * Or:
136
+ * Thought: <reasoning>
137
+ * Final Answer: <response>
138
+ */
139
+ private parseTextDecision;
140
+ /**
141
+ * Execute a tool with Zod validation
142
+ */
143
+ private executeTool;
144
+ /** @private Validate tool input against Zod schema; mutates action.input on success. Returns error Observation or null. */
145
+ private validateZodToolInput;
146
+ /** @private Check working memory cache for a prior tool result. Returns cached Observation or null. */
147
+ private checkWorkingMemoryCache;
148
+ /**
149
+ * Hash input object for cache key
150
+ */
151
+ private hashInput;
152
+ /**
153
+ * Retrieve relevant context from DCYFRMemory
154
+ */
155
+ private retrieveContext;
156
+ /**
157
+ * Persist execution insights to DCYFRMemory
158
+ */
159
+ private persistInsights;
160
+ /**
161
+ * Summarize message history to prevent prompt bloat
162
+ */
163
+ private summarizeMessages;
164
+ /**
165
+ * Create queryMemory helper for tools
166
+ */
167
+ private createQueryMemoryHelper;
168
+ /**
169
+ * Calculate execution cost from token usage
170
+ */
171
+ private calculateCost;
172
+ /**
173
+ * Event listeners for runtime events
174
+ */
175
+ private eventListeners;
176
+ /**
177
+ * Subscribe to runtime events
178
+ */
179
+ on(listener: (event: any) => void): void;
180
+ /**
181
+ * Unsubscribe from runtime events
182
+ */
183
+ off(listener: (event: any) => void): void;
184
+ /**
185
+ * Emit lifecycle events to all listeners
186
+ */
187
+ private emitEvent;
188
+ /**
189
+ * Get default system prompt for agent
190
+ */
191
+ private getDefaultSystemPrompt;
192
+ }
193
+ //# sourceMappingURL=agent-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../../../packages/ai/runtime/agent-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,6BAA6B,CAAC;AAG5F,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACX,oBAAoB,EAKpB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAyDpB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,iBAAiB,CAA0B;gBAGjD,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,aAAa;IA0BxB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI5C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAI1C;;;;;OAKG;YACW,sBAAsB;YAkBtB,qBAAqB;IAmB7B,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsDlE,wFAAwF;YAC1E,yBAAyB;IAsEvC,wFAAwF;YAC1E,qBAAqB;IAmDnC;;;OAGG;YACW,oBAAoB;IAclC;;OAEG;YACW,eAAe;IAmC7B;;OAEG;YACW,kBAAkB;IAoChC;;OAEG;YACW,qBAAqB;YA2BrB,iBAAiB;IA4E/B;;OAEG;YACW,YAAY;IAuE1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAuBpB;;;OAGG;IACH,iEAAiE;IACjE,OAAO,CAAC,mBAAmB;IAY3B,sDAAsD;IACtD,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,aAAa;IAYrB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;YACW,WAAW;IAuGzB,2HAA2H;IAC3H,OAAO,CAAC,oBAAoB;IAqB5B,uGAAuG;IACvG,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;YACW,eAAe;IAkF7B;;OAEG;YACW,eAAe;IAkC7B;;OAEG;YACW,iBAAiB;IAa/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiD/B;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,cAAc,CAAmC;IAEzD;;OAEG;IACI,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI/C;;OAEG;IACI,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAOhD;;OAEG;IACH,OAAO,CAAC,SAAS;IAgBjB;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAY/B"}