agentic-flow 2.0.7 → 2.0.9

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 (316) hide show
  1. package/.claude/settings.json +133 -9
  2. package/.claude/skills/agentic-flow-quickstart/skill.md +69 -0
  3. package/.claude/skills/hooks-automation/skill.md +155 -0
  4. package/.claude/skills/memory-patterns/skill.md +110 -0
  5. package/.claude/skills/sparc-methodology/skill.md +137 -0
  6. package/.claude/skills/swarm-coordination/skill.md +94 -0
  7. package/.claude/skills/worker-benchmarks/skill.md +135 -0
  8. package/.claude/skills/worker-integration/skill.md +154 -0
  9. package/.claude/statusline.mjs +109 -0
  10. package/.claude/statusline.sh +71 -0
  11. package/README.md +1797 -624
  12. package/dist/.tsbuildinfo +1 -1
  13. package/dist/agentdb/index.d.ts +2 -0
  14. package/dist/agentdb/index.d.ts.map +1 -1
  15. package/dist/agentdb/index.js +5 -0
  16. package/dist/agentdb/index.js.map +1 -1
  17. package/dist/agentdb/prerequisites.d.ts +25 -0
  18. package/dist/agentdb/prerequisites.d.ts.map +1 -0
  19. package/dist/agentdb/prerequisites.js +180 -0
  20. package/dist/agentdb/prerequisites.js.map +1 -0
  21. package/dist/benchmarks/embeddings-benchmark.d.ts +38 -0
  22. package/dist/benchmarks/embeddings-benchmark.d.ts.map +1 -0
  23. package/dist/benchmarks/embeddings-benchmark.js +282 -0
  24. package/dist/benchmarks/embeddings-benchmark.js.map +1 -0
  25. package/dist/billing/mcp/tools.js +1 -0
  26. package/dist/billing/mcp/tools.js.map +1 -1
  27. package/dist/cli/commands/embeddings.d.ts +12 -0
  28. package/dist/cli/commands/embeddings.d.ts.map +1 -0
  29. package/dist/cli/commands/embeddings.js +386 -0
  30. package/dist/cli/commands/embeddings.js.map +1 -0
  31. package/dist/cli/commands/hooks.d.ts.map +1 -1
  32. package/dist/cli/commands/hooks.js +79 -4
  33. package/dist/cli/commands/hooks.js.map +1 -1
  34. package/dist/cli/commands/init.d.ts +8 -0
  35. package/dist/cli/commands/init.d.ts.map +1 -0
  36. package/dist/cli/commands/init.js +514 -0
  37. package/dist/cli/commands/init.js.map +1 -0
  38. package/dist/cli/commands/workers.d.ts +9 -0
  39. package/dist/cli/commands/workers.d.ts.map +1 -0
  40. package/dist/cli/commands/workers.js +991 -0
  41. package/dist/cli/commands/workers.js.map +1 -0
  42. package/dist/cli/config-wizard.d.ts.map +1 -1
  43. package/dist/cli/config-wizard.js +47 -25
  44. package/dist/cli/config-wizard.js.map +1 -1
  45. package/dist/cli-proxy.js +89 -1
  46. package/dist/cli-proxy.js.map +1 -1
  47. package/dist/core/agentdb-fast.js +3 -3
  48. package/dist/core/agentdb-fast.js.map +1 -1
  49. package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
  50. package/dist/core/agentdb-wrapper-enhanced.js +37 -11
  51. package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
  52. package/dist/core/agentdb-wrapper.d.ts +3 -2
  53. package/dist/core/agentdb-wrapper.d.ts.map +1 -1
  54. package/dist/core/agentdb-wrapper.js +15 -1
  55. package/dist/core/agentdb-wrapper.js.map +1 -1
  56. package/dist/core/attention-native.d.ts +4 -0
  57. package/dist/core/attention-native.d.ts.map +1 -1
  58. package/dist/core/attention-native.js +14 -2
  59. package/dist/core/attention-native.js.map +1 -1
  60. package/dist/core/gnn-wrapper.d.ts.map +1 -1
  61. package/dist/core/gnn-wrapper.js +14 -0
  62. package/dist/core/gnn-wrapper.js.map +1 -1
  63. package/dist/embeddings/index.d.ts +17 -0
  64. package/dist/embeddings/index.d.ts.map +1 -0
  65. package/dist/embeddings/index.js +17 -0
  66. package/dist/embeddings/index.js.map +1 -0
  67. package/dist/embeddings/neural-substrate.d.ts +206 -0
  68. package/dist/embeddings/neural-substrate.d.ts.map +1 -0
  69. package/dist/embeddings/neural-substrate.js +629 -0
  70. package/dist/embeddings/neural-substrate.js.map +1 -0
  71. package/dist/embeddings/optimized-embedder.d.ts +103 -0
  72. package/dist/embeddings/optimized-embedder.d.ts.map +1 -0
  73. package/dist/embeddings/optimized-embedder.js +730 -0
  74. package/dist/embeddings/optimized-embedder.js.map +1 -0
  75. package/dist/examples/embedding-geometry.d.ts +105 -0
  76. package/dist/examples/embedding-geometry.d.ts.map +1 -0
  77. package/dist/examples/embedding-geometry.js +528 -0
  78. package/dist/examples/embedding-geometry.js.map +1 -0
  79. package/dist/federation/SecurityManager.d.ts +11 -2
  80. package/dist/federation/SecurityManager.d.ts.map +1 -1
  81. package/dist/federation/SecurityManager.js +50 -17
  82. package/dist/federation/SecurityManager.js.map +1 -1
  83. package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
  84. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
  85. package/dist/hooks/swarm-learning-optimizer.js +5 -5
  86. package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
  87. package/dist/index.d.ts +5 -3
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +89 -51
  90. package/dist/index.js.map +1 -1
  91. package/dist/intelligence/IntelligenceStore.d.ts +35 -26
  92. package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
  93. package/dist/intelligence/IntelligenceStore.js +308 -123
  94. package/dist/intelligence/IntelligenceStore.js.map +1 -1
  95. package/dist/intelligence/RuVectorIntelligence.d.ts +26 -1
  96. package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
  97. package/dist/intelligence/RuVectorIntelligence.js +49 -10
  98. package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
  99. package/dist/intelligence/agent-booster-enhanced.d.ts +1 -0
  100. package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
  101. package/dist/intelligence/agent-booster-enhanced.js +24 -3
  102. package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
  103. package/dist/intelligence/index.d.ts +29 -3
  104. package/dist/intelligence/index.d.ts.map +1 -1
  105. package/dist/intelligence/index.js +13 -3
  106. package/dist/intelligence/index.js.map +1 -1
  107. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  108. package/dist/mcp/claudeFlowSdkServer.js +162 -115
  109. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  110. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
  111. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
  112. package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
  113. package/dist/mcp/fastmcp/tools/swarm/init.js +36 -7
  114. package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
  115. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
  116. package/dist/mcp/fastmcp/tools/swarm/spawn.js +47 -8
  117. package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
  118. package/dist/mcp/tools/agent-booster-tools.d.ts +15 -1
  119. package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
  120. package/dist/mcp/tools/agent-booster-tools.js +79 -63
  121. package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
  122. package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
  123. package/dist/mcp/tools/sona-tools.js +6 -0
  124. package/dist/mcp/tools/sona-tools.js.map +1 -1
  125. package/dist/memory/SharedMemoryPool.d.ts +103 -0
  126. package/dist/memory/SharedMemoryPool.d.ts.map +1 -0
  127. package/dist/memory/SharedMemoryPool.js +263 -0
  128. package/dist/memory/SharedMemoryPool.js.map +1 -0
  129. package/dist/optimizations/agent-booster-migration.d.ts +2 -1
  130. package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
  131. package/dist/optimizations/agent-booster-migration.js +69 -45
  132. package/dist/optimizations/agent-booster-migration.js.map +1 -1
  133. package/dist/orchestration/index.d.ts +11 -0
  134. package/dist/orchestration/index.d.ts.map +1 -0
  135. package/dist/orchestration/index.js +10 -0
  136. package/dist/orchestration/index.js.map +1 -0
  137. package/dist/orchestration/memory-plane-types.d.ts +23 -0
  138. package/dist/orchestration/memory-plane-types.d.ts.map +1 -0
  139. package/dist/orchestration/memory-plane-types.js +5 -0
  140. package/dist/orchestration/memory-plane-types.js.map +1 -0
  141. package/dist/orchestration/memory-plane.d.ts +41 -0
  142. package/dist/orchestration/memory-plane.d.ts.map +1 -0
  143. package/dist/orchestration/memory-plane.js +84 -0
  144. package/dist/orchestration/memory-plane.js.map +1 -0
  145. package/dist/orchestration/orchestration-client.d.ts +104 -0
  146. package/dist/orchestration/orchestration-client.d.ts.map +1 -0
  147. package/dist/orchestration/orchestration-client.js +94 -0
  148. package/dist/orchestration/orchestration-client.js.map +1 -0
  149. package/dist/orchestration/orchestration-runtime.d.ts +26 -0
  150. package/dist/orchestration/orchestration-runtime.d.ts.map +1 -0
  151. package/dist/orchestration/orchestration-runtime.js +78 -0
  152. package/dist/orchestration/orchestration-runtime.js.map +1 -0
  153. package/dist/orchestration/orchestration-types.d.ts +124 -0
  154. package/dist/orchestration/orchestration-types.d.ts.map +1 -0
  155. package/dist/orchestration/orchestration-types.js +7 -0
  156. package/dist/orchestration/orchestration-types.js.map +1 -0
  157. package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
  158. package/dist/proxy/anthropic-to-requesty.js.map +1 -1
  159. package/dist/proxy/quic-proxy.d.ts +0 -1
  160. package/dist/proxy/quic-proxy.d.ts.map +1 -1
  161. package/dist/proxy/quic-proxy.js +2 -2
  162. package/dist/proxy/quic-proxy.js.map +1 -1
  163. package/dist/reasoningbank/AdvancedMemory.js +1 -1
  164. package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
  165. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
  166. package/dist/reasoningbank/HybridBackend.js +2 -5
  167. package/dist/reasoningbank/HybridBackend.js.map +1 -1
  168. package/dist/reasoningbank/backend-selector.d.ts +11 -1
  169. package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
  170. package/dist/reasoningbank/backend-selector.js +45 -5
  171. package/dist/reasoningbank/backend-selector.js.map +1 -1
  172. package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
  173. package/dist/reasoningbank/core/consolidate.js +113 -45
  174. package/dist/reasoningbank/core/consolidate.js.map +1 -1
  175. package/dist/reasoningbank/index-new.d.ts +1 -6
  176. package/dist/reasoningbank/index-new.d.ts.map +1 -1
  177. package/dist/reasoningbank/index-new.js +1 -6
  178. package/dist/reasoningbank/index-new.js.map +1 -1
  179. package/dist/reasoningbank/index.d.ts +6 -0
  180. package/dist/reasoningbank/index.d.ts.map +1 -1
  181. package/dist/reasoningbank/index.js +6 -13
  182. package/dist/reasoningbank/index.js.map +1 -1
  183. package/dist/reasoningbank/utils/embeddings.d.ts +1 -0
  184. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
  185. package/dist/reasoningbank/utils/embeddings.js +53 -26
  186. package/dist/reasoningbank/utils/embeddings.js.map +1 -1
  187. package/dist/router/index.d.ts +2 -1
  188. package/dist/router/index.d.ts.map +1 -1
  189. package/dist/router/index.js +1 -0
  190. package/dist/router/index.js.map +1 -1
  191. package/dist/router/providers/ollama.d.ts +20 -0
  192. package/dist/router/providers/ollama.d.ts.map +1 -0
  193. package/dist/router/providers/ollama.js +242 -0
  194. package/dist/router/providers/ollama.js.map +1 -0
  195. package/dist/router/providers/onnx-local-optimized.d.ts +2 -0
  196. package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
  197. package/dist/router/providers/onnx-local-optimized.js +10 -0
  198. package/dist/router/providers/onnx-local-optimized.js.map +1 -1
  199. package/dist/router/providers/onnx-local.d.ts +1 -0
  200. package/dist/router/providers/onnx-local.d.ts.map +1 -1
  201. package/dist/router/providers/onnx-local.js +22 -5
  202. package/dist/router/providers/onnx-local.js.map +1 -1
  203. package/dist/router/router.d.ts.map +1 -1
  204. package/dist/router/router.js +39 -23
  205. package/dist/router/router.js.map +1 -1
  206. package/dist/sdk/index.d.ts +2 -1
  207. package/dist/sdk/index.d.ts.map +1 -1
  208. package/dist/sdk/index.js +3 -1
  209. package/dist/sdk/index.js.map +1 -1
  210. package/dist/services/embedding-service.js.map +1 -1
  211. package/dist/services/sona-agent-training.d.ts +1 -0
  212. package/dist/services/sona-agent-training.d.ts.map +1 -1
  213. package/dist/services/sona-agent-training.js.map +1 -1
  214. package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
  215. package/dist/services/sona-agentdb-integration.js +9 -6
  216. package/dist/services/sona-agentdb-integration.js.map +1 -1
  217. package/dist/services/sona-service.d.ts.map +1 -1
  218. package/dist/services/sona-service.js +6 -5
  219. package/dist/services/sona-service.js.map +1 -1
  220. package/dist/utils/cli.d.ts +1 -1
  221. package/dist/utils/cli.d.ts.map +1 -1
  222. package/dist/utils/cli.js +21 -0
  223. package/dist/utils/cli.js.map +1 -1
  224. package/dist/utils/index.d.ts +6 -0
  225. package/dist/utils/index.d.ts.map +1 -0
  226. package/dist/utils/index.js +6 -0
  227. package/dist/utils/index.js.map +1 -0
  228. package/dist/utils/model-cache.d.ts +61 -0
  229. package/dist/utils/model-cache.d.ts.map +1 -0
  230. package/dist/utils/model-cache.js +176 -0
  231. package/dist/utils/model-cache.js.map +1 -0
  232. package/dist/utils/suppress-warnings.d.ts +19 -0
  233. package/dist/utils/suppress-warnings.d.ts.map +1 -0
  234. package/dist/utils/suppress-warnings.js +59 -0
  235. package/dist/utils/suppress-warnings.js.map +1 -0
  236. package/dist/workers/consolidated-phases.d.ts +40 -0
  237. package/dist/workers/consolidated-phases.d.ts.map +1 -0
  238. package/dist/workers/consolidated-phases.js +497 -0
  239. package/dist/workers/consolidated-phases.js.map +1 -0
  240. package/dist/workers/custom-worker-config.d.ts +133 -0
  241. package/dist/workers/custom-worker-config.d.ts.map +1 -0
  242. package/dist/workers/custom-worker-config.js +215 -0
  243. package/dist/workers/custom-worker-config.js.map +1 -0
  244. package/dist/workers/custom-worker-factory.d.ts +89 -0
  245. package/dist/workers/custom-worker-factory.d.ts.map +1 -0
  246. package/dist/workers/custom-worker-factory.js +404 -0
  247. package/dist/workers/custom-worker-factory.js.map +1 -0
  248. package/dist/workers/dispatch-service.d.ts +123 -0
  249. package/dist/workers/dispatch-service.d.ts.map +1 -0
  250. package/dist/workers/dispatch-service.js +1024 -0
  251. package/dist/workers/dispatch-service.js.map +1 -0
  252. package/dist/workers/hooks-integration.d.ts +79 -0
  253. package/dist/workers/hooks-integration.d.ts.map +1 -0
  254. package/dist/workers/hooks-integration.js +286 -0
  255. package/dist/workers/hooks-integration.js.map +1 -0
  256. package/dist/workers/index.d.ts +42 -0
  257. package/dist/workers/index.d.ts.map +1 -0
  258. package/dist/workers/index.js +52 -0
  259. package/dist/workers/index.js.map +1 -0
  260. package/dist/workers/mcp-tools.d.ts +56 -0
  261. package/dist/workers/mcp-tools.d.ts.map +1 -0
  262. package/dist/workers/mcp-tools.js +359 -0
  263. package/dist/workers/mcp-tools.js.map +1 -0
  264. package/dist/workers/phase-executors.d.ts +22 -0
  265. package/dist/workers/phase-executors.d.ts.map +1 -0
  266. package/dist/workers/phase-executors.js +445 -0
  267. package/dist/workers/phase-executors.js.map +1 -0
  268. package/dist/workers/resource-governor.d.ts +75 -0
  269. package/dist/workers/resource-governor.d.ts.map +1 -0
  270. package/dist/workers/resource-governor.js +187 -0
  271. package/dist/workers/resource-governor.js.map +1 -0
  272. package/dist/workers/ruvector-integration.d.ts +163 -0
  273. package/dist/workers/ruvector-integration.d.ts.map +1 -0
  274. package/dist/workers/ruvector-integration.js +543 -0
  275. package/dist/workers/ruvector-integration.js.map +1 -0
  276. package/dist/workers/ruvector-native-integration.d.ts +91 -0
  277. package/dist/workers/ruvector-native-integration.d.ts.map +1 -0
  278. package/dist/workers/ruvector-native-integration.js +254 -0
  279. package/dist/workers/ruvector-native-integration.js.map +1 -0
  280. package/dist/workers/trigger-detector.d.ts +68 -0
  281. package/dist/workers/trigger-detector.d.ts.map +1 -0
  282. package/dist/workers/trigger-detector.js +281 -0
  283. package/dist/workers/trigger-detector.js.map +1 -0
  284. package/dist/workers/types.d.ts +145 -0
  285. package/dist/workers/types.d.ts.map +1 -0
  286. package/dist/workers/types.js +6 -0
  287. package/dist/workers/types.js.map +1 -0
  288. package/dist/workers/worker-agent-integration.d.ts +140 -0
  289. package/dist/workers/worker-agent-integration.d.ts.map +1 -0
  290. package/dist/workers/worker-agent-integration.js +471 -0
  291. package/dist/workers/worker-agent-integration.js.map +1 -0
  292. package/dist/workers/worker-benchmarks.d.ts +88 -0
  293. package/dist/workers/worker-benchmarks.d.ts.map +1 -0
  294. package/dist/workers/worker-benchmarks.js +452 -0
  295. package/dist/workers/worker-benchmarks.js.map +1 -0
  296. package/dist/workers/worker-registry.d.ts +85 -0
  297. package/dist/workers/worker-registry.d.ts.map +1 -0
  298. package/dist/workers/worker-registry.js +547 -0
  299. package/dist/workers/worker-registry.js.map +1 -0
  300. package/docs/embeddings/EMBEDDING_GEOMETRY.md +935 -0
  301. package/package.json +27 -9
  302. package/scripts/postinstall.js +45 -4
  303. package/wasm/reasoningbank/reasoningbank_wasm.js +1 -1
  304. package/wasm/reasoningbank/reasoningbank_wasm_bg.js +54 -54
  305. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
  306. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm.d.ts +4 -3
  307. package/.claude/agents/test-neural.md +0 -14
  308. /package/.claude/agents/analysis/{code-review/analyze-code-quality.md → analyze-code-quality.md} +0 -0
  309. /package/.claude/agents/architecture/{system-design/arch-system-design.md → arch-system-design.md} +0 -0
  310. /package/.claude/agents/data/{ml/data-ml-model.md → data-ml-model.md} +0 -0
  311. /package/.claude/agents/development/{backend/dev-backend-api.md → dev-backend-api.md} +0 -0
  312. /package/.claude/agents/devops/{ci-cd/ops-cicd-github.md → ops-cicd-github.md} +0 -0
  313. /package/.claude/agents/documentation/{api-docs/docs-api-openapi.md → docs-api-openapi.md} +0 -0
  314. /package/.claude/agents/specialized/{mobile/spec-mobile-react-native.md → spec-mobile-react-native.md} +0 -0
  315. /package/.claude/agents/testing/{validation/production-validator.md → production-validator.md} +0 -0
  316. /package/.claude/agents/testing/{unit/tdd-london-swarm.md → tdd-london-swarm.md} +0 -0
