aiox-core 5.0.4 → 5.0.5

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 (618) hide show
  1. package/.aiox-core/core/config/config-cache.js +10 -1
  2. package/.aiox-core/core/config/config-loader.js +2 -2
  3. package/.aiox-core/core/execution/build-state-manager.js +1 -1
  4. package/.aiox-core/core/synapse/runtime/hook-runtime.js +11 -2
  5. package/.aiox-core/core/utils/yaml-validator.js +1 -1
  6. package/.aiox-core/data/entity-registry.yaml +761 -796
  7. package/.aiox-core/development/scripts/workflow-validator.js +92 -18
  8. package/.aiox-core/development/tasks/create-workflow.md +44 -42
  9. package/.aiox-core/development/tasks/project-status.md +280 -0
  10. package/.aiox-core/development/tasks/validate-workflow.md +2 -2
  11. package/.aiox-core/development/templates/squad/workflow-template.yaml +106 -91
  12. package/.aiox-core/development/templates/squad-template/workflows/example-workflow.yaml +72 -51
  13. package/.aiox-core/development/workflows/README.md +12 -5
  14. package/.aiox-core/development/workflows/development-cycle.yaml +90 -0
  15. package/.aiox-core/infrastructure/scripts/config-cache.js +10 -1
  16. package/.aiox-core/install-manifest.yaml +35 -39
  17. package/.aiox-core/lib/build.json +1 -0
  18. package/.claude/hooks/precompact-session-digest.cjs +47 -12
  19. package/.claude/hooks/synapse-engine.cjs +13 -13
  20. package/README.en.md +23 -37
  21. package/README.md +26 -38
  22. package/package.json +1 -1
  23. package/packages/installer/src/wizard/i18n.js +18 -15
  24. package/packages/installer/src/wizard/pro-setup.js +302 -68
  25. package/.aiox-core/core/execution/predictive-pipeline.js +0 -1283
  26. package/.aiox-core/core/memory/decision-memory.js +0 -564
  27. package/.aiox-core/data/registry-update-log.jsonl +0 -2
  28. package/pro/README.md +0 -66
  29. package/pro/feature-registry.yaml +0 -225
  30. package/pro/license/degradation.js +0 -220
  31. package/pro/license/errors.js +0 -450
  32. package/pro/license/feature-gate.js +0 -354
  33. package/pro/license/index.js +0 -181
  34. package/pro/license/license-api.js +0 -701
  35. package/pro/license/license-cache.js +0 -523
  36. package/pro/license/license-crypto.js +0 -303
  37. package/pro/package.json +0 -39
  38. package/pro/pro-config.yaml +0 -63
  39. package/pro/squads/README.md +0 -24
  40. package/pro/squads/design/HEADLINE.md +0 -3
  41. package/pro/squads/design/README.md +0 -109
  42. package/pro/squads/design/agents/brad-frost.md +0 -1097
  43. package/pro/squads/design/agents/dan-mall.md +0 -857
  44. package/pro/squads/design/agents/dave-malouf.md +0 -2272
  45. package/pro/squads/design/agents/design-chief.md +0 -114
  46. package/pro/squads/design/agents/ds-foundations-lead.md +0 -194
  47. package/pro/squads/design/agents/ds-token-architect.md +0 -361
  48. package/pro/squads/design/agents/nano-banana-generator.md +0 -162
  49. package/pro/squads/design/agents/storybook-expert.md +0 -809
  50. package/pro/squads/design/checklists/atomic-refactor-checklist.md +0 -299
  51. package/pro/squads/design/checklists/component-adaptation-checklist.md +0 -81
  52. package/pro/squads/design/checklists/design-fidelity-checklist.md +0 -283
  53. package/pro/squads/design/checklists/design-handoff-checklist.md +0 -55
  54. package/pro/squads/design/checklists/design-team-health-checklist.md +0 -454
  55. package/pro/squads/design/checklists/designops-maturity-checklist.md +0 -518
  56. package/pro/squads/design/checklists/ds-a11y-release-gate-checklist.md +0 -45
  57. package/pro/squads/design/checklists/ds-accessibility-wcag-checklist.md +0 -147
  58. package/pro/squads/design/checklists/ds-component-quality-checklist.md +0 -150
  59. package/pro/squads/design/checklists/ds-critical-eye-review-checklist.md +0 -147
  60. package/pro/squads/design/checklists/ds-migration-readiness-checklist.md +0 -99
  61. package/pro/squads/design/checklists/ds-pattern-audit-checklist.md +0 -164
  62. package/pro/squads/design/checklists/reading-accessibility-checklist.md +0 -275
  63. package/pro/squads/design/checklists/token-mapping-checklist.md +0 -107
  64. package/pro/squads/design/config/coding-standards.md +0 -286
  65. package/pro/squads/design/config/source-tree.md +0 -59
  66. package/pro/squads/design/config/tech-stack.md +0 -48
  67. package/pro/squads/design/config.yaml +0 -204
  68. package/pro/squads/design/data/agentic-design-systems-guide.md +0 -46
  69. package/pro/squads/design/data/agentic-ds-principles.md +0 -100
  70. package/pro/squads/design/data/atomic-design-principles.md +0 -108
  71. package/pro/squads/design/data/atomic-refactor-rules.md +0 -582
  72. package/pro/squads/design/data/base-component-specs.md +0 -972
  73. package/pro/squads/design/data/brad-frost-analysis-extract-implicit.yaml +0 -270
  74. package/pro/squads/design/data/brad-frost-analysis-find-0.8.yaml +0 -176
  75. package/pro/squads/design/data/brad-frost-analysis-qa-report.yaml +0 -168
  76. package/pro/squads/design/data/brad-frost-dna.yaml +0 -713
  77. package/pro/squads/design/data/capability-tools.yaml +0 -124
  78. package/pro/squads/design/data/component-adaptation-changelog.md +0 -318
  79. package/pro/squads/design/data/consolidation-algorithms.md +0 -168
  80. package/pro/squads/design/data/critical-eye-scoring-rules.yaml +0 -240
  81. package/pro/squads/design/data/design-token-best-practices.md +0 -107
  82. package/pro/squads/design/data/design-tokens-spec.yaml +0 -418
  83. package/pro/squads/design/data/ds-reference-architectures.md +0 -93
  84. package/pro/squads/design/data/f2-qa-report.md +0 -168
  85. package/pro/squads/design/data/f3-derived-components-changelog.md +0 -100
  86. package/pro/squads/design/data/f3-qa-report.md +0 -208
  87. package/pro/squads/design/data/figma-base-components-raw.md +0 -102
  88. package/pro/squads/design/data/figma-tokens-raw.md +0 -1549
  89. package/pro/squads/design/data/fluent2-design-principles.md +0 -114
  90. package/pro/squads/design/data/high-retention-reading-guide.md +0 -349
  91. package/pro/squads/design/data/integration-patterns.md +0 -207
  92. package/pro/squads/design/data/internal-quality-chain.yaml +0 -48
  93. package/pro/squads/design/data/motion-tokens-guide.md +0 -202
  94. package/pro/squads/design/data/roi-calculation-guide.md +0 -142
  95. package/pro/squads/design/data/token-mapping-reference.md +0 -213
  96. package/pro/squads/design/data/w3c-dtcg-spec-reference.md +0 -149
  97. package/pro/squads/design/data/wcag-compliance-guide.md +0 -267
  98. package/pro/squads/design/docs/AUDIT_REPORT.md +0 -97
  99. package/pro/squads/design/docs/DS-CURATION-PIPELINE-PROPOSAL.md +0 -577
  100. package/pro/squads/design/docs/UPGRADE_PLAN.md +0 -618
  101. package/pro/squads/design/docs/brad-frost-research-validation.md +0 -372
  102. package/pro/squads/design/docs/dave-malouf-research-validation.md +0 -391
  103. package/pro/squads/design/docs/tool-discovery-report.md +0 -87
  104. package/pro/squads/design/docs/tool-integration-plan.md +0 -44
  105. package/pro/squads/design/protocols/ai-first-governance.md +0 -56
  106. package/pro/squads/design/protocols/governance-execution-boundary.md +0 -59
  107. package/pro/squads/design/protocols/handoff.md +0 -60
  108. package/pro/squads/design/rules/.claude-rules.md +0 -88
  109. package/pro/squads/design/scripts/design-system/curate_colors.cjs +0 -447
  110. package/pro/squads/design/scripts/design-system/curate_components.cjs +0 -217
  111. package/pro/squads/design/scripts/design-system/curate_radius.cjs +0 -190
  112. package/pro/squads/design/scripts/design-system/curate_shadows.cjs +0 -208
  113. package/pro/squads/design/scripts/design-system/curate_spacing.cjs +0 -243
  114. package/pro/squads/design/scripts/design-system/curate_typography.cjs +0 -404
  115. package/pro/squads/design/scripts/design-system/design-system-metadata.test.js +0 -49
  116. package/pro/squads/design/scripts/design-system/design_manifest_lib.cjs +0 -142
  117. package/pro/squads/design/scripts/design-system/fetch_page_images.cjs +0 -195
  118. package/pro/squads/design/scripts/design-system/generate_components_metadata.cjs +0 -114
  119. package/pro/squads/design/scripts/design-system/generate_curation_report.cjs +0 -258
  120. package/pro/squads/design/scripts/design-system/generate_tokens.cjs +0 -342
  121. package/pro/squads/design/scripts/design-system/sync_design_manifest.cjs +0 -27
  122. package/pro/squads/design/scripts/design-system/test_mcp_tools.cjs +0 -232
  123. package/pro/squads/design/scripts/design-system/validate_components_metadata.cjs +0 -96
  124. package/pro/squads/design/scripts/design-system/validate_curation.cjs +0 -226
  125. package/pro/squads/design/scripts/design-system/validate_design_manifest_drift.cjs +0 -72
  126. package/pro/squads/design/scripts/design-system/validate_mcp_skeleton.cjs +0 -38
  127. package/pro/squads/design/scripts/design-system/validate_registry.cjs +0 -186
  128. package/pro/squads/design/scripts/design-system/validate_task_checklist_bindings.cjs +0 -78
  129. package/pro/squads/design/scripts/dissect-artifact.cjs +0 -806
  130. package/pro/squads/design/scripts/validate-a11y-integration.cjs +0 -40
  131. package/pro/squads/design/scripts/validate-design-squad.py +0 -411
  132. package/pro/squads/design/squad.yaml +0 -714
  133. package/pro/squads/design/tasks/a11y-audit.md +0 -340
  134. package/pro/squads/design/tasks/aria-audit.md +0 -525
  135. package/pro/squads/design/tasks/atomic-refactor-execute.md +0 -391
  136. package/pro/squads/design/tasks/atomic-refactor-plan.md +0 -262
  137. package/pro/squads/design/tasks/audit-reading-experience.md +0 -350
  138. package/pro/squads/design/tasks/audit-tailwind-config.md +0 -101
  139. package/pro/squads/design/tasks/bootstrap-shadcn-library.md +0 -96
  140. package/pro/squads/design/tasks/bundle-audit.md +0 -245
  141. package/pro/squads/design/tasks/contrast-matrix.md +0 -373
  142. package/pro/squads/design/tasks/create-doc.md +0 -135
  143. package/pro/squads/design/tasks/dead-code-detection.md +0 -329
  144. package/pro/squads/design/tasks/design-compare.md +0 -414
  145. package/pro/squads/design/tasks/design-process-optimization.md +0 -407
  146. package/pro/squads/design/tasks/design-review-orchestration.md +0 -99
  147. package/pro/squads/design/tasks/design-team-scaling.md +0 -407
  148. package/pro/squads/design/tasks/design-tooling-audit.md +0 -404
  149. package/pro/squads/design/tasks/design-triage.md +0 -89
  150. package/pro/squads/design/tasks/designops-maturity-assessment.md +0 -364
  151. package/pro/squads/design/tasks/designops-metrics-setup.md +0 -465
  152. package/pro/squads/design/tasks/ds-agentic-audit.md +0 -100
  153. package/pro/squads/design/tasks/ds-agentic-setup.md +0 -103
  154. package/pro/squads/design/tasks/ds-audit-codebase.md +0 -273
  155. package/pro/squads/design/tasks/ds-build-component.md +0 -349
  156. package/pro/squads/design/tasks/ds-build-mcp-server.md +0 -84
  157. package/pro/squads/design/tasks/ds-calculate-roi.md +0 -282
  158. package/pro/squads/design/tasks/ds-compose-molecule.md +0 -106
  159. package/pro/squads/design/tasks/ds-consolidate-patterns.md +0 -253
  160. package/pro/squads/design/tasks/ds-context-contract.md +0 -194
  161. package/pro/squads/design/tasks/ds-critical-eye-compare.md +0 -130
  162. package/pro/squads/design/tasks/ds-critical-eye-decide.md +0 -139
  163. package/pro/squads/design/tasks/ds-critical-eye-inventory.md +0 -111
  164. package/pro/squads/design/tasks/ds-critical-eye-report.md +0 -101
  165. package/pro/squads/design/tasks/ds-critical-eye-score.md +0 -109
  166. package/pro/squads/design/tasks/ds-designops.md +0 -99
  167. package/pro/squads/design/tasks/ds-extend-pattern.md +0 -91
  168. package/pro/squads/design/tasks/ds-extract-tokens.md +0 -312
  169. package/pro/squads/design/tasks/ds-figma-pipeline.md +0 -95
  170. package/pro/squads/design/tasks/ds-fluent-audit.md +0 -105
  171. package/pro/squads/design/tasks/ds-fluent-build.md +0 -110
  172. package/pro/squads/design/tasks/ds-generate-ai-metadata.md +0 -81
  173. package/pro/squads/design/tasks/ds-generate-cursor-rules.md +0 -74
  174. package/pro/squads/design/tasks/ds-generate-documentation.md +0 -101
  175. package/pro/squads/design/tasks/ds-generate-migration-strategy.md +0 -331
  176. package/pro/squads/design/tasks/ds-generate-shock-report.md +0 -323
  177. package/pro/squads/design/tasks/ds-govern-a11y-compliance.md +0 -93
  178. package/pro/squads/design/tasks/ds-governance.md +0 -187
  179. package/pro/squads/design/tasks/ds-health-metrics.md +0 -278
  180. package/pro/squads/design/tasks/ds-integrate-squad.md +0 -130
  181. package/pro/squads/design/tasks/ds-integrate-workspace.md +0 -100
  182. package/pro/squads/design/tasks/ds-legacy-modernization.md +0 -302
  183. package/pro/squads/design/tasks/ds-mcp-status.md +0 -65
  184. package/pro/squads/design/tasks/ds-motion-audit.md +0 -118
  185. package/pro/squads/design/tasks/ds-multi-framework.md +0 -96
  186. package/pro/squads/design/tasks/ds-parallelization-gate.md +0 -246
  187. package/pro/squads/design/tasks/ds-query.md +0 -90
  188. package/pro/squads/design/tasks/ds-rebuild-artifact.md +0 -369
  189. package/pro/squads/design/tasks/ds-reverse-engineer.md +0 -194
  190. package/pro/squads/design/tasks/ds-scan-artifact.md +0 -131
  191. package/pro/squads/design/tasks/ds-setup-design-system.md +0 -297
  192. package/pro/squads/design/tasks/ds-sync-registry.md +0 -287
  193. package/pro/squads/design/tasks/ds-theme-multi-brand.md +0 -90
  194. package/pro/squads/design/tasks/ds-token-modes.md +0 -108
  195. package/pro/squads/design/tasks/ds-token-w3c-extract.md +0 -105
  196. package/pro/squads/design/tasks/ds-validate-ai-readiness.md +0 -69
  197. package/pro/squads/design/tasks/ds-visual-regression.md +0 -130
  198. package/pro/squads/design/tasks/execute-checklist.md +0 -141
  199. package/pro/squads/design/tasks/export-design-tokens-dtcg.md +0 -97
  200. package/pro/squads/design/tasks/f1-apply-foundations.md +0 -154
  201. package/pro/squads/design/tasks/f1-ingest-figma-tokens.md +0 -130
  202. package/pro/squads/design/tasks/f1-map-tokens-to-shadcn.md +0 -145
  203. package/pro/squads/design/tasks/f1-qa-foundations.md +0 -95
  204. package/pro/squads/design/tasks/f2-adapt-shadcn-components.md +0 -155
  205. package/pro/squads/design/tasks/f2-ingest-base-components.md +0 -148
  206. package/pro/squads/design/tasks/f2-qa-base-components.md +0 -98
  207. package/pro/squads/design/tasks/f3-derive-components.md +0 -145
  208. package/pro/squads/design/tasks/f3-qa-derived-components.md +0 -101
  209. package/pro/squads/design/tasks/focus-order-audit.md +0 -450
  210. package/pro/squads/design/tasks/sb-brownfield-migrate.md +0 -367
  211. package/pro/squads/design/tasks/sb-brownfield-scan.md +0 -318
  212. package/pro/squads/design/tasks/sb-configure.md +0 -230
  213. package/pro/squads/design/tasks/sb-expand-shadcn.md +0 -213
  214. package/pro/squads/design/tasks/sb-generate-all-stories.md +0 -288
  215. package/pro/squads/design/tasks/sb-install.md +0 -152
  216. package/pro/squads/design/tasks/sb-sync-workspace.md +0 -239
  217. package/pro/squads/design/tasks/sb-verify.md +0 -203
  218. package/pro/squads/design/tasks/tailwind-upgrade.md +0 -117
  219. package/pro/squads/design/tasks/token-usage-analytics.md +0 -262
  220. package/pro/squads/design/tasks/ux-rewrite-sixth-grade.md +0 -82
  221. package/pro/squads/design/tasks/validate-design-fidelity.md +0 -222
  222. package/pro/squads/design/templates/agent-template.yaml +0 -46
  223. package/pro/squads/design/templates/clone-mind-template.md +0 -352
  224. package/pro/squads/design/templates/component-prompt-injection-tmpl.md +0 -236
  225. package/pro/squads/design/templates/component-visual-spec-tmpl.md +0 -378
  226. package/pro/squads/design/templates/critical-eye-cycle-report-tmpl.md +0 -165
  227. package/pro/squads/design/templates/design-fidelity-report-tmpl.md +0 -155
  228. package/pro/squads/design/templates/ds-ai-component-metadata-schema-tmpl.json +0 -138
  229. package/pro/squads/design/templates/ds-artifact-analysis.md +0 -70
  230. package/pro/squads/design/templates/ds-health-report-tmpl.md +0 -236
  231. package/pro/squads/design/templates/ds-migration-strategy-tmpl.md +0 -524
  232. package/pro/squads/design/templates/ds-state-persistence-tmpl.yaml +0 -194
  233. package/pro/squads/design/templates/ds-tokens-schema-tmpl.yaml +0 -139
  234. package/pro/squads/design/templates/migration-strategy-tmpl.md +0 -524
  235. package/pro/squads/design/templates/reading-design-tokens.css +0 -26
  236. package/pro/squads/design/templates/state-persistence-tmpl.yaml +0 -219
  237. package/pro/squads/design/templates/tokens-schema-tmpl.yaml +0 -305
  238. package/pro/squads/design/workflows/agentic-readiness.yaml +0 -83
  239. package/pro/squads/design/workflows/audit-only.yaml +0 -198
  240. package/pro/squads/design/workflows/brownfield-complete.yaml +0 -257
  241. package/pro/squads/design/workflows/critical-eye.yaml +0 -184
  242. package/pro/squads/design/workflows/dtcg-tokens-governance.yaml +0 -64
  243. package/pro/squads/design/workflows/foundations-pipeline.yaml +0 -192
  244. package/pro/squads/design/workflows/greenfield-new.yaml +0 -192
  245. package/pro/squads/design/workflows/motion-quality.yaml +0 -65
  246. package/pro/squads/design/workflows/self-healing-workflow.yaml +0 -237
  247. package/pro/squads/design/workflows/storybook-brownfield-migration.yaml +0 -400
  248. package/pro/squads/design/workflows/storybook-full-setup.yaml +0 -280
  249. package/pro/squads/index.js +0 -145
  250. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/ARQUITETURA_COGNITIVA_DE_ALEX_HORMOZI_EXTRA/303/207/303/203O_COMPLETA.md +0 -215
  251. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/A_Rotina_de_Alta_Performance_de_Alex_Hormozi_Arquitetura,_Motiva/303/247/303/265es_e_Replica/303/247/303/243o.md +0 -309
  252. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/O_sistema_completo_de_cria/303/247/303/243o_de_conte/303/272do_de_Alex_Hormozi.md +0 -416
  253. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/Processo_Cria/303/247/303/243o_Conte/303/272do_Hormozi.md +0 -0
  254. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +0 -1038
  255. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +0 -797
  256. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +0 -447
  257. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +0 -190
  258. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +0 -1038
  259. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +0 -797
  260. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +0 -447
  261. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +0 -190
  262. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_ELON_MUSK.md +0 -291
  263. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/ASSINATURA_LINGU/303/215STICA_ELON_MUSK.md +0 -485
  264. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/A_Arquitetura_Mental_de_Elon_Musk_Uma_An/303/241lise_Sistem/303/241tica_dos_Frameworks_de_Pensamento.md +0 -907
  265. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Dossi/303/252_Estrat/303/251gico_A_Arquitetura_Psicol/303/263gica_de_Elon_Musk.md +0 -252
  266. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Os_Padr/303/265es_de_Leitura_de_Elon_Musk_e_Sua_Influ/303/252ncia_Sistem/303/241tica.md +0 -287
  267. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Uma_an/303/241lise_psicol/303/263gica_abrangente.md +0 -187
  268. package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_EUGENE_M._SCHWARTZ.md +0 -790
  269. package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/An/303/241lise_Completa_Eugene_Schwartz_Arquitetura_Cognitiva_DEEP.md +0 -210
  270. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/5H_EXTRA/303/207/303/203O_COGNITIVA_COMPLETA_PEDRO_VAL/303/211RIO_LOPEZ.md +0 -226
  271. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_COMPARATIVA_REVISADA_PEDRO_VAL/303/211RIO_LOPEZ.md +0 -246
  272. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_LINGU/303/215STICA_CARIOCA_PEDRO_VAL/303/211RIO_LOPEZ.md +0 -274
  273. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_DEFINITIVA_PEDRO_VAL/303/211RIO_LOPEZ.md +0 -821
  274. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_PEDRO_VAL/303/211RIO.md +0 -1844
  275. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/C/303/201LCULO_DE_RARIDADE_ESTAT/303/215STICA_PEDRO_VAL/303/211RIO_LOPEZ.md +0 -154
  276. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/EXTRA/303/207/303/203O_PEDRO_VAL/303/211RIO.md +0 -237
  277. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/MAPEAMENTO_LINGU/303/215STICO_PROFUNDO.md +0 -161
  278. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/META_AXIOMAS_DE_PEDRO_VAL/303/211RIO.md +0 -256
  279. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_PEDRO_VAL/303/211RIO_LOPEZ.md +0 -586
  280. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_V2_/342/200/224_CLONE_IA.md +0 -452
  281. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/TABELA_COMPARATIVA_AN/303/201LISE_COMPLETA_DOS_CLONES_IA.md +0 -102
  282. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/WHATSAPP_PADR/303/225ES_LINGU/303/215STICOS_PEDRO_VAL/303/211RIO_LOPEZ.md +0 -286
  283. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/heur/303/255sticas_de_decis/303/243o_e_algoritmos_mentais_/303/272nicos.md +0 -268
  284. package/pro/squads/mmos-squad/minds/ray_kurzweil/sources/books/PROTOCOLO_COMPLETO_DE_INTERROGA/303/207/303/203O_-_NAVAL_RAVIKANT.md +0 -3624
  285. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_JOBS.md +0 -488
  286. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Framework_Cabe/303/247a_Steve.md +0 -257
  287. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Relat/303/263rio_Abrangente_sobre_Steve_Jobs_para_Cria/303/247/303/243o_de_Clone_de_IA.md +0 -370
  288. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Steve_Jobs_An/303/241lise_Psicol/303/263gica_Profunda_e_Valida/303/247/303/243o_Comportamental.md +0 -65
  289. package/pro/squads/squad-creator-pro/.state.json +0 -32
  290. package/pro/squads/squad-creator-pro/CHANGELOG.md +0 -275
  291. package/pro/squads/squad-creator-pro/HEADLINE.md +0 -3
  292. package/pro/squads/squad-creator-pro/README.md +0 -1059
  293. package/pro/squads/squad-creator-pro/agents/oalanicolas.md +0 -438
  294. package/pro/squads/squad-creator-pro/agents/pedro-valerio.md +0 -449
  295. package/pro/squads/squad-creator-pro/agents/squad-chief.md +0 -1651
  296. package/pro/squads/squad-creator-pro/agents/thiago_finch.md +0 -976
  297. package/pro/squads/squad-creator-pro/assessments/axioma-assessment-wf-create-squad.yaml +0 -325
  298. package/pro/squads/squad-creator-pro/checklists/.gitkeep +0 -1
  299. package/pro/squads/squad-creator-pro/checklists/agent-depth-checklist.md +0 -244
  300. package/pro/squads/squad-creator-pro/checklists/agent-quality-gate.md +0 -434
  301. package/pro/squads/squad-creator-pro/checklists/create-agent-checklist.md +0 -184
  302. package/pro/squads/squad-creator-pro/checklists/create-squad-checklist.md +0 -219
  303. package/pro/squads/squad-creator-pro/checklists/create-workflow-checklist.md +0 -224
  304. package/pro/squads/squad-creator-pro/checklists/deep-research-quality.md +0 -506
  305. package/pro/squads/squad-creator-pro/checklists/executor-matrix-checklist.md +0 -260
  306. package/pro/squads/squad-creator-pro/checklists/mental-model-integration-checklist.md +0 -95
  307. package/pro/squads/squad-creator-pro/checklists/mind-validation.md +0 -374
  308. package/pro/squads/squad-creator-pro/checklists/quality-gate-checklist.md +0 -385
  309. package/pro/squads/squad-creator-pro/checklists/smoke-test-agent.md +0 -313
  310. package/pro/squads/squad-creator-pro/checklists/sop-validation.md +0 -250
  311. package/pro/squads/squad-creator-pro/checklists/squad-checklist.md +0 -1014
  312. package/pro/squads/squad-creator-pro/checklists/squad-overview-checklist.md +0 -393
  313. package/pro/squads/squad-creator-pro/checklists/task-anatomy-checklist.md +0 -626
  314. package/pro/squads/squad-creator-pro/config/.gitkeep +0 -1
  315. package/pro/squads/squad-creator-pro/config/axioma-validator.yaml +0 -371
  316. package/pro/squads/squad-creator-pro/config/heuristics.yaml +0 -753
  317. package/pro/squads/squad-creator-pro/config/model-routing.yaml +0 -693
  318. package/pro/squads/squad-creator-pro/config/quality-gates.yaml +0 -415
  319. package/pro/squads/squad-creator-pro/config/scoring-rubric.yaml +0 -199
  320. package/pro/squads/squad-creator-pro/config/squad-config.yaml +0 -165
  321. package/pro/squads/squad-creator-pro/config/task-anatomy.yaml +0 -263
  322. package/pro/squads/squad-creator-pro/config/veto-conditions.yaml +0 -455
  323. package/pro/squads/squad-creator-pro/config.yaml +0 -35
  324. package/pro/squads/squad-creator-pro/data/.gitkeep +0 -1
  325. package/pro/squads/squad-creator-pro/data/an-anchor-words.yaml +0 -78
  326. package/pro/squads/squad-creator-pro/data/an-clone-anti-patterns.yaml +0 -148
  327. package/pro/squads/squad-creator-pro/data/an-clone-validation.yaml +0 -190
  328. package/pro/squads/squad-creator-pro/data/an-diagnostic-framework.yaml +0 -164
  329. package/pro/squads/squad-creator-pro/data/an-output-examples.yaml +0 -102
  330. package/pro/squads/squad-creator-pro/data/an-source-signals.yaml +0 -98
  331. package/pro/squads/squad-creator-pro/data/an-source-tiers.yaml +0 -119
  332. package/pro/squads/squad-creator-pro/data/best-practices.md +0 -986
  333. package/pro/squads/squad-creator-pro/data/core-heuristics.md +0 -510
  334. package/pro/squads/squad-creator-pro/data/decision-heuristics-framework.md +0 -620
  335. package/pro/squads/squad-creator-pro/data/executor-decision-tree.md +0 -774
  336. package/pro/squads/squad-creator-pro/data/executor-matrix-framework.md +0 -441
  337. package/pro/squads/squad-creator-pro/data/fusion-decision-points-analysis.md +0 -397
  338. package/pro/squads/squad-creator-pro/data/fusion-executor-analysis.md +0 -677
  339. package/pro/squads/squad-creator-pro/data/hybridops-patterns.md +0 -1351
  340. package/pro/squads/squad-creator-pro/data/internal-infrastructure-library.yaml +0 -99
  341. package/pro/squads/squad-creator-pro/data/mental-model-task-matrix.yaml +0 -692
  342. package/pro/squads/squad-creator-pro/data/pipeline-patterns.md +0 -352
  343. package/pro/squads/squad-creator-pro/data/pm-best-practices.md +0 -440
  344. package/pro/squads/squad-creator-pro/data/pv-anchor-words.yaml +0 -64
  345. package/pro/squads/squad-creator-pro/data/pv-authenticity-markers.yaml +0 -200
  346. package/pro/squads/squad-creator-pro/data/pv-meta-axiomas.yaml +0 -162
  347. package/pro/squads/squad-creator-pro/data/pv-output-examples.yaml +0 -342
  348. package/pro/squads/squad-creator-pro/data/pv-workflow-validation.yaml +0 -318
  349. package/pro/squads/squad-creator-pro/data/quality-dimensions-framework.md +0 -405
  350. package/pro/squads/squad-creator-pro/data/squad-analytics-guide.md +0 -252
  351. package/pro/squads/squad-creator-pro/data/squad-kb.md +0 -987
  352. package/pro/squads/squad-creator-pro/data/squad-registry.yaml +0 -841
  353. package/pro/squads/squad-creator-pro/data/squad-type-definitions.yaml +0 -578
  354. package/pro/squads/squad-creator-pro/data/tier-system-framework.md +0 -475
  355. package/pro/squads/squad-creator-pro/data/tool-evaluation-framework.md +0 -847
  356. package/pro/squads/squad-creator-pro/data/tool-registry.yaml +0 -700
  357. package/pro/squads/squad-creator-pro/docs/ADR-001-model-tier-qualification.md +0 -344
  358. package/pro/squads/squad-creator-pro/docs/AGENT-COLLABORATION.md +0 -609
  359. package/pro/squads/squad-creator-pro/docs/ARCHITECTURE-DIAGRAMS.md +0 -1466
  360. package/pro/squads/squad-creator-pro/docs/COMMANDS.md +0 -544
  361. package/pro/squads/squad-creator-pro/docs/CONCEPTS.md +0 -584
  362. package/pro/squads/squad-creator-pro/docs/FAQ.md +0 -731
  363. package/pro/squads/squad-creator-pro/docs/HITL-FLOW.md +0 -255
  364. package/pro/squads/squad-creator-pro/docs/MIGRATION-PLAN-AGENT-CONFORMITY.md +0 -861
  365. package/pro/squads/squad-creator-pro/docs/MIGRATION-ROADMAP-HYBRIDOPS.md +0 -1161
  366. package/pro/squads/squad-creator-pro/docs/MODEL-TIER-QUALIFICATION.md +0 -337
  367. package/pro/squads/squad-creator-pro/docs/PATTERN-LIBRARY.md +0 -333
  368. package/pro/squads/squad-creator-pro/docs/PEDRO-VALERIO-ARCHITECTURE.md +0 -456
  369. package/pro/squads/squad-creator-pro/docs/POR-ONDE-COMECAR.md +0 -210
  370. package/pro/squads/squad-creator-pro/docs/QUICK-START.md +0 -205
  371. package/pro/squads/squad-creator-pro/docs/RFC-001-deterministic-refactoring.md +0 -463
  372. package/pro/squads/squad-creator-pro/docs/TOOL-RECOMMENDATIONS.md +0 -379
  373. package/pro/squads/squad-creator-pro/docs/TROUBLESHOOTING.md +0 -412
  374. package/pro/squads/squad-creator-pro/docs/TUTORIAL-COMPLETO.md +0 -458
  375. package/pro/squads/squad-creator-pro/docs/optimize-v4-proposal.md +0 -354
  376. package/pro/squads/squad-creator-pro/docs/session-report-2026-02-01.md +0 -411
  377. package/pro/squads/squad-creator-pro/docs/sop-extraction-process.md +0 -674
  378. package/pro/squads/squad-creator-pro/docs/squad-chief-agent-flow.md +0 -981
  379. package/pro/squads/squad-creator-pro/docs/squad-creation-pipeline-workflow.md +0 -937
  380. package/pro/squads/squad-creator-pro/docs/task-optimization-framework.md +0 -229
  381. package/pro/squads/squad-creator-pro/docs/validation-report-2026-02-01.md +0 -439
  382. package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/HANDOFF_PROTOCOL.md +0 -269
  383. package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/SOURCE_CLASSIFICATION.md +0 -258
  384. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_001.md +0 -166
  385. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_002.md +0 -206
  386. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_003.md +0 -239
  387. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_004.md +0 -153
  388. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_005.md +0 -161
  389. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_006.md +0 -166
  390. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_007.md +0 -190
  391. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_008.md +0 -191
  392. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_009.md +0 -234
  393. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_010.md +0 -240
  394. package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/Assinatura_Linguistica.md +0 -355
  395. package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/META_AXIOMAS.md +0 -277
  396. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_BS_001.md +0 -144
  397. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PA_001.md +0 -174
  398. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PM_001.md +0 -191
  399. package/pro/squads/squad-creator-pro/package.json +0 -26
  400. package/pro/squads/squad-creator-pro/protocols/ai-first-governance.md +0 -63
  401. package/pro/squads/squad-creator-pro/scripts/README.md +0 -246
  402. package/pro/squads/squad-creator-pro/scripts/__pycache__/dependency_check.cpython-314.pyc +0 -0
  403. package/pro/squads/squad-creator-pro/scripts/__pycache__/inventory.cpython-314.pyc +0 -0
  404. package/pro/squads/squad-creator-pro/scripts/__pycache__/naming_validator.cpython-314.pyc +0 -0
  405. package/pro/squads/squad-creator-pro/scripts/__pycache__/quality_gate.cpython-314.pyc +0 -0
  406. package/pro/squads/squad-creator-pro/scripts/__pycache__/scoring.cpython-314.pyc +0 -0
  407. package/pro/squads/squad-creator-pro/scripts/__pycache__/yaml_validator.cpython-314.pyc +0 -0
  408. package/pro/squads/squad-creator-pro/scripts/assess-sources.sh +0 -443
  409. package/pro/squads/squad-creator-pro/scripts/checklist_validator.py +0 -451
  410. package/pro/squads/squad-creator-pro/scripts/clone-review.sh +0 -394
  411. package/pro/squads/squad-creator-pro/scripts/coherence-validator.py +0 -836
  412. package/pro/squads/squad-creator-pro/scripts/create-agent-preflight.py +0 -243
  413. package/pro/squads/squad-creator-pro/scripts/cross-provider/compare-results.js +0 -281
  414. package/pro/squads/squad-creator-pro/scripts/cross-provider/cross-provider-runner.js +0 -462
  415. package/pro/squads/squad-creator-pro/scripts/dependency_check.py +0 -333
  416. package/pro/squads/squad-creator-pro/scripts/fidelity-score.sh +0 -519
  417. package/pro/squads/squad-creator-pro/scripts/generate-squad-greeting.js +0 -426
  418. package/pro/squads/squad-creator-pro/scripts/generate-squad-guide.js +0 -558
  419. package/pro/squads/squad-creator-pro/scripts/inventory.py +0 -269
  420. package/pro/squads/squad-creator-pro/scripts/lib/config-loader.js +0 -151
  421. package/pro/squads/squad-creator-pro/scripts/model-tier-validator.cjs +0 -369
  422. package/pro/squads/squad-creator-pro/scripts/model-usage-logger.cjs +0 -245
  423. package/pro/squads/squad-creator-pro/scripts/modernization-score.sh +0 -308
  424. package/pro/squads/squad-creator-pro/scripts/naming_validator.py +0 -299
  425. package/pro/squads/squad-creator-pro/scripts/on-specialist-complete.py +0 -98
  426. package/pro/squads/squad-creator-pro/scripts/quality_gate.py +0 -413
  427. package/pro/squads/squad-creator-pro/scripts/refresh-registry.py +0 -270
  428. package/pro/squads/squad-creator-pro/scripts/save-session-metrics.py +0 -136
  429. package/pro/squads/squad-creator-pro/scripts/scaffold-squad.cjs +0 -281
  430. package/pro/squads/squad-creator-pro/scripts/scoring.py +0 -395
  431. package/pro/squads/squad-creator-pro/scripts/security_scanner.py +0 -378
  432. package/pro/squads/squad-creator-pro/scripts/squad-analytics.py +0 -585
  433. package/pro/squads/squad-creator-pro/scripts/squad-context-loader.cjs +0 -205
  434. package/pro/squads/squad-creator-pro/scripts/squad-state-manager.cjs +0 -451
  435. package/pro/squads/squad-creator-pro/scripts/squad-workflow-runner.cjs +0 -471
  436. package/pro/squads/squad-creator-pro/scripts/squad_utils.py +0 -261
  437. package/pro/squads/squad-creator-pro/scripts/sync-ide-command.py +0 -590
  438. package/pro/squads/squad-creator-pro/scripts/tests/__init__.py +0 -1
  439. package/pro/squads/squad-creator-pro/scripts/tests/conftest.py +0 -309
  440. package/pro/squads/squad-creator-pro/scripts/tests/run_bash_tests.sh +0 -29
  441. package/pro/squads/squad-creator-pro/scripts/tests/test_assess_sources.sh +0 -216
  442. package/pro/squads/squad-creator-pro/scripts/tests/test_checklist_validator.py +0 -396
  443. package/pro/squads/squad-creator-pro/scripts/tests/test_clone_review.sh +0 -239
  444. package/pro/squads/squad-creator-pro/scripts/tests/test_coherence_validator.py +0 -212
  445. package/pro/squads/squad-creator-pro/scripts/tests/test_dependency_check.py +0 -361
  446. package/pro/squads/squad-creator-pro/scripts/tests/test_fidelity_score.sh +0 -298
  447. package/pro/squads/squad-creator-pro/scripts/tests/test_inventory.py +0 -307
  448. package/pro/squads/squad-creator-pro/scripts/tests/test_modernization_score.sh +0 -211
  449. package/pro/squads/squad-creator-pro/scripts/tests/test_naming_validator.py +0 -373
  450. package/pro/squads/squad-creator-pro/scripts/tests/test_quality_gate.py +0 -280
  451. package/pro/squads/squad-creator-pro/scripts/tests/test_refresh_registry.py +0 -338
  452. package/pro/squads/squad-creator-pro/scripts/tests/test_scoring.py +0 -366
  453. package/pro/squads/squad-creator-pro/scripts/tests/test_security_scanner.py +0 -354
  454. package/pro/squads/squad-creator-pro/scripts/tests/test_squad_analytics.py +0 -450
  455. package/pro/squads/squad-creator-pro/scripts/tests/test_validate_clone.sh +0 -252
  456. package/pro/squads/squad-creator-pro/scripts/tests/test_yaml_validator.py +0 -412
  457. package/pro/squads/squad-creator-pro/scripts/validate-agent-output.py +0 -115
  458. package/pro/squads/squad-creator-pro/scripts/validate-all.sh +0 -49
  459. package/pro/squads/squad-creator-pro/scripts/validate-squad-structure.py +0 -535
  460. package/pro/squads/squad-creator-pro/scripts/validate-squad.sh +0 -944
  461. package/pro/squads/squad-creator-pro/scripts/yaml_validator.py +0 -528
  462. package/pro/squads/squad-creator-pro/skills/squad.md +0 -301
  463. package/pro/squads/squad-creator-pro/squad.yaml +0 -36
  464. package/pro/squads/squad-creator-pro/tasks/CHANGELOG.md +0 -80
  465. package/pro/squads/squad-creator-pro/tasks/an-assess-sources.md +0 -78
  466. package/pro/squads/squad-creator-pro/tasks/an-clone-review.md +0 -104
  467. package/pro/squads/squad-creator-pro/tasks/an-compare-outputs.md +0 -354
  468. package/pro/squads/squad-creator-pro/tasks/an-design-clone.md +0 -79
  469. package/pro/squads/squad-creator-pro/tasks/an-diagnose-clone.md +0 -87
  470. package/pro/squads/squad-creator-pro/tasks/an-extract-dna.md +0 -90
  471. package/pro/squads/squad-creator-pro/tasks/an-extract-framework.md +0 -100
  472. package/pro/squads/squad-creator-pro/tasks/an-fidelity-score.md +0 -108
  473. package/pro/squads/squad-creator-pro/tasks/an-validate-clone.md +0 -96
  474. package/pro/squads/squad-creator-pro/tasks/auto-acquire-sources.md +0 -349
  475. package/pro/squads/squad-creator-pro/tasks/collect-sources.md +0 -533
  476. package/pro/squads/squad-creator-pro/tasks/create-agent.md +0 -768
  477. package/pro/squads/squad-creator-pro/tasks/create-documentation.md +0 -258
  478. package/pro/squads/squad-creator-pro/tasks/create-pipeline.md +0 -296
  479. package/pro/squads/squad-creator-pro/tasks/create-squad.md +0 -933
  480. package/pro/squads/squad-creator-pro/tasks/create-task.md +0 -1148
  481. package/pro/squads/squad-creator-pro/tasks/create-template.md +0 -474
  482. package/pro/squads/squad-creator-pro/tasks/create-workflow.md +0 -720
  483. package/pro/squads/squad-creator-pro/tasks/deconstruct.md +0 -167
  484. package/pro/squads/squad-creator-pro/tasks/deep-research-pre-agent.md +0 -566
  485. package/pro/squads/squad-creator-pro/tasks/detect-squad-context.md +0 -81
  486. package/pro/squads/squad-creator-pro/tasks/discover-tools.md +0 -944
  487. package/pro/squads/squad-creator-pro/tasks/extract-implicit.md +0 -352
  488. package/pro/squads/squad-creator-pro/tasks/extract-knowledge.md +0 -577
  489. package/pro/squads/squad-creator-pro/tasks/extract-sop.md +0 -320
  490. package/pro/squads/squad-creator-pro/tasks/extract-thinking-dna.md +0 -653
  491. package/pro/squads/squad-creator-pro/tasks/extract-voice-dna.md +0 -619
  492. package/pro/squads/squad-creator-pro/tasks/find-0.8.md +0 -222
  493. package/pro/squads/squad-creator-pro/tasks/install-commands.md +0 -373
  494. package/pro/squads/squad-creator-pro/tasks/lookup-model.md +0 -78
  495. package/pro/squads/squad-creator-pro/tasks/migrate-workflows-to-yaml.md +0 -259
  496. package/pro/squads/squad-creator-pro/tasks/next-squad.md +0 -487
  497. package/pro/squads/squad-creator-pro/tasks/optimize-workflow.md +0 -851
  498. package/pro/squads/squad-creator-pro/tasks/optimize.md +0 -1082
  499. package/pro/squads/squad-creator-pro/tasks/parallel-discovery.md +0 -58
  500. package/pro/squads/squad-creator-pro/tasks/pv-audit.md +0 -244
  501. package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment-wf-clone-mind.yaml +0 -256
  502. package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment.md +0 -83
  503. package/pro/squads/squad-creator-pro/tasks/pv-modernization-score.md +0 -83
  504. package/pro/squads/squad-creator-pro/tasks/qa-after-creation.md +0 -475
  505. package/pro/squads/squad-creator-pro/tasks/qualify-task.md +0 -265
  506. package/pro/squads/squad-creator-pro/tasks/reexecute-squad-phase.md +0 -64
  507. package/pro/squads/squad-creator-pro/tasks/refresh-registry.md +0 -403
  508. package/pro/squads/squad-creator-pro/tasks/smoke-test-model-routing.md +0 -167
  509. package/pro/squads/squad-creator-pro/tasks/squad-analytics.md +0 -265
  510. package/pro/squads/squad-creator-pro/tasks/squad-fusion.md +0 -817
  511. package/pro/squads/squad-creator-pro/tasks/squad-overview.md +0 -683
  512. package/pro/squads/squad-creator-pro/tasks/sync-ide-command.md +0 -392
  513. package/pro/squads/squad-creator-pro/tasks/update-mind.md +0 -428
  514. package/pro/squads/squad-creator-pro/tasks/upgrade-squad.md +0 -919
  515. package/pro/squads/squad-creator-pro/tasks/validate-extraction.md +0 -209
  516. package/pro/squads/squad-creator-pro/tasks/validate-final-artifacts.md +0 -80
  517. package/pro/squads/squad-creator-pro/tasks/validate-squad.md +0 -1385
  518. package/pro/squads/squad-creator-pro/templates/.gitkeep +0 -1
  519. package/pro/squads/squad-creator-pro/templates/agent-flow-doc-tmpl.md +0 -512
  520. package/pro/squads/squad-creator-pro/templates/agent-tmpl.md +0 -697
  521. package/pro/squads/squad-creator-pro/templates/config-tmpl.yaml +0 -352
  522. package/pro/squads/squad-creator-pro/templates/handoff-insumos-tmpl.yaml +0 -112
  523. package/pro/squads/squad-creator-pro/templates/orchestrator-tmpl.md +0 -74
  524. package/pro/squads/squad-creator-pro/templates/pipeline-progress-tmpl.py +0 -373
  525. package/pro/squads/squad-creator-pro/templates/pipeline-runner-tmpl.py +0 -444
  526. package/pro/squads/squad-creator-pro/templates/pipeline-state-tmpl.py +0 -413
  527. package/pro/squads/squad-creator-pro/templates/pop-extractor-prompt.md +0 -549
  528. package/pro/squads/squad-creator-pro/templates/quality-dashboard-tmpl.md +0 -286
  529. package/pro/squads/squad-creator-pro/templates/quality-gate-tmpl.yaml +0 -589
  530. package/pro/squads/squad-creator-pro/templates/readme-tmpl.md +0 -231
  531. package/pro/squads/squad-creator-pro/templates/research-output-tmpl.md +0 -625
  532. package/pro/squads/squad-creator-pro/templates/research-prompt-tmpl.md +0 -479
  533. package/pro/squads/squad-creator-pro/templates/squad-prd-tmpl.md +0 -464
  534. package/pro/squads/squad-creator-pro/templates/squad-readme-tmpl.md +0 -170
  535. package/pro/squads/squad-creator-pro/templates/story-create-agent-tmpl.md +0 -284
  536. package/pro/squads/squad-creator-pro/templates/task-tmpl.md +0 -461
  537. package/pro/squads/squad-creator-pro/templates/template-tmpl.yaml +0 -227
  538. package/pro/squads/squad-creator-pro/templates/workflow-doc-tmpl.md +0 -860
  539. package/pro/squads/squad-creator-pro/templates/workflow-tmpl.yaml +0 -394
  540. package/pro/squads/squad-creator-pro/test-cases/BATCH-PROGRESS.md +0 -268
  541. package/pro/squads/squad-creator-pro/test-cases/QUALIFICATION-DASHBOARD.yaml +0 -13
  542. package/pro/squads/squad-creator-pro/test-cases/_template.yaml +0 -147
  543. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT-SUMMARY.md +0 -275
  544. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT_SUMMARY.md +0 -140
  545. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/CHECKPOINT_MATRIX.md +0 -202
  546. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION-REPORT.md +0 -413
  547. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION_NOTES.md +0 -358
  548. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README-v2.2.2.md +0 -299
  549. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README.md +0 -320
  550. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/TEST-REPORT-v2.1.md +0 -351
  551. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/VERIFICATION-CHECKLIST.txt +0 -247
  552. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/formal-qualification-report.yaml +0 -389
  553. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-output.yaml +0 -366
  554. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.1-output.yaml +0 -452
  555. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.1-output.yaml +0 -281
  556. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.2-output.yaml +0 -332
  557. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/opus-baseline.yaml +0 -517
  558. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/qualification-report.yaml +0 -213
  559. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/test-case.yaml +0 -69
  560. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/haiku-round-1.yaml +0 -213
  561. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/opus-baseline.yaml +0 -566
  562. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/qualification-report.yaml +0 -82
  563. package/pro/squads/squad-creator-pro/test-cases/an-design-clone/test-case.yaml +0 -102
  564. package/pro/squads/squad-creator-pro/test-cases/an-extract-dna/test-case.yaml +0 -105
  565. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/haiku-round-1.yaml +0 -262
  566. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/opus-baseline.yaml +0 -266
  567. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/qualification-report.yaml +0 -94
  568. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/haiku-round-1.yaml +0 -282
  569. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/opus-baseline.yaml +0 -470
  570. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/qualification-report.yaml +0 -106
  571. package/pro/squads/squad-creator-pro/test-cases/collect-sources/test-case.yaml +0 -105
  572. package/pro/squads/squad-creator-pro/test-cases/create-task/test-case.yaml +0 -104
  573. package/pro/squads/squad-creator-pro/test-cases/cross-provider/DASHBOARD.yaml +0 -11
  574. package/pro/squads/squad-creator-pro/test-cases/pv-audit/test-case.yaml +0 -106
  575. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/haiku-output.yaml +0 -209
  576. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/opus-baseline.yaml +0 -96
  577. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/sonnet-output.yaml +0 -30
  578. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/test-case.yaml +0 -129
  579. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/comparison-round-1.yaml +0 -242
  580. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/haiku-round-1.yaml +0 -393
  581. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/opus-baseline.yaml +0 -488
  582. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/qualification-report.yaml +0 -74
  583. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/haiku-round-1.yaml +0 -292
  584. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/opus-baseline.yaml +0 -603
  585. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/qualification-report.yaml +0 -97
  586. package/pro/squads/squad-creator-pro/test-cases/smoke-test-model-routing/test-case.yaml +0 -100
  587. package/pro/squads/squad-creator-pro/test-cases/upgrade-squad/test-case.yaml +0 -106
  588. package/pro/squads/squad-creator-pro/test-cases/validate-squad/comparison-round-1.yaml +0 -223
  589. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1-MINE.yaml +0 -36
  590. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1.yaml +0 -193
  591. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-2.yaml +0 -303
  592. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-3-v4-task.yaml +0 -149
  593. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-baseline.yaml +0 -529
  594. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-round-3-v4-task.yaml +0 -132
  595. package/pro/squads/squad-creator-pro/test-cases/validate-squad/qualification-report.yaml +0 -104
  596. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output-v2-calibrated.yaml +0 -200
  597. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output.yaml +0 -183
  598. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/opus-baseline.yaml +0 -112
  599. package/pro/squads/squad-creator-pro/utils/.gitkeep +0 -1
  600. package/pro/squads/squad-creator-pro/workflows/.gitkeep +0 -1
  601. package/pro/squads/squad-creator-pro/workflows/create-squad.yaml +0 -348
  602. package/pro/squads/squad-creator-pro/workflows/modules/module-discovery.yaml +0 -16
  603. package/pro/squads/squad-creator-pro/workflows/modules/module-integration.yaml +0 -16
  604. package/pro/squads/squad-creator-pro/workflows/modules/module-quality-gates.yaml +0 -15
  605. package/pro/squads/squad-creator-pro/workflows/validate-squad.yaml +0 -582
  606. package/pro/squads/squad-creator-pro/workflows/wf-auto-acquire-sources.yaml +0 -518
  607. package/pro/squads/squad-creator-pro/workflows/wf-brownfield-upgrade-squad.yaml +0 -46
  608. package/pro/squads/squad-creator-pro/workflows/wf-clone-mind.yaml +0 -521
  609. package/pro/squads/squad-creator-pro/workflows/wf-context-aware-create-squad.yaml +0 -47
  610. package/pro/squads/squad-creator-pro/workflows/wf-create-squad.yaml +0 -1619
  611. package/pro/squads/squad-creator-pro/workflows/wf-cross-provider-qualification.yaml +0 -711
  612. package/pro/squads/squad-creator-pro/workflows/wf-discover-tools.yaml +0 -1439
  613. package/pro/squads/squad-creator-pro/workflows/wf-extraction-pipeline.yaml +0 -486
  614. package/pro/squads/squad-creator-pro/workflows/wf-mind-research-loop.yaml +0 -668
  615. package/pro/squads/squad-creator-pro/workflows/wf-model-tier-qualification.yaml +0 -800
  616. package/pro/squads/squad-creator-pro/workflows/wf-optimize-squad.yaml +0 -684
  617. package/pro/squads/squad-creator-pro/workflows/wf-research-then-create-agent.yaml +0 -921
  618. package/pro/squads/squad-creator-pro/workflows/wf-squad-fusion.yaml +0 -1684
