snow-flow 1.4.49 → 2.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 (595) hide show
  1. package/.claude/helpers/github-setup.sh +28 -0
  2. package/.claude/helpers/quick-start.sh +19 -0
  3. package/.claude/helpers/setup-mcp.sh +18 -0
  4. package/.claude/settings.local.json +33 -0
  5. package/.claude-flow/metrics/system-metrics.json +1992 -0
  6. package/.env.example +21 -0
  7. package/.roo/README.md +402 -0
  8. package/.roo/mcp-list.txt +257 -0
  9. package/.roo/mcp.json +32 -0
  10. package/.roo/workflows/basic-tdd.json +32 -0
  11. package/.roomodes +201 -0
  12. package/README.md +114 -628
  13. package/activate-mcp.sh +15 -0
  14. package/dist/cli.js.bak +2052 -0
  15. package/manual-register-mcp.js +134 -0
  16. package/mcp-wrapper.sh +12 -0
  17. package/package.json +2 -2
  18. package/scripts/create-env.js +6 -1
  19. package/scripts/reset-mcp-servers.js +246 -0
  20. package/scripts/update-version.js +31 -0
  21. package/src/agents/README.md +192 -0
  22. package/src/agents/base-agent.ts +251 -0
  23. package/src/agents/coordinator.ts +971 -0
  24. package/src/agents/index.ts +18 -0
  25. package/src/agents/queen-403-handler.ts +230 -0
  26. package/src/agents/queen-agent.ts +1399 -0
  27. package/src/agents/script-writer-agent.ts +769 -0
  28. package/src/agents/security-agent.ts +726 -0
  29. package/src/agents/widget-creator-agent.ts +568 -0
  30. package/src/api/error-handling.ts +1758 -0
  31. package/src/api/natural-language-mapper.ts +630 -0
  32. package/src/api/performance-optimizer.ts +891 -0
  33. package/src/api/transaction-manager.ts +754 -0
  34. package/src/cli/deploy-artifact.ts +304 -0
  35. package/src/cli/snow-flow-cli-integration.ts +434 -0
  36. package/src/cli.ts +4455 -0
  37. package/src/cli.ts.bak +5616 -0
  38. package/src/compliance/advanced-compliance-system.ts +1268 -0
  39. package/src/compliance/index.ts +19 -0
  40. package/src/config/snow-flow-config.ts +1019 -0
  41. package/src/documentation/index.ts +16 -0
  42. package/src/documentation/self-documenting-system.ts +1421 -0
  43. package/src/dynamic-version.ts +44 -0
  44. package/src/healing/index.ts +20 -0
  45. package/src/healing/self-healing-system.ts +1435 -0
  46. package/src/health/README.md +161 -0
  47. package/src/health/system-health.ts +995 -0
  48. package/src/index.ts +60 -0
  49. package/src/intelligence/acl-analyzer.ts +377 -0
  50. package/src/intelligence/auto-resolution-engine.ts +643 -0
  51. package/src/intelligence/gap-analysis-engine.ts +488 -0
  52. package/src/intelligence/manual-instructions-generator.ts +744 -0
  53. package/src/intelligence/mcp-coverage-analyzer.ts +708 -0
  54. package/src/intelligence/multi-pass-requirements-analyzer.ts +603 -0
  55. package/src/intelligence/performance-recommendations-engine.ts +1223 -0
  56. package/src/intelligence/requirements-analyzer.ts +1148 -0
  57. package/src/intelligence/task-analyzer.ts +628 -0
  58. package/src/managers/scope-manager.ts +555 -0
  59. package/src/mcp/advanced/servicenow-advanced-features-mcp.ts +16110 -0
  60. package/src/mcp/base-mcp-server.ts +660 -0
  61. package/src/mcp/http-transport-wrapper.ts +426 -0
  62. package/src/mcp/service-discovery-client.ts +312 -0
  63. package/src/mcp/servicenow-automation-mcp-refactored.ts +678 -0
  64. package/src/mcp/servicenow-automation-mcp.ts +838 -0
  65. package/src/mcp/servicenow-deployment-mcp-refactored.ts +1292 -0
  66. package/src/mcp/servicenow-deployment-mcp.ts +7244 -0
  67. package/src/mcp/servicenow-graph-memory-mcp-refactored.ts +721 -0
  68. package/src/mcp/servicenow-graph-memory-mcp.ts +832 -0
  69. package/src/mcp/servicenow-integration-mcp-refactored.ts +655 -0
  70. package/src/mcp/servicenow-integration-mcp.ts +819 -0
  71. package/src/mcp/servicenow-intelligent-mcp-refactored.ts +977 -0
  72. package/src/mcp/servicenow-intelligent-mcp.ts +4638 -0
  73. package/src/mcp/servicenow-mcp-server.ts +728 -0
  74. package/src/mcp/servicenow-memory-mcp.ts +474 -0
  75. package/src/mcp/servicenow-operations-mcp-refactored.ts +1995 -0
  76. package/src/mcp/servicenow-operations-mcp.ts +3384 -0
  77. package/src/mcp/servicenow-platform-development-mcp-refactored.ts +611 -0
  78. package/src/mcp/servicenow-platform-development-mcp.ts +970 -0
  79. package/src/mcp/servicenow-progressive-indexer.ts +370 -0
  80. package/src/mcp/servicenow-reporting-analytics-mcp-refactored.ts +695 -0
  81. package/src/mcp/servicenow-reporting-analytics-mcp.ts +1123 -0
  82. package/src/mcp/servicenow-security-compliance-mcp-refactored.ts +642 -0
  83. package/src/mcp/servicenow-security-compliance-mcp.ts +1157 -0
  84. package/src/mcp/servicenow-update-set-mcp-refactored.ts +751 -0
  85. package/src/mcp/servicenow-update-set-mcp.ts +811 -0
  86. package/src/mcp/shared/agent-context-provider.ts +365 -0
  87. package/src/mcp/shared/base-mcp-server.ts +2463 -0
  88. package/src/mcp/shared/mcp-memory-manager.ts +540 -0
  89. package/src/mcp/shared/mcp-resource-manager.ts +367 -0
  90. package/src/mcp/snow-flow-mcp.ts +911 -0
  91. package/src/mcp/start-all-mcp-servers.ts +102 -0
  92. package/src/mcp/start-servicenow-mcp.ts +67 -0
  93. package/src/monitoring/enhanced-monitoring-system.ts +1345 -0
  94. package/src/monitoring/performance-tracker.ts +777 -0
  95. package/src/optimization/cost-optimization-engine.ts +1125 -0
  96. package/src/optimization/index.ts +10 -0
  97. package/src/queen/README.md +403 -0
  98. package/src/queen/agent-factory.ts +574 -0
  99. package/src/queen/index.ts +94 -0
  100. package/src/queen/mcp-execution-bridge.ts +681 -0
  101. package/src/queen/neural-learning.ts +319 -0
  102. package/src/queen/parallel-agent-engine.ts +848 -0
  103. package/src/queen/queen-memory-system.ts +490 -0
  104. package/src/queen/queen-memory.ts +456 -0
  105. package/src/queen/servicenow-queen.ts +1029 -0
  106. package/src/queen/types.ts +87 -0
  107. package/src/rollback/smart-rollback-system.ts +866 -0
  108. package/src/schemas/deployment.schema.json +58 -0
  109. package/src/schemas/flow.schema.json +79 -0
  110. package/src/schemas/widget.schema.json +72 -0
  111. package/src/snow-flow-system.ts +541 -0
  112. package/src/sparc/sparc-help.ts +49 -0
  113. package/src/sparc/team-sparc.ts +88 -0
  114. package/src/strategies/global-scope-strategy.ts +736 -0
  115. package/src/templates/base/application.template.json +45 -0
  116. package/src/templates/base/business_rule.template.json +33 -0
  117. package/src/templates/base/script_include.template.json +18 -0
  118. package/src/templates/base/table.template.json +64 -0
  119. package/src/templates/base/widget.template.json +25 -0
  120. package/src/templates/patterns/composite.incident-management.template.json +140 -0
  121. package/src/templates/patterns/widget.dashboard.template.json +238 -0
  122. package/src/templates/patterns/widget.datatable.template.json +292 -0
  123. package/src/testing/integration-test-suite.ts +1276 -0
  124. package/src/types/index.ts +183 -0
  125. package/src/types/neo4j-driver.d.ts +23 -0
  126. package/src/types/servicenow.types.ts +307 -0
  127. package/src/types/snow-flow.types.ts +186 -0
  128. package/src/types/todo.types.ts +70 -0
  129. package/src/utils/action-type-cache.ts +286 -0
  130. package/src/utils/agent-detector.ts +573 -0
  131. package/src/utils/artifact-tracker.ts +379 -0
  132. package/src/utils/dependency-detector.ts +233 -0
  133. package/src/utils/deployment-metadata-handler.ts +518 -0
  134. package/src/utils/error-recovery.ts +680 -0
  135. package/src/utils/logger.ts +60 -0
  136. package/src/utils/mcp-auth-middleware.ts +262 -0
  137. package/src/utils/mcp-config-manager.ts +270 -0
  138. package/src/utils/mcp-server-manager.ts +446 -0
  139. package/src/utils/mcp-tool-registry.ts +298 -0
  140. package/src/utils/migrate-snow-flow.ts +98 -0
  141. package/src/utils/oauth-html-templates.ts +188 -0
  142. package/src/utils/scope-utils.ts +443 -0
  143. package/src/utils/servicenow-client.ts +3321 -0
  144. package/src/utils/servicenow-id-generator.ts +181 -0
  145. package/src/utils/snow-memory-manager.ts +605 -0
  146. package/src/utils/snow-oauth.ts +797 -0
  147. package/src/utils/template-engine.ts +463 -0
  148. package/src/utils/theme-manager.ts +295 -0
  149. package/src/utils/unified-auth-store.ts +222 -0
  150. package/src/utils/update-set-importer.ts +422 -0
  151. package/src/utils/update-set-xml-packager.ts +371 -0
  152. package/src/utils/widget-template-generator.ts +1744 -0
  153. package/src/version.ts +1950 -0
  154. package/.claude/commands/memory/README.md +0 -9
  155. package/dist/agents/app-creator.agent.d.ts.map +0 -1
  156. package/dist/agents/app-creator.agent.js.map +0 -1
  157. package/dist/agents/base/base-snow-agent.d.ts.map +0 -1
  158. package/dist/agents/base/base-snow-agent.js.map +0 -1
  159. package/dist/agents/base-agent.d.ts.map +0 -1
  160. package/dist/agents/base-agent.js.map +0 -1
  161. package/dist/agents/base-snow-agent.d.ts.map +0 -1
  162. package/dist/agents/base-snow-agent.js.map +0 -1
  163. package/dist/agents/coordinator.d.ts.map +0 -1
  164. package/dist/agents/coordinator.js.map +0 -1
  165. package/dist/agents/flow-builder-agent.d.ts.map +0 -1
  166. package/dist/agents/flow-builder-agent.js.map +0 -1
  167. package/dist/agents/index.d.ts.map +0 -1
  168. package/dist/agents/index.js.map +0 -1
  169. package/dist/agents/queen-403-handler.d.ts.map +0 -1
  170. package/dist/agents/queen-403-handler.js.map +0 -1
  171. package/dist/agents/queen-agent-example.d.ts.map +0 -1
  172. package/dist/agents/queen-agent-example.js.map +0 -1
  173. package/dist/agents/queen-agent.d.ts.map +0 -1
  174. package/dist/agents/queen-agent.js.map +0 -1
  175. package/dist/agents/queen-agent.test.d.ts.map +0 -1
  176. package/dist/agents/queen-agent.test.js.map +0 -1
  177. package/dist/agents/script-generator.agent.d.ts.map +0 -1
  178. package/dist/agents/script-generator.agent.js.map +0 -1
  179. package/dist/agents/script-writer-agent.d.ts.map +0 -1
  180. package/dist/agents/script-writer-agent.js.map +0 -1
  181. package/dist/agents/security-agent.d.ts.map +0 -1
  182. package/dist/agents/security-agent.js.map +0 -1
  183. package/dist/agents/specialists/automation-specialist.agent.d.ts.map +0 -1
  184. package/dist/agents/specialists/automation-specialist.agent.js.map +0 -1
  185. package/dist/agents/specialists/data-specialist.agent.d.ts.map +0 -1
  186. package/dist/agents/specialists/data-specialist.agent.js.map +0 -1
  187. package/dist/agents/specialists/integration-specialist.agent.d.ts.map +0 -1
  188. package/dist/agents/specialists/integration-specialist.agent.js.map +0 -1
  189. package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +0 -1
  190. package/dist/agents/specialists/reporting-specialist.agent.js.map +0 -1
  191. package/dist/agents/specialists/security-specialist.agent.d.ts.map +0 -1
  192. package/dist/agents/specialists/security-specialist.agent.js.map +0 -1
  193. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +0 -1
  194. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +0 -1
  195. package/dist/agents/teams/base-team.d.ts.map +0 -1
  196. package/dist/agents/teams/base-team.js.map +0 -1
  197. package/dist/agents/teams/team-types.d.ts.map +0 -1
  198. package/dist/agents/teams/team-types.js.map +0 -1
  199. package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +0 -1
  200. package/dist/agents/teams/widget/widget-architect.agent.js.map +0 -1
  201. package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +0 -1
  202. package/dist/agents/teams/widget/widget-backend.agent.js.map +0 -1
  203. package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +0 -1
  204. package/dist/agents/teams/widget/widget-frontend.agent.js.map +0 -1
  205. package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +0 -1
  206. package/dist/agents/teams/widget/widget-platform.agent.js.map +0 -1
  207. package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +0 -1
  208. package/dist/agents/teams/widget/widget-uiux.agent.js.map +0 -1
  209. package/dist/agents/test-agent.d.ts.map +0 -1
  210. package/dist/agents/test-agent.js.map +0 -1
  211. package/dist/agents/test-agents.d.ts.map +0 -1
  212. package/dist/agents/test-agents.js.map +0 -1
  213. package/dist/agents/ui-builder.agent.d.ts.map +0 -1
  214. package/dist/agents/ui-builder.agent.js.map +0 -1
  215. package/dist/agents/widget-builder.agent.d.ts.map +0 -1
  216. package/dist/agents/widget-builder.agent.js.map +0 -1
  217. package/dist/agents/widget-creator-agent.d.ts.map +0 -1
  218. package/dist/agents/widget-creator-agent.js.map +0 -1
  219. package/dist/agents/workflow-designer.agent.d.ts.map +0 -1
  220. package/dist/agents/workflow-designer.agent.js.map +0 -1
  221. package/dist/api/error-handling.d.ts.map +0 -1
  222. package/dist/api/error-handling.js.map +0 -1
  223. package/dist/api/flow-designer-api.d.ts.map +0 -1
  224. package/dist/api/flow-designer-api.js.map +0 -1
  225. package/dist/api/natural-language-mapper.d.ts.map +0 -1
  226. package/dist/api/natural-language-mapper.js.map +0 -1
  227. package/dist/api/performance-optimizer.d.ts.map +0 -1
  228. package/dist/api/performance-optimizer.js.map +0 -1
  229. package/dist/api/transaction-manager.d.ts.map +0 -1
  230. package/dist/api/transaction-manager.js.map +0 -1
  231. package/dist/assembly/team-assembler.d.ts.map +0 -1
  232. package/dist/assembly/team-assembler.js.map +0 -1
  233. package/dist/cli/deploy-artifact.d.ts.map +0 -1
  234. package/dist/cli/deploy-artifact.js.map +0 -1
  235. package/dist/cli/snow-flow-cli-integration.d.ts.map +0 -1
  236. package/dist/cli/snow-flow-cli-integration.js.map +0 -1
  237. package/dist/cli.d.ts.map +0 -1
  238. package/dist/cli.js.map +0 -1
  239. package/dist/compliance/advanced-compliance-system.d.ts.map +0 -1
  240. package/dist/compliance/advanced-compliance-system.js.map +0 -1
  241. package/dist/compliance/index.d.ts.map +0 -1
  242. package/dist/compliance/index.js.map +0 -1
  243. package/dist/config/snow-flow-config.d.ts.map +0 -1
  244. package/dist/config/snow-flow-config.js.map +0 -1
  245. package/dist/documentation/index.d.ts.map +0 -1
  246. package/dist/documentation/index.js.map +0 -1
  247. package/dist/documentation/self-documenting-system.d.ts.map +0 -1
  248. package/dist/documentation/self-documenting-system.js.map +0 -1
  249. package/dist/dynamic-version.d.ts.map +0 -1
  250. package/dist/dynamic-version.js.map +0 -1
  251. package/dist/healing/index.d.ts.map +0 -1
  252. package/dist/healing/index.js.map +0 -1
  253. package/dist/healing/self-healing-system.d.ts.map +0 -1
  254. package/dist/healing/self-healing-system.js.map +0 -1
  255. package/dist/health/system-health.d.ts.map +0 -1
  256. package/dist/health/system-health.js.map +0 -1
  257. package/dist/index.d.ts.map +0 -1
  258. package/dist/index.js.map +0 -1
  259. package/dist/intelligence/acl-analyzer.d.ts.map +0 -1
  260. package/dist/intelligence/acl-analyzer.js.map +0 -1
  261. package/dist/intelligence/auto-resolution-engine.d.ts.map +0 -1
  262. package/dist/intelligence/auto-resolution-engine.js.map +0 -1
  263. package/dist/intelligence/gap-analysis-engine.d.ts.map +0 -1
  264. package/dist/intelligence/gap-analysis-engine.js.map +0 -1
  265. package/dist/intelligence/manual-instructions-generator.d.ts.map +0 -1
  266. package/dist/intelligence/manual-instructions-generator.js.map +0 -1
  267. package/dist/intelligence/mcp-coverage-analyzer.d.ts.map +0 -1
  268. package/dist/intelligence/mcp-coverage-analyzer.js.map +0 -1
  269. package/dist/intelligence/multi-pass-requirements-analyzer.d.ts.map +0 -1
  270. package/dist/intelligence/multi-pass-requirements-analyzer.js.map +0 -1
  271. package/dist/intelligence/performance-recommendations-engine.d.ts.map +0 -1
  272. package/dist/intelligence/performance-recommendations-engine.js.map +0 -1
  273. package/dist/intelligence/requirements-analyzer.d.ts.map +0 -1
  274. package/dist/intelligence/requirements-analyzer.js.map +0 -1
  275. package/dist/intelligence/task-analyzer.d.ts.map +0 -1
  276. package/dist/intelligence/task-analyzer.js.map +0 -1
  277. package/dist/managers/scope-manager.d.ts.map +0 -1
  278. package/dist/managers/scope-manager.js.map +0 -1
  279. package/dist/mcp/advanced/servicenow-advanced-features-mcp.d.ts.map +0 -1
  280. package/dist/mcp/advanced/servicenow-advanced-features-mcp.js.map +0 -1
  281. package/dist/mcp/base-mcp-server.d.ts.map +0 -1
  282. package/dist/mcp/base-mcp-server.js.map +0 -1
  283. package/dist/mcp/example-refactored-server.d.ts.map +0 -1
  284. package/dist/mcp/example-refactored-server.js.map +0 -1
  285. package/dist/mcp/http-transport-wrapper.d.ts.map +0 -1
  286. package/dist/mcp/http-transport-wrapper.js.map +0 -1
  287. package/dist/mcp/mcp-wrapper.d.ts.map +0 -1
  288. package/dist/mcp/mcp-wrapper.js.map +0 -1
  289. package/dist/mcp/service-discovery-client.d.ts.map +0 -1
  290. package/dist/mcp/service-discovery-client.js.map +0 -1
  291. package/dist/mcp/servicenow-automation-mcp-refactored.d.ts.map +0 -1
  292. package/dist/mcp/servicenow-automation-mcp-refactored.js.map +0 -1
  293. package/dist/mcp/servicenow-automation-mcp.d.ts.map +0 -1
  294. package/dist/mcp/servicenow-automation-mcp.js.map +0 -1
  295. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +0 -1
  296. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +0 -1
  297. package/dist/mcp/servicenow-deployment-mcp.d.ts.map +0 -1
  298. package/dist/mcp/servicenow-deployment-mcp.js.map +0 -1
  299. package/dist/mcp/servicenow-flow-composer-mcp-refactored.d.ts.map +0 -1
  300. package/dist/mcp/servicenow-flow-composer-mcp-refactored.js.map +0 -1
  301. package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +0 -1
  302. package/dist/mcp/servicenow-flow-composer-mcp.js.map +0 -1
  303. package/dist/mcp/servicenow-graph-memory-mcp-refactored.d.ts.map +0 -1
  304. package/dist/mcp/servicenow-graph-memory-mcp-refactored.js.map +0 -1
  305. package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +0 -1
  306. package/dist/mcp/servicenow-graph-memory-mcp.js.map +0 -1
  307. package/dist/mcp/servicenow-integration-mcp-refactored.d.ts.map +0 -1
  308. package/dist/mcp/servicenow-integration-mcp-refactored.js.map +0 -1
  309. package/dist/mcp/servicenow-integration-mcp.d.ts.map +0 -1
  310. package/dist/mcp/servicenow-integration-mcp.js.map +0 -1
  311. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +0 -1
  312. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +0 -1
  313. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +0 -1
  314. package/dist/mcp/servicenow-intelligent-mcp.js.map +0 -1
  315. package/dist/mcp/servicenow-mcp-server.d.ts.map +0 -1
  316. package/dist/mcp/servicenow-mcp-server.js.map +0 -1
  317. package/dist/mcp/servicenow-memory-mcp.d.ts.map +0 -1
  318. package/dist/mcp/servicenow-memory-mcp.js.map +0 -1
  319. package/dist/mcp/servicenow-operations-mcp-refactored.d.ts.map +0 -1
  320. package/dist/mcp/servicenow-operations-mcp-refactored.js.map +0 -1
  321. package/dist/mcp/servicenow-operations-mcp.d.ts.map +0 -1
  322. package/dist/mcp/servicenow-operations-mcp.js.map +0 -1
  323. package/dist/mcp/servicenow-platform-development-mcp-refactored.d.ts.map +0 -1
  324. package/dist/mcp/servicenow-platform-development-mcp-refactored.js.map +0 -1
  325. package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +0 -1
  326. package/dist/mcp/servicenow-platform-development-mcp.js.map +0 -1
  327. package/dist/mcp/servicenow-progressive-indexer.d.ts.map +0 -1
  328. package/dist/mcp/servicenow-progressive-indexer.js.map +0 -1
  329. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.d.ts.map +0 -1
  330. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.js.map +0 -1
  331. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +0 -1
  332. package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +0 -1
  333. package/dist/mcp/servicenow-security-compliance-mcp-refactored.d.ts.map +0 -1
  334. package/dist/mcp/servicenow-security-compliance-mcp-refactored.js.map +0 -1
  335. package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +0 -1
  336. package/dist/mcp/servicenow-security-compliance-mcp.js.map +0 -1
  337. package/dist/mcp/servicenow-update-set-mcp-refactored.d.ts.map +0 -1
  338. package/dist/mcp/servicenow-update-set-mcp-refactored.js.map +0 -1
  339. package/dist/mcp/servicenow-update-set-mcp.d.ts.map +0 -1
  340. package/dist/mcp/servicenow-update-set-mcp.js.map +0 -1
  341. package/dist/mcp/servicenow-xml-flow-mcp.d.ts.map +0 -1
  342. package/dist/mcp/servicenow-xml-flow-mcp.js.map +0 -1
  343. package/dist/mcp/shared/agent-context-provider.d.ts.map +0 -1
  344. package/dist/mcp/shared/agent-context-provider.js.map +0 -1
  345. package/dist/mcp/shared/base-mcp-server.d.ts.map +0 -1
  346. package/dist/mcp/shared/base-mcp-server.js.map +0 -1
  347. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +0 -1
  348. package/dist/mcp/shared/mcp-memory-manager.js.map +0 -1
  349. package/dist/mcp/shared/mcp-resource-manager.d.ts.map +0 -1
  350. package/dist/mcp/shared/mcp-resource-manager.js.map +0 -1
  351. package/dist/mcp/snow-flow-mcp.d.ts.map +0 -1
  352. package/dist/mcp/snow-flow-mcp.js.map +0 -1
  353. package/dist/mcp/start-all-mcp-servers.d.ts.map +0 -1
  354. package/dist/mcp/start-all-mcp-servers.js.map +0 -1
  355. package/dist/mcp/start-servicenow-mcp.d.ts.map +0 -1
  356. package/dist/mcp/start-servicenow-mcp.js.map +0 -1
  357. package/dist/mcp/test-simple-mcp.d.ts.map +0 -1
  358. package/dist/mcp/test-simple-mcp.js.map +0 -1
  359. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  360. package/dist/memory/hierarchical-memory-system.d.ts.map +0 -1
  361. package/dist/memory/hierarchical-memory-system.js +0 -400
  362. package/dist/memory/hierarchical-memory-system.js.map +0 -1
  363. package/dist/memory/index.d.ts +0 -9
  364. package/dist/memory/index.d.ts.map +0 -1
  365. package/dist/memory/index.js +0 -20
  366. package/dist/memory/index.js.map +0 -1
  367. package/dist/memory/mcp-integration-example.d.ts +0 -6
  368. package/dist/memory/mcp-integration-example.d.ts.map +0 -1
  369. package/dist/memory/mcp-integration-example.js +0 -281
  370. package/dist/memory/mcp-integration-example.js.map +0 -1
  371. package/dist/memory/memory-client.d.ts +0 -199
  372. package/dist/memory/memory-client.d.ts.map +0 -1
  373. package/dist/memory/memory-client.js +0 -364
  374. package/dist/memory/memory-client.js.map +0 -1
  375. package/dist/memory/memory-manager.d.ts +0 -29
  376. package/dist/memory/memory-manager.d.ts.map +0 -1
  377. package/dist/memory/memory-manager.js +0 -280
  378. package/dist/memory/memory-manager.js.map +0 -1
  379. package/dist/memory/memory-operations.d.ts +0 -179
  380. package/dist/memory/memory-operations.d.ts.map +0 -1
  381. package/dist/memory/memory-operations.js +0 -691
  382. package/dist/memory/memory-operations.js.map +0 -1
  383. package/dist/memory/memory-system.d.ts +0 -152
  384. package/dist/memory/memory-system.d.ts.map +0 -1
  385. package/dist/memory/memory-system.js +0 -632
  386. package/dist/memory/memory-system.js.map +0 -1
  387. package/dist/memory/memory-test.d.ts +0 -6
  388. package/dist/memory/memory-test.d.ts.map +0 -1
  389. package/dist/memory/memory-test.js +0 -161
  390. package/dist/memory/memory-test.js.map +0 -1
  391. package/dist/memory/servicenow-artifact-indexer.d.ts +0 -119
  392. package/dist/memory/servicenow-artifact-indexer.d.ts.map +0 -1
  393. package/dist/memory/servicenow-artifact-indexer.js +0 -560
  394. package/dist/memory/servicenow-artifact-indexer.js.map +0 -1
  395. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  396. package/dist/memory/snow-flow-memory-patterns.d.ts.map +0 -1
  397. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  398. package/dist/memory/snow-flow-memory-patterns.js.map +0 -1
  399. package/dist/memory/snow-memory.d.ts +0 -54
  400. package/dist/memory/snow-memory.d.ts.map +0 -1
  401. package/dist/memory/snow-memory.js +0 -301
  402. package/dist/memory/snow-memory.js.map +0 -1
  403. package/dist/memory/swarm-memory.d.ts +0 -135
  404. package/dist/memory/swarm-memory.d.ts.map +0 -1
  405. package/dist/memory/swarm-memory.js +0 -378
  406. package/dist/memory/swarm-memory.js.map +0 -1
  407. package/dist/monitoring/enhanced-monitoring-system.d.ts.map +0 -1
  408. package/dist/monitoring/enhanced-monitoring-system.js.map +0 -1
  409. package/dist/monitoring/performance-tracker.d.ts.map +0 -1
  410. package/dist/monitoring/performance-tracker.js.map +0 -1
  411. package/dist/optimization/cost-optimization-engine.d.ts.map +0 -1
  412. package/dist/optimization/cost-optimization-engine.js.map +0 -1
  413. package/dist/optimization/index.d.ts.map +0 -1
  414. package/dist/optimization/index.js.map +0 -1
  415. package/dist/orchestration/discovery/service-discovery.d.ts.map +0 -1
  416. package/dist/orchestration/discovery/service-discovery.js.map +0 -1
  417. package/dist/orchestration/distributed-orchestrator.d.ts.map +0 -1
  418. package/dist/orchestration/distributed-orchestrator.js.map +0 -1
  419. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +0 -1
  420. package/dist/orchestration/distribution/task-distribution-engine.js.map +0 -1
  421. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +0 -1
  422. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +0 -1
  423. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +0 -1
  424. package/dist/orchestration/protocols/mcpx-protocol.js.map +0 -1
  425. package/dist/orchestration/state/distributed-state-manager.d.ts.map +0 -1
  426. package/dist/orchestration/state/distributed-state-manager.js.map +0 -1
  427. package/dist/orchestrator/flow-composer.d.ts.map +0 -1
  428. package/dist/orchestrator/flow-composer.js.map +0 -1
  429. package/dist/orchestrator/flow-pattern-templates.d.ts.map +0 -1
  430. package/dist/orchestrator/flow-pattern-templates.js.map +0 -1
  431. package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +0 -1
  432. package/dist/orchestrator/flow-subflow-decision-engine.js.map +0 -1
  433. package/dist/orchestrator/flow-validation-engine.d.ts.map +0 -1
  434. package/dist/orchestrator/flow-validation-engine.js.map +0 -1
  435. package/dist/orchestrator/snow-orchestrator.d.ts.map +0 -1
  436. package/dist/orchestrator/snow-orchestrator.js.map +0 -1
  437. package/dist/orchestrator/subflow-creation-handler.d.ts.map +0 -1
  438. package/dist/orchestrator/subflow-creation-handler.js.map +0 -1
  439. package/dist/patterns/adaptive-patterns.d.ts.map +0 -1
  440. package/dist/patterns/adaptive-patterns.js.map +0 -1
  441. package/dist/queen/advanced-integration-test.d.ts.map +0 -1
  442. package/dist/queen/advanced-integration-test.js.map +0 -1
  443. package/dist/queen/agent-factory.d.ts.map +0 -1
  444. package/dist/queen/agent-factory.js.map +0 -1
  445. package/dist/queen/index.d.ts.map +0 -1
  446. package/dist/queen/index.js.map +0 -1
  447. package/dist/queen/integration-example.d.ts.map +0 -1
  448. package/dist/queen/integration-example.js.map +0 -1
  449. package/dist/queen/integration-test.d.ts.map +0 -1
  450. package/dist/queen/integration-test.js.map +0 -1
  451. package/dist/queen/mcp-execution-bridge.d.ts.map +0 -1
  452. package/dist/queen/mcp-execution-bridge.js.map +0 -1
  453. package/dist/queen/mock-mcp-client.d.ts.map +0 -1
  454. package/dist/queen/mock-mcp-client.js.map +0 -1
  455. package/dist/queen/neural-learning.d.ts.map +0 -1
  456. package/dist/queen/neural-learning.js.map +0 -1
  457. package/dist/queen/parallel-agent-engine.d.ts.map +0 -1
  458. package/dist/queen/parallel-agent-engine.js.map +0 -1
  459. package/dist/queen/queen-memory-system.d.ts.map +0 -1
  460. package/dist/queen/queen-memory-system.js.map +0 -1
  461. package/dist/queen/queen-memory.d.ts.map +0 -1
  462. package/dist/queen/queen-memory.js.map +0 -1
  463. package/dist/queen/run-integration-tests.d.ts.map +0 -1
  464. package/dist/queen/run-integration-tests.js.map +0 -1
  465. package/dist/queen/servicenow-queen.d.ts.map +0 -1
  466. package/dist/queen/servicenow-queen.js.map +0 -1
  467. package/dist/queen/types.d.ts.map +0 -1
  468. package/dist/queen/types.js.map +0 -1
  469. package/dist/rollback/smart-rollback-system.d.ts.map +0 -1
  470. package/dist/rollback/smart-rollback-system.js.map +0 -1
  471. package/dist/snow-flow-system.d.ts.map +0 -1
  472. package/dist/snow-flow-system.js.map +0 -1
  473. package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +0 -1
  474. package/dist/sparc/coordinators/adaptive-coordinator.js.map +0 -1
  475. package/dist/sparc/coordinators/team-coordinator.d.ts.map +0 -1
  476. package/dist/sparc/coordinators/team-coordinator.js.map +0 -1
  477. package/dist/sparc/modes/team-modes.d.ts.map +0 -1
  478. package/dist/sparc/modes/team-modes.js.map +0 -1
  479. package/dist/sparc/sparc-help.d.ts.map +0 -1
  480. package/dist/sparc/sparc-help.js.map +0 -1
  481. package/dist/sparc/team-sparc.d.ts.map +0 -1
  482. package/dist/sparc/team-sparc.js.map +0 -1
  483. package/dist/sparc/teams/application-team.d.ts.map +0 -1
  484. package/dist/sparc/teams/application-team.js.map +0 -1
  485. package/dist/sparc/teams/flow-team.d.ts.map +0 -1
  486. package/dist/sparc/teams/flow-team.js.map +0 -1
  487. package/dist/sparc/teams/widget-team.d.ts.map +0 -1
  488. package/dist/sparc/teams/widget-team.js.map +0 -1
  489. package/dist/specialists/app-specialists.d.ts.map +0 -1
  490. package/dist/specialists/app-specialists.js.map +0 -1
  491. package/dist/specialists/base-specialist.d.ts.map +0 -1
  492. package/dist/specialists/base-specialist.js.map +0 -1
  493. package/dist/specialists/flow-specialists.d.ts.map +0 -1
  494. package/dist/specialists/flow-specialists.js.map +0 -1
  495. package/dist/specialists/individual-specialists.d.ts.map +0 -1
  496. package/dist/specialists/individual-specialists.js.map +0 -1
  497. package/dist/specialists/widget-specialists.d.ts.map +0 -1
  498. package/dist/specialists/widget-specialists.js.map +0 -1
  499. package/dist/strategies/global-scope-strategy.d.ts.map +0 -1
  500. package/dist/strategies/global-scope-strategy.js.map +0 -1
  501. package/dist/teams/adaptive-team.d.ts.map +0 -1
  502. package/dist/teams/adaptive-team.js.map +0 -1
  503. package/dist/teams/application-team.d.ts.map +0 -1
  504. package/dist/teams/application-team.js.map +0 -1
  505. package/dist/teams/base-team.d.ts.map +0 -1
  506. package/dist/teams/base-team.js.map +0 -1
  507. package/dist/teams/flow-team.d.ts.map +0 -1
  508. package/dist/teams/flow-team.js.map +0 -1
  509. package/dist/teams/widget-team.d.ts.map +0 -1
  510. package/dist/teams/widget-team.js.map +0 -1
  511. package/dist/testing/integration-test-suite.d.ts.map +0 -1
  512. package/dist/testing/integration-test-suite.js.map +0 -1
  513. package/dist/types/index.d.ts.map +0 -1
  514. package/dist/types/index.js.map +0 -1
  515. package/dist/types/servicenow.types.d.ts.map +0 -1
  516. package/dist/types/servicenow.types.js.map +0 -1
  517. package/dist/types/snow-flow.types.d.ts.map +0 -1
  518. package/dist/types/snow-flow.types.js.map +0 -1
  519. package/dist/types/todo.types.d.ts.map +0 -1
  520. package/dist/types/todo.types.js.map +0 -1
  521. package/dist/utils/action-type-cache.d.ts.map +0 -1
  522. package/dist/utils/action-type-cache.js.map +0 -1
  523. package/dist/utils/agent-detector.d.ts.map +0 -1
  524. package/dist/utils/agent-detector.js.map +0 -1
  525. package/dist/utils/artifact-tracker.d.ts.map +0 -1
  526. package/dist/utils/artifact-tracker.js.map +0 -1
  527. package/dist/utils/dependency-detector.d.ts.map +0 -1
  528. package/dist/utils/dependency-detector.js.map +0 -1
  529. package/dist/utils/deployment-metadata-handler.d.ts.map +0 -1
  530. package/dist/utils/deployment-metadata-handler.js.map +0 -1
  531. package/dist/utils/error-recovery.d.ts.map +0 -1
  532. package/dist/utils/error-recovery.js.map +0 -1
  533. package/dist/utils/flow-api-discovery.d.ts.map +0 -1
  534. package/dist/utils/flow-api-discovery.js.map +0 -1
  535. package/dist/utils/flow-xml-generator.d.ts.map +0 -1
  536. package/dist/utils/flow-xml-generator.js.map +0 -1
  537. package/dist/utils/logger.d.ts.map +0 -1
  538. package/dist/utils/logger.js.map +0 -1
  539. package/dist/utils/mcp-auth-middleware.d.ts.map +0 -1
  540. package/dist/utils/mcp-auth-middleware.js.map +0 -1
  541. package/dist/utils/mcp-config-manager.d.ts.map +0 -1
  542. package/dist/utils/mcp-config-manager.js.map +0 -1
  543. package/dist/utils/mcp-server-manager.d.ts.map +0 -1
  544. package/dist/utils/mcp-server-manager.js.map +0 -1
  545. package/dist/utils/mcp-tool-registry.d.ts.map +0 -1
  546. package/dist/utils/mcp-tool-registry.js.map +0 -1
  547. package/dist/utils/migrate-claude-flow.d.ts.map +0 -1
  548. package/dist/utils/migrate-claude-flow.js.map +0 -1
  549. package/dist/utils/migrate-snow-flow.d.ts.map +0 -1
  550. package/dist/utils/migrate-snow-flow.js.map +0 -1
  551. package/dist/utils/oauth-html-templates.d.ts.map +0 -1
  552. package/dist/utils/oauth-html-templates.js.map +0 -1
  553. package/dist/utils/scope-utils.d.ts.map +0 -1
  554. package/dist/utils/scope-utils.js.map +0 -1
  555. package/dist/utils/servicenow-client.d.ts.map +0 -1
  556. package/dist/utils/servicenow-client.js.map +0 -1
  557. package/dist/utils/servicenow-id-generator.d.ts.map +0 -1
  558. package/dist/utils/servicenow-id-generator.js.map +0 -1
  559. package/dist/utils/snow-memory-manager.d.ts.map +0 -1
  560. package/dist/utils/snow-memory-manager.js.map +0 -1
  561. package/dist/utils/snow-oauth-old.d.ts.map +0 -1
  562. package/dist/utils/snow-oauth-old.js.map +0 -1
  563. package/dist/utils/snow-oauth.d.ts.map +0 -1
  564. package/dist/utils/snow-oauth.js.map +0 -1
  565. package/dist/utils/template-engine.d.ts.map +0 -1
  566. package/dist/utils/template-engine.js.map +0 -1
  567. package/dist/utils/theme-manager.d.ts.map +0 -1
  568. package/dist/utils/theme-manager.js.map +0 -1
  569. package/dist/utils/unified-auth-store.d.ts.map +0 -1
  570. package/dist/utils/unified-auth-store.js.map +0 -1
  571. package/dist/utils/update-set-importer.d.ts.map +0 -1
  572. package/dist/utils/update-set-importer.js.map +0 -1
  573. package/dist/utils/update-set-xml-packager.d.ts.map +0 -1
  574. package/dist/utils/update-set-xml-packager.js.map +0 -1
  575. package/dist/utils/widget-template-generator.d.ts.map +0 -1
  576. package/dist/utils/widget-template-generator.js.map +0 -1
  577. package/dist/version.d.ts.map +0 -1
  578. package/dist/version.js.map +0 -1
  579. package/memory/agents/README.md +0 -31
  580. package/memory/claude-flow-data.json +0 -5
  581. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  582. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  583. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  584. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  585. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  586. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  587. package/memory/sessions/README.md +0 -32
  588. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  589. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  590. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  591. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  592. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  593. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  594. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  595. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
