@dcyfr/ai 2.1.3 → 3.0.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 (468) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +75 -10
  3. package/config/default.json +11 -5
  4. package/config/default.yaml +13 -5
  5. package/dist/.tsbuildinfo +1 -0
  6. package/dist/ai/agents/agent-loader.d.ts.map +1 -1
  7. package/dist/ai/agents/agent-loader.js +1 -0
  8. package/dist/ai/agents/agent-loader.js.map +1 -1
  9. package/dist/ai/agents/agent-registry.d.ts.map +1 -1
  10. package/dist/ai/agents/agent-registry.js.map +1 -1
  11. package/dist/ai/agents/agent-router.d.ts +3 -3
  12. package/dist/ai/agents/agent-router.d.ts.map +1 -1
  13. package/dist/ai/agents/agent-router.js +6 -7
  14. package/dist/ai/agents/agent-router.js.map +1 -1
  15. package/dist/ai/config/schema.js +3 -3
  16. package/dist/ai/config/schema.js.map +1 -1
  17. package/dist/ai/core/provider-registry.d.ts.map +1 -1
  18. package/dist/ai/core/provider-registry.js +47 -16
  19. package/dist/ai/core/provider-registry.js.map +1 -1
  20. package/dist/ai/core/telemetry-engine.d.ts.map +1 -1
  21. package/dist/ai/core/telemetry-engine.js +5 -3
  22. package/dist/ai/core/telemetry-engine.js.map +1 -1
  23. package/dist/ai/delegation/capability-bootstrap.js +1 -1
  24. package/dist/ai/delegation/capability-bootstrap.js.map +1 -1
  25. package/dist/ai/delegation/contract-manager.d.ts +54 -5
  26. package/dist/ai/delegation/contract-manager.d.ts.map +1 -1
  27. package/dist/ai/delegation/contract-manager.js +122 -7
  28. package/dist/ai/delegation/contract-manager.js.map +1 -1
  29. package/dist/ai/delegation/feature-flags.d.ts +1 -1
  30. package/dist/ai/delegation/feature-flags.d.ts.map +1 -1
  31. package/dist/ai/delegation/feature-flags.js +3 -1
  32. package/dist/ai/delegation/feature-flags.js.map +1 -1
  33. package/dist/ai/delegation/index.d.ts +1 -0
  34. package/dist/ai/delegation/index.d.ts.map +1 -1
  35. package/dist/ai/delegation/index.js +2 -0
  36. package/dist/ai/delegation/index.js.map +1 -1
  37. package/dist/ai/delegation/monitoring.d.ts.map +1 -1
  38. package/dist/ai/delegation/monitoring.js +1 -0
  39. package/dist/ai/delegation/monitoring.js.map +1 -1
  40. package/dist/ai/delegation/session-manager.d.ts +16 -1
  41. package/dist/ai/delegation/session-manager.d.ts.map +1 -1
  42. package/dist/ai/delegation/session-manager.js +10 -1
  43. package/dist/ai/delegation/session-manager.js.map +1 -1
  44. package/dist/ai/delegation/session-queue.d.ts.map +1 -1
  45. package/dist/ai/delegation/session-queue.js.map +1 -1
  46. package/dist/ai/examples/integration-demo.d.ts.map +1 -1
  47. package/dist/ai/examples/integration-demo.js +1 -0
  48. package/dist/ai/examples/integration-demo.js.map +1 -1
  49. package/dist/ai/index.d.ts +7 -0
  50. package/dist/ai/index.d.ts.map +1 -1
  51. package/dist/ai/index.js +8 -0
  52. package/dist/ai/index.js.map +1 -1
  53. package/dist/ai/mcp/mcp-registry.d.ts.map +1 -1
  54. package/dist/ai/mcp/mcp-registry.js +1 -1
  55. package/dist/ai/mcp/mcp-registry.js.map +1 -1
  56. package/dist/ai/mcp/servers/analytics/index.d.ts.map +1 -1
  57. package/dist/ai/mcp/servers/analytics/index.js +1 -0
  58. package/dist/ai/mcp/servers/analytics/index.js.map +1 -1
  59. package/dist/ai/mcp/servers/content-manager/index.d.ts.map +1 -1
  60. package/dist/ai/mcp/servers/delegation-monitor/index.js +27 -27
  61. package/dist/ai/mcp/servers/delegation-monitor/index.js.map +1 -1
  62. package/dist/ai/mcp/servers/design-tokens/index.js +1 -1
  63. package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -1
  64. package/dist/ai/mcp/servers/promptintel/index.d.ts.map +1 -1
  65. package/dist/ai/mcp/servers/promptintel/index.js +2 -1
  66. package/dist/ai/mcp/servers/promptintel/index.js.map +1 -1
  67. package/dist/ai/mcp/servers/shared/rate-limiter.d.ts.map +1 -1
  68. package/dist/ai/mcp/servers/shared/rate-limiter.js +1 -0
  69. package/dist/ai/mcp/servers/shared/rate-limiter.js.map +1 -1
  70. package/dist/ai/mcp/servers/shared/redis-client.d.ts.map +1 -1
  71. package/dist/ai/mcp/servers/shared/redis-client.js +2 -0
  72. package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -1
  73. package/dist/ai/mcp/servers/shared/utils.js +12 -18
  74. package/dist/ai/mcp/servers/shared/utils.js.map +1 -1
  75. package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -1
  76. package/dist/ai/memory/dcyfr-memory.js +11 -1
  77. package/dist/ai/memory/dcyfr-memory.js.map +1 -1
  78. package/dist/ai/memory/file-memory-adapter.d.ts +103 -0
  79. package/dist/ai/memory/file-memory-adapter.d.ts.map +1 -0
  80. package/dist/ai/memory/file-memory-adapter.js +532 -0
  81. package/dist/ai/memory/file-memory-adapter.js.map +1 -0
  82. package/dist/ai/memory/index.d.ts +6 -0
  83. package/dist/ai/memory/index.d.ts.map +1 -1
  84. package/dist/ai/memory/index.js +6 -0
  85. package/dist/ai/memory/index.js.map +1 -1
  86. package/dist/ai/memory/mem0-client.d.ts.map +1 -1
  87. package/dist/ai/memory/mem0-client.js +5 -2
  88. package/dist/ai/memory/mem0-client.js.map +1 -1
  89. package/dist/ai/memory/sqlite-index.d.ts +89 -0
  90. package/dist/ai/memory/sqlite-index.d.ts.map +1 -0
  91. package/dist/ai/memory/sqlite-index.js +295 -0
  92. package/dist/ai/memory/sqlite-index.js.map +1 -0
  93. package/dist/ai/memory/types.d.ts.map +1 -1
  94. package/dist/ai/memory/types.js +1 -0
  95. package/dist/ai/memory/types.js.map +1 -1
  96. package/dist/ai/memory/working-memory-persistence.d.ts +79 -0
  97. package/dist/ai/memory/working-memory-persistence.d.ts.map +1 -0
  98. package/dist/ai/memory/working-memory-persistence.js +220 -0
  99. package/dist/ai/memory/working-memory-persistence.js.map +1 -0
  100. package/dist/ai/permissions/attenuation-engine.d.ts.map +1 -1
  101. package/dist/ai/permissions/attenuation-engine.js.map +1 -1
  102. package/dist/ai/reputation/reputation-engine.d.ts +4 -0
  103. package/dist/ai/reputation/reputation-engine.d.ts.map +1 -1
  104. package/dist/ai/reputation/reputation-engine.js +1 -0
  105. package/dist/ai/reputation/reputation-engine.js.map +1 -1
  106. package/dist/ai/runtime/agent-runtime.d.ts.map +1 -1
  107. package/dist/ai/runtime/agent-runtime.js +9 -5
  108. package/dist/ai/runtime/agent-runtime.js.map +1 -1
  109. package/dist/ai/src/batch-processor.d.ts +6 -6
  110. package/dist/ai/src/batch-processor.d.ts.map +1 -1
  111. package/dist/ai/src/batch-processor.js +11 -4
  112. package/dist/ai/src/batch-processor.js.map +1 -1
  113. package/dist/ai/src/capability-bootstrap.d.ts.map +1 -1
  114. package/dist/ai/src/capability-bootstrap.js +1 -0
  115. package/dist/ai/src/capability-bootstrap.js.map +1 -1
  116. package/dist/ai/src/capability-registry.js +1 -1
  117. package/dist/ai/src/capability-registry.js.map +1 -1
  118. package/dist/ai/src/cli/telemetry-dashboard.d.ts +0 -11
  119. package/dist/ai/src/cli/telemetry-dashboard.d.ts.map +1 -1
  120. package/dist/ai/src/cli/telemetry-dashboard.js +12 -6
  121. package/dist/ai/src/cli/telemetry-dashboard.js.map +1 -1
  122. package/dist/ai/src/compaction/context-compactor.d.ts +149 -0
  123. package/dist/ai/src/compaction/context-compactor.d.ts.map +1 -0
  124. package/dist/ai/src/compaction/context-compactor.js +302 -0
  125. package/dist/ai/src/compaction/context-compactor.js.map +1 -0
  126. package/dist/ai/src/compaction/index.d.ts +11 -0
  127. package/dist/ai/src/compaction/index.d.ts.map +1 -0
  128. package/dist/ai/src/compaction/index.js +11 -0
  129. package/dist/ai/src/compaction/index.js.map +1 -0
  130. package/dist/ai/src/compaction/memory-compaction.d.ts +138 -0
  131. package/dist/ai/src/compaction/memory-compaction.d.ts.map +1 -0
  132. package/dist/ai/src/compaction/memory-compaction.js +630 -0
  133. package/dist/ai/src/compaction/memory-compaction.js.map +1 -0
  134. package/dist/ai/src/container/agent-container-dispatcher.d.ts +154 -0
  135. package/dist/ai/src/container/agent-container-dispatcher.d.ts.map +1 -0
  136. package/dist/ai/src/container/agent-container-dispatcher.js +329 -0
  137. package/dist/ai/src/container/agent-container-dispatcher.js.map +1 -0
  138. package/dist/ai/src/container/backend-factory.d.ts +89 -0
  139. package/dist/ai/src/container/backend-factory.d.ts.map +1 -0
  140. package/dist/ai/src/container/backend-factory.js +169 -0
  141. package/dist/ai/src/container/backend-factory.js.map +1 -0
  142. package/dist/ai/src/container/index.d.ts +13 -0
  143. package/dist/ai/src/container/index.d.ts.map +1 -0
  144. package/dist/ai/src/container/index.js +13 -0
  145. package/dist/ai/src/container/index.js.map +1 -0
  146. package/dist/ai/src/container/kubernetes-backend.d.ts +23 -0
  147. package/dist/ai/src/container/kubernetes-backend.d.ts.map +1 -0
  148. package/dist/ai/src/container/kubernetes-backend.js +39 -0
  149. package/dist/ai/src/container/kubernetes-backend.js.map +1 -0
  150. package/dist/ai/src/container/local-docker-backend.d.ts +77 -0
  151. package/dist/ai/src/container/local-docker-backend.d.ts.map +1 -0
  152. package/dist/ai/src/container/local-docker-backend.js +362 -0
  153. package/dist/ai/src/container/local-docker-backend.js.map +1 -0
  154. package/dist/ai/src/container/remote-docker-backend.d.ts +35 -0
  155. package/dist/ai/src/container/remote-docker-backend.d.ts.map +1 -0
  156. package/dist/ai/src/container/remote-docker-backend.js +189 -0
  157. package/dist/ai/src/container/remote-docker-backend.js.map +1 -0
  158. package/dist/ai/src/container/types.d.ts +270 -0
  159. package/dist/ai/src/container/types.d.ts.map +1 -0
  160. package/dist/ai/src/container/types.js +86 -0
  161. package/dist/ai/src/container/types.js.map +1 -0
  162. package/dist/ai/src/delegation/feature-flags.d.ts.map +1 -1
  163. package/dist/ai/src/delegation/feature-flags.js +1 -0
  164. package/dist/ai/src/delegation/feature-flags.js.map +1 -1
  165. package/dist/ai/src/delegation/liability-firebreak.d.ts.map +1 -1
  166. package/dist/ai/src/delegation/liability-firebreak.js +1 -0
  167. package/dist/ai/src/delegation/liability-firebreak.js.map +1 -1
  168. package/dist/ai/src/delegation/security-threat-model.d.ts.map +1 -1
  169. package/dist/ai/src/delegation/security-threat-model.js +1 -1
  170. package/dist/ai/src/delegation/security-threat-model.js.map +1 -1
  171. package/dist/ai/src/delegation-capability-integration.d.ts +1 -1
  172. package/dist/ai/src/delegation-capability-integration.d.ts.map +1 -1
  173. package/dist/ai/src/delegation-capability-integration.js +2 -7
  174. package/dist/ai/src/delegation-capability-integration.js.map +1 -1
  175. package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts.map +1 -1
  176. package/dist/ai/src/end-to-end-workflow-orchestrator.js +2 -1
  177. package/dist/ai/src/end-to-end-workflow-orchestrator.js.map +1 -1
  178. package/dist/ai/src/enhanced-capability-detection.d.ts +1 -1
  179. package/dist/ai/src/enhanced-capability-detection.d.ts.map +1 -1
  180. package/dist/ai/src/enhanced-capability-detection.js +1 -1
  181. package/dist/ai/src/enhanced-capability-detection.js.map +1 -1
  182. package/dist/ai/src/gateway/index.d.ts +6 -0
  183. package/dist/ai/src/gateway/index.d.ts.map +1 -0
  184. package/dist/ai/src/gateway/index.js +6 -0
  185. package/dist/ai/src/gateway/index.js.map +1 -0
  186. package/dist/ai/src/gateway/message-gateway.d.ts +296 -0
  187. package/dist/ai/src/gateway/message-gateway.d.ts.map +1 -0
  188. package/dist/ai/src/gateway/message-gateway.js +415 -0
  189. package/dist/ai/src/gateway/message-gateway.js.map +1 -0
  190. package/dist/ai/src/intelligent-cache-manager.d.ts.map +1 -1
  191. package/dist/ai/src/intelligent-cache-manager.js +2 -1
  192. package/dist/ai/src/intelligent-cache-manager.js.map +1 -1
  193. package/dist/ai/src/mcp/index.d.ts +10 -0
  194. package/dist/ai/src/mcp/index.d.ts.map +1 -0
  195. package/dist/ai/src/mcp/index.js +10 -0
  196. package/dist/ai/src/mcp/index.js.map +1 -0
  197. package/dist/ai/src/mcp/mcp-tool-bridge.d.ts +186 -0
  198. package/dist/ai/src/mcp/mcp-tool-bridge.d.ts.map +1 -0
  199. package/dist/ai/src/mcp/mcp-tool-bridge.js +292 -0
  200. package/dist/ai/src/mcp/mcp-tool-bridge.js.map +1 -0
  201. package/dist/ai/src/mcp-auto-configuration.d.ts.map +1 -1
  202. package/dist/ai/src/mcp-auto-configuration.js +2 -1
  203. package/dist/ai/src/mcp-auto-configuration.js.map +1 -1
  204. package/dist/ai/src/performance-profiler.d.ts.map +1 -1
  205. package/dist/ai/src/performance-profiler.js +1 -0
  206. package/dist/ai/src/performance-profiler.js.map +1 -1
  207. package/dist/ai/src/plugins/anomaly/anomaly-detector.d.ts +58 -0
  208. package/dist/ai/src/plugins/anomaly/anomaly-detector.d.ts.map +1 -0
  209. package/dist/ai/src/plugins/anomaly/anomaly-detector.js +101 -0
  210. package/dist/ai/src/plugins/anomaly/anomaly-detector.js.map +1 -0
  211. package/dist/ai/src/plugins/anomaly/anomaly-monitor.d.ts +145 -0
  212. package/dist/ai/src/plugins/anomaly/anomaly-monitor.d.ts.map +1 -0
  213. package/dist/ai/src/plugins/anomaly/anomaly-monitor.js +245 -0
  214. package/dist/ai/src/plugins/anomaly/anomaly-monitor.js.map +1 -0
  215. package/dist/ai/src/plugins/anomaly/behavior-baseline.d.ts +79 -0
  216. package/dist/ai/src/plugins/anomaly/behavior-baseline.d.ts.map +1 -0
  217. package/dist/ai/src/plugins/anomaly/behavior-baseline.js +161 -0
  218. package/dist/ai/src/plugins/anomaly/behavior-baseline.js.map +1 -0
  219. package/dist/ai/src/plugins/anomaly/index.d.ts +15 -0
  220. package/dist/ai/src/plugins/anomaly/index.d.ts.map +1 -0
  221. package/dist/ai/src/plugins/anomaly/index.js +12 -0
  222. package/dist/ai/src/plugins/anomaly/index.js.map +1 -0
  223. package/dist/ai/src/plugins/anomaly/types.d.ts +150 -0
  224. package/dist/ai/src/plugins/anomaly/types.d.ts.map +1 -0
  225. package/dist/ai/src/plugins/anomaly/types.js +68 -0
  226. package/dist/ai/src/plugins/anomaly/types.js.map +1 -0
  227. package/dist/ai/src/plugins/certification/certification-manager.d.ts +102 -0
  228. package/dist/ai/src/plugins/certification/certification-manager.d.ts.map +1 -0
  229. package/dist/ai/src/plugins/certification/certification-manager.js +321 -0
  230. package/dist/ai/src/plugins/certification/certification-manager.js.map +1 -0
  231. package/dist/ai/src/plugins/certification/index.d.ts +12 -0
  232. package/dist/ai/src/plugins/certification/index.d.ts.map +1 -0
  233. package/dist/ai/src/plugins/certification/index.js +10 -0
  234. package/dist/ai/src/plugins/certification/index.js.map +1 -0
  235. package/dist/ai/src/plugins/certification/types.d.ts +128 -0
  236. package/dist/ai/src/plugins/certification/types.d.ts.map +1 -0
  237. package/dist/ai/src/plugins/certification/types.js +201 -0
  238. package/dist/ai/src/plugins/certification/types.js.map +1 -0
  239. package/dist/ai/src/plugins/escalation/escalation-trigger.d.ts +155 -0
  240. package/dist/ai/src/plugins/escalation/escalation-trigger.d.ts.map +1 -0
  241. package/dist/ai/src/plugins/escalation/escalation-trigger.js +183 -0
  242. package/dist/ai/src/plugins/escalation/escalation-trigger.js.map +1 -0
  243. package/dist/ai/src/plugins/escalation/index.d.ts +11 -0
  244. package/dist/ai/src/plugins/escalation/index.d.ts.map +1 -0
  245. package/dist/ai/src/plugins/escalation/index.js +10 -0
  246. package/dist/ai/src/plugins/escalation/index.js.map +1 -0
  247. package/dist/ai/src/plugins/incidents/incident-response-manager.d.ts +165 -0
  248. package/dist/ai/src/plugins/incidents/incident-response-manager.d.ts.map +1 -0
  249. package/dist/ai/src/plugins/incidents/incident-response-manager.js +462 -0
  250. package/dist/ai/src/plugins/incidents/incident-response-manager.js.map +1 -0
  251. package/dist/ai/src/plugins/incidents/index.d.ts +8 -0
  252. package/dist/ai/src/plugins/incidents/index.d.ts.map +1 -0
  253. package/dist/ai/src/plugins/incidents/index.js +7 -0
  254. package/dist/ai/src/plugins/incidents/index.js.map +1 -0
  255. package/dist/ai/src/plugins/incidents/types.d.ts +183 -0
  256. package/dist/ai/src/plugins/incidents/types.d.ts.map +1 -0
  257. package/dist/ai/src/plugins/incidents/types.js +55 -0
  258. package/dist/ai/src/plugins/incidents/types.js.map +1 -0
  259. package/dist/ai/src/plugins/permissions/index.d.ts +17 -0
  260. package/dist/ai/src/plugins/permissions/index.d.ts.map +1 -0
  261. package/dist/ai/src/plugins/permissions/index.js +14 -0
  262. package/dist/ai/src/plugins/permissions/index.js.map +1 -0
  263. package/dist/ai/src/plugins/permissions/permission-attenuator.d.ts +29 -0
  264. package/dist/ai/src/plugins/permissions/permission-attenuator.d.ts.map +1 -0
  265. package/dist/ai/src/plugins/permissions/permission-attenuator.js +190 -0
  266. package/dist/ai/src/plugins/permissions/permission-attenuator.js.map +1 -0
  267. package/dist/ai/src/plugins/permissions/permission-audit-logger.d.ts +72 -0
  268. package/dist/ai/src/plugins/permissions/permission-audit-logger.d.ts.map +1 -0
  269. package/dist/ai/src/plugins/permissions/permission-audit-logger.js +176 -0
  270. package/dist/ai/src/plugins/permissions/permission-audit-logger.js.map +1 -0
  271. package/dist/ai/src/plugins/permissions/permission-enforcer.d.ts +99 -0
  272. package/dist/ai/src/plugins/permissions/permission-enforcer.d.ts.map +1 -0
  273. package/dist/ai/src/plugins/permissions/permission-enforcer.js +151 -0
  274. package/dist/ai/src/plugins/permissions/permission-enforcer.js.map +1 -0
  275. package/dist/ai/src/plugins/permissions/plugin-permission-validator.d.ts +39 -0
  276. package/dist/ai/src/plugins/permissions/plugin-permission-validator.d.ts.map +1 -0
  277. package/dist/ai/src/plugins/permissions/plugin-permission-validator.js +296 -0
  278. package/dist/ai/src/plugins/permissions/plugin-permission-validator.js.map +1 -0
  279. package/dist/ai/src/plugins/permissions/types.d.ts +116 -0
  280. package/dist/ai/src/plugins/permissions/types.d.ts.map +1 -0
  281. package/dist/ai/src/plugins/permissions/types.js +36 -0
  282. package/dist/ai/src/plugins/permissions/types.js.map +1 -0
  283. package/dist/ai/src/plugins/reputation/index.d.ts +9 -0
  284. package/dist/ai/src/plugins/reputation/index.d.ts.map +1 -0
  285. package/dist/ai/src/plugins/reputation/index.js +8 -0
  286. package/dist/ai/src/plugins/reputation/index.js.map +1 -0
  287. package/dist/ai/src/plugins/reputation/plugin-reputation-db.d.ts +29 -0
  288. package/dist/ai/src/plugins/reputation/plugin-reputation-db.d.ts.map +1 -0
  289. package/dist/ai/src/plugins/reputation/plugin-reputation-db.js +120 -0
  290. package/dist/ai/src/plugins/reputation/plugin-reputation-db.js.map +1 -0
  291. package/dist/ai/src/plugins/reputation/plugin-reputation-engine.d.ts +115 -0
  292. package/dist/ai/src/plugins/reputation/plugin-reputation-engine.d.ts.map +1 -0
  293. package/dist/ai/src/plugins/reputation/plugin-reputation-engine.js +528 -0
  294. package/dist/ai/src/plugins/reputation/plugin-reputation-engine.js.map +1 -0
  295. package/dist/ai/src/plugins/reputation/types.d.ts +149 -0
  296. package/dist/ai/src/plugins/reputation/types.d.ts.map +1 -0
  297. package/dist/ai/src/plugins/reputation/types.js +14 -0
  298. package/dist/ai/src/plugins/reputation/types.js.map +1 -0
  299. package/dist/ai/src/plugins/reviews/index.d.ts +11 -0
  300. package/dist/ai/src/plugins/reviews/index.d.ts.map +1 -0
  301. package/dist/ai/src/plugins/reviews/index.js +10 -0
  302. package/dist/ai/src/plugins/reviews/index.js.map +1 -0
  303. package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.d.ts +116 -0
  304. package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.d.ts.map +1 -0
  305. package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.js +282 -0
  306. package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.js.map +1 -0
  307. package/dist/ai/src/plugins/reviews/types.d.ts +113 -0
  308. package/dist/ai/src/plugins/reviews/types.d.ts.map +1 -0
  309. package/dist/ai/src/plugins/reviews/types.js +55 -0
  310. package/dist/ai/src/plugins/reviews/types.js.map +1 -0
  311. package/dist/ai/src/plugins/runtime/docker-plugin-runner.d.ts +77 -0
  312. package/dist/ai/src/plugins/runtime/docker-plugin-runner.d.ts.map +1 -0
  313. package/dist/ai/src/plugins/runtime/docker-plugin-runner.js +248 -0
  314. package/dist/ai/src/plugins/runtime/docker-plugin-runner.js.map +1 -0
  315. package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.d.ts +99 -0
  316. package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.d.ts.map +1 -0
  317. package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.js +158 -0
  318. package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.js.map +1 -0
  319. package/dist/ai/src/plugins/runtime/index.d.ts +13 -0
  320. package/dist/ai/src/plugins/runtime/index.d.ts.map +1 -0
  321. package/dist/ai/src/plugins/runtime/index.js +11 -0
  322. package/dist/ai/src/plugins/runtime/index.js.map +1 -0
  323. package/dist/ai/src/plugins/runtime/types.d.ts +143 -0
  324. package/dist/ai/src/plugins/runtime/types.d.ts.map +1 -0
  325. package/dist/ai/src/plugins/runtime/types.js +19 -0
  326. package/dist/ai/src/plugins/runtime/types.js.map +1 -0
  327. package/dist/ai/src/plugins/runtime/wasm-plugin-runner.d.ts +104 -0
  328. package/dist/ai/src/plugins/runtime/wasm-plugin-runner.d.ts.map +1 -0
  329. package/dist/ai/src/plugins/runtime/wasm-plugin-runner.js +307 -0
  330. package/dist/ai/src/plugins/runtime/wasm-plugin-runner.js.map +1 -0
  331. package/dist/ai/src/plugins/security/index.d.ts +24 -0
  332. package/dist/ai/src/plugins/security/index.d.ts.map +1 -0
  333. package/dist/ai/src/plugins/security/index.js +23 -0
  334. package/dist/ai/src/plugins/security/index.js.map +1 -0
  335. package/dist/ai/src/plugins/security/license-checker.d.ts +26 -0
  336. package/dist/ai/src/plugins/security/license-checker.d.ts.map +1 -0
  337. package/dist/ai/src/plugins/security/license-checker.js +137 -0
  338. package/dist/ai/src/plugins/security/license-checker.js.map +1 -0
  339. package/dist/ai/src/plugins/security/malware-scanner.d.ts +19 -0
  340. package/dist/ai/src/plugins/security/malware-scanner.d.ts.map +1 -0
  341. package/dist/ai/src/plugins/security/malware-scanner.js +121 -0
  342. package/dist/ai/src/plugins/security/malware-scanner.js.map +1 -0
  343. package/dist/ai/src/plugins/security/plugin-security-scanner.d.ts +36 -0
  344. package/dist/ai/src/plugins/security/plugin-security-scanner.d.ts.map +1 -0
  345. package/dist/ai/src/plugins/security/plugin-security-scanner.js +160 -0
  346. package/dist/ai/src/plugins/security/plugin-security-scanner.js.map +1 -0
  347. package/dist/ai/src/plugins/security/sbom-generator.d.ts +23 -0
  348. package/dist/ai/src/plugins/security/sbom-generator.d.ts.map +1 -0
  349. package/dist/ai/src/plugins/security/sbom-generator.js +115 -0
  350. package/dist/ai/src/plugins/security/sbom-generator.js.map +1 -0
  351. package/dist/ai/src/plugins/security/secret-detector.d.ts +19 -0
  352. package/dist/ai/src/plugins/security/secret-detector.d.ts.map +1 -0
  353. package/dist/ai/src/plugins/security/secret-detector.js +204 -0
  354. package/dist/ai/src/plugins/security/secret-detector.js.map +1 -0
  355. package/dist/ai/src/plugins/security/signature-verifier.d.ts +21 -0
  356. package/dist/ai/src/plugins/security/signature-verifier.d.ts.map +1 -0
  357. package/dist/ai/src/plugins/security/signature-verifier.js +75 -0
  358. package/dist/ai/src/plugins/security/signature-verifier.js.map +1 -0
  359. package/dist/ai/src/plugins/security/sonarcloud-client.d.ts +20 -0
  360. package/dist/ai/src/plugins/security/sonarcloud-client.d.ts.map +1 -0
  361. package/dist/ai/src/plugins/security/sonarcloud-client.js +106 -0
  362. package/dist/ai/src/plugins/security/sonarcloud-client.js.map +1 -0
  363. package/dist/ai/src/plugins/security/trust-score.d.ts +58 -0
  364. package/dist/ai/src/plugins/security/trust-score.d.ts.map +1 -0
  365. package/dist/ai/src/plugins/security/trust-score.js +173 -0
  366. package/dist/ai/src/plugins/security/trust-score.js.map +1 -0
  367. package/dist/ai/src/plugins/security/types.d.ts +220 -0
  368. package/dist/ai/src/plugins/security/types.d.ts.map +1 -0
  369. package/dist/ai/src/plugins/security/types.js +12 -0
  370. package/dist/ai/src/plugins/security/types.js.map +1 -0
  371. package/dist/ai/src/plugins/security/vulnerability-scanner.d.ts +22 -0
  372. package/dist/ai/src/plugins/security/vulnerability-scanner.d.ts.map +1 -0
  373. package/dist/ai/src/plugins/security/vulnerability-scanner.js +109 -0
  374. package/dist/ai/src/plugins/security/vulnerability-scanner.js.map +1 -0
  375. package/dist/ai/src/plugins/tlp/index.d.ts +17 -0
  376. package/dist/ai/src/plugins/tlp/index.d.ts.map +1 -0
  377. package/dist/ai/src/plugins/tlp/index.js +17 -0
  378. package/dist/ai/src/plugins/tlp/index.js.map +1 -0
  379. package/dist/ai/src/plugins/tlp/tlp-classifier.d.ts +55 -0
  380. package/dist/ai/src/plugins/tlp/tlp-classifier.d.ts.map +1 -0
  381. package/dist/ai/src/plugins/tlp/tlp-classifier.js +232 -0
  382. package/dist/ai/src/plugins/tlp/tlp-classifier.js.map +1 -0
  383. package/dist/ai/src/plugins/tlp/tlp-validator.d.ts +97 -0
  384. package/dist/ai/src/plugins/tlp/tlp-validator.d.ts.map +1 -0
  385. package/dist/ai/src/plugins/tlp/tlp-validator.js +120 -0
  386. package/dist/ai/src/plugins/tlp/tlp-validator.js.map +1 -0
  387. package/dist/ai/src/plugins/tlp/types.d.ts +84 -0
  388. package/dist/ai/src/plugins/tlp/types.d.ts.map +1 -0
  389. package/dist/ai/src/plugins/tlp/types.js +20 -0
  390. package/dist/ai/src/plugins/tlp/types.js.map +1 -0
  391. package/dist/ai/src/resource-monitor.d.ts +1 -1
  392. package/dist/ai/src/resource-monitor.d.ts.map +1 -1
  393. package/dist/ai/src/resource-monitor.js +4 -3
  394. package/dist/ai/src/resource-monitor.js.map +1 -1
  395. package/dist/ai/src/runtime/agent-runtime.d.ts +77 -0
  396. package/dist/ai/src/runtime/agent-runtime.d.ts.map +1 -1
  397. package/dist/ai/src/runtime/agent-runtime.js +138 -2
  398. package/dist/ai/src/runtime/agent-runtime.js.map +1 -1
  399. package/dist/ai/src/scheduler/agent-scheduler.d.ts +365 -0
  400. package/dist/ai/src/scheduler/agent-scheduler.d.ts.map +1 -0
  401. package/dist/ai/src/scheduler/agent-scheduler.js +610 -0
  402. package/dist/ai/src/scheduler/agent-scheduler.js.map +1 -0
  403. package/dist/ai/src/scheduler/index.d.ts +6 -0
  404. package/dist/ai/src/scheduler/index.d.ts.map +1 -0
  405. package/dist/ai/src/scheduler/index.js +6 -0
  406. package/dist/ai/src/scheduler/index.js.map +1 -0
  407. package/dist/ai/src/session/index.d.ts +6 -0
  408. package/dist/ai/src/session/index.d.ts.map +1 -0
  409. package/dist/ai/src/session/index.js +6 -0
  410. package/dist/ai/src/session/index.js.map +1 -0
  411. package/dist/ai/src/session/session-manager.d.ts +380 -0
  412. package/dist/ai/src/session/session-manager.d.ts.map +1 -0
  413. package/dist/ai/src/session/session-manager.js +625 -0
  414. package/dist/ai/src/session/session-manager.js.map +1 -0
  415. package/dist/ai/src/skills/index.d.ts +10 -0
  416. package/dist/ai/src/skills/index.d.ts.map +1 -0
  417. package/dist/ai/src/skills/index.js +10 -0
  418. package/dist/ai/src/skills/index.js.map +1 -0
  419. package/dist/ai/src/skills/skill-registry.d.ts +181 -0
  420. package/dist/ai/src/skills/skill-registry.d.ts.map +1 -0
  421. package/dist/ai/src/skills/skill-registry.js +465 -0
  422. package/dist/ai/src/skills/skill-registry.js.map +1 -0
  423. package/dist/ai/src/telemetry/delegation-telemetry.d.ts.map +1 -1
  424. package/dist/ai/src/telemetry/delegation-telemetry.js +1 -0
  425. package/dist/ai/src/telemetry/delegation-telemetry.js.map +1 -1
  426. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts +1 -1
  427. package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts.map +1 -1
  428. package/dist/ai/src/telemetry/runtime-telemetry-integration.js +3 -2
  429. package/dist/ai/src/telemetry/runtime-telemetry-integration.js.map +1 -1
  430. package/dist/ai/src/telemetry/telemetry-utils.d.ts.map +1 -1
  431. package/dist/ai/src/telemetry/telemetry-utils.js +1 -0
  432. package/dist/ai/src/telemetry/telemetry-utils.js.map +1 -1
  433. package/dist/ai/src/types/agent-capabilities.d.ts.map +1 -1
  434. package/dist/ai/src/types/agent-capabilities.js +1 -0
  435. package/dist/ai/src/types/agent-capabilities.js.map +1 -1
  436. package/dist/ai/src/types/delegation-contracts.d.ts +92 -0
  437. package/dist/ai/src/types/delegation-contracts.d.ts.map +1 -1
  438. package/dist/ai/src/types/delegation-contracts.js.map +1 -1
  439. package/dist/ai/src/validation-pipeline-integration.d.ts.map +1 -1
  440. package/dist/ai/src/validation-pipeline-integration.js +1 -2
  441. package/dist/ai/src/validation-pipeline-integration.js.map +1 -1
  442. package/dist/ai/src/verification/multi-modal-formatters.d.ts +1 -1
  443. package/dist/ai/src/verification/multi-modal-formatters.d.ts.map +1 -1
  444. package/dist/ai/src/verification/multi-modal-formatters.js +3 -2
  445. package/dist/ai/src/verification/multi-modal-formatters.js.map +1 -1
  446. package/dist/ai/src/verification/output-formatter.d.ts +1 -1
  447. package/dist/ai/src/verification/output-formatter.d.ts.map +1 -1
  448. package/dist/ai/src/verification/output-formatter.js +2 -1
  449. package/dist/ai/src/verification/output-formatter.js.map +1 -1
  450. package/dist/ai/src/verification/parser-integration.d.ts.map +1 -1
  451. package/dist/ai/src/verification/parser-integration.js.map +1 -1
  452. package/dist/ai/types/agent-capabilities.d.ts +7 -0
  453. package/dist/ai/types/agent-capabilities.d.ts.map +1 -1
  454. package/dist/ai/types/delegation-contracts.d.ts +75 -0
  455. package/dist/ai/types/delegation-contracts.d.ts.map +1 -1
  456. package/dist/ai/types/index.d.ts +3 -3
  457. package/dist/ai/types/index.d.ts.map +1 -1
  458. package/dist/ai/types/index.js.map +1 -1
  459. package/dist/ai/types/permission-tokens.d.ts +23 -0
  460. package/dist/ai/types/permission-tokens.d.ts.map +1 -1
  461. package/dist/ai/types/permission-tokens.js +65 -1
  462. package/dist/ai/types/permission-tokens.js.map +1 -1
  463. package/dist/ai/validation/validation-framework.d.ts.map +1 -1
  464. package/dist/ai/verification/policy-framework.d.ts +1 -1
  465. package/dist/ai/verification/policy-framework.d.ts.map +1 -1
  466. package/dist/ai/verification/policy-framework.js +4 -4
  467. package/dist/ai/verification/policy-framework.js.map +1 -1
  468. package/package.json +33 -4
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Plugin Certification Program — Type Definitions
3
+ *
4
+ * Defines the 3-tier certification program (Bronze / Silver / Gold),
5
+ * badge system, audit checklist, and paid audit workflow.
6
+ *
7
+ * @module plugins/certification/types
8
+ */
9
+ /** Pricing for each tier in USD cents. */
10
+ export const CERTIFICATION_PRICING_USD_CENTS = {
11
+ BRONZE: 0, // Free tier — automated only
12
+ SILVER: 49900, // $499 — human audit
13
+ GOLD: 249900, // $2,499 — pen test + human audit
14
+ };
15
+ /** Human-readable tier names. */
16
+ export const CERTIFICATION_TIER_LABELS = {
17
+ BRONZE: 'Bronze',
18
+ SILVER: 'Silver',
19
+ GOLD: 'Gold',
20
+ };
21
+ /** Validity period in days for each tier. */
22
+ export const CERTIFICATION_VALIDITY_DAYS = {
23
+ BRONZE: 90, // 90 days — renew quarterly
24
+ SILVER: 180, // 6 months
25
+ GOLD: 365, // 1 year
26
+ };
27
+ /**
28
+ * Complete audit checklist defining all required checks per tier.
29
+ */
30
+ export const CERTIFICATION_AUDIT_CHECKLIST = [
31
+ // --- Automated Scan (Bronze+) ---
32
+ {
33
+ item_id: 'AUTO-001',
34
+ category: 'AUTOMATED_SCAN',
35
+ description: 'No critical or high CVEs in dependency tree (via npm audit / Trivy scan)',
36
+ required_for_tiers: ['BRONZE', 'SILVER', 'GOLD'],
37
+ automated: true,
38
+ },
39
+ {
40
+ item_id: 'AUTO-002',
41
+ category: 'AUTOMATED_SCAN',
42
+ description: 'No secrets or credentials detected in plugin bundle (via Gitleaks / TruffleHog)',
43
+ required_for_tiers: ['BRONZE', 'SILVER', 'GOLD'],
44
+ automated: true,
45
+ },
46
+ {
47
+ item_id: 'AUTO-003',
48
+ category: 'AUTOMATED_SCAN',
49
+ description: 'Static analysis: no code injection patterns (eval, Function constructor, setTimeout with string)',
50
+ required_for_tiers: ['BRONZE', 'SILVER', 'GOLD'],
51
+ automated: true,
52
+ },
53
+ {
54
+ item_id: 'AUTO-004',
55
+ category: 'AUTOMATED_SCAN',
56
+ description: 'SBOM generated and all dependencies declared with valid SPDX identifiers',
57
+ required_for_tiers: ['BRONZE', 'SILVER', 'GOLD'],
58
+ automated: true,
59
+ },
60
+ {
61
+ item_id: 'AUTO-005',
62
+ category: 'AUTOMATED_SCAN',
63
+ description: 'Plugin sandbox test passes with Docker isolation (no escape attempts)',
64
+ required_for_tiers: ['BRONZE', 'SILVER', 'GOLD'],
65
+ automated: true,
66
+ },
67
+ // --- Permission Review (Bronze+) ---
68
+ {
69
+ item_id: 'PERM-001',
70
+ category: 'PERMISSION_REVIEW',
71
+ description: 'Declared permissions match observed runtime behavior (no undeclared network calls)',
72
+ required_for_tiers: ['BRONZE', 'SILVER', 'GOLD'],
73
+ automated: true,
74
+ },
75
+ {
76
+ item_id: 'PERM-002',
77
+ category: 'PERMISSION_REVIEW',
78
+ description: 'Principle of least privilege: no excessive permissions requested',
79
+ required_for_tiers: ['BRONZE', 'SILVER', 'GOLD'],
80
+ automated: false,
81
+ },
82
+ // --- Code Quality (Silver+) ---
83
+ {
84
+ item_id: 'CODE-001',
85
+ category: 'CODE_QUALITY',
86
+ description: 'Source code review: no obfuscation, no dynamic require(), clean readable logic',
87
+ required_for_tiers: ['SILVER', 'GOLD'],
88
+ automated: false,
89
+ },
90
+ {
91
+ item_id: 'CODE-002',
92
+ category: 'CODE_QUALITY',
93
+ description: 'Error handling: all failure paths handled gracefully (no unhandled promise rejections)',
94
+ required_for_tiers: ['SILVER', 'GOLD'],
95
+ automated: false,
96
+ },
97
+ {
98
+ item_id: 'CODE-003',
99
+ category: 'CODE_QUALITY',
100
+ description: 'Test coverage ≥80% with meaningful assertions (no trivial tests to inflate coverage)',
101
+ required_for_tiers: ['SILVER', 'GOLD'],
102
+ automated: true,
103
+ },
104
+ // --- Security Manual (Silver+) ---
105
+ {
106
+ item_id: 'SEC-001',
107
+ category: 'SECURITY_MANUAL',
108
+ description: 'Human audit: input validation reviewed for injection risks',
109
+ required_for_tiers: ['SILVER', 'GOLD'],
110
+ automated: false,
111
+ },
112
+ {
113
+ item_id: 'SEC-002',
114
+ category: 'SECURITY_MANUAL',
115
+ description: 'Human audit: data handling reviewed for PII risks and GDPR compliance',
116
+ required_for_tiers: ['SILVER', 'GOLD'],
117
+ automated: false,
118
+ },
119
+ {
120
+ item_id: 'SEC-003',
121
+ category: 'SECURITY_MANUAL',
122
+ description: 'Human audit: supply chain reviewed (no suspicious fork or dependency substitution)',
123
+ required_for_tiers: ['SILVER', 'GOLD'],
124
+ automated: false,
125
+ },
126
+ // --- Penetration Test (Gold only) ---
127
+ {
128
+ item_id: 'PEN-001',
129
+ category: 'PENETRATION_TEST',
130
+ description: 'Third-party penetration test: sandbox escape attempt (documented, no successful escapes)',
131
+ required_for_tiers: ['GOLD'],
132
+ automated: false,
133
+ },
134
+ {
135
+ item_id: 'PEN-002',
136
+ category: 'PENETRATION_TEST',
137
+ description: 'Third-party penetration test: privilege escalation attempts (all blocked)',
138
+ required_for_tiers: ['GOLD'],
139
+ automated: false,
140
+ },
141
+ {
142
+ item_id: 'PEN-003',
143
+ category: 'PENETRATION_TEST',
144
+ description: 'Third-party penetration test: formal report submitted and accepted by DCYFR',
145
+ required_for_tiers: ['GOLD'],
146
+ automated: false,
147
+ },
148
+ ];
149
+ // ---------------------------------------------------------------------------
150
+ // SQL Schema
151
+ // ---------------------------------------------------------------------------
152
+ export const CERTIFICATION_SCHEMA_SQL = `
153
+ -- Plugin certification badges
154
+ CREATE TABLE IF NOT EXISTS plugin_certification_badges (
155
+ badge_id TEXT PRIMARY KEY,
156
+ plugin_id TEXT NOT NULL,
157
+ plugin_version TEXT NOT NULL,
158
+ tier TEXT NOT NULL CHECK (tier IN ('BRONZE', 'SILVER', 'GOLD')),
159
+ issued_at TEXT NOT NULL,
160
+ expires_at TEXT NOT NULL,
161
+ issued_by TEXT NOT NULL,
162
+ verification_url TEXT NOT NULL,
163
+ bundle_hash TEXT NOT NULL
164
+ );
165
+
166
+ -- Audit requests and their lifecycle
167
+ CREATE TABLE IF NOT EXISTS plugin_audit_requests (
168
+ request_id TEXT PRIMARY KEY,
169
+ plugin_id TEXT NOT NULL,
170
+ plugin_version TEXT NOT NULL,
171
+ tier TEXT NOT NULL CHECK (tier IN ('BRONZE', 'SILVER', 'GOLD')),
172
+ submitted_by TEXT NOT NULL,
173
+ submitted_at TEXT NOT NULL,
174
+ status TEXT NOT NULL,
175
+ price_usd_cents INTEGER NOT NULL,
176
+ payment_reference_id TEXT,
177
+ payment_confirmed_at TEXT,
178
+ auditor TEXT,
179
+ audit_started_at TEXT,
180
+ audit_completed_at TEXT,
181
+ auditor_notes TEXT,
182
+ badge_id TEXT REFERENCES plugin_certification_badges(badge_id),
183
+ failure_reason TEXT
184
+ );
185
+
186
+ -- Per-request checklist results
187
+ CREATE TABLE IF NOT EXISTS audit_checklist_results (
188
+ id TEXT PRIMARY KEY,
189
+ request_id TEXT NOT NULL REFERENCES plugin_audit_requests(request_id),
190
+ item_id TEXT NOT NULL,
191
+ passed INTEGER, -- NULL=pending, 1=pass, 0=fail
192
+ notes TEXT,
193
+ evaluated_at TEXT,
194
+ evaluated_by TEXT
195
+ );
196
+
197
+ CREATE INDEX IF NOT EXISTS idx_badge_plugin_id ON plugin_certification_badges(plugin_id);
198
+ CREATE INDEX IF NOT EXISTS idx_audit_plugin_id ON plugin_audit_requests(plugin_id);
199
+ CREATE INDEX IF NOT EXISTS idx_audit_status ON plugin_audit_requests(status);
200
+ `.trim();
201
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/certification/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,+BAA+B,GAAgD;IAC1F,MAAM,EAAE,CAAC,EAAU,6BAA6B;IAChD,MAAM,EAAE,KAAK,EAAM,qBAAqB;IACxC,IAAI,EAAE,MAAM,EAAO,kCAAkC;CAC7C,CAAC;AAEX,iCAAiC;AACjC,MAAM,CAAC,MAAM,yBAAyB,GAAgD;IACpF,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAEX,6CAA6C;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAgD;IACtF,MAAM,EAAE,EAAE,EAAI,4BAA4B;IAC1C,MAAM,EAAE,GAAG,EAAG,WAAW;IACzB,IAAI,EAAE,GAAG,EAAK,SAAS;CACf,CAAC;AAqEX;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAkC;IAC1E,mCAAmC;IACnC;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,0EAA0E;QACvF,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,SAAS,EAAE,IAAI;KAChB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,iFAAiF;QAC9F,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,SAAS,EAAE,IAAI;KAChB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,kGAAkG;QAC/G,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,SAAS,EAAE,IAAI;KAChB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,0EAA0E;QACvF,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,SAAS,EAAE,IAAI;KAChB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,uEAAuE;QACpF,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,SAAS,EAAE,IAAI;KAChB;IACD,sCAAsC;IACtC;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,oFAAoF;QACjG,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,SAAS,EAAE,IAAI;KAChB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,kEAAkE;QAC/E,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,SAAS,EAAE,KAAK;KACjB;IACD,iCAAiC;IACjC;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,gFAAgF;QAC7F,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,wFAAwF;QACrG,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,sFAAsF;QACnG,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,IAAI;KAChB;IACD,oCAAoC;IACpC;QACE,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,4DAA4D;QACzE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,uEAAuE;QACpF,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,oFAAoF;QACjG,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,KAAK;KACjB;IACD,uCAAuC;IACvC;QACE,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,0FAA0F;QACvG,kBAAkB,EAAE,CAAC,MAAM,CAAC;QAC5B,SAAS,EAAE,KAAK;KACjB;IACD;QACE,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,2EAA2E;QACxF,kBAAkB,EAAE,CAAC,MAAM,CAAC;QAC5B,SAAS,EAAE,KAAK;KACjB;IACD;QACE,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,6EAA6E;QAC1F,kBAAkB,EAAE,CAAC,MAAM,CAAC;QAC5B,SAAS,EAAE,KAAK;KACjB;CACO,CAAC;AA4EX,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDvC,CAAC,IAAI,EAAE,CAAC"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Community Plugin Escalation Trigger
3
+ *
4
+ * Monitors community plugin metrics (downloads + ratings) and automatically
5
+ * nominates plugins for DCYFR security audit when thresholds are crossed:
6
+ *
7
+ * - downloads ≥ 100 AND
8
+ * - average rating ≥ 4.0 stars
9
+ *
10
+ * When both thresholds are crossed, an EscalationRecord is created and
11
+ * stored. Downstream systems (GitHub issue automation, Axiom alerts, etc.)
12
+ * can poll `getPendingEscalations()` or subscribe via `onEscalation`.
13
+ *
14
+ * @module plugins/escalation/escalation-trigger
15
+ * @version 1.0.0
16
+ * @date 2026-02-28
17
+ * @license MIT
18
+ */
19
+ /** Current metrics for a community plugin */
20
+ export interface PluginMetrics {
21
+ /** Plugin identifier, e.g. "author/plugin-name" */
22
+ pluginId: string;
23
+ /** Total all-time download count */
24
+ downloads: number;
25
+ /** Average star rating (0.0 – 5.0) */
26
+ averageRating: number;
27
+ /** Number of individual ratings */
28
+ ratingCount: number;
29
+ /** Current trust score (0–100) */
30
+ trustScore: number;
31
+ /** ISO-8601 timestamp of last metrics update */
32
+ lastUpdated: string;
33
+ }
34
+ /** Configuration for escalation thresholds */
35
+ export interface EscalationThresholds {
36
+ /** Minimum downloads to trigger (default: 100) */
37
+ minDownloads: number;
38
+ /** Minimum average rating to trigger (default: 4.0) */
39
+ minRating: number;
40
+ /** Minimum rating count before rating is considered valid (default: 5) */
41
+ minRatingCount: number;
42
+ /** Minimum trust score to be eligible (default: 85) */
43
+ minTrustScore: number;
44
+ }
45
+ /** Status of an escalation record */
46
+ export type EscalationStatus = 'pending' | 'scheduled' | 'in_progress' | 'completed' | 'dismissed';
47
+ /** A single escalation record for a plugin */
48
+ export interface EscalationRecord {
49
+ /** Unique escalation ID */
50
+ id: string;
51
+ /** Plugin identifier */
52
+ pluginId: string;
53
+ /** Metrics snapshot that triggered the escalation */
54
+ metricsSnapshot: PluginMetrics;
55
+ /** ISO-8601 timestamp when escalation was triggered */
56
+ triggeredAt: string;
57
+ /** Current status */
58
+ status: EscalationStatus;
59
+ /** Optional notes from security team */
60
+ notes?: string;
61
+ /** GitHub issue URL if one was created */
62
+ githubIssueUrl?: string;
63
+ }
64
+ /** Result of evaluating a plugin against escalation thresholds */
65
+ export interface EscalationEvaluation {
66
+ /** Whether the plugin meets all thresholds */
67
+ eligible: boolean;
68
+ /** Plugin being evaluated */
69
+ pluginId: string;
70
+ /** Which checks passed */
71
+ checks: {
72
+ downloadsPass: boolean;
73
+ ratingPass: boolean;
74
+ ratingCountPass: boolean;
75
+ trustScorePass: boolean;
76
+ };
77
+ /** Whether this plugin is already in the escalation queue */
78
+ alreadyEscalated: boolean;
79
+ }
80
+ /**
81
+ * Manages escalation of community plugins to DCYFR security audit.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * const trigger = new EscalationTrigger();
86
+ * const result = trigger.evaluate({
87
+ * pluginId: 'alice/my-plugin',
88
+ * downloads: 150,
89
+ * averageRating: 4.5,
90
+ * ratingCount: 20,
91
+ * trustScore: 92,
92
+ * lastUpdated: new Date().toISOString(),
93
+ * });
94
+ * if (result.eligible) {
95
+ * const record = trigger.escalate(metrics);
96
+ * console.log('Escalated:', record.id);
97
+ * }
98
+ * ```
99
+ */
100
+ export declare class EscalationTrigger {
101
+ private readonly thresholds;
102
+ private records;
103
+ private listeners;
104
+ private nextId;
105
+ constructor(thresholds?: Partial<EscalationThresholds>);
106
+ /**
107
+ * Evaluates a plugin's metrics against escalation thresholds.
108
+ * Does NOT create an escalation record — call `escalate()` to do that.
109
+ */
110
+ evaluate(metrics: PluginMetrics): EscalationEvaluation;
111
+ /**
112
+ * Creates an escalation record for the given plugin metrics.
113
+ * Emits an `onEscalation` event to all registered listeners.
114
+ *
115
+ * @throws {Error} If the plugin already has a pending escalation.
116
+ */
117
+ escalate(metrics: PluginMetrics): EscalationRecord;
118
+ /**
119
+ * Evaluates and, if eligible and not already escalated, creates an escalation record.
120
+ * Returns the new record or `null` if ineligible / already escalated.
121
+ */
122
+ evaluateAndEscalate(metrics: PluginMetrics): EscalationRecord | null;
123
+ /**
124
+ * Updates the status of an escalation record.
125
+ *
126
+ * @throws {Error} If the record ID does not exist.
127
+ */
128
+ updateStatus(escalationId: string, status: EscalationStatus, notes?: string, githubIssueUrl?: string): EscalationRecord;
129
+ /** Returns all escalation records with status "pending". */
130
+ getPendingEscalations(): EscalationRecord[];
131
+ /** Returns all escalation records. */
132
+ getAllEscalations(): EscalationRecord[];
133
+ /** Returns a single escalation record by ID, or undefined. */
134
+ getEscalation(escalationId: string): EscalationRecord | undefined;
135
+ /** Returns true if the given plugin has any active (non-terminal) escalation. */
136
+ hasPendingEscalation(pluginId: string): boolean;
137
+ /** Returns the currently configured thresholds. */
138
+ getThresholds(): EscalationThresholds;
139
+ /**
140
+ * Registers a callback that fires whenever a new escalation is created.
141
+ * Returns an unsubscribe function.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * const unsub = trigger.onEscalation(record => {
146
+ * console.log('New escalation:', record.pluginId);
147
+ * });
148
+ * // later:
149
+ * unsub();
150
+ * ```
151
+ */
152
+ onEscalation(listener: (record: EscalationRecord) => void): () => void;
153
+ private emit;
154
+ }
155
+ //# sourceMappingURL=escalation-trigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escalation-trigger.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/escalation/escalation-trigger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Community Plugin Escalation Trigger
3
+ *
4
+ * Monitors community plugin metrics (downloads + ratings) and automatically
5
+ * nominates plugins for DCYFR security audit when thresholds are crossed:
6
+ *
7
+ * - downloads ≥ 100 AND
8
+ * - average rating ≥ 4.0 stars
9
+ *
10
+ * When both thresholds are crossed, an EscalationRecord is created and
11
+ * stored. Downstream systems (GitHub issue automation, Axiom alerts, etc.)
12
+ * can poll `getPendingEscalations()` or subscribe via `onEscalation`.
13
+ *
14
+ * @module plugins/escalation/escalation-trigger
15
+ * @version 1.0.0
16
+ * @date 2026-02-28
17
+ * @license MIT
18
+ */
19
+ // ---------------------------------------------------------------------------
20
+ // Default thresholds
21
+ // ---------------------------------------------------------------------------
22
+ const DEFAULT_THRESHOLDS = {
23
+ minDownloads: 100,
24
+ minRating: 4,
25
+ minRatingCount: 5,
26
+ minTrustScore: 85,
27
+ };
28
+ // ---------------------------------------------------------------------------
29
+ // EscalationTrigger
30
+ // ---------------------------------------------------------------------------
31
+ /**
32
+ * Manages escalation of community plugins to DCYFR security audit.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const trigger = new EscalationTrigger();
37
+ * const result = trigger.evaluate({
38
+ * pluginId: 'alice/my-plugin',
39
+ * downloads: 150,
40
+ * averageRating: 4.5,
41
+ * ratingCount: 20,
42
+ * trustScore: 92,
43
+ * lastUpdated: new Date().toISOString(),
44
+ * });
45
+ * if (result.eligible) {
46
+ * const record = trigger.escalate(metrics);
47
+ * console.log('Escalated:', record.id);
48
+ * }
49
+ * ```
50
+ */
51
+ export class EscalationTrigger {
52
+ thresholds;
53
+ records = new Map();
54
+ listeners = [];
55
+ nextId = 1;
56
+ constructor(thresholds = {}) {
57
+ this.thresholds = { ...DEFAULT_THRESHOLDS, ...thresholds };
58
+ }
59
+ // -------------------------------------------------------------------------
60
+ // Evaluation
61
+ // -------------------------------------------------------------------------
62
+ /**
63
+ * Evaluates a plugin's metrics against escalation thresholds.
64
+ * Does NOT create an escalation record — call `escalate()` to do that.
65
+ */
66
+ evaluate(metrics) {
67
+ const t = this.thresholds;
68
+ const checks = {
69
+ downloadsPass: metrics.downloads >= t.minDownloads,
70
+ ratingPass: metrics.averageRating >= t.minRating,
71
+ ratingCountPass: metrics.ratingCount >= t.minRatingCount,
72
+ trustScorePass: metrics.trustScore >= t.minTrustScore,
73
+ };
74
+ const eligible = Object.values(checks).every(Boolean);
75
+ const alreadyEscalated = this.hasPendingEscalation(metrics.pluginId);
76
+ return { eligible, pluginId: metrics.pluginId, checks, alreadyEscalated };
77
+ }
78
+ // -------------------------------------------------------------------------
79
+ // Escalation management
80
+ // -------------------------------------------------------------------------
81
+ /**
82
+ * Creates an escalation record for the given plugin metrics.
83
+ * Emits an `onEscalation` event to all registered listeners.
84
+ *
85
+ * @throws {Error} If the plugin already has a pending escalation.
86
+ */
87
+ escalate(metrics) {
88
+ if (this.hasPendingEscalation(metrics.pluginId)) {
89
+ throw new Error(`Plugin "${metrics.pluginId}" already has a pending escalation. ` +
90
+ `Call resolveEscalation() first.`);
91
+ }
92
+ const record = {
93
+ id: `esc-${String(this.nextId++).padStart(4, '0')}`,
94
+ pluginId: metrics.pluginId,
95
+ metricsSnapshot: { ...metrics },
96
+ triggeredAt: new Date().toISOString(),
97
+ status: 'pending',
98
+ };
99
+ this.records.set(record.id, record);
100
+ this.emit(record);
101
+ return record;
102
+ }
103
+ /**
104
+ * Evaluates and, if eligible and not already escalated, creates an escalation record.
105
+ * Returns the new record or `null` if ineligible / already escalated.
106
+ */
107
+ evaluateAndEscalate(metrics) {
108
+ const evaluation = this.evaluate(metrics);
109
+ if (!evaluation.eligible || evaluation.alreadyEscalated) {
110
+ return null;
111
+ }
112
+ return this.escalate(metrics);
113
+ }
114
+ /**
115
+ * Updates the status of an escalation record.
116
+ *
117
+ * @throws {Error} If the record ID does not exist.
118
+ */
119
+ updateStatus(escalationId, status, notes, githubIssueUrl) {
120
+ const record = this.records.get(escalationId);
121
+ if (!record) {
122
+ throw new Error(`Escalation record "${escalationId}" not found.`);
123
+ }
124
+ record.status = status;
125
+ if (notes !== undefined)
126
+ record.notes = notes;
127
+ if (githubIssueUrl !== undefined)
128
+ record.githubIssueUrl = githubIssueUrl;
129
+ return record;
130
+ }
131
+ // -------------------------------------------------------------------------
132
+ // Queries
133
+ // -------------------------------------------------------------------------
134
+ /** Returns all escalation records with status "pending". */
135
+ getPendingEscalations() {
136
+ return [...this.records.values()].filter(r => r.status === 'pending');
137
+ }
138
+ /** Returns all escalation records. */
139
+ getAllEscalations() {
140
+ return [...this.records.values()];
141
+ }
142
+ /** Returns a single escalation record by ID, or undefined. */
143
+ getEscalation(escalationId) {
144
+ return this.records.get(escalationId);
145
+ }
146
+ /** Returns true if the given plugin has any active (non-terminal) escalation. */
147
+ hasPendingEscalation(pluginId) {
148
+ const terminal = ['completed', 'dismissed'];
149
+ return [...this.records.values()].some(r => r.pluginId === pluginId && !terminal.includes(r.status));
150
+ }
151
+ /** Returns the currently configured thresholds. */
152
+ getThresholds() {
153
+ return { ...this.thresholds };
154
+ }
155
+ // -------------------------------------------------------------------------
156
+ // Event subscription
157
+ // -------------------------------------------------------------------------
158
+ /**
159
+ * Registers a callback that fires whenever a new escalation is created.
160
+ * Returns an unsubscribe function.
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * const unsub = trigger.onEscalation(record => {
165
+ * console.log('New escalation:', record.pluginId);
166
+ * });
167
+ * // later:
168
+ * unsub();
169
+ * ```
170
+ */
171
+ onEscalation(listener) {
172
+ this.listeners.push(listener);
173
+ return () => {
174
+ this.listeners = this.listeners.filter(l => l !== listener);
175
+ };
176
+ }
177
+ emit(record) {
178
+ for (const listener of this.listeners) {
179
+ listener(record);
180
+ }
181
+ }
182
+ }
183
+ //# sourceMappingURL=escalation-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escalation-trigger.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/escalation/escalation-trigger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Community Plugin Escalation Trigger
3
+ *
4
+ * @module plugins/escalation
5
+ * @version 1.0.0
6
+ * @date 2026-02-28
7
+ * @license MIT
8
+ */
9
+ export { EscalationTrigger, } from './escalation-trigger.js';
10
+ export type { PluginMetrics, EscalationThresholds, EscalationStatus, EscalationRecord, EscalationEvaluation, } from './escalation-trigger.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/escalation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Community Plugin Escalation Trigger
3
+ *
4
+ * @module plugins/escalation
5
+ * @version 1.0.0
6
+ * @date 2026-02-28
7
+ * @license MIT
8
+ */
9
+ export { EscalationTrigger, } from './escalation-trigger.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/escalation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}