@@ -1,1283 +0,0 @@
1
- /**
2
- * Predictive Pipeline
3
- *
4
- * Predicts task outcomes BEFORE execution using historical data patterns.
5
- * Estimates success probability, expected duration, resource needs, and
6
- * potential failure points based on weighted k-NN with feature similarity.
7
- *
8
- * Pipeline stages: preprocess → match → predict → score → recommend
9
- *
10
- * @module core/execution/predictive-pipeline
11
- * @version 1.0.0
12
- */
13
-
14
- const fs = require('fs');
15
- const path = require('path');
16
- const EventEmitter = require('events');
17
-
18
- // ═══════════════════════════════════════════════════════════════════════════════
19
- // CONSTANTS
20
- // ═══════════════════════════════════════════════════════════════════════════════
21
-
22
- /**
23
- * Pipeline stage names in execution order
24
- */
25
- const PipelineStage = {
26
- PREPROCESS: 'preprocess',
27
- MATCH: 'match',
28
- PREDICT: 'predict',
29
- SCORE: 'score',
30
- RECOMMEND: 'recommend',
31
- };
32
-
33
- /**
34
- * Risk level thresholds
35
- */
36
- const RiskLevel = {
37
- LOW: 'low',
38
- MEDIUM: 'medium',
39
- HIGH: 'high',
40
- CRITICAL: 'critical',
41
- };
42
-
43
- /**
44
- * Default configuration values
45
- */
46
- const DEFAULTS = {
47
- kNeighbors: 5,
48
- minSamplesForPrediction: 3,
49
- anomalyThreshold: 0.3,
50
- ewmaAlpha: 0.3,
51
- highRiskThreshold: 0.6,
52
- maxOutcomes: 10000,
53
- confidenceSampleCap: 20,
54
- };
55
-
56
- // ═══════════════════════════════════════════════════════════════════════════════
57
- // PIPELINE
58
- // ═══════════════════════════════════════════════════════════════════════════════
59
-
60
- class PredictivePipeline extends EventEmitter {
61
- /**
62
- * @param {string} projectRoot - Root directory for persistence
63
- * @param {Object} [options] - Configuration options
64
- * @param {number} [options.kNeighbors=5] - Number of neighbors for k-NN
65
- * @param {number} [options.minSamplesForPrediction=3] - Minimum outcomes for prediction
66
- * @param {number} [options.anomalyThreshold=0.3] - Max similarity for anomaly detection
67
- * @param {number} [options.ewmaAlpha=0.3] - EWMA smoothing factor (0-1)
68
- * @param {number} [options.highRiskThreshold=0.6] - Risk score above which high-risk is emitted
69
- * @param {number} [options.maxOutcomes=10000] - Maximum stored outcomes before auto-prune
70
- */
71
- constructor(projectRoot, options = {}) {
72
- super();
73
-
74
- this.projectRoot = projectRoot ?? process.cwd();
75
- this.kNeighbors = options.kNeighbors ?? DEFAULTS.kNeighbors;
76
- this.minSamplesForPrediction = options.minSamplesForPrediction ?? DEFAULTS.minSamplesForPrediction;
77
- this.anomalyThreshold = options.anomalyThreshold ?? DEFAULTS.anomalyThreshold;
78
- this.ewmaAlpha = options.ewmaAlpha ?? DEFAULTS.ewmaAlpha;
79
- this.highRiskThreshold = options.highRiskThreshold ?? DEFAULTS.highRiskThreshold;
80
- this.maxOutcomes = options.maxOutcomes ?? DEFAULTS.maxOutcomes;
81
- this.confidenceSampleCap = options.confidenceSampleCap ?? DEFAULTS.confidenceSampleCap;
82
-
83
- // Persistence paths
84
- this._dataDir = path.join(this.projectRoot, '.aiox', 'predictions');
85
- this._outcomesPath = path.join(this._dataDir, 'outcomes.json');
86
- this._modelPath = path.join(this._dataDir, 'model.json');
87
-
88
- // In-memory state
89
- this._outcomes = [];
90
- this._model = this._emptyModel();
91
- this._loaded = false;
92
-
93
- // Serialized write chain
94
- this._writeChain = Promise.resolve();
95
-
96
- // Stage metrics
97
- this._stageMetrics = {};
98
- for (const stage of Object.values(PipelineStage)) {
99
- this._stageMetrics[stage] = { calls: 0, totalMs: 0, errors: 0 };
100
- }
101
-
102
- // Global stats
103
- this._stats = {
104
- predictions: 0,
105
- outcomesRecorded: 0,
106
- anomaliesDetected: 0,
107
- retrains: 0,
108
- };
109
- }
110
-
111
- // ═════════════════════════════════════════════════════════════════════════════
112
- // DATA LOADING
113
- // ═════════════════════════════════════════════════════════════════════════════
114
-
115
- /**
116
- * Ensure data is loaded from disk (lazy, idempotent)
117
- * @private
118
- */
119
- _ensureLoaded() {
120
- if (this._loaded) return;
121
- this._loadSync();
122
- this._loaded = true;
123
- }
124
-
125
- /**
126
- * Load outcomes and model from disk synchronously
127
- * @private
128
- */
129
- _loadSync() {
130
- try {
131
- if (fs.existsSync(this._outcomesPath)) {
132
- const raw = fs.readFileSync(this._outcomesPath, 'utf8');
133
- const parsed = JSON.parse(raw);
134
- this._outcomes = Array.isArray(parsed) ? parsed : [];
135
- }
136
- } catch {
137
- this._outcomes = [];
138
- }
139
-
140
- try {
141
- if (fs.existsSync(this._modelPath)) {
142
- const raw = fs.readFileSync(this._modelPath, 'utf8');
143
- const parsed = JSON.parse(raw);
144
- if (parsed && typeof parsed === 'object') {
145
- this._model = { ...this._emptyModel(), ...parsed };
146
- }
147
- }
148
- } catch {
149
- this._model = this._emptyModel();
150
- }
151
- }
152
-
153
- /**
154
- * @private
155
- * @returns {Object} Empty model structure
156
- */
157
- _emptyModel() {
158
- return {
159
- taskTypeStats: {},
160
- agentStats: {},
161
- strategyStats: {},
162
- lastRetrain: null,
163
- version: 1,
164
- };
165
- }
166
-
167
- // ═════════════════════════════════════════════════════════════════════════════
168
- // PERSISTENCE
169
- // ═════════════════════════════════════════════════════════════════════════════
170
-
171
- /**
172
- * Serialize a write operation through the write chain
173
- * @private
174
- * @param {Function} writeFn - Async function that performs the write
175
- * @returns {Promise<void>}
176
- */
177
- _enqueueWrite(writeFn) {
178
- this._writeChain = this._writeChain.then(() => writeFn()).catch((err) => {
179
- this._emitSafeError({ type: 'persistence', error: err });
180
- throw err;
181
- });
182
- return this._writeChain;
183
- }
184
-
185
- /**
186
- * Persist outcomes to disk
187
- * @private
188
- * @returns {Promise<void>}
189
- */
190
- _persistOutcomes() {
191
- return this._enqueueWrite(async () => {
192
- this._ensureDataDir();
193
- fs.writeFileSync(this._outcomesPath, JSON.stringify(this._outcomes, null, 2));
194
- });
195
- }
196
-
197
- /**
198
- * Persist model to disk
199
- * @private
200
- * @returns {Promise<void>}
201
- */
202
- _persistModel() {
203
- return this._enqueueWrite(async () => {
204
- this._ensureDataDir();
205
- fs.writeFileSync(this._modelPath, JSON.stringify(this._model, null, 2));
206
- });
207
- }
208
-
209
- /**
210
- * Ensure the data directory exists
211
- * @private
212
- */
213
- _ensureDataDir() {
214
- if (!fs.existsSync(this._dataDir)) {
215
- fs.mkdirSync(this._dataDir, { recursive: true });
216
- }
217
- }
218
-
219
- // ═════════════════════════════════════════════════════════════════════════════
220
- // SAFE ERROR EMIT
221
- // ═════════════════════════════════════════════════════════════════════════════
222
-
223
- /**
224
- * Emit error event only when listeners are present.
225
- * Avoids unhandled EventEmitter 'error' exceptions.
226
- * @private
227
- * @param {Object} payload
228
- */
229
- _emitSafeError(payload) {
230
- if (this.listenerCount('error') > 0) {
231
- this.emit('error', payload);
232
- return;
233
- }
234
- // Silently degrade — no listeners attached
235
- }
236
-
237
- // ═════════════════════════════════════════════════════════════════════════════
238
- // DEEP CLONE
239
- // ═════════════════════════════════════════════════════════════════════════════
240
-
241
- /**
242
- * Deep clone with structuredClone, JSON fallback
243
- * @private
244
- * @param {*} obj
245
- * @returns {*}
246
- */
247
- _deepClone(obj) {
248
- try {
249
- return structuredClone(obj);
250
- } catch {
251
- return JSON.parse(JSON.stringify(obj));
252
- }
253
- }
254
-
255
- // ═════════════════════════════════════════════════════════════════════════════
256
- // RECORD OUTCOMES
257
- // ═════════════════════════════════════════════════════════════════════════════
258
-
259
- /**
260
- * Record the actual outcome of a task for future predictions
261
- * @param {Object} outcome - Outcome data
262
- * @param {string} outcome.taskType - Type of task executed
263
- * @param {string} [outcome.agent] - Agent that executed the task
264
- * @param {string} [outcome.strategy] - Strategy used
265
- * @param {number} outcome.duration - Execution duration in ms
266
- * @param {boolean} outcome.success - Whether the task succeeded
267
- * @param {number} [outcome.complexity] - Task complexity (1-10)
268
- * @param {number} [outcome.contextSize] - Size of context provided
269
- * @param {Object} [outcome.resources] - Resources consumed (memory, cpu, apiCalls)
270
- * @param {Object} [outcome.metadata] - Additional metadata
271
- * @returns {Promise<Object>} The stored outcome record
272
- */
273
- async recordOutcome(outcome) {
274
- this._ensureLoaded();
275
-
276
- if (!outcome || !outcome.taskType) {
277
- throw new Error('outcome.taskType is required');
278
- }
279
- if (typeof outcome.duration !== 'number' || outcome.duration < 0) {
280
- throw new Error('outcome.duration must be a non-negative number');
281
- }
282
- if (typeof outcome.success !== 'boolean') {
283
- throw new Error('outcome.success must be a boolean');
284
- }
285
-
286
- const record = {
287
- id: this._generateId(),
288
- taskType: outcome.taskType,
289
- agent: outcome.agent ?? null,
290
- strategy: outcome.strategy ?? null,
291
- duration: outcome.duration,
292
- success: outcome.success,
293
- complexity: outcome.complexity ?? 5,
294
- contextSize: outcome.contextSize ?? 0,
295
- resources: outcome.resources ?? null,
296
- metadata: outcome.metadata ?? null,
297
- timestamp: Date.now(),
298
- };
299
-
300
- this._outcomes.push(record);
301
- this._stats.outcomesRecorded++;
302
-
303
- // Update model stats
304
- this._updateModelStats(record);
305
-
306
- // Auto-prune if exceeding max
307
- if (this._outcomes.length > this.maxOutcomes) {
308
- const excess = this._outcomes.length - this.maxOutcomes;
309
- this._outcomes.splice(0, excess);
310
- this._recalculateModelStats();
311
- }
312
-
313
- await this._persistOutcomes();
314
- await this._persistModel();
315
-
316
- this.emit('outcome-recorded', { id: record.id, taskType: record.taskType });
317
-
318
- return this._deepClone(record);
319
- }
320
-
321
- /**
322
- * Update aggregated model statistics from a new outcome
323
- * @private
324
- * @param {Object} record
325
- */
326
- _updateModelStats(record) {
327
- // Task type stats
328
- if (!this._model.taskTypeStats[record.taskType]) {
329
- this._model.taskTypeStats[record.taskType] = {
330
- count: 0, successes: 0, totalDuration: 0, durations: [],
331
- };
332
- }
333
- const ts = this._model.taskTypeStats[record.taskType];
334
- ts.count++;
335
- if (record.success) ts.successes++;
336
- ts.totalDuration += record.duration;
337
- ts.durations.push(record.duration);
338
- // Keep only last 100 durations for memory
339
- if (ts.durations.length > 100) ts.durations.shift();
340
-
341
- // Agent stats
342
- if (record.agent) {
343
- if (!this._model.agentStats[record.agent]) {
344
- this._model.agentStats[record.agent] = { count: 0, successes: 0, totalDuration: 0 };
345
- }
346
- const as = this._model.agentStats[record.agent];
347
- as.count++;
348
- if (record.success) as.successes++;
349
- as.totalDuration += record.duration;
350
- }
351
-
352
- // Strategy stats
353
- if (record.strategy) {
354
- if (!this._model.strategyStats[record.strategy]) {
355
- this._model.strategyStats[record.strategy] = { count: 0, successes: 0, totalDuration: 0 };
356
- }
357
- const ss = this._model.strategyStats[record.strategy];
358
- ss.count++;
359
- if (record.success) ss.successes++;
360
- ss.totalDuration += record.duration;
361
- }
362
- }
363
-
364
- // ═════════════════════════════════════════════════════════════════════════════
365
- /**
366
- * Recalculate all model stats from current outcomes.
367
- * Called after splice/prune to keep stats consistent.
368
- * @private
369
- */
370
- _recalculateModelStats() {
371
- this._model.taskTypeStats = {};
372
- this._model.agentStats = {};
373
- this._model.strategyStats = {};
374
- for (const outcome of this._outcomes) {
375
- this._updateModelStats(outcome);
376
- }
377
- }
378
-
379
- // FEATURE VECTORS
380
- // ═════════════════════════════════════════════════════════════════════════════
381
-
382
- /**
383
- * Extract a feature vector from a task spec or outcome
384
- * @private
385
- * @param {Object} task
386
- * @returns {Object} Feature vector
387
- */
388
- _extractFeatures(task) {
389
- const complexity = Number(task.complexity);
390
- const contextSize = Number(task.contextSize);
391
- const agentExperience = this._getAgentExperience(task.agent);
392
- return {
393
- taskType: task.taskType ?? 'unknown',
394
- complexity: Number.isFinite(complexity) ? complexity : 5,
395
- agentExperience: Number.isFinite(agentExperience) ? agentExperience : 0,
396
- contextSize: Number.isFinite(contextSize) ? contextSize : 0,
397
- };
398
- }
399
-
400
- /**
401
- * Get the number of past outcomes for an agent
402
- * @private
403
- * @param {string|null} agent
404
- * @returns {number}
405
- */
406
- _getAgentExperience(agent) {
407
- if (!agent) return 0;
408
- return this._model.agentStats[agent]?.count ?? 0;
409
- }
410
-
411
- /**
412
- * Compute similarity between two feature vectors.
413
- * Uses exact match for categorical (taskType) and cosine-like
414
- * similarity for numeric features.
415
- * @private
416
- * @param {Object} a - Feature vector
417
- * @param {Object} b - Feature vector
418
- * @returns {number} Similarity score in [0, 1]
419
- */
420
- _computeSimilarity(a, b) {
421
- // Categorical: taskType exact match contributes 0.4 weight
422
- const typeMatch = a.taskType === b.taskType ? 1.0 : 0.0;
423
-
424
- // Numeric features: normalized distance → similarity
425
- const numericA = [a.complexity, a.agentExperience, a.contextSize];
426
- const numericB = [b.complexity, b.agentExperience, b.contextSize];
427
-
428
- const cosineSim = this._cosineSimilarity(numericA, numericB);
429
-
430
- // Weighted combination: 40% categorical, 60% numeric
431
- return 0.4 * typeMatch + 0.6 * cosineSim;
432
- }
433
-
434
- /**
435
- * Cosine similarity between two numeric vectors
436
- * @private
437
- * @param {number[]} a
438
- * @param {number[]} b
439
- * @returns {number} Similarity in [0, 1]
440
- */
441
- _cosineSimilarity(a, b) {
442
- let dotProduct = 0;
443
- let normA = 0;
444
- let normB = 0;
445
-
446
- for (let i = 0; i < a.length; i++) {
447
- dotProduct += a[i] * b[i];
448
- normA += a[i] * a[i];
449
- normB += b[i] * b[i];
450
- }
451
-
452
- normA = Math.sqrt(normA);
453
- normB = Math.sqrt(normB);
454
-
455
- if (normA === 0 || normB === 0) return 0;
456
-
457
- return dotProduct / (normA * normB);
458
- }
459
-
460
- // ═════════════════════════════════════════════════════════════════════════════
461
- // PIPELINE STAGES
462
- // ═════════════════════════════════════════════════════════════════════════════
463
-
464
- /**
465
- * Execute a pipeline stage with timing
466
- * @private
467
- * @param {string} stageName
468
- * @param {Function} fn
469
- * @returns {*} Stage result
470
- */
471
- _runStage(stageName, fn) {
472
- const start = Date.now();
473
- try {
474
- const result = fn();
475
- this._stageMetrics[stageName].calls++;
476
- this._stageMetrics[stageName].totalMs += Date.now() - start;
477
- return result;
478
- } catch (err) {
479
- this._stageMetrics[stageName].errors++;
480
- this._stageMetrics[stageName].totalMs += Date.now() - start;
481
- throw err;
482
- }
483
- }
484
-
485
- /**
486
- * Stage 1: Preprocess — extract and validate features
487
- * @private
488
- * @param {Object} taskSpec
489
- * @returns {Object} Preprocessed features
490
- */
491
- _stagePreprocess(taskSpec) {
492
- return this._runStage(PipelineStage.PREPROCESS, () => {
493
- if (!taskSpec || !taskSpec.taskType) {
494
- throw new Error('taskSpec.taskType is required for prediction');
495
- }
496
- return this._extractFeatures(taskSpec);
497
- });
498
- }
499
-
500
- /**
501
- * Stage 2: Match — find k nearest neighbors
502
- * @private
503
- * @param {Object} features
504
- * @returns {Object[]} Nearest neighbors with similarity scores
505
- */
506
- _stageMatch(features) {
507
- return this._runStage(PipelineStage.MATCH, () => {
508
- const scored = this._outcomes.map((outcome) => {
509
- const outFeatures = this._extractFeatures(outcome);
510
- const similarity = this._computeSimilarity(features, outFeatures);
511
- return { outcome, similarity };
512
- });
513
-
514
- // Sort by similarity descending
515
- scored.sort((a, b) => b.similarity - a.similarity);
516
-
517
- return scored.slice(0, this.kNeighbors);
518
- });
519
- }
520
-
521
- /**
522
- * Stage 3: Predict — compute predictions from matched neighbors
523
- * @private
524
- * @param {Object[]} neighbors - k nearest neighbors
525
- * @param {Object} features - Original features
526
- * @returns {Object} Raw predictions
527
- */
528
- _stagePredict(neighbors, features) {
529
- return this._runStage(PipelineStage.PREDICT, () => {
530
- if (neighbors.length < (this.minSamplesForPrediction || 3)) {
531
- return this._defaultPrediction(features);
532
- }
533
-
534
- // Weighted success probability
535
- let weightSum = 0;
536
- let successWeight = 0;
537
- let durationEwma = 0;
538
- let durationValues = [];
539
- let resourceEstimates = { memory: 0, cpu: 0, apiCalls: 0 };
540
- let resourceCount = 0;
541
-
542
- for (const { outcome, similarity } of neighbors) {
543
- const weight = similarity;
544
- weightSum += weight;
545
- if (outcome.success) successWeight += weight;
546
-
547
- durationValues.push(outcome.duration);
548
-
549
- if (outcome.resources) {
550
- resourceEstimates.memory += (outcome.resources.memory ?? 0) * weight;
551
- resourceEstimates.cpu += (outcome.resources.cpu ?? 0) * weight;
552
- resourceEstimates.apiCalls += (outcome.resources.apiCalls ?? 0) * weight;
553
- resourceCount += weight;
554
- }
555
- }
556
-
557
- const successProbability = weightSum > 0 ? successWeight / weightSum : 0.5;
558
-
559
- // EWMA for duration
560
- durationEwma = this._computeEwma(durationValues.reverse());
561
-
562
- // Normalize resources
563
- if (resourceCount > 0) {
564
- resourceEstimates.memory /= resourceCount;
565
- resourceEstimates.cpu /= resourceCount;
566
- resourceEstimates.apiCalls /= resourceCount;
567
- }
568
-
569
- return {
570
- successProbability,
571
- estimatedDuration: Math.round(durationEwma),
572
- resources: resourceEstimates,
573
- sampleSize: neighbors.length,
574
- avgSimilarity: weightSum / neighbors.length,
575
- };
576
- });
577
- }
578
-
579
- /**
580
- * Stage 4: Score — compute confidence and detect anomalies
581
- * @private
582
- * @param {Object} prediction - Raw predictions
583
- * @param {Object[]} neighbors - k nearest neighbors
584
- * @param {Object} features - Original features
585
- * @returns {Object} Scored prediction
586
- */
587
- _stageScore(prediction, neighbors, features) {
588
- return this._runStage(PipelineStage.SCORE, () => {
589
- const durations = neighbors.map((n) => n.outcome.duration);
590
- const cv = this._coefficientOfVariation(durations);
591
-
592
- // Confidence: min(sampleSize / cap, 1.0) * (1 - cv)
593
- const sampleFactor = Math.min(prediction.sampleSize / this.confidenceSampleCap, 1.0);
594
- const varianceFactor = Math.max(1 - cv, 0);
595
- const confidence = sampleFactor * varianceFactor;
596
-
597
- // Anomaly detection
598
- const isAnomaly = prediction.avgSimilarity < this.anomalyThreshold;
599
- if (isAnomaly) {
600
- this._stats.anomaliesDetected++;
601
- this.emit('anomaly-detected', {
602
- taskType: features.taskType,
603
- avgSimilarity: prediction.avgSimilarity,
604
- });
605
- }
606
-
607
- return {
608
- ...prediction,
609
- confidence: Math.round(confidence * 1000) / 1000,
610
- coefficientOfVariation: Math.round(cv * 1000) / 1000,
611
- isAnomaly,
612
- };
613
- });
614
- }
615
-
616
- /**
617
- * Stage 5: Recommend — suggest agent and strategy
618
- * @private
619
- * @param {Object} scored - Scored prediction
620
- * @param {Object} features - Original features
621
- * @returns {Object} Final prediction with recommendations
622
- */
623
- _stageRecommend(scored, features) {
624
- return this._runStage(PipelineStage.RECOMMEND, () => {
625
- const agentRec = this._findBestAgent(features.taskType);
626
- const strategyRec = this._findBestStrategy(features.taskType);
627
-
628
- return {
629
- ...scored,
630
- recommendedAgent: agentRec,
631
- recommendedStrategy: strategyRec,
632
- };
633
- });
634
- }
635
-
636
- // ═════════════════════════════════════════════════════════════════════════════
637
- // PUBLIC API
638
- // ═════════════════════════════════════════════════════════════════════════════
639
-
640
- /**
641
- * Predict the outcome of a task before execution
642
- * @param {Object} taskSpec - Task specification
643
- * @param {string} taskSpec.taskType - Type of task
644
- * @param {number} [taskSpec.complexity] - Task complexity (1-10)
645
- * @param {string} [taskSpec.agent] - Agent to execute
646
- * @param {number} [taskSpec.contextSize] - Size of context
647
- * @returns {Object} Prediction result
648
- */
649
- predict(taskSpec) {
650
- this._ensureLoaded();
651
-
652
- const features = this._stagePreprocess(taskSpec);
653
- const neighbors = this._stageMatch(features);
654
- const raw = this._stagePredict(neighbors, features);
655
- const scored = this._stageScore(raw, neighbors, features);
656
- const final = this._stageRecommend(scored, features);
657
-
658
- this._stats.predictions++;
659
-
660
- const result = {
661
- taskType: features.taskType,
662
- ...final,
663
- riskLevel: this._computeRiskLevel(final),
664
- timestamp: Date.now(),
665
- };
666
-
667
- this.emit('prediction', result);
668
-
669
- // Emit high-risk event
670
- if (this._riskScore(final) >= this.highRiskThreshold) {
671
- this.emit('high-risk-detected', result);
672
- }
673
-
674
- return result;
675
- }
676
-
677
- /**
678
- * Predict outcomes for multiple tasks in batch
679
- * @param {Object[]} taskSpecs - Array of task specifications
680
- * @returns {Object[]} Array of prediction results
681
- */
682
- predictBatch(taskSpecs) {
683
- if (!Array.isArray(taskSpecs)) {
684
- throw new Error('taskSpecs must be an array');
685
- }
686
- return taskSpecs.map((spec) => this.predict(spec));
687
- }
688
-
689
- /**
690
- * Find tasks similar to the given specification
691
- * @param {Object} taskSpec - Task specification
692
- * @param {Object} [opts] - Options
693
- * @param {number} [opts.limit=10] - Maximum results to return
694
- * @param {number} [opts.minSimilarity=0] - Minimum similarity threshold
695
- * @returns {Object[]} Similar tasks with similarity scores
696
- */
697
- findSimilarTasks(taskSpec, opts = {}) {
698
- this._ensureLoaded();
699
-
700
- const limit = opts.limit ?? 10;
701
- const minSimilarity = opts.minSimilarity ?? 0;
702
- const features = this._extractFeatures(taskSpec);
703
-
704
- const scored = this._outcomes.map((outcome) => {
705
- const outFeatures = this._extractFeatures(outcome);
706
- const similarity = this._computeSimilarity(features, outFeatures);
707
- return { ...this._deepClone(outcome), similarity };
708
- });
709
-
710
- return scored
711
- .filter((s) => s.similarity >= minSimilarity)
712
- .sort((a, b) => b.similarity - a.similarity)
713
- .slice(0, limit);
714
- }
715
-
716
- /**
717
- * Get the strength of a pattern for a given task type
718
- * @param {string} taskType - The task type to query
719
- * @returns {Object} Pattern strength info
720
- */
721
- getPatternStrength(taskType) {
722
- this._ensureLoaded();
723
-
724
- const stats = this._model.taskTypeStats[taskType];
725
- if (!stats) {
726
- return { taskType, sampleSize: 0, strength: 0, successRate: 0, avgDuration: 0 };
727
- }
728
-
729
- const cv = this._coefficientOfVariation(stats.durations);
730
- const sampleFactor = Math.min(stats.count / this.confidenceSampleCap, 1.0);
731
- const strength = sampleFactor * Math.max(1 - cv, 0);
732
-
733
- return {
734
- taskType,
735
- sampleSize: stats.count,
736
- strength: Math.round(strength * 1000) / 1000,
737
- successRate: stats.count > 0 ? Math.round((stats.successes / stats.count) * 1000) / 1000 : 0,
738
- avgDuration: stats.count > 0 ? Math.round(stats.totalDuration / stats.count) : 0,
739
- };
740
- }
741
-
742
- /**
743
- * Assess the risk of executing a task
744
- * @param {Object} taskSpec - Task specification
745
- * @returns {Object} Risk assessment
746
- */
747
- assessRisk(taskSpec) {
748
- this._ensureLoaded();
749
-
750
- const features = this._extractFeatures(taskSpec);
751
- const neighbors = this._stageMatch(features);
752
- const factors = [];
753
-
754
- // Factor 1: Low sample size
755
- const typeStats = this._model.taskTypeStats[features.taskType];
756
- const sampleSize = typeStats?.count ?? 0;
757
- if (sampleSize < this.minSamplesForPrediction) {
758
- factors.push({
759
- factor: 'low-sample-size',
760
- description: `Only ${sampleSize} historical outcomes for task type "${features.taskType}"`,
761
- severity: sampleSize === 0 ? 'high' : 'medium',
762
- });
763
- }
764
-
765
- // Factor 2: High variance
766
- if (typeStats && typeStats.durations.length >= 2) {
767
- const cv = this._coefficientOfVariation(typeStats.durations);
768
- if (cv > 0.5) {
769
- factors.push({
770
- factor: 'high-variance',
771
- description: `Duration coefficient of variation is ${(cv * 100).toFixed(1)}%`,
772
- severity: cv > 1.0 ? 'high' : 'medium',
773
- });
774
- }
775
- }
776
-
777
- // Factor 3: New task type
778
- if (!typeStats) {
779
- factors.push({
780
- factor: 'new-task-type',
781
- description: `Task type "${features.taskType}" has no historical data`,
782
- severity: 'high',
783
- });
784
- }
785
-
786
- // Factor 4: Low success rate
787
- if (typeStats && typeStats.count >= this.minSamplesForPrediction) {
788
- const successRate = typeStats.successes / typeStats.count;
789
- if (successRate < 0.5) {
790
- factors.push({
791
- factor: 'low-success-rate',
792
- description: `Historical success rate is ${(successRate * 100).toFixed(1)}%`,
793
- severity: successRate < 0.25 ? 'high' : 'medium',
794
- });
795
- }
796
- }
797
-
798
- // Factor 5: Low similarity to known tasks (anomaly)
799
- if (neighbors.length > 0) {
800
- const avgSim = neighbors.reduce((s, n) => s + n.similarity, 0) / neighbors.length;
801
- if (avgSim < this.anomalyThreshold) {
802
- factors.push({
803
- factor: 'anomaly',
804
- description: `Task has low similarity (${(avgSim * 100).toFixed(1)}%) to known patterns`,
805
- severity: 'high',
806
- });
807
- }
808
- }
809
-
810
- // Factor 6: Overloaded agent
811
- if (taskSpec.agent) {
812
- const agentStats = this._model.agentStats[taskSpec.agent];
813
- if (agentStats && agentStats.count > 0) {
814
- const agentSuccessRate = agentStats.successes / agentStats.count;
815
- if (agentSuccessRate < 0.5) {
816
- factors.push({
817
- factor: 'agent-low-success',
818
- description: `Agent "${taskSpec.agent}" has ${(agentSuccessRate * 100).toFixed(1)}% success rate`,
819
- severity: 'medium',
820
- });
821
- }
822
- }
823
- }
824
-
825
- const riskScore = this._computeRiskScoreFromFactors(factors);
826
- const riskLevel = this._riskLevelFromScore(riskScore);
827
-
828
- return {
829
- taskType: features.taskType,
830
- riskScore: Math.round(riskScore * 1000) / 1000,
831
- riskLevel,
832
- factors,
833
- mitigations: this._suggestMitigations(factors),
834
- };
835
- }
836
-
837
- /**
838
- * Recommend the best agent for a task type
839
- * @param {Object} taskSpec - Task specification
840
- * @returns {Object} Agent recommendation
841
- */
842
- recommendAgent(taskSpec) {
843
- this._ensureLoaded();
844
-
845
- if (!taskSpec || !taskSpec.taskType) {
846
- throw new Error('taskSpec.taskType is required');
847
- }
848
-
849
- const best = this._findBestAgent(taskSpec.taskType);
850
- return {
851
- taskType: taskSpec.taskType,
852
- recommendation: best,
853
- };
854
- }
855
-
856
- /**
857
- * Recommend the best strategy for a task type
858
- * @param {Object} taskSpec - Task specification
859
- * @returns {Object} Strategy recommendation
860
- */
861
- recommendStrategy(taskSpec) {
862
- this._ensureLoaded();
863
-
864
- if (!taskSpec || !taskSpec.taskType) {
865
- throw new Error('taskSpec.taskType is required');
866
- }
867
-
868
- const best = this._findBestStrategy(taskSpec.taskType);
869
- return {
870
- taskType: taskSpec.taskType,
871
- recommendation: best,
872
- };
873
- }
874
-
875
- /**
876
- * Get the pipeline stages in order
877
- * @returns {string[]} Ordered stage names
878
- */
879
- getPipelineStages() {
880
- return Object.values(PipelineStage);
881
- }
882
-
883
- /**
884
- * Get metrics for a specific pipeline stage
885
- * @param {string} stageName - Stage name
886
- * @returns {Object|null} Stage metrics or null if not found
887
- */
888
- getStageMetrics(stageName) {
889
- const metrics = this._stageMetrics[stageName];
890
- if (!metrics) return null;
891
-
892
- return {
893
- stage: stageName,
894
- calls: metrics.calls,
895
- totalMs: metrics.totalMs,
896
- avgMs: metrics.calls > 0 ? Math.round(metrics.totalMs / metrics.calls * 100) / 100 : 0,
897
- errors: metrics.errors,
898
- };
899
- }
900
-
901
- /**
902
- * Get overall model accuracy based on recorded outcomes
903
- * @returns {Object} Model accuracy info
904
- */
905
- getModelAccuracy() {
906
- this._ensureLoaded();
907
-
908
- const totalTasks = Object.values(this._model.taskTypeStats).reduce((s, t) => s + t.count, 0);
909
- const totalSuccesses = Object.values(this._model.taskTypeStats).reduce((s, t) => s + t.successes, 0);
910
-
911
- const perType = {};
912
- for (const [type, stats] of Object.entries(this._model.taskTypeStats)) {
913
- perType[type] = {
914
- count: stats.count,
915
- successRate: stats.count > 0 ? Math.round((stats.successes / stats.count) * 1000) / 1000 : 0,
916
- avgDuration: stats.count > 0 ? Math.round(stats.totalDuration / stats.count) : 0,
917
- };
918
- }
919
-
920
- return {
921
- totalOutcomes: totalTasks,
922
- overallSuccessRate: totalTasks > 0 ? Math.round((totalSuccesses / totalTasks) * 1000) / 1000 : 0,
923
- perTaskType: perType,
924
- lastRetrain: this._model.lastRetrain,
925
- retrains: this._stats.retrains,
926
- };
927
- }
928
-
929
- /**
930
- * Retrain the model by recalculating all statistics from outcomes
931
- * @returns {Promise<Object>} Retrain result
932
- */
933
- async retrain() {
934
- this._ensureLoaded();
935
-
936
- // Reset model
937
- this._model = this._emptyModel();
938
-
939
- // Rebuild from outcomes
940
- for (const outcome of this._outcomes) {
941
- this._updateModelStats(outcome);
942
- }
943
-
944
- this._model.lastRetrain = Date.now();
945
- this._model.version++;
946
- this._stats.retrains++;
947
-
948
- await this._persistModel();
949
-
950
- this.emit('model-retrained', {
951
- version: this._model.version,
952
- outcomeCount: this._outcomes.length,
953
- taskTypes: Object.keys(this._model.taskTypeStats).length,
954
- });
955
-
956
- return {
957
- version: this._model.version,
958
- outcomeCount: this._outcomes.length,
959
- taskTypes: Object.keys(this._model.taskTypeStats).length,
960
- };
961
- }
962
-
963
- /**
964
- * Prune old outcomes
965
- * @param {Object} [options] - Prune options
966
- * @param {number} [options.olderThan] - Remove outcomes older than this timestamp
967
- * @returns {Promise<Object>} Prune result
968
- */
969
- async prune(options = {}) {
970
- this._ensureLoaded();
971
-
972
- const before = this._outcomes.length;
973
-
974
- if (options.olderThan) {
975
- this._outcomes = this._outcomes.filter((o) => o.timestamp >= options.olderThan);
976
- }
977
-
978
- const removed = before - this._outcomes.length;
979
-
980
- if (removed > 0) {
981
- // Retrain after pruning
982
- this._model = this._emptyModel();
983
- for (const outcome of this._outcomes) {
984
- this._updateModelStats(outcome);
985
- }
986
- this._model.lastRetrain = Date.now();
987
-
988
- await this._persistOutcomes();
989
- await this._persistModel();
990
- }
991
-
992
- return { removed, remaining: this._outcomes.length };
993
- }
994
-
995
- /**
996
- * Get general statistics
997
- * @returns {Object} Stats summary
998
- */
999
- getStats() {
1000
- this._ensureLoaded();
1001
-
1002
- return {
1003
- outcomes: this._outcomes.length,
1004
- taskTypes: Object.keys(this._model.taskTypeStats).length,
1005
- agents: Object.keys(this._model.agentStats).length,
1006
- strategies: Object.keys(this._model.strategyStats).length,
1007
- predictions: this._stats.predictions,
1008
- outcomesRecorded: this._stats.outcomesRecorded,
1009
- anomaliesDetected: this._stats.anomaliesDetected,
1010
- retrains: this._stats.retrains,
1011
- modelVersion: this._model.version,
1012
- };
1013
- }
1014
-
1015
- // ═════════════════════════════════════════════════════════════════════════════
1016
- // HELPERS
1017
- // ═════════════════════════════════════════════════════════════════════════════
1018
-
1019
- /**
1020
- * Compute EWMA (Exponentially Weighted Moving Average) from values
1021
- * @private
1022
- * @param {number[]} values
1023
- * @returns {number}
1024
- */
1025
- _computeEwma(values) {
1026
- if (values.length === 0) return 0;
1027
- if (values.length === 1) return values[0];
1028
-
1029
- let ewma = values[0];
1030
- for (let i = 1; i < values.length; i++) {
1031
- ewma = this.ewmaAlpha * values[i] + (1 - this.ewmaAlpha) * ewma;
1032
- }
1033
- return ewma;
1034
- }
1035
-
1036
- /**
1037
- * Compute coefficient of variation (stddev / mean)
1038
- * @private
1039
- * @param {number[]} values
1040
- * @returns {number}
1041
- */
1042
- _coefficientOfVariation(values) {
1043
- if (values.length < 2) return 0;
1044
-
1045
- const mean = values.reduce((s, v) => s + v, 0) / values.length;
1046
- if (mean === 0) return 0;
1047
-
1048
- const variance = values.reduce((s, v) => s + (v - mean) ** 2, 0) / values.length;
1049
- const stddev = Math.sqrt(variance);
1050
-
1051
- return stddev / Math.abs(mean);
1052
- }
1053
-
1054
- /**
1055
- * Default prediction when no matching outcomes exist
1056
- * @private
1057
- * @param {Object} features
1058
- * @returns {Object}
1059
- */
1060
- _defaultPrediction(features) {
1061
- return {
1062
- successProbability: 0.5,
1063
- estimatedDuration: 0,
1064
- resources: { memory: 0, cpu: 0, apiCalls: 0 },
1065
- sampleSize: 0,
1066
- avgSimilarity: 0,
1067
- };
1068
- }
1069
-
1070
- /**
1071
- * Compute a numeric risk score from prediction data
1072
- * @private
1073
- * @param {Object} prediction
1074
- * @returns {number} Risk score in [0, 1]
1075
- */
1076
- _riskScore(prediction) {
1077
- let score = 0;
1078
-
1079
- // Low success probability
1080
- score += (1 - prediction.successProbability) * 0.4;
1081
-
1082
- // Low confidence
1083
- score += (1 - (prediction.confidence ?? 0)) * 0.3;
1084
-
1085
- // Anomaly
1086
- if (prediction.isAnomaly) score += 0.2;
1087
-
1088
- // High variance
1089
- score += Math.min((prediction.coefficientOfVariation ?? 0), 1) * 0.1;
1090
-
1091
- return Math.min(score, 1.0);
1092
- }
1093
-
1094
- /**
1095
- * Compute risk level from prediction
1096
- * @private
1097
- * @param {Object} prediction
1098
- * @returns {string} Risk level
1099
- */
1100
- _computeRiskLevel(prediction) {
1101
- const score = this._riskScore(prediction);
1102
- return this._riskLevelFromScore(score);
1103
- }
1104
-
1105
- /**
1106
- * Map a numeric score to a risk level
1107
- * @private
1108
- * @param {number} score
1109
- * @returns {string}
1110
- */
1111
- _riskLevelFromScore(score) {
1112
- if (score >= 0.8) return RiskLevel.CRITICAL;
1113
- if (score >= 0.6) return RiskLevel.HIGH;
1114
- if (score >= 0.3) return RiskLevel.MEDIUM;
1115
- return RiskLevel.LOW;
1116
- }
1117
-
1118
- /**
1119
- * Compute risk score from risk factors array
1120
- * @private
1121
- * @param {Object[]} factors
1122
- * @returns {number}
1123
- */
1124
- _computeRiskScoreFromFactors(factors) {
1125
- if (factors.length === 0) return 0;
1126
-
1127
- let score = 0;
1128
- for (const f of factors) {
1129
- if (f.severity === 'high') score += 0.25;
1130
- else if (f.severity === 'medium') score += 0.15;
1131
- else score += 0.05;
1132
- }
1133
-
1134
- return Math.min(score, 1.0);
1135
- }
1136
-
1137
- /**
1138
- * Find the best agent for a task type (highest success rate with enough samples)
1139
- * @private
1140
- * @param {string} taskType
1141
- * @returns {Object|null} Agent recommendation or null
1142
- */
1143
- _findBestAgent(taskType) {
1144
- const agentPerformance = {};
1145
-
1146
- for (const outcome of this._outcomes) {
1147
- if (outcome.taskType !== taskType || !outcome.agent) continue;
1148
-
1149
- if (!agentPerformance[outcome.agent]) {
1150
- agentPerformance[outcome.agent] = { count: 0, successes: 0, totalDuration: 0 };
1151
- }
1152
- const ap = agentPerformance[outcome.agent];
1153
- ap.count++;
1154
- if (outcome.success) ap.successes++;
1155
- ap.totalDuration += outcome.duration;
1156
- }
1157
-
1158
- let best = null;
1159
- let bestScore = -1;
1160
-
1161
- for (const [agent, perf] of Object.entries(agentPerformance)) {
1162
- if (perf.count < this.minSamplesForPrediction) continue;
1163
-
1164
- const successRate = perf.successes / perf.count;
1165
- // Score: success rate weighted by sample confidence
1166
- const sampleConfidence = Math.min(perf.count / this.confidenceSampleCap, 1.0);
1167
- const score = successRate * sampleConfidence;
1168
-
1169
- if (score > bestScore) {
1170
- bestScore = score;
1171
- best = {
1172
- agent,
1173
- successRate: Math.round(successRate * 1000) / 1000,
1174
- sampleSize: perf.count,
1175
- avgDuration: Math.round(perf.totalDuration / perf.count),
1176
- score: Math.round(score * 1000) / 1000,
1177
- };
1178
- }
1179
- }
1180
-
1181
- return best;
1182
- }
1183
-
1184
- /**
1185
- * Find the best strategy for a task type
1186
- * @private
1187
- * @param {string} taskType
1188
- * @returns {Object|null} Strategy recommendation or null
1189
- */
1190
- _findBestStrategy(taskType) {
1191
- const stratPerformance = {};
1192
-
1193
- for (const outcome of this._outcomes) {
1194
- if (outcome.taskType !== taskType || !outcome.strategy) continue;
1195
-
1196
- if (!stratPerformance[outcome.strategy]) {
1197
- stratPerformance[outcome.strategy] = { count: 0, successes: 0, totalDuration: 0 };
1198
- }
1199
- const sp = stratPerformance[outcome.strategy];
1200
- sp.count++;
1201
- if (outcome.success) sp.successes++;
1202
- sp.totalDuration += outcome.duration;
1203
- }
1204
-
1205
- let best = null;
1206
- let bestScore = -1;
1207
-
1208
- for (const [strategy, perf] of Object.entries(stratPerformance)) {
1209
- if (perf.count < this.minSamplesForPrediction) continue;
1210
-
1211
- const successRate = perf.successes / perf.count;
1212
- const sampleConfidence = Math.min(perf.count / this.confidenceSampleCap, 1.0);
1213
- const score = successRate * sampleConfidence;
1214
-
1215
- if (score > bestScore) {
1216
- bestScore = score;
1217
- best = {
1218
- strategy,
1219
- successRate: Math.round(successRate * 1000) / 1000,
1220
- sampleSize: perf.count,
1221
- avgDuration: Math.round(perf.totalDuration / perf.count),
1222
- score: Math.round(score * 1000) / 1000,
1223
- };
1224
- }
1225
- }
1226
-
1227
- return best;
1228
- }
1229
-
1230
- /**
1231
- * Suggest mitigations for risk factors
1232
- * @private
1233
- * @param {Object[]} factors
1234
- * @returns {string[]}
1235
- */
1236
- _suggestMitigations(factors) {
1237
- const mitigations = [];
1238
-
1239
- for (const f of factors) {
1240
- switch (f.factor) {
1241
- case 'low-sample-size':
1242
- mitigations.push('Run a pilot execution to gather baseline data');
1243
- break;
1244
- case 'high-variance':
1245
- mitigations.push('Break task into smaller, more predictable sub-tasks');
1246
- break;
1247
- case 'new-task-type':
1248
- mitigations.push('Start with a dry-run or sandbox execution');
1249
- break;
1250
- case 'low-success-rate':
1251
- mitigations.push('Review historical failures and adjust strategy before execution');
1252
- break;
1253
- case 'anomaly':
1254
- mitigations.push('Manual review recommended — task does not match known patterns');
1255
- break;
1256
- case 'agent-low-success':
1257
- mitigations.push('Consider using a different agent with higher success rate');
1258
- break;
1259
- default:
1260
- mitigations.push('Monitor execution closely');
1261
- }
1262
- }
1263
-
1264
- return mitigations;
1265
- }
1266
-
1267
- /**
1268
- * Generate a unique ID
1269
- * @private
1270
- * @returns {string}
1271
- */
1272
- _generateId() {
1273
- const ts = Date.now().toString(36);
1274
- const rand = Math.random().toString(36).substring(2, 8);
1275
- return `pred_${ts}_${rand}`;
1276
- }
1277
- }
1278
-
1279
- module.exports = PredictivePipeline;
1280
- module.exports.PredictivePipeline = PredictivePipeline;
1281
- module.exports.PipelineStage = PipelineStage;
1282
- module.exports.RiskLevel = RiskLevel;
1283
- module.exports.DEFAULTS = DEFAULTS;