@@ -0,0 +1,848 @@
1
+ /**
2
+ * Intelligent Parallel Agent Engine
3
+ * Automatically detects parallelizable work and spawns optimized agent teams
4
+ * Integrates with Queen Agent for enhanced multi-agent coordination
5
+ */
6
+
7
+ import { EventEmitter } from 'eventemitter3';
8
+ import { TodoItem, TodoStatus } from '../types/todo.types';
9
+ import { Agent, AgentType, ServiceNowTask } from './types';
10
+ import { QueenMemorySystem } from './queen-memory';
11
+ import { Logger } from '../utils/logger';
12
+ import * as crypto from 'crypto';
13
+
14
+ export interface ParallelizationOpportunity {
15
+ id: string;
16
+ type: 'independent_tasks' | 'specialized_breakdown' | 'load_distribution' | 'capability_split';
17
+ todos: string[]; // Todo IDs that can be parallelized
18
+ suggestedAgents: AgentType[];
19
+ estimatedSpeedup: number; // Multiplier (e.g., 2.5x faster)
20
+ confidence: number; // 0-1 confidence in parallelization success
21
+ dependencies: string[]; // Todo IDs these depend on
22
+ blockers: string[]; // What prevents parallelization
23
+ }
24
+
25
+ export interface AgentWorkload {
26
+ agentId: string;
27
+ agentType: AgentType;
28
+ assignedTodos: string[];
29
+ estimatedDuration: number; // minutes
30
+ utilization: number; // 0-1 how busy this agent is
31
+ capabilities: string[];
32
+ specializations: string[];
33
+ }
34
+
35
+ export interface ParallelExecutionPlan {
36
+ planId: string;
37
+ opportunities: ParallelizationOpportunity[];
38
+ agentTeam: AgentWorkload[];
39
+ executionStrategy: 'wave_based' | 'concurrent' | 'pipeline' | 'hybrid';
40
+ estimatedCompletion: number; // minutes
41
+ maxParallelism: number; // Max concurrent agents
42
+ failureRecovery: 'retry' | 'reassign' | 'fallback';
43
+ }
44
+
45
+ export interface CapabilityMap {
46
+ [todoPattern: string]: {
47
+ primaryCapability: string;
48
+ requiredAgentTypes: AgentType[];
49
+ parallelizable: boolean;
50
+ estimatedDuration: number;
51
+ dependencies: string[];
52
+ };
53
+ }
54
+
55
+ export class ParallelAgentEngine extends EventEmitter {
56
+ private memory: QueenMemorySystem;
57
+ private capabilityMap: CapabilityMap;
58
+ private activeExecutionPlans: Map<string, ParallelExecutionPlan>;
59
+ private agentWorkloads: Map<string, AgentWorkload>;
60
+ private parallelizationHistory: Map<string, { success: boolean; speedup: number; }>;
61
+ private logger = new Logger('ParallelAgentEngine');
62
+
63
+ constructor(memory: QueenMemorySystem) {
64
+ super();
65
+ this.memory = memory;
66
+ this.activeExecutionPlans = new Map();
67
+ this.agentWorkloads = new Map();
68
+ this.parallelizationHistory = new Map();
69
+
70
+ this.initializeCapabilityMap();
71
+ this.setupLearningSystem();
72
+ }
73
+
74
+ /**
75
+ * Main entry point: Analyze todos and detect parallelization opportunities
76
+ */
77
+ async detectParallelizationOpportunities(
78
+ todos: TodoItem[],
79
+ objectiveType: ServiceNowTask['type'],
80
+ currentAgents: Agent[]
81
+ ): Promise<ParallelizationOpportunity[]> {
82
+ this.logger.info('🧠 Analyzing parallelization opportunities', {
83
+ todoCount: todos.length,
84
+ objectiveType,
85
+ currentAgentCount: currentAgents.length
86
+ });
87
+
88
+ const opportunities: ParallelizationOpportunity[] = [];
89
+
90
+ // 1. Detect independent tasks (can run simultaneously)
91
+ const independentOpportunity = await this.detectIndependentTasks(todos);
92
+ if (independentOpportunity) opportunities.push(independentOpportunity);
93
+
94
+ // 2. Detect specialized breakdown opportunities (split complex task)
95
+ const specializedOpportunity = await this.detectSpecializedBreakdown(todos, objectiveType);
96
+ if (specializedOpportunity) opportunities.push(specializedOpportunity);
97
+
98
+ // 3. Detect load distribution opportunities (same type, multiple agents)
99
+ const loadOpportunity = await this.detectLoadDistribution(todos, currentAgents);
100
+ if (loadOpportunity) opportunities.push(loadOpportunity);
101
+
102
+ // 4. Detect capability split opportunities (different skills needed)
103
+ const capabilityOpportunity = await this.detectCapabilitySplit(todos);
104
+ if (capabilityOpportunity) opportunities.push(capabilityOpportunity);
105
+
106
+ // 🚀 ENHANCED: More lenient filtering to ensure parallel execution happens
107
+ const rankedOpportunities = opportunities
108
+ .filter(opp => opp.confidence > 0.5 && opp.estimatedSpeedup > 1.1) // Lower thresholds
109
+ .sort((a, b) => (b.confidence * b.estimatedSpeedup) - (a.confidence * a.estimatedSpeedup));
110
+
111
+ this.logger.info(`🎯 Found ${rankedOpportunities.length} high-confidence parallelization opportunities`, {
112
+ totalOpportunities: opportunities.length,
113
+ rankedCount: rankedOpportunities.length,
114
+ averageConfidence: rankedOpportunities.reduce((sum, opp) => sum + opp.confidence, 0) / rankedOpportunities.length || 0
115
+ });
116
+
117
+ // Store opportunities for learning
118
+ await this.storeOpportunities(todos, rankedOpportunities);
119
+
120
+ return rankedOpportunities;
121
+ }
122
+
123
+ /**
124
+ * Create optimal execution plan based on opportunities
125
+ */
126
+ async createExecutionPlan(
127
+ opportunities: ParallelizationOpportunity[],
128
+ todos: TodoItem[],
129
+ maxAgents: number = 8
130
+ ): Promise<ParallelExecutionPlan> {
131
+ const planId = this.generateId('plan');
132
+
133
+ // Calculate optimal agent team
134
+ const agentTeam = await this.calculateOptimalTeam(opportunities, todos, maxAgents);
135
+
136
+ // Determine execution strategy
137
+ const strategy = this.determineExecutionStrategy(opportunities, agentTeam);
138
+
139
+ // Estimate completion time
140
+ const estimatedCompletion = this.estimateCompletionTime(agentTeam, strategy);
141
+
142
+ const plan: ParallelExecutionPlan = {
143
+ planId,
144
+ opportunities,
145
+ agentTeam,
146
+ executionStrategy: strategy,
147
+ estimatedCompletion,
148
+ maxParallelism: Math.min(agentTeam.length, maxAgents),
149
+ failureRecovery: 'reassign'
150
+ };
151
+
152
+ this.activeExecutionPlans.set(planId, plan);
153
+
154
+ this.logger.info(`📋 Created execution plan ${planId}`, {
155
+ planId,
156
+ strategy,
157
+ teamSize: agentTeam.length,
158
+ estimatedCompletion,
159
+ maxParallelism: plan.maxParallelism,
160
+ opportunityCount: opportunities.length
161
+ });
162
+
163
+ return plan;
164
+ }
165
+
166
+ /**
167
+ * Execute parallel plan and coordinate agents
168
+ */
169
+ async executeParallelPlan(
170
+ plan: ParallelExecutionPlan,
171
+ spawnAgentCallback: (type: AgentType, specialization?: string) => Promise<Agent>
172
+ ): Promise<{
173
+ spawnedAgents: Agent[];
174
+ executionDetails: {
175
+ totalAgentsSpawned: number;
176
+ parallelWorkflows: number;
177
+ estimatedSpeedup: string;
178
+ };
179
+ }> {
180
+ this.logger.info(`🚀 Executing parallel plan ${plan.planId}`, {
181
+ planId: plan.planId,
182
+ strategy: plan.executionStrategy,
183
+ agentTeamSize: plan.agentTeam.length,
184
+ maxParallelism: plan.maxParallelism
185
+ });
186
+
187
+ const spawnedAgents: Agent[] = [];
188
+
189
+ // Spawn agents based on plan
190
+ for (const workload of plan.agentTeam) {
191
+ if (workload.agentId === 'new') {
192
+ // Spawn new agent with specialization
193
+ const specialization = this.determineAgentSpecialization(workload);
194
+ const agent = await spawnAgentCallback(workload.agentType, specialization);
195
+ spawnedAgents.push(agent);
196
+
197
+ // Update workload with actual agent ID
198
+ workload.agentId = agent.id;
199
+ this.agentWorkloads.set(agent.id, workload);
200
+ }
201
+ }
202
+
203
+ // Set up parallel coordination
204
+ await this.setupParallelCoordination(plan, spawnedAgents);
205
+
206
+ // Calculate speedup
207
+ const sequentialTime = plan.agentTeam.reduce((sum, w) => sum + w.estimatedDuration, 0);
208
+ const parallelTime = plan.estimatedCompletion;
209
+ const actualSpeedup = sequentialTime / parallelTime;
210
+
211
+ this.emit('parallel_execution_started', {
212
+ planId: plan.planId,
213
+ agentCount: spawnedAgents.length,
214
+ estimatedSpeedup: actualSpeedup
215
+ });
216
+
217
+ return {
218
+ spawnedAgents,
219
+ executionDetails: {
220
+ totalAgentsSpawned: spawnedAgents.length,
221
+ parallelWorkflows: plan.opportunities.length,
222
+ estimatedSpeedup: `${actualSpeedup.toFixed(1)}x faster`
223
+ }
224
+ };
225
+ }
226
+
227
+ /**
228
+ * Detect independent tasks that can run in parallel
229
+ */
230
+ private async detectIndependentTasks(todos: TodoItem[]): Promise<ParallelizationOpportunity | null> {
231
+ const independentGroups: string[][] = [];
232
+ const processed = new Set<string>();
233
+
234
+ for (const todo of todos) {
235
+ if (processed.has(todo.id)) continue;
236
+
237
+ const group = [todo.id];
238
+ processed.add(todo.id);
239
+
240
+ // Find todos that can run with this one
241
+ for (const otherTodo of todos) {
242
+ if (processed.has(otherTodo.id)) continue;
243
+
244
+ if (this.areTasksIndependent(todo, otherTodo)) {
245
+ group.push(otherTodo.id);
246
+ processed.add(otherTodo.id);
247
+ }
248
+ }
249
+
250
+ if (group.length > 1) {
251
+ independentGroups.push(group);
252
+ }
253
+ }
254
+
255
+ if (independentGroups.length === 0) return null;
256
+
257
+ // Find the largest independent group
258
+ const largestGroup = independentGroups.reduce((max, group) =>
259
+ group.length > max.length ? group : max
260
+ );
261
+
262
+ return {
263
+ id: this.generateId('independent'),
264
+ type: 'independent_tasks',
265
+ todos: largestGroup,
266
+ suggestedAgents: this.suggestAgentsForTodos(largestGroup, todos),
267
+ estimatedSpeedup: largestGroup.length * 0.8, // Account for coordination overhead
268
+ confidence: 0.9, // High confidence for independent tasks
269
+ dependencies: [],
270
+ blockers: []
271
+ };
272
+ }
273
+
274
+ /**
275
+ * Detect opportunities to break down complex tasks into specialized agents
276
+ */
277
+ private async detectSpecializedBreakdown(
278
+ todos: TodoItem[],
279
+ objectiveType: ServiceNowTask['type']
280
+ ): Promise<ParallelizationOpportunity | null> {
281
+ // 🚀 ENHANCED: More intelligent detection of tasks that benefit from specialization
282
+ const canBenefitFromSpecialization = todos.filter(todo => {
283
+ const content = todo.content.toLowerCase();
284
+
285
+ // Widget development indicators
286
+ if (content.includes('widget') || content.includes('portal') || content.includes('ui')) {
287
+ return true;
288
+ }
289
+
290
+ // Development indicators
291
+ if (content.includes('develop') || content.includes('create') || content.includes('build')) {
292
+ return true;
293
+ }
294
+
295
+ // Multiple component indicators
296
+ if (content.includes('and') || content.includes('with') || content.includes('including')) {
297
+ return true;
298
+ }
299
+
300
+ // Complex task indicators
301
+ if (todo.priority === 'high' || todo.priority === 'medium') {
302
+ return true;
303
+ }
304
+
305
+ // Any development-related task benefits from specialization
306
+ if (content.includes('test') || content.includes('style') || content.includes('script')) {
307
+ return true;
308
+ }
309
+
310
+ return false;
311
+ });
312
+
313
+ // 🚀 Be more aggressive - even single development tasks benefit from parallel specialists
314
+ if (canBenefitFromSpecialization.length === 0 && todos.length > 0) {
315
+ // If no specific indicators, but we have todos, still try to parallelize
316
+ canBenefitFromSpecialization.push(...todos.slice(0, Math.min(3, todos.length)));
317
+ }
318
+
319
+ if (canBenefitFromSpecialization.length === 0) return null;
320
+
321
+ // 🚀 ENHANCED: More specialized agent teams with specific roles
322
+ const breakdownMap = {
323
+ 'widget': [
324
+ 'widget-creator', // HTML structure specialist
325
+ 'css-specialist', // Styling and responsive design specialist
326
+ 'backend-specialist', // Server script specialist
327
+ 'frontend-specialist', // Client script specialist
328
+ 'integration-specialist', // API integration specialist
329
+ 'ui-ux-specialist', // User experience specialist
330
+ 'performance-specialist', // Performance optimization
331
+ 'accessibility-specialist', // Accessibility compliance
332
+ 'tester' // Testing specialist
333
+ ],
334
+ 'flow': [
335
+ 'flow-builder', // Flow structure specialist
336
+ 'trigger-specialist', // Trigger configuration specialist
337
+ 'action-specialist', // Action development specialist
338
+ 'integration-specialist', // External system integration
339
+ 'approval-specialist', // Approval process specialist
340
+ 'notification-specialist', // Notification configuration
341
+ 'error-handler', // Error handling specialist
342
+ 'tester' // Flow testing specialist
343
+ ],
344
+ 'application': [
345
+ 'app-architect', // Application architecture
346
+ 'widget-creator', // UI components
347
+ 'css-specialist', // Styling specialist
348
+ 'flow-builder', // Business logic flows
349
+ 'script-writer', // Script includes and business rules
350
+ 'security-specialist', // Security implementation
351
+ 'integration-specialist', // System integration
352
+ 'performance-specialist', // Performance optimization
353
+ 'documentation-specialist', // Documentation
354
+ 'tester' // Comprehensive testing
355
+ ],
356
+ 'script': [
357
+ 'script-writer', // Core script development
358
+ 'api-specialist', // API integration specialist
359
+ 'performance-specialist', // Code optimization
360
+ 'security-specialist', // Security review
361
+ 'documentation-specialist', // Code documentation
362
+ 'tester' // Script testing
363
+ ],
364
+ 'integration': [
365
+ 'integration-specialist', // Core integration
366
+ 'api-specialist', // API development
367
+ 'transform-specialist', // Data transformation
368
+ 'error-handler', // Error handling
369
+ 'monitoring-specialist', // Integration monitoring
370
+ 'security-specialist', // Security implementation
371
+ 'tester' // Integration testing
372
+ ]
373
+ };
374
+
375
+ // Select appropriate specialists based on task
376
+ let suggestedAgents = breakdownMap[objectiveType] || breakdownMap['widget'];
377
+
378
+ // 🚀 Limit to reasonable number but ensure good coverage
379
+ const maxSpecialists = Math.min(8, Math.max(4, canBenefitFromSpecialization.length * 2));
380
+ suggestedAgents = suggestedAgents.slice(0, maxSpecialists);
381
+
382
+ const todoIds = canBenefitFromSpecialization.map(t => t.id);
383
+
384
+ return {
385
+ id: this.generateId('specialized'),
386
+ type: 'specialized_breakdown',
387
+ todos: todoIds,
388
+ suggestedAgents: suggestedAgents as AgentType[],
389
+ estimatedSpeedup: Math.min(3.5, 1.5 + (suggestedAgents.length * 0.3)), // More realistic speedup
390
+ confidence: 0.85, // Higher confidence for specialization benefits
391
+ dependencies: [],
392
+ blockers: []
393
+ };
394
+ }
395
+
396
+ /**
397
+ * Detect load distribution opportunities (same work type, multiple agents)
398
+ */
399
+ private async detectLoadDistribution(
400
+ todos: TodoItem[],
401
+ currentAgents: Agent[]
402
+ ): Promise<ParallelizationOpportunity | null> {
403
+ // Group todos by capability requirement
404
+ const todoGroups = new Map<string, string[]>();
405
+
406
+ for (const todo of todos) {
407
+ const capability = this.inferTodoCapability(todo);
408
+ if (!todoGroups.has(capability)) {
409
+ todoGroups.set(capability, []);
410
+ }
411
+ todoGroups.get(capability)!.push(todo.id);
412
+ }
413
+
414
+ // Find groups with multiple todos that can be distributed
415
+ for (const [capability, todoIds] of todoGroups) {
416
+ if (todoIds.length >= 3) { // Worth distributing if 3+ similar tasks
417
+ const agentType = this.capabilityToAgentType(capability);
418
+
419
+ return {
420
+ id: this.generateId('load'),
421
+ type: 'load_distribution',
422
+ todos: todoIds,
423
+ suggestedAgents: [agentType, agentType, agentType], // Multiple agents of same type
424
+ estimatedSpeedup: Math.min(todoIds.length, 3) * 0.75, // Account for coordination
425
+ confidence: 0.85,
426
+ dependencies: [],
427
+ blockers: []
428
+ };
429
+ }
430
+ }
431
+
432
+ return null;
433
+ }
434
+
435
+ /**
436
+ * Detect capability split opportunities (different skills for different parts)
437
+ */
438
+ private async detectCapabilitySplit(todos: TodoItem[]): Promise<ParallelizationOpportunity | null> {
439
+ const capabilityGroups = new Map<string, string[]>();
440
+
441
+ // Group todos by required capabilities
442
+ for (const todo of todos) {
443
+ const capabilities = this.analyzeTodoCapabilities(todo);
444
+ for (const capability of capabilities) {
445
+ if (!capabilityGroups.has(capability)) {
446
+ capabilityGroups.set(capability, []);
447
+ }
448
+ capabilityGroups.get(capability)!.push(todo.id);
449
+ }
450
+ }
451
+
452
+ // If we have multiple capability groups, we can split
453
+ if (capabilityGroups.size >= 2) {
454
+ const allTodos = Array.from(new Set(
455
+ Array.from(capabilityGroups.values()).flat()
456
+ ));
457
+
458
+ const agentTypes = Array.from(capabilityGroups.keys())
459
+ .map(cap => this.capabilityToAgentType(cap));
460
+
461
+ return {
462
+ id: this.generateId('capability'),
463
+ type: 'capability_split',
464
+ todos: allTodos,
465
+ suggestedAgents: agentTypes as AgentType[],
466
+ estimatedSpeedup: 1.8,
467
+ confidence: 0.75,
468
+ dependencies: [],
469
+ blockers: []
470
+ };
471
+ }
472
+
473
+ return null;
474
+ }
475
+
476
+ /**
477
+ * Calculate optimal agent team for execution plan
478
+ */
479
+ private async calculateOptimalTeam(
480
+ opportunities: ParallelizationOpportunity[],
481
+ todos: TodoItem[],
482
+ maxAgents: number
483
+ ): Promise<AgentWorkload[]> {
484
+ const team: AgentWorkload[] = [];
485
+ const usedAgentTypes = new Set<AgentType>();
486
+
487
+ for (const opportunity of opportunities) {
488
+ for (const agentType of opportunity.suggestedAgents) {
489
+ if (team.length >= maxAgents) break;
490
+
491
+ // Avoid duplicate agent types unless it's load distribution
492
+ if (usedAgentTypes.has(agentType) && opportunity.type !== 'load_distribution') {
493
+ continue;
494
+ }
495
+
496
+ const workload: AgentWorkload = {
497
+ agentId: 'new', // Will be assigned when spawned
498
+ agentType,
499
+ assignedTodos: opportunity.todos.filter(todoId =>
500
+ this.todoRequiresAgentType(todoId, agentType, todos)
501
+ ),
502
+ estimatedDuration: this.estimateTodoDuration(opportunity.todos, todos),
503
+ utilization: 0.8, // Start at 80% utilization
504
+ capabilities: this.getAgentCapabilities(agentType),
505
+ specializations: this.getAgentSpecializations(agentType, opportunity.type)
506
+ };
507
+
508
+ team.push(workload);
509
+ usedAgentTypes.add(agentType);
510
+ }
511
+ }
512
+
513
+ return team;
514
+ }
515
+
516
+ /**
517
+ * Determine execution strategy based on opportunities and team
518
+ */
519
+ private determineExecutionStrategy(
520
+ opportunities: ParallelizationOpportunity[],
521
+ agentTeam: AgentWorkload[]
522
+ ): 'wave_based' | 'concurrent' | 'pipeline' | 'hybrid' {
523
+ const hasIndependent = opportunities.some(o => o.type === 'independent_tasks');
524
+ const hasSpecialized = opportunities.some(o => o.type === 'specialized_breakdown');
525
+ const hasLoadDistribution = opportunities.some(o => o.type === 'load_distribution');
526
+
527
+ if (hasIndependent && hasSpecialized) {
528
+ return 'hybrid'; // Mix of parallel and sequential
529
+ } else if (hasLoadDistribution) {
530
+ return 'concurrent'; // All agents work simultaneously
531
+ } else if (hasSpecialized) {
532
+ return 'pipeline'; // Sequential handoffs between specialists
533
+ } else {
534
+ return 'wave_based'; // Waves of parallel execution
535
+ }
536
+ }
537
+
538
+ /**
539
+ * Estimate completion time for agent team
540
+ */
541
+ private estimateCompletionTime(
542
+ agentTeam: AgentWorkload[],
543
+ strategy: 'wave_based' | 'concurrent' | 'pipeline' | 'hybrid'
544
+ ): number {
545
+ const coordinationOverhead = agentTeam.length * 2; // 2 minutes per agent for coordination
546
+
547
+ switch (strategy) {
548
+ case 'concurrent':
549
+ return Math.max(...agentTeam.map(w => w.estimatedDuration)) + coordinationOverhead;
550
+
551
+ case 'pipeline':
552
+ return agentTeam.reduce((sum, w) => sum + w.estimatedDuration, 0) * 0.7 + coordinationOverhead;
553
+
554
+ case 'wave_based':
555
+ const avgDuration = agentTeam.reduce((sum, w) => sum + w.estimatedDuration, 0) / agentTeam.length;
556
+ return avgDuration * 1.5 + coordinationOverhead;
557
+
558
+ case 'hybrid':
559
+ return agentTeam.reduce((sum, w) => sum + w.estimatedDuration, 0) * 0.6 + coordinationOverhead;
560
+
561
+ default:
562
+ return Math.max(...agentTeam.map(w => w.estimatedDuration)) + coordinationOverhead;
563
+ }
564
+ }
565
+
566
+ /**
567
+ * Set up coordination between parallel agents
568
+ */
569
+ private async setupParallelCoordination(
570
+ plan: ParallelExecutionPlan,
571
+ agents: Agent[]
572
+ ): Promise<void> {
573
+ // Store coordination plan in memory for agents to access
574
+ await this.memory.store(`parallel_coordination_${plan.planId}`, {
575
+ planId: plan.planId,
576
+ strategy: plan.executionStrategy,
577
+ agentTeam: plan.agentTeam,
578
+ sharedContext: {
579
+ objectiveId: plan.planId,
580
+ coordinationMode: 'parallel',
581
+ checkpoints: this.createCoordinationCheckpoints(plan),
582
+ failureRecovery: plan.failureRecovery
583
+ },
584
+ timestamp: new Date().toISOString()
585
+ });
586
+
587
+ // Set up shared memory spaces for agent coordination
588
+ for (let i = 0; i < agents.length; i++) {
589
+ const agent = agents[i];
590
+ const workload = plan.agentTeam[i];
591
+
592
+ await this.memory.store(`agent_workload_${agent.id}`, {
593
+ agentId: agent.id,
594
+ assignedTodos: workload.assignedTodos,
595
+ specializations: workload.specializations,
596
+ coordinationKey: `parallel_coordination_${plan.planId}`,
597
+ peerAgents: agents.filter(a => a.id !== agent.id).map(a => a.id),
598
+ timestamp: new Date().toISOString()
599
+ });
600
+ }
601
+ }
602
+
603
+ /**
604
+ * Utility methods
605
+ */
606
+
607
+ private areTasksIndependent(todo1: TodoItem, todo2: TodoItem): boolean {
608
+ // Check if tasks have no direct dependencies
609
+ const todo1Keywords = todo1.content.toLowerCase().split(' ');
610
+ const todo2Keywords = todo2.content.toLowerCase().split(' ');
611
+
612
+ // Tasks are independent if they don't share critical keywords
613
+ const sharedCriticalKeywords = ['deploy', 'test', 'validate', 'create table', 'configure'].filter(keyword =>
614
+ todo1.content.toLowerCase().includes(keyword) && todo2.content.toLowerCase().includes(keyword)
615
+ );
616
+
617
+ return sharedCriticalKeywords.length === 0;
618
+ }
619
+
620
+ private suggestAgentsForTodos(todoIds: string[], todos: TodoItem[]): AgentType[] {
621
+ const agents: AgentType[] = [];
622
+ const todoContents = todoIds.map(id => todos.find(t => t.id === id)?.content || '');
623
+
624
+ for (const content of todoContents) {
625
+ const agentType = this.inferBestAgentType(content);
626
+ if (!agents.includes(agentType)) {
627
+ agents.push(agentType);
628
+ }
629
+ }
630
+
631
+ return agents;
632
+ }
633
+
634
+ private inferTodoCapability(todo: TodoItem): string {
635
+ const content = todo.content.toLowerCase();
636
+ if (content.includes('widget') || content.includes('template')) return 'widget_development';
637
+ if (content.includes('flow') || content.includes('workflow')) return 'flow_creation';
638
+ if (content.includes('script') || content.includes('code')) return 'scripting';
639
+ if (content.includes('test') || content.includes('validate')) return 'testing';
640
+ if (content.includes('deploy') || content.includes('configuration')) return 'deployment';
641
+ return 'general_development';
642
+ }
643
+
644
+ private capabilityToAgentType(capability: string): AgentType {
645
+ const mapping: { [key: string]: AgentType } = {
646
+ 'widget_development': 'widget-creator',
647
+ 'flow_creation': 'flow-builder',
648
+ 'scripting': 'script-writer',
649
+ 'testing': 'tester',
650
+ 'deployment': 'app-architect',
651
+ 'general_development': 'script-writer'
652
+ };
653
+
654
+ return mapping[capability] || 'script-writer';
655
+ }
656
+
657
+ private analyzeTodoCapabilities(todo: TodoItem): string[] {
658
+ const content = todo.content.toLowerCase();
659
+ const capabilities: string[] = [];
660
+
661
+ if (content.includes('widget') || content.includes('ui')) capabilities.push('widget_development');
662
+ if (content.includes('script') || content.includes('code')) capabilities.push('scripting');
663
+ if (content.includes('flow') || content.includes('workflow')) capabilities.push('flow_creation');
664
+ if (content.includes('test') || content.includes('validate')) capabilities.push('testing');
665
+ if (content.includes('deploy') || content.includes('install')) capabilities.push('deployment');
666
+ if (content.includes('integrate') || content.includes('api')) capabilities.push('integration');
667
+
668
+ return capabilities.length > 0 ? capabilities : ['general_development'];
669
+ }
670
+
671
+ private todoRequiresAgentType(todoId: string, agentType: AgentType, todos: TodoItem[]): boolean {
672
+ const todo = todos.find(t => t.id === todoId);
673
+ if (!todo) return false;
674
+
675
+ const requiredType = this.inferBestAgentType(todo.content);
676
+ return requiredType === agentType;
677
+ }
678
+
679
+ private inferBestAgentType(content: string): AgentType {
680
+ const lower = content.toLowerCase();
681
+ if (lower.includes('widget') || lower.includes('template')) return 'widget-creator';
682
+ if (lower.includes('flow') || lower.includes('workflow')) return 'flow-builder';
683
+ if (lower.includes('script') || lower.includes('business rule')) return 'script-writer';
684
+ if (lower.includes('test') || lower.includes('validate')) return 'tester';
685
+ if (lower.includes('integrate') || lower.includes('api')) return 'integration-specialist';
686
+ if (lower.includes('catalog') || lower.includes('item')) return 'catalog-manager';
687
+ if (lower.includes('research') || lower.includes('analyze')) return 'researcher';
688
+ return 'script-writer';
689
+ }
690
+
691
+ private estimateTodoDuration(todoIds: string[], todos: TodoItem[]): number {
692
+ let totalDuration = 0;
693
+
694
+ for (const todoId of todoIds) {
695
+ const todo = todos.find(t => t.id === todoId);
696
+ if (!todo) continue;
697
+
698
+ // Estimate based on content complexity
699
+ const words = todo.content.split(' ').length;
700
+ const baseDuration = 15; // 15 minutes base
701
+ const complexityMultiplier = todo.priority === 'high' ? 1.5 : 1.0;
702
+
703
+ totalDuration += baseDuration + (words * 2) * complexityMultiplier;
704
+ }
705
+
706
+ return Math.max(10, totalDuration); // Minimum 10 minutes
707
+ }
708
+
709
+ private getAgentCapabilities(agentType: AgentType): string[] {
710
+ const capabilityMap: { [key: string]: string[] } = {
711
+ 'widget-creator': ['html_generation', 'css_styling', 'javascript_development'],
712
+ 'flow-builder': ['flow_design', 'trigger_configuration', 'action_creation'],
713
+ 'script-writer': ['glide_scripting', 'business_logic', 'error_handling'],
714
+ 'app-architect': ['system_design', 'architecture_planning', 'integration'],
715
+ 'integration-specialist': ['rest_api', 'soap_services', 'data_transformation'],
716
+ 'catalog-manager': ['catalog_creation', 'variable_management', 'workflow_linking'],
717
+ 'researcher': ['requirement__analysis', 'feasibility_study', 'solution_research'],
718
+ 'tester': ['test_planning', 'test_execution', 'mock_data_creation']
719
+ };
720
+
721
+ return capabilityMap[agentType] || ['general_development'];
722
+ }
723
+
724
+ private getAgentSpecializations(agentType: AgentType, opportunityType: string): string[] {
725
+ const specializationMap: { [key: string]: { [key: string]: string[] } } = {
726
+ 'independent_tasks': {
727
+ 'widget-creator': ['parallel_ui_development', 'component_isolation'],
728
+ 'script-writer': ['parallel_scripting', 'independent_logic'],
729
+ 'tester': ['parallel_testing', 'test_isolation']
730
+ },
731
+ 'specialized_breakdown': {
732
+ 'widget-creator': ['ui_specialist', 'template_expert'],
733
+ 'script-writer': ['logic_specialist', 'performance_expert'],
734
+ 'flow-builder': ['workflow_specialist', 'integration_expert']
735
+ },
736
+ 'load_distribution': {
737
+ 'widget-creator': ['high_throughput_ui', 'batch_processing'],
738
+ 'script-writer': ['concurrent_scripting', 'load_handling'],
739
+ 'tester': ['bulk_testing', 'parallel_validation']
740
+ }
741
+ };
742
+
743
+ return specializationMap[opportunityType]?.[agentType] || ['general_specialist'];
744
+ }
745
+
746
+ private determineAgentSpecialization(workload: AgentWorkload): string {
747
+ return workload.specializations[0] || 'general';
748
+ }
749
+
750
+ private createCoordinationCheckpoints(plan: ParallelExecutionPlan): string[] {
751
+ return [
752
+ 'initialization_complete',
753
+ 'halfway_milestone',
754
+ 'integration_ready',
755
+ 'testing_phase',
756
+ 'deployment_ready'
757
+ ];
758
+ }
759
+
760
+ private async storeOpportunities(
761
+ todos: TodoItem[],
762
+ opportunities: ParallelizationOpportunity[]
763
+ ): Promise<void> {
764
+ await this.memory.store(`parallelization_analysis_${Date.now()}`, {
765
+ todoCount: todos.length,
766
+ opportunitiesFound: opportunities.length,
767
+ opportunities: opportunities.map(opp => ({
768
+ type: opp.type,
769
+ confidence: opp.confidence,
770
+ estimatedSpeedup: opp.estimatedSpeedup,
771
+ agentCount: opp.suggestedAgents.length
772
+ })),
773
+ timestamp: new Date().toISOString()
774
+ });
775
+ }
776
+
777
+ private setupLearningSystem(): void {
778
+ this.on('parallel_execution_completed', async (data: {
779
+ planId: string;
780
+ actualSpeedup: number;
781
+ success: boolean;
782
+ }) => {
783
+ // Store execution results for learning
784
+ this.parallelizationHistory.set(data.planId, {
785
+ success: data.success,
786
+ speedup: data.actualSpeedup
787
+ });
788
+
789
+ await this.memory.store(`execution_result_${data.planId}`, {
790
+ planId: data.planId,
791
+ actualSpeedup: data.actualSpeedup,
792
+ success: data.success,
793
+ timestamp: new Date().toISOString()
794
+ });
795
+ });
796
+ }
797
+
798
+ private initializeCapabilityMap(): void {
799
+ this.capabilityMap = {
800
+ 'widget.*template': {
801
+ primaryCapability: 'template_development',
802
+ requiredAgentTypes: ['widget-creator'],
803
+ parallelizable: true,
804
+ estimatedDuration: 20,
805
+ dependencies: []
806
+ },
807
+ 'server.*script': {
808
+ primaryCapability: 'server_development',
809
+ requiredAgentTypes: ['script-writer'],
810
+ parallelizable: true,
811
+ estimatedDuration: 25,
812
+ dependencies: ['template_development']
813
+ },
814
+ 'client.*script': {
815
+ primaryCapability: 'client_development',
816
+ requiredAgentTypes: ['script-writer'],
817
+ parallelizable: true,
818
+ estimatedDuration: 20,
819
+ dependencies: ['template_development']
820
+ },
821
+ 'css.*style': {
822
+ primaryCapability: 'styling',
823
+ requiredAgentTypes: ['widget-creator'],
824
+ parallelizable: true,
825
+ estimatedDuration: 15,
826
+ dependencies: ['template_development']
827
+ },
828
+ 'test.*validate': {
829
+ primaryCapability: 'testing',
830
+ requiredAgentTypes: ['tester'],
831
+ parallelizable: false,
832
+ estimatedDuration: 30,
833
+ dependencies: ['server_development', 'client_development', 'styling']
834
+ },
835
+ 'deploy': {
836
+ primaryCapability: 'deployment',
837
+ requiredAgentTypes: ['app-architect'],
838
+ parallelizable: false,
839
+ estimatedDuration: 10,
840
+ dependencies: ['testing']
841
+ }
842
+ };
843
+ }
844
+
845
+ private generateId(prefix: string): string {
846
+ return `${prefix}_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;
847
+ }
848
+ }