@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,149 @@
1
+ /**
2
+ * Plugin Reputation Types
3
+ *
4
+ * Type definitions for the plugin marketplace reputation database.
5
+ * Distinct from the agent delegation reputation engine —
6
+ * this module tracks plugin-level trust over time.
7
+ *
8
+ * @module plugins/reputation/types
9
+ * @version 1.0.0
10
+ * @date 2026-02-28
11
+ * @license MIT
12
+ */
13
+ /** A plugin's persisted reputation profile */
14
+ export interface PluginReputationRecord {
15
+ /** Unique plugin identifier (e.g. "git-tools") */
16
+ plugin_id: string;
17
+ /** Display name */
18
+ name: string;
19
+ /** Semver version string of the last-scanned release */
20
+ version: string;
21
+ /** Capabilities list as a JSON array string (e.g. '["git","file-read"]') */
22
+ capabilities_json: string;
23
+ /** Overall trust score 0–100 */
24
+ trust_score: number;
25
+ /** Dimension sub-scores as a JSON object string */
26
+ trust_dimensions_json: string;
27
+ /** Last security scan timestamp (ISO-8601) */
28
+ last_scanned_at: string;
29
+ /** Total number of security scans recorded */
30
+ scan_count: number;
31
+ /** When this plugin was first approved (ISO-8601 or NULL) */
32
+ approved_at: string | null;
33
+ /**
34
+ * Source of authoritative reputation data.
35
+ * 'local' = scan only; 'registry' = merged from central registry.
36
+ */
37
+ registry_source: 'local' | 'registry';
38
+ /** Created row timestamp (ISO-8601) */
39
+ created_at: string;
40
+ /** Updated row timestamp (ISO-8601) */
41
+ updated_at: string;
42
+ }
43
+ /** Severity level for security incidents */
44
+ export type IncidentSeverity = 'critical' | 'high' | 'medium' | 'low' | 'info';
45
+ /** A recorded security or compliance incident for a plugin */
46
+ export interface PluginIncidentRecord {
47
+ /** Row ID (auto-assigned by SQLite) */
48
+ id: number;
49
+ /** Plugin ID this incident belongs to */
50
+ plugin_id: string;
51
+ /** Severity classification */
52
+ severity: IncidentSeverity;
53
+ /** Human-readable description */
54
+ description: string;
55
+ /** When the incident was detected (ISO-8601) */
56
+ detected_at: string;
57
+ /** When the incident was resolved, or NULL if still open */
58
+ resolved_at: string | null;
59
+ }
60
+ /** Types of audit events */
61
+ export type AuditEventType = 'scan_completed' | 'score_updated' | 'incident_recorded' | 'incident_resolved' | 'decay_applied' | 'registry_sync' | 'plugin_approved' | 'plugin_rejected';
62
+ /** A single audit trail entry */
63
+ export interface PluginAuditRecord {
64
+ /** Row ID (auto-assigned by SQLite) */
65
+ id: number;
66
+ /** Plugin this event belongs to */
67
+ plugin_id: string;
68
+ /** Event classification */
69
+ event_type: AuditEventType;
70
+ /** JSON-encoded event metadata */
71
+ event_data_json: string;
72
+ /** When the event occurred (ISO-8601) */
73
+ created_at: string;
74
+ }
75
+ /** Trust score with dimension breakdown (mirrors security types for consistency) */
76
+ export interface PluginTrustScore {
77
+ /** Overall score 0–100 */
78
+ overall: number;
79
+ /** Dimension sub-scores */
80
+ dimensions: {
81
+ security: number;
82
+ community: number;
83
+ maintenance: number;
84
+ transparency: number;
85
+ };
86
+ }
87
+ /** Input when upserting a plugin scan result */
88
+ export interface UpsertScanInput {
89
+ plugin_id: string;
90
+ name: string;
91
+ version: string;
92
+ capabilities?: string[];
93
+ trustScore: PluginTrustScore;
94
+ approved?: boolean;
95
+ registrySource?: 'local' | 'registry';
96
+ }
97
+ /** Row returned by getScore() */
98
+ export interface PluginScoreResult {
99
+ plugin_id: string;
100
+ name: string;
101
+ version: string;
102
+ trust_score: number;
103
+ dimensions: PluginTrustScore['dimensions'];
104
+ scan_count: number;
105
+ last_scanned_at: string;
106
+ approved_at: string | null;
107
+ }
108
+ /** Row returned by getTopPlugins() */
109
+ export interface TopPluginResult extends PluginScoreResult {
110
+ capabilities: string[];
111
+ }
112
+ /** Configuration for PluginReputationEngine */
113
+ export interface PluginReputationEngineConfig {
114
+ /**
115
+ * Path to the SQLite database.
116
+ * Defaults to `~/.dcyfr/plugin-reputation.db`.
117
+ */
118
+ databasePath?: string;
119
+ /**
120
+ * Central registry URL for weekly sync.
121
+ * Defaults to `https://registry.dcyfr.ai/reputation.json`.
122
+ */
123
+ registryUrl?: string;
124
+ /**
125
+ * Number of days between decay applications.
126
+ * Defaults to 90.
127
+ */
128
+ decayIntervalDays?: number;
129
+ /**
130
+ * Maintenance score reduction applied per decay interval.
131
+ * Defaults to 5.
132
+ */
133
+ decayAmount?: number;
134
+ /** Minimum maintenance score (floor for decay). Defaults to 0. */
135
+ decayFloor?: number;
136
+ /** Enable verbose debug logging. Defaults to false. */
137
+ debug?: boolean;
138
+ }
139
+ /** Entry in the central registry reputation.json format */
140
+ export interface RegistryReputationEntry {
141
+ plugin_id: string;
142
+ name: string;
143
+ version: string;
144
+ trust_score: number;
145
+ dimensions: PluginTrustScore['dimensions'];
146
+ capabilities?: string[];
147
+ last_updated: string;
148
+ }
149
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/reputation/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Plugin Reputation Types
3
+ *
4
+ * Type definitions for the plugin marketplace reputation database.
5
+ * Distinct from the agent delegation reputation engine —
6
+ * this module tracks plugin-level trust over time.
7
+ *
8
+ * @module plugins/reputation/types
9
+ * @version 1.0.0
10
+ * @date 2026-02-28
11
+ * @license MIT
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/reputation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Plugin Reviews Module
3
+ *
4
+ * Exports for the plugin marketplace rating and review system.
5
+ *
6
+ * @module plugins/reviews
7
+ */
8
+ export { PluginRatingAggregator, ReviewError } from './plugin-rating-aggregator.js';
9
+ export type { PluginRatingAggregatorConfig, StarRating, ReviewStatus, PluginReview, CreateReviewInput, FlagReviewInput, PluginRatingStats, ReviewPage, ReviewQueryOptions, RatingDistribution, } from './plugin-rating-aggregator.js';
10
+ export { PLUGIN_REVIEWS_SCHEMA_SQL } from './types.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/reviews/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACpF,YAAY,EACV,4BAA4B,EAC5B,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Plugin Reviews Module
3
+ *
4
+ * Exports for the plugin marketplace rating and review system.
5
+ *
6
+ * @module plugins/reviews
7
+ */
8
+ export { PluginRatingAggregator, ReviewError } from './plugin-rating-aggregator.js';
9
+ export { PLUGIN_REVIEWS_SCHEMA_SQL } from './types.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/reviews/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAapF,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Plugin Rating Aggregator
3
+ *
4
+ * Manages community reviews and ratings for marketplace plugins.
5
+ * Provides CRUD operations, aggregation statistics, moderation
6
+ * workflow, and community score derivation for trust score integration.
7
+ *
8
+ * Design notes:
9
+ * • Pure in-memory implementation — no external DB required.
10
+ * Callers can persist reviews to their own store and hydrate on startup.
11
+ * • Thread-safe for single-process use; multi-process requires an external store.
12
+ * • communityScore formula: (averageRating / 5) * 100, floored at 0, capped at 100.
13
+ * • Auto-approve reviews with flag_count < FLAG_THRESHOLD (default: 3).
14
+ * • Auto-flag reviews with flag_count >= FLAG_THRESHOLD.
15
+ *
16
+ * @module plugins/reviews/plugin-rating-aggregator
17
+ * @version 1.0.0
18
+ * @date 2026-02-28
19
+ * @license MIT
20
+ */
21
+ import type { PluginReview, CreateReviewInput, FlagReviewInput, PluginRatingStats, ReviewPage, ReviewQueryOptions, RatingDistribution, StarRating, ReviewStatus } from './types.js';
22
+ export type { PluginReview, CreateReviewInput, FlagReviewInput, PluginRatingStats, ReviewPage, ReviewQueryOptions, RatingDistribution, StarRating, ReviewStatus, };
23
+ /** Configuration for PluginRatingAggregator */
24
+ export interface PluginRatingAggregatorConfig {
25
+ /**
26
+ * Number of flag votes before a review is automatically flagged.
27
+ * Defaults to 3.
28
+ */
29
+ flagThreshold?: number;
30
+ /**
31
+ * Whether to auto-approve reviews on creation.
32
+ * When false, reviews start as 'pending' and require moderation.
33
+ * Defaults to true.
34
+ */
35
+ autoApproveOnCreate?: boolean;
36
+ /** Maximum comment length in characters. Defaults to 2000. */
37
+ maxCommentLength?: number;
38
+ }
39
+ /** Error thrown by PluginRatingAggregator operations */
40
+ export declare class ReviewError extends Error {
41
+ readonly code: string;
42
+ constructor(message: string, code: string);
43
+ }
44
+ /** Core rating and review management service */
45
+ export declare class PluginRatingAggregator {
46
+ /** In-memory review store: reviewId → PluginReview */
47
+ private readonly reviews;
48
+ /** Per-plugin → Set of userIds (one review per user per plugin) */
49
+ private readonly userReviewIndex;
50
+ private readonly flagThreshold;
51
+ private readonly autoApproveOnCreate;
52
+ private readonly maxCommentLength;
53
+ constructor(config?: PluginRatingAggregatorConfig);
54
+ /**
55
+ * Submit a new review. Each user may only submit one review per plugin.
56
+ * Throws ReviewError if a duplicate review is detected or input is invalid.
57
+ */
58
+ createReview(input: CreateReviewInput): PluginReview;
59
+ /**
60
+ * Flag a review as inappropriate. If flag count reaches the threshold,
61
+ * the review status is automatically changed to 'flagged'.
62
+ */
63
+ flagReview(input: FlagReviewInput): PluginReview;
64
+ /**
65
+ * Mark a flagged or pending review as approved (moderation action).
66
+ */
67
+ approveReview(reviewId: string): PluginReview;
68
+ /**
69
+ * Remove / soft-delete a review (moderation action). Removed reviews are
70
+ * excluded from ratings but retained for audit purposes.
71
+ */
72
+ removeReview(reviewId: string): PluginReview;
73
+ /**
74
+ * Record a helpful vote on a review.
75
+ */
76
+ voteHelpful(reviewId: string): PluginReview;
77
+ /**
78
+ * Get a single review by ID. Returns undefined if not found.
79
+ */
80
+ getReview(reviewId: string): PluginReview | undefined;
81
+ /**
82
+ * Get all reviews for a plugin with optional filtering, sorting, and pagination.
83
+ * Defaults to filtering by 'approved' status.
84
+ */
85
+ getReviews(pluginId: string, options?: ReviewQueryOptions): ReviewPage;
86
+ /**
87
+ * Check whether a user has already reviewed a plugin.
88
+ */
89
+ hasReviewed(pluginId: string, userId: string): boolean;
90
+ /**
91
+ * Calculate aggregated rating statistics for a plugin.
92
+ * Only includes 'approved' reviews in the calculation.
93
+ */
94
+ getRatingStats(pluginId: string): PluginRatingStats;
95
+ /**
96
+ * Get community score (0–100) for use in trust score calculation.
97
+ * Returns the communityScore from getRatingStats().
98
+ */
99
+ getCommunityScore(pluginId: string): number;
100
+ /**
101
+ * Load reviews into the aggregator (e.g. from a persistent store on startup).
102
+ * Silently skips reviews with invalid status.
103
+ */
104
+ hydrate(reviews: PluginReview[]): void;
105
+ /**
106
+ * Export all reviews (for persistence).
107
+ */
108
+ export(): PluginReview[];
109
+ /**
110
+ * Total number of reviews in the store.
111
+ */
112
+ get size(): number;
113
+ private getReviewOrThrow;
114
+ private validateCreateInput;
115
+ }
116
+ //# sourceMappingURL=plugin-rating-aggregator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-rating-aggregator.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/reviews/plugin-rating-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,GACb,CAAC;AAgBF,+CAA+C;AAC/C,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wDAAwD;AACxD,qBAAa,WAAY,SAAQ,KAAK;aAGlB,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B;AAED,gDAAgD;AAChD,qBAAa,sBAAsB;IACjC,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAE1E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,MAAM,GAAE,4BAAiC;IAUrD;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY;IAkCpD;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY;IAqBhD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAW7C;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAW5C;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAe3C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,UAAU;IA0C1E;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAQtD;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IA0BnD;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQ3C;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI;IAStC;;OAEG;IACH,MAAM,IAAI,YAAY,EAAE;IAIxB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAMD,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;CAgB5B"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Plugin Rating Aggregator
3
+ *
4
+ * Manages community reviews and ratings for marketplace plugins.
5
+ * Provides CRUD operations, aggregation statistics, moderation
6
+ * workflow, and community score derivation for trust score integration.
7
+ *
8
+ * Design notes:
9
+ * • Pure in-memory implementation — no external DB required.
10
+ * Callers can persist reviews to their own store and hydrate on startup.
11
+ * • Thread-safe for single-process use; multi-process requires an external store.
12
+ * • communityScore formula: (averageRating / 5) * 100, floored at 0, capped at 100.
13
+ * • Auto-approve reviews with flag_count < FLAG_THRESHOLD (default: 3).
14
+ * • Auto-flag reviews with flag_count >= FLAG_THRESHOLD.
15
+ *
16
+ * @module plugins/reviews/plugin-rating-aggregator
17
+ * @version 1.0.0
18
+ * @date 2026-02-28
19
+ * @license MIT
20
+ */
21
+ import { randomUUID } from 'crypto';
22
+ // ---------------------------------------------------------------------------
23
+ // Constants
24
+ // ---------------------------------------------------------------------------
25
+ const DEFAULT_PAGE_SIZE = 10;
26
+ const MAX_PAGE_SIZE = 100;
27
+ const FLAG_THRESHOLD = 3;
28
+ const AUTO_APPROVE_ON_CREATE = true;
29
+ const MAX_COMMENT_LENGTH = 2000;
30
+ /** Error thrown by PluginRatingAggregator operations */
31
+ export class ReviewError extends Error {
32
+ code;
33
+ constructor(message, code) {
34
+ super(message);
35
+ this.code = code;
36
+ this.name = 'ReviewError';
37
+ }
38
+ }
39
+ /** Core rating and review management service */
40
+ export class PluginRatingAggregator {
41
+ /** In-memory review store: reviewId → PluginReview */
42
+ reviews = new Map();
43
+ /** Per-plugin → Set of userIds (one review per user per plugin) */
44
+ userReviewIndex = new Map();
45
+ flagThreshold;
46
+ autoApproveOnCreate;
47
+ maxCommentLength;
48
+ constructor(config = {}) {
49
+ this.flagThreshold = config.flagThreshold ?? FLAG_THRESHOLD;
50
+ this.autoApproveOnCreate = config.autoApproveOnCreate ?? AUTO_APPROVE_ON_CREATE;
51
+ this.maxCommentLength = config.maxCommentLength ?? MAX_COMMENT_LENGTH;
52
+ }
53
+ // -------------------------------------------------------------------------
54
+ // Write operations
55
+ // -------------------------------------------------------------------------
56
+ /**
57
+ * Submit a new review. Each user may only submit one review per plugin.
58
+ * Throws ReviewError if a duplicate review is detected or input is invalid.
59
+ */
60
+ createReview(input) {
61
+ this.validateCreateInput(input);
62
+ // One review per user per plugin
63
+ const pluginUserMap = this.userReviewIndex.get(input.pluginId) ?? new Map();
64
+ if (pluginUserMap.has(input.userId)) {
65
+ throw new ReviewError(`User '${input.userId}' has already submitted a review for plugin '${input.pluginId}'.`, 'DUPLICATE_REVIEW');
66
+ }
67
+ const now = new Date().toISOString();
68
+ const review = {
69
+ id: randomUUID(),
70
+ pluginId: input.pluginId,
71
+ userId: input.userId,
72
+ displayName: input.displayName.trim(),
73
+ rating: input.rating,
74
+ comment: input.comment ? input.comment.trim().slice(0, this.maxCommentLength) : undefined,
75
+ status: this.autoApproveOnCreate ? 'approved' : 'pending',
76
+ createdAt: now,
77
+ updatedAt: now,
78
+ helpfulVotes: 0,
79
+ flagCount: 0,
80
+ };
81
+ this.reviews.set(review.id, review);
82
+ pluginUserMap.set(input.userId, review.id);
83
+ this.userReviewIndex.set(input.pluginId, pluginUserMap);
84
+ return review;
85
+ }
86
+ /**
87
+ * Flag a review as inappropriate. If flag count reaches the threshold,
88
+ * the review status is automatically changed to 'flagged'.
89
+ */
90
+ flagReview(input) {
91
+ const review = this.getReviewOrThrow(input.reviewId);
92
+ if (review.status === 'removed') {
93
+ throw new ReviewError(`Review '${input.reviewId}' has been removed.`, 'REVIEW_REMOVED');
94
+ }
95
+ const updated = {
96
+ ...review,
97
+ flagCount: review.flagCount + 1,
98
+ status: review.flagCount + 1 >= this.flagThreshold && review.status === 'approved'
99
+ ? 'flagged'
100
+ : review.status,
101
+ updatedAt: new Date().toISOString(),
102
+ };
103
+ this.reviews.set(review.id, updated);
104
+ return updated;
105
+ }
106
+ /**
107
+ * Mark a flagged or pending review as approved (moderation action).
108
+ */
109
+ approveReview(reviewId) {
110
+ const review = this.getReviewOrThrow(reviewId);
111
+ const updated = {
112
+ ...review,
113
+ status: 'approved',
114
+ updatedAt: new Date().toISOString(),
115
+ };
116
+ this.reviews.set(reviewId, updated);
117
+ return updated;
118
+ }
119
+ /**
120
+ * Remove / soft-delete a review (moderation action). Removed reviews are
121
+ * excluded from ratings but retained for audit purposes.
122
+ */
123
+ removeReview(reviewId) {
124
+ const review = this.getReviewOrThrow(reviewId);
125
+ const updated = {
126
+ ...review,
127
+ status: 'removed',
128
+ updatedAt: new Date().toISOString(),
129
+ };
130
+ this.reviews.set(reviewId, updated);
131
+ return updated;
132
+ }
133
+ /**
134
+ * Record a helpful vote on a review.
135
+ */
136
+ voteHelpful(reviewId) {
137
+ const review = this.getReviewOrThrow(reviewId);
138
+ const updated = {
139
+ ...review,
140
+ helpfulVotes: review.helpfulVotes + 1,
141
+ updatedAt: new Date().toISOString(),
142
+ };
143
+ this.reviews.set(reviewId, updated);
144
+ return updated;
145
+ }
146
+ // -------------------------------------------------------------------------
147
+ // Read operations
148
+ // -------------------------------------------------------------------------
149
+ /**
150
+ * Get a single review by ID. Returns undefined if not found.
151
+ */
152
+ getReview(reviewId) {
153
+ return this.reviews.get(reviewId);
154
+ }
155
+ /**
156
+ * Get all reviews for a plugin with optional filtering, sorting, and pagination.
157
+ * Defaults to filtering by 'approved' status.
158
+ */
159
+ getReviews(pluginId, options = {}) {
160
+ const { page = 1, pageSize = DEFAULT_PAGE_SIZE, status = 'approved', sortBy = 'createdAt', sortOrder = 'desc', } = options;
161
+ const clampedPageSize = Math.min(pageSize, MAX_PAGE_SIZE);
162
+ // Filter
163
+ let filtered = Array.from(this.reviews.values()).filter((r) => r.pluginId === pluginId && r.status === status);
164
+ // Sort
165
+ filtered.sort((a, b) => {
166
+ let comparison = 0;
167
+ if (sortBy === 'createdAt') {
168
+ comparison = a.createdAt.localeCompare(b.createdAt);
169
+ }
170
+ else if (sortBy === 'rating') {
171
+ comparison = a.rating - b.rating;
172
+ }
173
+ else if (sortBy === 'helpfulVotes') {
174
+ comparison = a.helpfulVotes - b.helpfulVotes;
175
+ }
176
+ return sortOrder === 'desc' ? -comparison : comparison;
177
+ });
178
+ const total = filtered.length;
179
+ const start = (page - 1) * clampedPageSize;
180
+ const reviews = filtered.slice(start, start + clampedPageSize);
181
+ return {
182
+ reviews,
183
+ total,
184
+ page,
185
+ pageSize: clampedPageSize,
186
+ hasMore: start + reviews.length < total,
187
+ };
188
+ }
189
+ /**
190
+ * Check whether a user has already reviewed a plugin.
191
+ */
192
+ hasReviewed(pluginId, userId) {
193
+ return this.userReviewIndex.get(pluginId)?.has(userId) ?? false;
194
+ }
195
+ // -------------------------------------------------------------------------
196
+ // Aggregation
197
+ // -------------------------------------------------------------------------
198
+ /**
199
+ * Calculate aggregated rating statistics for a plugin.
200
+ * Only includes 'approved' reviews in the calculation.
201
+ */
202
+ getRatingStats(pluginId) {
203
+ const approvedReviews = Array.from(this.reviews.values()).filter((r) => r.pluginId === pluginId && r.status === 'approved');
204
+ const distribution = { 1: 0, 2: 0, 3: 0, 4: 0, 5: 0 };
205
+ let sum = 0;
206
+ for (const review of approvedReviews) {
207
+ distribution[review.rating]++;
208
+ sum += review.rating;
209
+ }
210
+ const totalReviews = approvedReviews.length;
211
+ const averageRating = totalReviews > 0 ? sum / totalReviews : 0;
212
+ const communityScore = Math.min(100, Math.max(0, Math.round((averageRating / 5) * 100)));
213
+ return {
214
+ pluginId,
215
+ averageRating: Math.round(averageRating * 100) / 100,
216
+ totalReviews,
217
+ distribution,
218
+ communityScore,
219
+ };
220
+ }
221
+ /**
222
+ * Get community score (0–100) for use in trust score calculation.
223
+ * Returns the communityScore from getRatingStats().
224
+ */
225
+ getCommunityScore(pluginId) {
226
+ return this.getRatingStats(pluginId).communityScore;
227
+ }
228
+ // -------------------------------------------------------------------------
229
+ // Bulk operations
230
+ // -------------------------------------------------------------------------
231
+ /**
232
+ * Load reviews into the aggregator (e.g. from a persistent store on startup).
233
+ * Silently skips reviews with invalid status.
234
+ */
235
+ hydrate(reviews) {
236
+ for (const review of reviews) {
237
+ this.reviews.set(review.id, review);
238
+ const pluginUserMap = this.userReviewIndex.get(review.pluginId) ?? new Map();
239
+ pluginUserMap.set(review.userId, review.id);
240
+ this.userReviewIndex.set(review.pluginId, pluginUserMap);
241
+ }
242
+ }
243
+ /**
244
+ * Export all reviews (for persistence).
245
+ */
246
+ export() {
247
+ return Array.from(this.reviews.values());
248
+ }
249
+ /**
250
+ * Total number of reviews in the store.
251
+ */
252
+ get size() {
253
+ return this.reviews.size;
254
+ }
255
+ // -------------------------------------------------------------------------
256
+ // Private helpers
257
+ // -------------------------------------------------------------------------
258
+ getReviewOrThrow(reviewId) {
259
+ const review = this.reviews.get(reviewId);
260
+ if (!review) {
261
+ throw new ReviewError(`Review '${reviewId}' not found.`, 'REVIEW_NOT_FOUND');
262
+ }
263
+ return review;
264
+ }
265
+ validateCreateInput(input) {
266
+ if (!input.pluginId?.trim()) {
267
+ throw new ReviewError('pluginId is required.', 'INVALID_INPUT');
268
+ }
269
+ if (!input.userId?.trim()) {
270
+ throw new ReviewError('userId is required.', 'INVALID_INPUT');
271
+ }
272
+ if (!input.displayName?.trim()) {
273
+ throw new ReviewError('displayName is required.', 'INVALID_INPUT');
274
+ }
275
+ if (![1, 2, 3, 4, 5].includes(input.rating)) {
276
+ throw new ReviewError('rating must be between 1 and 5.', 'INVALID_RATING');
277
+ }
278
+ // Long comments are truncated (not rejected) to allow graceful handling
279
+ // Callers may also enforce length limits at the API layer
280
+ }
281
+ }
282
+ //# sourceMappingURL=plugin-rating-aggregator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-rating-aggregator.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/reviews/plugin-rating-aggregator.ts"],"names":[],"mappings":"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"}