@@ -0,0 +1,281 @@
1
+ /**
2
+ * TriggerDetector - Detects background worker triggers in prompts
3
+ * Target: < 5ms detection latency
4
+ */
5
+ // Trigger configuration map
6
+ const TRIGGER_CONFIGS = new Map([
7
+ ['ultralearn', {
8
+ keyword: 'ultralearn',
9
+ worker: 'research-swarm',
10
+ priority: 'high',
11
+ maxAgents: 5,
12
+ timeout: 300000, // 5 minutes
13
+ cooldown: 60000, // 1 minute
14
+ topicExtractor: /ultralearn\s+(.+?)(?:\.|$)/i,
15
+ description: 'Deep research swarm for codebase learning'
16
+ }],
17
+ ['optimize', {
18
+ keyword: 'optimize',
19
+ worker: 'perf-analyzer',
20
+ priority: 'medium',
21
+ maxAgents: 2,
22
+ timeout: 180000, // 3 minutes
23
+ cooldown: 120000, // 2 minutes
24
+ topicExtractor: /optimize\s+(.+?)(?:\.|$)/i,
25
+ description: 'Performance analyzer and cache optimizer'
26
+ }],
27
+ ['consolidate', {
28
+ keyword: 'consolidate',
29
+ worker: 'memory-optimizer',
30
+ priority: 'low',
31
+ maxAgents: 1,
32
+ timeout: 120000, // 2 minutes
33
+ cooldown: 300000, // 5 minutes
34
+ topicExtractor: null,
35
+ description: 'Memory compaction and pattern extraction'
36
+ }],
37
+ ['predict', {
38
+ keyword: 'predict',
39
+ worker: 'pattern-matcher',
40
+ priority: 'medium',
41
+ maxAgents: 2,
42
+ timeout: 60000, // 1 minute
43
+ cooldown: 30000, // 30 seconds
44
+ topicExtractor: /predict\s+(.+?)(?:\.|$)/i,
45
+ description: 'Pre-fetch likely files based on learned patterns'
46
+ }],
47
+ ['audit', {
48
+ keyword: 'audit',
49
+ worker: 'security-scanner',
50
+ priority: 'high',
51
+ maxAgents: 3,
52
+ timeout: 300000, // 5 minutes
53
+ cooldown: 180000, // 3 minutes
54
+ topicExtractor: /audit\s+(.+?)(?:\.|$)/i,
55
+ description: 'Security and code quality scan'
56
+ }],
57
+ ['map', {
58
+ keyword: 'map',
59
+ worker: 'dependency-mapper',
60
+ priority: 'medium',
61
+ maxAgents: 2,
62
+ timeout: 240000, // 4 minutes
63
+ cooldown: 300000, // 5 minutes
64
+ topicExtractor: /map\s+(.+?)(?:\.|$)/i,
65
+ description: 'Build full dependency graph'
66
+ }],
67
+ ['preload', {
68
+ keyword: 'preload',
69
+ worker: 'context-prefetcher',
70
+ priority: 'low',
71
+ maxAgents: 1,
72
+ timeout: 30000, // 30 seconds
73
+ cooldown: 10000, // 10 seconds
74
+ topicExtractor: /preload\s+(.+?)(?:\.|$)/i,
75
+ description: 'Pre-fetch context for faster access'
76
+ }],
77
+ ['deepdive', {
78
+ keyword: 'deepdive',
79
+ worker: 'call-graph-analyzer',
80
+ priority: 'high',
81
+ maxAgents: 4,
82
+ timeout: 600000, // 10 minutes
83
+ cooldown: 300000, // 5 minutes
84
+ topicExtractor: /deepdive\s+(.+?)(?:\.|$)/i,
85
+ description: 'Traces call paths 5+ levels deep'
86
+ }],
87
+ ['document', {
88
+ keyword: 'document',
89
+ worker: 'doc-generator',
90
+ priority: 'low',
91
+ maxAgents: 2,
92
+ timeout: 180000,
93
+ cooldown: 120000,
94
+ topicExtractor: /document\s+(.+?)(?:\.|$)/i,
95
+ description: 'Generate documentation for patterns'
96
+ }],
97
+ ['refactor', {
98
+ keyword: 'refactor',
99
+ worker: 'refactor-analyzer',
100
+ priority: 'medium',
101
+ maxAgents: 2,
102
+ timeout: 180000,
103
+ cooldown: 120000,
104
+ topicExtractor: /refactor\s+(.+?)(?:\.|$)/i,
105
+ description: 'Identify refactoring opportunities'
106
+ }],
107
+ ['benchmark', {
108
+ keyword: 'benchmark',
109
+ worker: 'perf-benchmarker',
110
+ priority: 'medium',
111
+ maxAgents: 2,
112
+ timeout: 300000,
113
+ cooldown: 180000,
114
+ topicExtractor: /benchmark\s+(.+?)(?:\.|$)/i,
115
+ description: 'Run performance benchmarks silently'
116
+ }],
117
+ ['testgaps', {
118
+ keyword: 'testgaps',
119
+ worker: 'coverage-analyzer',
120
+ priority: 'medium',
121
+ maxAgents: 2,
122
+ timeout: 180000,
123
+ cooldown: 120000,
124
+ topicExtractor: /testgaps?\s+(.+?)(?:\.|$)/i,
125
+ description: 'Find untested code paths'
126
+ }]
127
+ ]);
128
+ // Pre-compiled regex for fast matching
129
+ const TRIGGER_PATTERN = new RegExp(`\\b(${Array.from(TRIGGER_CONFIGS.keys()).join('|')})\\b`, 'gi');
130
+ export class TriggerDetector {
131
+ cooldowns = new Map();
132
+ /**
133
+ * Detect all triggers in a prompt
134
+ * Target: < 5ms latency
135
+ */
136
+ detect(prompt) {
137
+ const startTime = performance.now();
138
+ const triggers = [];
139
+ const seen = new Set();
140
+ // Fast regex match
141
+ let match;
142
+ TRIGGER_PATTERN.lastIndex = 0;
143
+ while ((match = TRIGGER_PATTERN.exec(prompt)) !== null) {
144
+ const keyword = match[1].toLowerCase();
145
+ // Skip duplicates
146
+ if (seen.has(keyword))
147
+ continue;
148
+ seen.add(keyword);
149
+ // Check cooldown
150
+ if (this.isOnCooldown(keyword))
151
+ continue;
152
+ const config = TRIGGER_CONFIGS.get(keyword);
153
+ if (!config)
154
+ continue;
155
+ // Extract topic if extractor exists
156
+ let topic = null;
157
+ if (config.topicExtractor) {
158
+ const topicMatch = prompt.match(config.topicExtractor);
159
+ if (topicMatch && topicMatch[1]) {
160
+ topic = topicMatch[1].trim();
161
+ }
162
+ }
163
+ triggers.push({
164
+ keyword,
165
+ topic,
166
+ config,
167
+ detectedAt: Date.now()
168
+ });
169
+ // Set cooldown
170
+ this.setCooldown(keyword);
171
+ }
172
+ const elapsed = performance.now() - startTime;
173
+ if (elapsed > 5) {
174
+ console.warn(`TriggerDetector: detection took ${elapsed.toFixed(2)}ms (target: 5ms)`);
175
+ }
176
+ return triggers;
177
+ }
178
+ /**
179
+ * Check if a trigger is on cooldown
180
+ */
181
+ isOnCooldown(trigger) {
182
+ const lastUsed = this.cooldowns.get(trigger);
183
+ if (!lastUsed)
184
+ return false;
185
+ const config = TRIGGER_CONFIGS.get(trigger);
186
+ if (!config)
187
+ return false;
188
+ return Date.now() - lastUsed < config.cooldown;
189
+ }
190
+ /**
191
+ * Set cooldown for a trigger
192
+ */
193
+ setCooldown(trigger) {
194
+ this.cooldowns.set(trigger, Date.now());
195
+ }
196
+ /**
197
+ * Clear cooldown for a trigger (for testing)
198
+ */
199
+ clearCooldown(trigger) {
200
+ this.cooldowns.delete(trigger);
201
+ }
202
+ /**
203
+ * Clear all cooldowns
204
+ */
205
+ clearAllCooldowns() {
206
+ this.cooldowns.clear();
207
+ }
208
+ /**
209
+ * Get remaining cooldown time for a trigger
210
+ */
211
+ getCooldownRemaining(trigger) {
212
+ const lastUsed = this.cooldowns.get(trigger);
213
+ if (!lastUsed)
214
+ return 0;
215
+ const config = TRIGGER_CONFIGS.get(trigger);
216
+ if (!config)
217
+ return 0;
218
+ const remaining = config.cooldown - (Date.now() - lastUsed);
219
+ return Math.max(0, remaining);
220
+ }
221
+ /**
222
+ * Get config for a specific trigger
223
+ */
224
+ getConfig(trigger) {
225
+ return TRIGGER_CONFIGS.get(trigger);
226
+ }
227
+ /**
228
+ * Get all trigger configs
229
+ */
230
+ getAllConfigs() {
231
+ return new Map(TRIGGER_CONFIGS);
232
+ }
233
+ /**
234
+ * Register a custom trigger dynamically
235
+ */
236
+ registerTrigger(config) {
237
+ const keyword = config.keyword;
238
+ const triggerConfig = {
239
+ keyword,
240
+ worker: config.keyword,
241
+ priority: config.priority || 'medium',
242
+ maxAgents: 2,
243
+ timeout: config.timeout || 120000,
244
+ cooldown: config.cooldown || 5000,
245
+ topicExtractor: config.topicExtractor || null,
246
+ description: config.description || `Custom trigger: ${config.keyword}`
247
+ };
248
+ TRIGGER_CONFIGS.set(keyword, triggerConfig);
249
+ }
250
+ /**
251
+ * Check if a string contains any trigger keywords
252
+ * Faster than full detect() when you just need boolean check
253
+ */
254
+ hasTriggers(prompt) {
255
+ TRIGGER_PATTERN.lastIndex = 0;
256
+ return TRIGGER_PATTERN.test(prompt);
257
+ }
258
+ /**
259
+ * Get trigger stats
260
+ */
261
+ getStats() {
262
+ const cooldowns = {};
263
+ for (const [trigger, time] of this.cooldowns) {
264
+ cooldowns[trigger] = this.getCooldownRemaining(trigger);
265
+ }
266
+ return {
267
+ triggers: Array.from(TRIGGER_CONFIGS.keys()),
268
+ cooldowns
269
+ };
270
+ }
271
+ }
272
+ // Singleton instance
273
+ let instance = null;
274
+ export function getTriggerDetector() {
275
+ if (!instance) {
276
+ instance = new TriggerDetector();
277
+ }
278
+ return instance;
279
+ }
280
+ export { TRIGGER_CONFIGS };
281
+ //# sourceMappingURL=trigger-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-detector.js","sourceRoot":"","sources":["../../src/workers/trigger-detector.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * TriggerDetector - Detects background worker triggers in prompts\n * Target: < 5ms detection latency\n */\n\nimport {\n WorkerTrigger,\n TriggerConfig,\n DetectedTrigger,\n WorkerPriority\n} from './types.js';\n\n// Trigger configuration map\nconst TRIGGER_CONFIGS: Map<WorkerTrigger, TriggerConfig> = new Map([\n ['ultralearn', {\n keyword: 'ultralearn',\n worker: 'research-swarm',\n priority: 'high',\n maxAgents: 5,\n timeout: 300000, // 5 minutes\n cooldown: 60000, // 1 minute\n topicExtractor: /ultralearn\\s+(.+?)(?:\\.|$)/i,\n description: 'Deep research swarm for codebase learning'\n }],\n ['optimize', {\n keyword: 'optimize',\n worker: 'perf-analyzer',\n priority: 'medium',\n maxAgents: 2,\n timeout: 180000, // 3 minutes\n cooldown: 120000, // 2 minutes\n topicExtractor: /optimize\\s+(.+?)(?:\\.|$)/i,\n description: 'Performance analyzer and cache optimizer'\n }],\n ['consolidate', {\n keyword: 'consolidate',\n worker: 'memory-optimizer',\n priority: 'low',\n maxAgents: 1,\n timeout: 120000, // 2 minutes\n cooldown: 300000, // 5 minutes\n topicExtractor: null,\n description: 'Memory compaction and pattern extraction'\n }],\n ['predict', {\n keyword: 'predict',\n worker: 'pattern-matcher',\n priority: 'medium',\n maxAgents: 2,\n timeout: 60000, // 1 minute\n cooldown: 30000, // 30 seconds\n topicExtractor: /predict\\s+(.+?)(?:\\.|$)/i,\n description: 'Pre-fetch likely files based on learned patterns'\n }],\n ['audit', {\n keyword: 'audit',\n worker: 'security-scanner',\n priority: 'high',\n maxAgents: 3,\n timeout: 300000, // 5 minutes\n cooldown: 180000, // 3 minutes\n topicExtractor: /audit\\s+(.+?)(?:\\.|$)/i,\n description: 'Security and code quality scan'\n }],\n ['map', {\n keyword: 'map',\n worker: 'dependency-mapper',\n priority: 'medium',\n maxAgents: 2,\n timeout: 240000, // 4 minutes\n cooldown: 300000, // 5 minutes\n topicExtractor: /map\\s+(.+?)(?:\\.|$)/i,\n description: 'Build full dependency graph'\n }],\n ['preload', {\n keyword: 'preload',\n worker: 'context-prefetcher',\n priority: 'low',\n maxAgents: 1,\n timeout: 30000, // 30 seconds\n cooldown: 10000, // 10 seconds\n topicExtractor: /preload\\s+(.+?)(?:\\.|$)/i,\n description: 'Pre-fetch context for faster access'\n }],\n ['deepdive', {\n keyword: 'deepdive',\n worker: 'call-graph-analyzer',\n priority: 'high',\n maxAgents: 4,\n timeout: 600000, // 10 minutes\n cooldown: 300000, // 5 minutes\n topicExtractor: /deepdive\\s+(.+?)(?:\\.|$)/i,\n description: 'Traces call paths 5+ levels deep'\n }],\n ['document', {\n keyword: 'document',\n worker: 'doc-generator',\n priority: 'low',\n maxAgents: 2,\n timeout: 180000,\n cooldown: 120000,\n topicExtractor: /document\\s+(.+?)(?:\\.|$)/i,\n description: 'Generate documentation for patterns'\n }],\n ['refactor', {\n keyword: 'refactor',\n worker: 'refactor-analyzer',\n priority: 'medium',\n maxAgents: 2,\n timeout: 180000,\n cooldown: 120000,\n topicExtractor: /refactor\\s+(.+?)(?:\\.|$)/i,\n description: 'Identify refactoring opportunities'\n }],\n ['benchmark', {\n keyword: 'benchmark',\n worker: 'perf-benchmarker',\n priority: 'medium',\n maxAgents: 2,\n timeout: 300000,\n cooldown: 180000,\n topicExtractor: /benchmark\\s+(.+?)(?:\\.|$)/i,\n description: 'Run performance benchmarks silently'\n }],\n ['testgaps', {\n keyword: 'testgaps',\n worker: 'coverage-analyzer',\n priority: 'medium',\n maxAgents: 2,\n timeout: 180000,\n cooldown: 120000,\n topicExtractor: /testgaps?\\s+(.+?)(?:\\.|$)/i,\n description: 'Find untested code paths'\n }]\n]);\n\n// Pre-compiled regex for fast matching\nconst TRIGGER_PATTERN = new RegExp(\n `\\\\b(${Array.from(TRIGGER_CONFIGS.keys()).join('|')})\\\\b`,\n 'gi'\n);\n\nexport class TriggerDetector {\n private cooldowns: Map<WorkerTrigger, number> = new Map();\n\n /**\n * Detect all triggers in a prompt\n * Target: < 5ms latency\n */\n detect(prompt: string): DetectedTrigger[] {\n const startTime = performance.now();\n const triggers: DetectedTrigger[] = [];\n const seen = new Set<WorkerTrigger>();\n\n // Fast regex match\n let match: RegExpExecArray | null;\n TRIGGER_PATTERN.lastIndex = 0;\n\n while ((match = TRIGGER_PATTERN.exec(prompt)) !== null) {\n const keyword = match[1].toLowerCase() as WorkerTrigger;\n\n // Skip duplicates\n if (seen.has(keyword)) continue;\n seen.add(keyword);\n\n // Check cooldown\n if (this.isOnCooldown(keyword)) continue;\n\n const config = TRIGGER_CONFIGS.get(keyword);\n if (!config) continue;\n\n // Extract topic if extractor exists\n let topic: string | null = null;\n if (config.topicExtractor) {\n const topicMatch = prompt.match(config.topicExtractor);\n if (topicMatch && topicMatch[1]) {\n topic = topicMatch[1].trim();\n }\n }\n\n triggers.push({\n keyword,\n topic,\n config,\n detectedAt: Date.now()\n });\n\n // Set cooldown\n this.setCooldown(keyword);\n }\n\n const elapsed = performance.now() - startTime;\n if (elapsed > 5) {\n console.warn(`TriggerDetector: detection took ${elapsed.toFixed(2)}ms (target: 5ms)`);\n }\n\n return triggers;\n }\n\n /**\n * Check if a trigger is on cooldown\n */\n isOnCooldown(trigger: WorkerTrigger): boolean {\n const lastUsed = this.cooldowns.get(trigger);\n if (!lastUsed) return false;\n\n const config = TRIGGER_CONFIGS.get(trigger);\n if (!config) return false;\n\n return Date.now() - lastUsed < config.cooldown;\n }\n\n /**\n * Set cooldown for a trigger\n */\n private setCooldown(trigger: WorkerTrigger): void {\n this.cooldowns.set(trigger, Date.now());\n }\n\n /**\n * Clear cooldown for a trigger (for testing)\n */\n clearCooldown(trigger: WorkerTrigger): void {\n this.cooldowns.delete(trigger);\n }\n\n /**\n * Clear all cooldowns\n */\n clearAllCooldowns(): void {\n this.cooldowns.clear();\n }\n\n /**\n * Get remaining cooldown time for a trigger\n */\n getCooldownRemaining(trigger: WorkerTrigger): number {\n const lastUsed = this.cooldowns.get(trigger);\n if (!lastUsed) return 0;\n\n const config = TRIGGER_CONFIGS.get(trigger);\n if (!config) return 0;\n\n const remaining = config.cooldown - (Date.now() - lastUsed);\n return Math.max(0, remaining);\n }\n\n /**\n * Get config for a specific trigger\n */\n getConfig(trigger: WorkerTrigger): TriggerConfig | undefined {\n return TRIGGER_CONFIGS.get(trigger);\n }\n\n /**\n * Get all trigger configs\n */\n getAllConfigs(): Map<WorkerTrigger, TriggerConfig> {\n return new Map(TRIGGER_CONFIGS);\n }\n\n /**\n * Register a custom trigger dynamically\n */\n registerTrigger(config: {\n keyword: string;\n priority?: WorkerPriority;\n description?: string;\n timeout?: number;\n cooldown?: number;\n topicExtractor?: RegExp;\n }): void {\n const keyword = config.keyword as WorkerTrigger;\n const triggerConfig: TriggerConfig = {\n keyword,\n worker: config.keyword,\n priority: config.priority || 'medium',\n maxAgents: 2,\n timeout: config.timeout || 120000,\n cooldown: config.cooldown || 5000,\n topicExtractor: config.topicExtractor || null,\n description: config.description || `Custom trigger: ${config.keyword}`\n };\n TRIGGER_CONFIGS.set(keyword, triggerConfig);\n }\n\n /**\n * Check if a string contains any trigger keywords\n * Faster than full detect() when you just need boolean check\n */\n hasTriggers(prompt: string): boolean {\n TRIGGER_PATTERN.lastIndex = 0;\n return TRIGGER_PATTERN.test(prompt);\n }\n\n /**\n * Get trigger stats\n */\n getStats(): { triggers: WorkerTrigger[]; cooldowns: Record<string, number> } {\n const cooldowns: Record<string, number> = {};\n for (const [trigger, time] of this.cooldowns) {\n cooldowns[trigger] = this.getCooldownRemaining(trigger);\n }\n return {\n triggers: Array.from(TRIGGER_CONFIGS.keys()),\n cooldowns\n };\n }\n}\n\n// Singleton instance\nlet instance: TriggerDetector | null = null;\n\nexport function getTriggerDetector(): TriggerDetector {\n if (!instance) {\n instance = new TriggerDetector();\n }\n return instance;\n}\n\nexport { TRIGGER_CONFIGS };\n"]}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Background Workers Type Definitions
3
+ * Non-blocking workers triggered by keywords that run silently
4
+ */
5
+ export type WorkerId = string;
6
+ export type WorkerTrigger = 'ultralearn' | 'optimize' | 'consolidate' | 'predict' | 'audit' | 'map' | 'preload' | 'deepdive' | 'document' | 'refactor' | 'benchmark' | 'testgaps';
7
+ export type WorkerStatus = 'queued' | 'running' | 'complete' | 'failed' | 'cancelled' | 'timeout';
8
+ export type WorkerPriority = 'low' | 'medium' | 'high' | 'critical';
9
+ export interface TriggerConfig {
10
+ keyword: WorkerTrigger;
11
+ worker: string;
12
+ priority: WorkerPriority;
13
+ maxAgents: number;
14
+ timeout: number;
15
+ cooldown: number;
16
+ topicExtractor: RegExp | null;
17
+ description: string;
18
+ }
19
+ export interface DetectedTrigger {
20
+ keyword: WorkerTrigger;
21
+ topic: string | null;
22
+ config: TriggerConfig;
23
+ detectedAt: number;
24
+ }
25
+ export interface WorkerInfo {
26
+ id: WorkerId;
27
+ trigger: WorkerTrigger;
28
+ topic: string | null;
29
+ sessionId: string;
30
+ status: WorkerStatus;
31
+ progress: number;
32
+ currentPhase: string | null;
33
+ startedAt: number;
34
+ completedAt: number | null;
35
+ error: string | null;
36
+ memoryDeposits: number;
37
+ resultKeys: string[];
38
+ createdAt: number;
39
+ /** Actual analysis results from worker execution */
40
+ results?: {
41
+ files_analyzed?: number;
42
+ patterns_found?: number;
43
+ bytes_processed?: number;
44
+ sample_patterns?: string[];
45
+ [key: string]: unknown;
46
+ };
47
+ }
48
+ export interface WorkerResults {
49
+ status: WorkerStatus;
50
+ success?: boolean;
51
+ data?: Record<string, unknown>;
52
+ error?: string;
53
+ completedPhases: number;
54
+ totalPhases: number;
55
+ memoryKeys: string[];
56
+ duration: number;
57
+ tokensUsed?: number;
58
+ }
59
+ export interface PhaseResult {
60
+ phase: string;
61
+ success: boolean;
62
+ data?: Record<string, unknown>;
63
+ error?: string;
64
+ duration: number;
65
+ memoryKeys?: string[];
66
+ }
67
+ export interface ResourceLimits {
68
+ maxConcurrentWorkers: number;
69
+ maxPerTrigger: number;
70
+ maxHeapMB: number;
71
+ workerTimeout: number;
72
+ }
73
+ export interface ResourceStats {
74
+ activeWorkers: number;
75
+ workersByType: Record<string, number>;
76
+ memoryUsage: NodeJS.MemoryUsage;
77
+ uptime: number;
78
+ }
79
+ export interface MemoryEntry {
80
+ collection: string;
81
+ key: string;
82
+ data: unknown;
83
+ vector?: number[];
84
+ ttl?: number;
85
+ metadata?: Record<string, unknown>;
86
+ }
87
+ export interface SearchResult {
88
+ collection: string;
89
+ key: string;
90
+ data: unknown;
91
+ score: number;
92
+ }
93
+ export interface ContextInjection {
94
+ context: Array<{
95
+ source: string;
96
+ type: string;
97
+ content: string;
98
+ score: number;
99
+ }>;
100
+ source: string;
101
+ confidence: number;
102
+ }
103
+ export interface WorkerMetrics {
104
+ workerId: WorkerId;
105
+ filesAnalyzed: number;
106
+ patternsFound: number;
107
+ memoryBytesWritten: number;
108
+ cpuTimeMs: number;
109
+ peakMemoryMB: number;
110
+ errorCount: number;
111
+ }
112
+ export interface DashboardMetrics {
113
+ totalSpawned: number;
114
+ totalCompleted: number;
115
+ totalFailed: number;
116
+ avgDurationMs: number;
117
+ p95DurationMs: number;
118
+ peakConcurrency: number;
119
+ avgMemoryMB: number;
120
+ peakMemoryMB: number;
121
+ patternsStored: number;
122
+ memoryDeposits: number;
123
+ contextInjections: number;
124
+ byTrigger: Record<string, {
125
+ count: number;
126
+ avgDuration: number;
127
+ successRate: number;
128
+ }>;
129
+ }
130
+ export interface WorkerContext {
131
+ workerId: WorkerId;
132
+ trigger: WorkerTrigger;
133
+ topic: string | null;
134
+ sessionId: string;
135
+ startTime: number;
136
+ signal: AbortSignal;
137
+ onProgress: (progress: number, phase: string) => void;
138
+ onMemoryDeposit: (key: string) => void;
139
+ }
140
+ export interface PoolConfig {
141
+ maxPoolSize: number;
142
+ preWarmCount: number;
143
+ idleTimeout: number;
144
+ }
145
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Background Workers Type Definitions
3
+ * Non-blocking workers triggered by keywords that run silently
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workers/types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Background Workers Type Definitions\n * Non-blocking workers triggered by keywords that run silently\n */\n\nexport type WorkerId = string;\nexport type WorkerTrigger =\n | 'ultralearn'\n | 'optimize'\n | 'consolidate'\n | 'predict'\n | 'audit'\n | 'map'\n | 'preload'\n | 'deepdive'\n | 'document'\n | 'refactor'\n | 'benchmark'\n | 'testgaps';\n\nexport type WorkerStatus = 'queued' | 'running' | 'complete' | 'failed' | 'cancelled' | 'timeout';\nexport type WorkerPriority = 'low' | 'medium' | 'high' | 'critical';\n\nexport interface TriggerConfig {\n keyword: WorkerTrigger;\n worker: string;\n priority: WorkerPriority;\n maxAgents: number;\n timeout: number;\n cooldown: number;\n topicExtractor: RegExp | null;\n description: string;\n}\n\nexport interface DetectedTrigger {\n keyword: WorkerTrigger;\n topic: string | null;\n config: TriggerConfig;\n detectedAt: number;\n}\n\nexport interface WorkerInfo {\n id: WorkerId;\n trigger: WorkerTrigger;\n topic: string | null;\n sessionId: string;\n status: WorkerStatus;\n progress: number;\n currentPhase: string | null;\n startedAt: number;\n completedAt: number | null;\n error: string | null;\n memoryDeposits: number;\n resultKeys: string[];\n createdAt: number;\n /** Actual analysis results from worker execution */\n results?: {\n files_analyzed?: number;\n patterns_found?: number;\n bytes_processed?: number;\n sample_patterns?: string[];\n [key: string]: unknown;\n };\n}\n\nexport interface WorkerResults {\n status: WorkerStatus;\n success?: boolean;\n data?: Record<string, unknown>;\n error?: string;\n completedPhases: number;\n totalPhases: number;\n memoryKeys: string[];\n duration: number;\n tokensUsed?: number;\n}\n\nexport interface PhaseResult {\n phase: string;\n success: boolean;\n data?: Record<string, unknown>;\n error?: string;\n duration: number;\n memoryKeys?: string[];\n}\n\nexport interface ResourceLimits {\n maxConcurrentWorkers: number;\n maxPerTrigger: number;\n maxHeapMB: number;\n workerTimeout: number;\n}\n\nexport interface ResourceStats {\n activeWorkers: number;\n workersByType: Record<string, number>;\n memoryUsage: NodeJS.MemoryUsage;\n uptime: number;\n}\n\nexport interface MemoryEntry {\n collection: string;\n key: string;\n data: unknown;\n vector?: number[];\n ttl?: number;\n metadata?: Record<string, unknown>;\n}\n\nexport interface SearchResult {\n collection: string;\n key: string;\n data: unknown;\n score: number;\n}\n\nexport interface ContextInjection {\n context: Array<{\n source: string;\n type: string;\n content: string;\n score: number;\n }>;\n source: string;\n confidence: number;\n}\n\nexport interface WorkerMetrics {\n workerId: WorkerId;\n filesAnalyzed: number;\n patternsFound: number;\n memoryBytesWritten: number;\n cpuTimeMs: number;\n peakMemoryMB: number;\n errorCount: number;\n}\n\nexport interface DashboardMetrics {\n totalSpawned: number;\n totalCompleted: number;\n totalFailed: number;\n avgDurationMs: number;\n p95DurationMs: number;\n peakConcurrency: number;\n avgMemoryMB: number;\n peakMemoryMB: number;\n patternsStored: number;\n memoryDeposits: number;\n contextInjections: number;\n byTrigger: Record<string, { count: number; avgDuration: number; successRate: number }>;\n}\n\n// Worker execution context\nexport interface WorkerContext {\n workerId: WorkerId;\n trigger: WorkerTrigger;\n topic: string | null;\n sessionId: string;\n startTime: number;\n signal: AbortSignal;\n onProgress: (progress: number, phase: string) => void;\n onMemoryDeposit: (key: string) => void;\n}\n\n// Configuration for worker pool\nexport interface PoolConfig {\n maxPoolSize: number;\n preWarmCount: number;\n idleTimeout: number;\n}\n"]}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Worker-Agent Integration Layer
3
+ *
4
+ * Bridges the worker system with agent execution through:
5
+ * - Pattern sharing via ReasoningBank
6
+ * - Metrics-based capability matching
7
+ * - Self-learning feedback loops
8
+ * - Performance-aware agent selection
9
+ */
10
+ import { WorkerTrigger } from './types.js';
11
+ export interface AgentCapability {
12
+ name: string;
13
+ description: string;
14
+ triggers: WorkerTrigger[];
15
+ priority: 'low' | 'medium' | 'high' | 'critical';
16
+ memoryPatterns: string[];
17
+ benchmarkThresholds: BenchmarkThreshold[];
18
+ }
19
+ export interface BenchmarkThreshold {
20
+ metric: string;
21
+ target: number;
22
+ unit: 'ms' | 'ops/s' | 'MB' | '%';
23
+ direction: 'below' | 'above';
24
+ }
25
+ export interface AgentPerformanceProfile {
26
+ agentName: string;
27
+ capabilities: string[];
28
+ avgLatencyMs: number;
29
+ p95LatencyMs: number;
30
+ successRate: number;
31
+ memoryUsageMB: number;
32
+ qualityScore: number;
33
+ executionCount: number;
34
+ lastExecuted: number;
35
+ }
36
+ export interface WorkerAgentMapping {
37
+ trigger: WorkerTrigger;
38
+ recommendedAgents: string[];
39
+ fallbackAgents: string[];
40
+ pipelinePhases: string[];
41
+ memoryKeyPattern: string;
42
+ }
43
+ export declare class WorkerAgentIntegration {
44
+ private memoryPatterns;
45
+ private feedbackQueue;
46
+ /**
47
+ * Get recommended agents for a worker trigger
48
+ */
49
+ getRecommendedAgents(trigger: WorkerTrigger): {
50
+ primary: string[];
51
+ fallback: string[];
52
+ phases: string[];
53
+ memoryPattern: string;
54
+ };
55
+ /**
56
+ * Get agent capabilities for matching
57
+ */
58
+ getAgentCapabilities(agentName: string): AgentCapability | undefined;
59
+ /**
60
+ * Find best agent for a given trigger based on performance history
61
+ */
62
+ selectBestAgent(trigger: WorkerTrigger): {
63
+ agent: string;
64
+ confidence: number;
65
+ reasoning: string;
66
+ };
67
+ /**
68
+ * Record agent execution feedback for learning
69
+ */
70
+ recordFeedback(trigger: WorkerTrigger, agentName: string, success: boolean, latencyMs: number, qualityScore: number, memoryMB?: number): void;
71
+ /**
72
+ * Process accumulated feedback for learning
73
+ */
74
+ private processFeedbackQueue;
75
+ /**
76
+ * Get performance metrics for all agents
77
+ */
78
+ getAgentMetrics(): AgentPerformanceProfile[];
79
+ /**
80
+ * Get performance metrics for specific trigger
81
+ */
82
+ getTriggerMetrics(trigger: WorkerTrigger): {
83
+ trigger: WorkerTrigger;
84
+ totalExecutions: number;
85
+ avgLatencyMs: number;
86
+ successRate: number;
87
+ topAgents: Array<{
88
+ agent: string;
89
+ score: number;
90
+ }>;
91
+ };
92
+ /**
93
+ * Get benchmark thresholds for an agent
94
+ */
95
+ getBenchmarkThresholds(agentName: string): BenchmarkThreshold[];
96
+ /**
97
+ * Check if agent meets benchmark thresholds
98
+ */
99
+ checkBenchmarkCompliance(agentName: string): {
100
+ compliant: boolean;
101
+ violations: Array<{
102
+ metric: string;
103
+ actual: number;
104
+ target: number;
105
+ }>;
106
+ };
107
+ /**
108
+ * Generate memory key for worker-agent communication
109
+ */
110
+ generateMemoryKey(trigger: WorkerTrigger, topic: string, phase: string): string;
111
+ /**
112
+ * Get integration statistics
113
+ */
114
+ getStats(): {
115
+ totalAgents: number;
116
+ trackedAgents: number;
117
+ totalFeedback: number;
118
+ avgQualityScore: number;
119
+ modelCacheStats: {
120
+ hits: number;
121
+ misses: number;
122
+ hitRate: string;
123
+ };
124
+ };
125
+ }
126
+ export declare const workerAgentIntegration: WorkerAgentIntegration;
127
+ export declare function getAgentForTrigger(trigger: WorkerTrigger): string;
128
+ export declare function recordAgentPerformance(trigger: WorkerTrigger, agent: string, success: boolean, latencyMs: number, quality: number): void;
129
+ export declare function getIntegrationStats(): {
130
+ totalAgents: number;
131
+ trackedAgents: number;
132
+ totalFeedback: number;
133
+ avgQualityScore: number;
134
+ modelCacheStats: {
135
+ hits: number;
136
+ misses: number;
137
+ hitRate: string;
138
+ };
139
+ };
140
+ //# sourceMappingURL=worker-agent-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-agent-integration.d.ts","sourceRoot":"","sources":["../../src/workers/worker-agent-integration.ts"],"names":[],"mappings":"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"}