claude-flow-novice 2.6.0 → 2.8.1

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 (364) hide show
  1. package/.claude/adaptive-context/cfn-v3-reflection.json +21 -0
  2. package/.claude/agents/AGENT_LIFECYCLE.md +495 -0
  3. package/.claude/agents/CLAUDE.md +1002 -995
  4. package/.claude/agents/accessibility-advocate.md +457 -0
  5. package/.claude/agents/agent-principles/README.md +226 -226
  6. package/.claude/agents/agent-principles/agent-type-guidelines.md +10 -0
  7. package/.claude/agents/agent-principles/format-selection.md +10 -0
  8. package/.claude/agents/agent-principles/phase4-template-optimization.md +502 -494
  9. package/.claude/agents/agent-principles/prompt-engineering.md +8 -0
  10. package/.claude/agents/agent-principles/quality-metrics.md +8 -0
  11. package/.claude/agents/analysis/code-analyzer.md +7 -17
  12. package/.claude/agents/analysis/code-review/analyze-code-quality.md +2 -104
  13. package/.claude/agents/analysis/perf-analyzer.md +2 -196
  14. package/.claude/agents/context/context-curator.md +78 -84
  15. package/.claude/agents/context/context-reflector.md +27 -81
  16. package/.claude/agents/coordinators/README.md +42 -0
  17. package/.claude/agents/coordinators/cfn-v3-coordinator.md +440 -0
  18. package/.claude/agents/{product-owner-team → coordinators}/cto-agent.md +154 -187
  19. package/.claude/agents/coordinators/multi-sprint-coordinator.md +50 -0
  20. package/.claude/agents/{product-owner-team → coordinators}/product-owner-agent.md +6 -39
  21. package/.claude/agents/{cfn-loop → coordinators}/product-owner.md +72 -17
  22. package/.claude/agents/core-agents/reviewer.md +114 -135
  23. package/.claude/agents/custom/agent-builder.md +637 -637
  24. package/.claude/agents/developers/README.md +69 -0
  25. package/.claude/agents/developers/backend-dev.md +77 -0
  26. package/.claude/agents/{core-agents → developers}/coder.md +131 -26
  27. package/.claude/agents/developers/react-frontend-engineer.md +121 -0
  28. package/.claude/agents/{frontend → developers}/state-architect.md +1 -0
  29. package/.claude/agents/{frontend → developers}/ui-designer.md +1 -0
  30. package/.claude/agents/development/backend/dev-backend-api.md +0 -29
  31. package/.claude/agents/development/npm-package-specialist.md +355 -347
  32. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +8 -0
  33. package/.claude/agents/documentation/api-docs.md +8 -0
  34. package/.claude/agents/github/github-commit-agent.md +125 -117
  35. package/.claude/agents/goal/goal-planner.md +8 -0
  36. package/.claude/agents/infrastructure/README.md +100 -0
  37. package/.claude/agents/{specialized → infrastructure}/devops-engineer.md +131 -150
  38. package/.claude/agents/planners/README.md +94 -0
  39. package/.claude/agents/{core-agents → planners}/analyst.md +1 -22
  40. package/.claude/agents/{planning-team → planners}/api-designer-persona.md +8 -0
  41. package/.claude/agents/{core-agents → planners}/architect.md +7 -20
  42. package/.claude/agents/{core-agents → planners}/planner.md +0 -21
  43. package/.claude/agents/{planning-team → planners}/security-architect-persona.md +8 -28
  44. package/.claude/agents/{planning-team → planners}/system-architect-persona.md +6 -38
  45. package/.claude/agents/{architecture → planners}/system-architect.md +12 -17
  46. package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +132 -161
  47. package/.claude/agents/product-owner-team/power-user-persona.md +149 -182
  48. package/.claude/agents/retrospective-analyst.md +84 -0
  49. package/.claude/agents/reviewers/README.md +58 -0
  50. package/.claude/agents/{analysis → reviewers}/code-quality-validator.md +8 -17
  51. package/.claude/agents/reviewers/reviewer.md +181 -0
  52. package/.claude/agents/sparc/architecture.md +6 -25
  53. package/.claude/agents/sparc/pseudocode.md +6 -0
  54. package/.claude/agents/sparc/refinement.md +6 -0
  55. package/.claude/agents/sparc/specification.md +1 -0
  56. package/.claude/agents/specialists/README.md +60 -0
  57. package/.claude/agents/{core-agents → specialists}/base-template-generator.md +8 -21
  58. package/.claude/agents/{specialized → specialists}/cli-agent-optimizer.md +1 -1
  59. package/.claude/agents/{specialized → specialists}/code-booster.md +1 -0
  60. package/.claude/agents/{consensus → specialists}/consensus-builder.md +1 -17
  61. package/.claude/agents/{specialized/mobile → specialists}/mobile-dev.md +0 -20
  62. package/.claude/agents/{core-agents → specialists}/performance-benchmarker.md +134 -148
  63. package/.claude/agents/{specialized → specialists}/rust-developer.md +1 -20
  64. package/.claude/agents/{specialized → specialists}/rust-enterprise-developer.md +1 -20
  65. package/.claude/agents/{specialized → specialists}/rust-mvp-developer.md +1 -20
  66. package/.claude/agents/{core-agents → specialists}/security-manager.md +68 -88
  67. package/.claude/agents/{security → specialists}/security-specialist-existing.md +6 -57
  68. package/.claude/agents/{security → specialists}/security-specialist.md +6 -30
  69. package/.claude/agents/{specialized/mobile → specialists}/spec-mobile-react-native.md +2 -21
  70. package/.claude/agents/testers/README.md +94 -0
  71. package/.claude/agents/{testing → testers}/e2e/playwright-agent.md +1 -20
  72. package/.claude/agents/{testing → testers}/interaction-tester.md +1 -20
  73. package/.claude/agents/{testing → testers}/playwright-tester.md +1 -1
  74. package/.claude/agents/testers/tester.md +139 -0
  75. package/.claude/agents/testers/unit/tdd-london-swarm.md +49 -0
  76. package/.claude/agents/testers/validation/production-validator.md +33 -0
  77. package/.claude/agents-ignore/cfn-loop-coordinator.md +157 -0
  78. package/.claude/agents-ignore/cfn-loop-coordinator.md.backup +156 -0
  79. package/.claude/agents-ignore/coordinator.md.backup +182 -0
  80. package/.claude/agents-ignore/cost-savings-cfn-loop-coordinator.md +760 -0
  81. package/.claude/agents-ignore/cost-savings-coordinator.md +173 -0
  82. package/.claude/artifacts/ace-reflections/REFLECT-001-summary.json +39 -0
  83. package/.claude/artifacts/ace-reflections/sprint-7_$(date -u +/"%Y%m%d_%H%M%S/").json" +47 -0
  84. package/.claude/commands/CFN_COORDINATOR_PARAMETERS.md +10 -10
  85. package/.claude/commands/cfn-loop-epic.md +3 -3
  86. package/.claude/commands/cfn-loop-single.md +3 -3
  87. package/.claude/commands/cfn-loop-sprints.md +1 -1
  88. package/.claude/commands/cfn-loop.md +3 -3
  89. package/.claude/commands/cfn-mode.md +20 -0
  90. package/.claude/commands/write-plan.md +104 -0
  91. package/.claude/data/cfn-loop.db +0 -0
  92. package/.claude/data/cfn_loop_logs.db +0 -0
  93. package/.claude/hooks/BACKUP_USAGE.md +243 -0
  94. package/.claude/hooks/post-edit-cfn-retrospective.sh +79 -0
  95. package/.claude/hooks/post-edit.sh +21 -0
  96. package/.claude/hooks/pre-edit-backup.sh +71 -0
  97. package/.claude/hooks/restore-from-backup.sh +37 -0
  98. package/.claude/prompts/cfn-loop-context.md +115 -0
  99. package/.claude/prompts/loop-specific/loop2.md +50 -0
  100. package/.claude/prompts/loop-specific/loop3.md +43 -0
  101. package/.claude/prompts/loop-specific/loop4.md +54 -0
  102. package/.claude/root-claude-distribute/CLAUDE.md +76 -2
  103. package/.claude/skills/ace-system/sprint-7-lessons.json +46 -0
  104. package/.claude/skills/ace-system/store-reflection.sh +33 -136
  105. package/.claude/skills/agent-discovery/SKILL.md +40 -0
  106. package/.claude/skills/agent-discovery/agents-registry-clean.json +0 -0
  107. package/.claude/skills/agent-discovery/agents-registry-fixed.json +19 -0
  108. package/.claude/skills/agent-discovery/agents-registry.json +718 -0
  109. package/.claude/skills/agent-discovery/discover-agents.py +175 -0
  110. package/.claude/skills/agent-discovery/discover-agents.sh +87 -0
  111. package/.claude/skills/agent-discovery/invoke-registry.sh +11 -0
  112. package/.claude/skills/agent-discovery/temp_script.py +0 -0
  113. package/.claude/skills/agent-output-processing/SKILL.md +359 -0
  114. package/.claude/skills/agent-selector/SKILL.md +90 -0
  115. package/.claude/skills/agent-selector/select-agents.sh +96 -0
  116. package/.claude/skills/agent-spawning/agent-selection-guide.md +1 -1
  117. package/.claude/skills/agent-swap/SKILL.md +36 -0
  118. package/.claude/skills/agent-swap/recommend-swap.sh +60 -0
  119. package/.claude/skills/api-validation/test-endpoints.sh +54 -0
  120. package/.claude/skills/automatic-memory-persistence/SKILL.md +73 -0
  121. package/.claude/skills/automatic-memory-persistence/persist-agent-output.sh +49 -0
  122. package/.claude/skills/automatic-memory-persistence/query-agent-history.sh +35 -0
  123. package/.claude/skills/automatic-memory-persistence/test-memory-persistence.sh +235 -0
  124. package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
  125. package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
  126. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
  127. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
  128. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
  129. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
  130. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
  131. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
  132. package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
  133. package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
  134. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +840 -0
  135. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
  136. package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
  137. package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
  138. package/.claude/skills/cfn-loop-validation/SKILL.md +307 -217
  139. package/.claude/skills/complexity-estimator/SKILL.md +96 -0
  140. package/.claude/skills/complexity-estimator/estimate-complexity.sh +144 -0
  141. package/.claude/skills/context-pruner/SKILL.md +75 -0
  142. package/.claude/skills/context-pruner/prune-context.sh +73 -0
  143. package/.claude/skills/defense-in-depth/SKILL.md +133 -0
  144. package/.claude/skills/dependency-extractor/SKILL.md +35 -0
  145. package/.claude/skills/dependency-extractor/extract-dependencies.sh +66 -0
  146. package/.claude/skills/epic-decomposer/SKILL.md +44 -0
  147. package/.claude/skills/epic-decomposer/decompose-epic.sh +104 -0
  148. package/.claude/skills/improvement-recommender/SKILL.md +33 -0
  149. package/.claude/skills/improvement-recommender/recommend-improvements.sh +92 -0
  150. package/.claude/skills/intervention-detector/SKILL.md +39 -0
  151. package/.claude/skills/intervention-detector/detect-intervention.sh +111 -0
  152. package/.claude/skills/intervention-orchestrator/SKILL.md +43 -0
  153. package/.claude/skills/intervention-orchestrator/execute-intervention.sh +59 -0
  154. package/.claude/skills/loop2-output-processing/SKILL.md +163 -0
  155. package/.claude/skills/loop2-output-processing/execute-and-extract.sh +77 -0
  156. package/.claude/skills/loop2-output-processing/execute-and-extract.sh.backup +36 -0
  157. package/.claude/skills/loop2-output-processing/parse-feedback.sh +147 -0
  158. package/.claude/skills/loop2-output-processing/process-validator-output.sh +275 -0
  159. package/.claude/skills/loop2-output-processing/test-bug27-fix.sh +200 -0
  160. package/.claude/skills/loop2-output-processing/test-loop2-processing.sh +113 -0
  161. package/.claude/skills/loop3-output-processing/AGENT_COMPLETION_PROTOCOL.md +206 -0
  162. package/.claude/skills/loop3-output-processing/SKILL.md +421 -0
  163. package/.claude/skills/loop3-output-processing/calculate-confidence.sh +28 -0
  164. package/.claude/skills/loop3-output-processing/execute-and-extract.sh +85 -0
  165. package/.claude/skills/loop3-output-processing/parse-confidence.sh +31 -0
  166. package/.claude/skills/loop3-output-processing/test-agent-timeout.sh +327 -0
  167. package/.claude/skills/loop3-output-processing/test-loop3-processing.sh +155 -0
  168. package/.claude/skills/loop3-output-processing/verify-deliverables.sh +42 -0
  169. package/.claude/skills/pattern-extraction/SKILL.md +30 -0
  170. package/.claude/skills/pattern-extraction/extract-patterns.sh +80 -0
  171. package/.claude/skills/playbook/SKILL.md +113 -0
  172. package/.claude/skills/playbook/init-playbook.sh +54 -0
  173. package/.claude/skills/playbook/playbook.db +0 -0
  174. package/.claude/skills/playbook/query-playbook.sh +79 -0
  175. package/.claude/skills/playbook/update-playbook.sh +69 -0
  176. package/.claude/skills/playbook-auto-update/SKILL.md +29 -0
  177. package/.claude/skills/playbook-auto-update/auto-update-playbook.sh +86 -0
  178. package/.claude/skills/product-owner-decision/SKILL.md +332 -0
  179. package/.claude/skills/product-owner-decision/execute-decision.sh +176 -0
  180. package/.claude/skills/product-owner-decision/parse-decision.sh +66 -0
  181. package/.claude/skills/product-owner-decision/validate-deliverables.sh +82 -0
  182. package/.claude/skills/redis-coordination/LOGGING.md +260 -0
  183. package/.claude/skills/redis-coordination/README.md +30 -29
  184. package/.claude/skills/redis-coordination/SKILL.md +685 -83
  185. package/.claude/skills/redis-coordination/analyze-task-complexity.sh +277 -0
  186. package/.claude/skills/redis-coordination/cfn-loop-exec.sh +468 -0
  187. package/.claude/skills/redis-coordination/collect-confidence-scores.sh +179 -0
  188. package/.claude/skills/redis-coordination/collect-results.sh +75 -0
  189. package/.claude/skills/redis-coordination/data/cfn-loop.db +0 -0
  190. package/.claude/skills/redis-coordination/{test-orchestrator.sh → demos/test-orchestrator.sh} +25 -0
  191. package/.claude/skills/redis-coordination/execute-product-owner-decision.sh +258 -0
  192. package/.claude/skills/redis-coordination/get-agent-timeout.sh +176 -176
  193. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +93 -227
  194. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
  195. package/.claude/skills/redis-coordination/log-event.sh +109 -0
  196. package/.claude/skills/redis-coordination/monitor-cfn-violations.sh +391 -0
  197. package/.claude/skills/redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
  198. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +31 -993
  199. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
  200. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
  201. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
  202. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
  203. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
  204. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
  205. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  206. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
  207. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
  208. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
  209. package/.claude/skills/redis-coordination/query-logs.sh +103 -0
  210. package/.claude/skills/redis-coordination/retrieve-context.sh +58 -0
  211. package/.claude/skills/redis-coordination/select-specialist-agent.sh +371 -0
  212. package/.claude/skills/redis-coordination/semantic-match-tfidf.py +252 -0
  213. package/.claude/skills/redis-coordination/send-heartbeat.sh +164 -72
  214. package/.claude/skills/redis-coordination/signal.sh +38 -0
  215. package/.claude/skills/redis-coordination/store-context.sh +86 -0
  216. package/.claude/skills/redis-coordination/test-context-injection.sh +354 -0
  217. package/.claude/skills/redis-coordination/test-timeout-enforcement.sh +513 -0
  218. package/.claude/skills/redis-coordination/tests/convert-line-endings.sh +15 -0
  219. package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +101 -101
  220. package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +98 -98
  221. package/.claude/skills/redis-coordination/tests/integration-test.sh +169 -169
  222. package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +81 -81
  223. package/.claude/skills/redis-coordination/tests/run-test-suite.sh +91 -91
  224. package/.claude/skills/redis-coordination/tests/run-tests.sh +4 -0
  225. package/.claude/skills/redis-coordination/tests/test-primitives.sh +166 -0
  226. package/.claude/skills/redis-coordination/tests/test-utils.sh +53 -121
  227. package/.claude/skills/redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
  228. package/.claude/skills/redis-coordination/tests/test_utils.sh +49 -0
  229. package/.claude/skills/redis-coordination/v2_modularization/core_orchestration.sh +76 -0
  230. package/.claude/skills/redis-coordination/validate-parameters.sh +492 -0
  231. package/.claude/skills/retrospective-report/SKILL.md +31 -0
  232. package/.claude/skills/retrospective-report/generate-report.sh +101 -0
  233. package/.claude/skills/run-all-skill-tests.sh +124 -0
  234. package/.claude/skills/scope-simplifier/SKILL.md +37 -0
  235. package/.claude/skills/scope-simplifier/simplify-scope.sh +68 -0
  236. package/.claude/skills/simplified-agent-lifecycle/COST_ANALYSIS.md +49 -0
  237. package/.claude/skills/simplified-agent-lifecycle/DESIGN.md +98 -0
  238. package/.claude/skills/simplified-agent-lifecycle/MIGRATION_PLAN.md +74 -0
  239. package/.claude/skills/specialist-injection/SKILL.md +41 -0
  240. package/.claude/skills/specialist-injection/recommend-specialist.sh +57 -0
  241. package/.claude/skills/sprint-execution/SKILL.md +27 -0
  242. package/.claude/skills/sprint-execution/execute-sprint-task.sh +59 -0
  243. package/.claude/skills/sprint-execution/execute-sprint.sh +65 -0
  244. package/.claude/skills/sprint-planner/SKILL.md +37 -0
  245. package/.claude/skills/sprint-planner/plan-sprint.sh +85 -0
  246. package/.claude/skills/standardized-error-handling/SKILL.md +56 -0
  247. package/.claude/skills/standardized-error-handling/capture-agent-error.sh +87 -0
  248. package/.claude/skills/standardized-error-handling/test-error-handling.sh +166 -0
  249. package/.claude/skills/task-classifier/SKILL.md +94 -0
  250. package/.claude/skills/task-classifier/classify-task.sh +115 -0
  251. package/.claude/skills/validation-templates/SKILL.md +47 -0
  252. package/.claude/skills/validation-templates/content.json +38 -0
  253. package/.claude/skills/validation-templates/data.json +38 -0
  254. package/.claude/skills/validation-templates/design.json +38 -0
  255. package/.claude/skills/validation-templates/infrastructure.json +38 -0
  256. package/.claude/skills/validation-templates/research.json +38 -0
  257. package/.claude/skills/validation-templates/software.json +38 -0
  258. package/.claude/skills/webapp-testing/README.md +142 -0
  259. package/.claude/skills/webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
  260. package/.claude/skills/webapp-testing/SKILL.md +877 -0
  261. package/.claude/skills/webapp-testing/capture-screenshot.sh +238 -0
  262. package/.claude/skills/webapp-testing/cfn-loop-integration.sh +265 -0
  263. package/.claude/skills/webapp-testing/compare-screenshots.sh +199 -0
  264. package/.claude/skills/webapp-testing/init-storage.sh +150 -0
  265. package/.claude/skills/webapp-testing/set-baseline.sh +196 -0
  266. package/.claude/skills/webapp-testing/test-webapp-testing.sh +233 -0
  267. package/.claude/spawn-pattern-examples.md +3 -3
  268. package/CLAUDE.md +319 -45
  269. package/README.md +598 -251
  270. package/dist/agents/agent-loader.js +146 -165
  271. package/dist/agents/agent-loader.js.map +1 -1
  272. package/dist/cli/agent-command.js +2 -0
  273. package/dist/cli/agent-command.js.map +1 -1
  274. package/dist/cli/agent-definition-parser.js +7 -0
  275. package/dist/cli/agent-definition-parser.js.map +1 -1
  276. package/dist/cli/agent-executor.js +145 -11
  277. package/dist/cli/agent-executor.js.map +1 -1
  278. package/dist/cli/agent-prompt-builder.js +81 -1
  279. package/dist/cli/agent-prompt-builder.js.map +1 -1
  280. package/dist/cli/agent-spawn.js +10 -1
  281. package/dist/cli/agent-spawn.js.map +1 -1
  282. package/dist/cli/anthropic-client.js +192 -13
  283. package/dist/cli/anthropic-client.js.map +1 -1
  284. package/dist/cli/cfn-context.js +150 -0
  285. package/dist/cli/cfn-context.js.map +1 -1
  286. package/dist/cli/cfn-fork.js +159 -0
  287. package/dist/cli/cfn-fork.js.map +1 -0
  288. package/dist/cli/cli-agent-context.js +8 -3
  289. package/dist/cli/cli-agent-context.js.map +1 -1
  290. package/dist/cli/config-manager.js +109 -91
  291. package/dist/cli/config-manager.js.map +1 -1
  292. package/dist/cli/conversation-fork.js +201 -0
  293. package/dist/cli/conversation-fork.js.map +1 -0
  294. package/dist/cli/index.js +4 -0
  295. package/dist/cli/index.js.map +1 -1
  296. package/dist/cli/tool-definitions.js +263 -0
  297. package/dist/cli/tool-definitions.js.map +1 -0
  298. package/dist/cli/tool-executor.js +247 -0
  299. package/dist/cli/tool-executor.js.map +1 -0
  300. package/dist/hello.js +8 -0
  301. package/dist/hello.js.map +1 -0
  302. package/package.json +14 -6
  303. package/scripts/README.md +68 -0
  304. package/scripts/cfn-intervention-example.sh +21 -0
  305. package/scripts/migrate-test-infrastructure.sh +40 -0
  306. package/scripts/validate-test-migration.sh +49 -0
  307. package/scripts/verify-no-secrets.sh +55 -0
  308. package/.claude/agents/architecture/system-architect.md.backup +0 -603
  309. package/.claude/agents/code-booster.md +0 -131
  310. package/.claude/agents/consensus/performance-benchmarker.md +0 -101
  311. package/.claude/agents/consensus/security-manager.md +0 -107
  312. package/.claude/agents/context-curator.md +0 -167
  313. package/.claude/agents/context-reflector.md +0 -65
  314. package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
  315. package/.claude/agents/core-agents/code-quality-validator.md +0 -149
  316. package/.claude/agents/core-agents/context-curator.md +0 -452
  317. package/.claude/agents/core-agents/context-reflector.md +0 -273
  318. package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -235
  319. package/.claude/agents/core-agents/tester.md +0 -170
  320. package/.claude/agents/development/backend-dev.md +0 -165
  321. package/.claude/agents/devops/devops-engineer.md +0 -148
  322. package/.claude/agents/frontend/interaction-tester.md +0 -139
  323. package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
  324. package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
  325. package/.claude/agents/testing/production-validator.md +0 -179
  326. package/.claude/agents/testing/tdd-london-swarm.md +0 -209
  327. package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
  328. package/.claude/agents/testing/validation/production-validator.md +0 -43
  329. package/.claude/api-configs/config-current-zai-config.env +0 -62
  330. package/.claude/api-configs/config-test-zai-config.env +0 -62
  331. package/.claude/api-configs/env-backups/before-anthropic-20251020-025404.env +0 -62
  332. package/.claude/api-configs/env-backups/before-restore-20251020-025431.env +0 -62
  333. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1760949407 +0 -933
  334. package/dist/cli/cli-agent-context.test.js +0 -451
  335. package/dist/cli/cli-agent-context.test.js.map +0 -1
  336. package/dist/coordination/fleet-manager.test.js +0 -141
  337. package/dist/coordination/fleet-manager.test.js.map +0 -1
  338. package/dist/middleware/transparency-middleware.test.js +0 -184
  339. package/dist/middleware/transparency-middleware.test.js.map +0 -1
  340. /package/.claude/agents/{core-agents → developers}/researcher.md +0 -0
  341. /package/.claude/agents/{consensus → specialists}/crdt-synchronizer.md +0 -0
  342. /package/.claude/agents/{consensus → specialists}/quorum-manager.md +0 -0
  343. /package/.claude/agents/{consensus → specialists}/raft-manager.md +0 -0
  344. /package/.claude/{agents/core-agents → agents-ignore}/coordinator.md +0 -0
  345. /package/.claude/{agents/core-agents/cost-savings-coordinator.md → agents-ignore/cost-savings-coordinator.md.backup} +0 -0
  346. /package/.claude/skills/redis-coordination/{phase4-wake-queue-test-report.md → demos/phase4-wake-queue-test-report.md} +0 -0
  347. /package/.claude/skills/redis-coordination/{test-bzpopmin-fix.sh → demos/test-bzpopmin-fix.sh} +0 -0
  348. /package/.claude/skills/redis-coordination/{test-cancel-swarm.sh → demos/test-cancel-swarm.sh} +0 -0
  349. /package/.claude/skills/redis-coordination/{test-dlq.sh → demos/test-dlq.sh} +0 -0
  350. /package/.claude/skills/redis-coordination/{test-iteration-feedback.sh → demos/test-iteration-feedback.sh} +0 -0
  351. /package/.claude/skills/redis-coordination/{test-priority-wake-phase4-unix.sh → demos/test-priority-wake-phase4-unix.sh} +0 -0
  352. /package/.claude/skills/redis-coordination/{test-priority-wake-phase4.sh → demos/test-priority-wake-phase4.sh} +0 -0
  353. /package/.claude/skills/redis-coordination/{test-priority-wake.sh → demos/test-priority-wake.sh} +0 -0
  354. /package/.claude/skills/redis-coordination/{test-quick-fix.sh → demos/test-quick-fix.sh} +0 -0
  355. /package/.claude/skills/redis-coordination/{test-quorum-absolute.sh → demos/test-quorum-absolute.sh} +0 -0
  356. /package/.claude/skills/redis-coordination/{test-quorum-fallback.sh → demos/test-quorum-fallback.sh} +0 -0
  357. /package/.claude/skills/redis-coordination/{test-quorum-percentage.sh → demos/test-quorum-percentage.sh} +0 -0
  358. /package/.claude/skills/redis-coordination/{test-quorum-with-retry.sh → demos/test-quorum-with-retry.sh} +0 -0
  359. /package/.claude/skills/redis-coordination/{test-quorum.sh → demos/test-quorum.sh} +0 -0
  360. /package/.claude/skills/redis-coordination/{test-shutdown-handling.sh → demos/test-shutdown-handling.sh} +0 -0
  361. /package/.claude/skills/redis-coordination/{test-shutdown.sh → demos/test-shutdown.sh} +0 -0
  362. /package/.claude/skills/redis-coordination/{test-utils-unix.sh → demos/test-utils-unix.sh} +0 -0
  363. /package/.claude/skills/redis-coordination/{test-utils.sh → demos/test-utils.sh} +0 -0
  364. /package/.claude/skills/redis-coordination/{test-waiting-mode.sh → demos/test-waiting-mode.sh} +0 -0
@@ -1,145 +1,12 @@
1
- "use strict";
2
1
  /**
3
2
  * Dynamic Agent Loader - Reads agent definitions from .claude/agents/ directory
4
3
  * Single source of truth for agent types in the system
5
- */ var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
6
- function adopt(value) {
7
- return value instanceof P ? value : new P(function(resolve) {
8
- resolve(value);
9
- });
10
- }
11
- return new (P || (P = Promise))(function(resolve, reject) {
12
- function fulfilled(value) {
13
- try {
14
- step(generator.next(value));
15
- } catch (e) {
16
- reject(e);
17
- }
18
- }
19
- function rejected(value) {
20
- try {
21
- step(generator["throw"](value));
22
- } catch (e) {
23
- reject(e);
24
- }
25
- }
26
- function step(result) {
27
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
28
- }
29
- step((generator = generator.apply(thisArg, _arguments || [])).next());
30
- });
31
- };
32
- var __generator = this && this.__generator || function(thisArg, body) {
33
- var _ = {
34
- label: 0,
35
- sent: function() {
36
- if (t[0] & 1) throw t[1];
37
- return t[1];
38
- },
39
- trys: [],
40
- ops: []
41
- }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
42
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
43
- return this;
44
- }), g;
45
- function verb(n) {
46
- return function(v) {
47
- return step([
48
- n,
49
- v
50
- ]);
51
- };
52
- }
53
- function step(op) {
54
- if (f) throw new TypeError("Generator is already executing.");
55
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
56
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
57
- if (y = 0, t) op = [
58
- op[0] & 2,
59
- t.value
60
- ];
61
- switch(op[0]){
62
- case 0:
63
- case 1:
64
- t = op;
65
- break;
66
- case 4:
67
- _.label++;
68
- return {
69
- value: op[1],
70
- done: false
71
- };
72
- case 5:
73
- _.label++;
74
- y = op[1];
75
- op = [
76
- 0
77
- ];
78
- continue;
79
- case 7:
80
- op = _.ops.pop();
81
- _.trys.pop();
82
- continue;
83
- default:
84
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
85
- _ = 0;
86
- continue;
87
- }
88
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
89
- _.label = op[1];
90
- break;
91
- }
92
- if (op[0] === 6 && _.label < t[1]) {
93
- _.label = t[1];
94
- t = op;
95
- break;
96
- }
97
- if (t && _.label < t[2]) {
98
- _.label = t[2];
99
- _.ops.push(op);
100
- break;
101
- }
102
- if (t[2]) _.ops.pop();
103
- _.trys.pop();
104
- continue;
105
- }
106
- op = body.call(thisArg, _);
107
- } catch (e) {
108
- op = [
109
- 6,
110
- e
111
- ];
112
- y = 0;
113
- } finally{
114
- f = t = 0;
115
- }
116
- if (op[0] & 5) throw op[1];
117
- return {
118
- value: op[0] ? op[1] : void 0,
119
- done: true
120
- };
121
- }
122
- };
123
- var __spreadArray = this && this.__spreadArray || function(to, from, pack) {
124
- if (pack || arguments.length === 2) for(var i = 0, l = from.length, ar; i < l; i++){
125
- if (ar || !(i in from)) {
126
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
127
- ar[i] = from[i];
128
- }
129
- }
130
- return to.concat(ar || Array.prototype.slice.call(from));
131
- };
132
- Object.defineProperty(exports, "__esModule", {
133
- value: true
134
- });
135
- exports.refreshAgents = exports.getAgentsByCategory = exports.isValidAgentType = exports.searchAgents = exports.getAgentCategories = exports.getAllAgents = exports.getAgent = exports.getAvailableAgentTypes = exports.agentLoader = exports.AgentLoader = void 0;
136
- exports.resolveLegacyAgentType = resolveLegacyAgentType;
137
- var node_fs_1 = require("node:fs");
138
- var glob_1 = require("glob");
139
- var node_path_1 = require("node:path");
140
- var yaml_1 = require("yaml");
4
+ */ import { readFileSync, existsSync } from 'node:fs';
5
+ import { glob } from 'glob';
6
+ import { resolve, dirname } from 'node:path';
7
+ import { parse as parseYaml } from 'yaml';
141
8
  // Legacy agent type mapping for backward compatibility
142
- var LEGACY_AGENT_MAPPING = {
9
+ const LEGACY_AGENT_MAPPING = {
143
10
  analyst: 'code-analyzer',
144
11
  coordinator: 'hierarchical-coordinator',
145
12
  optimizer: 'perf-analyzer',
@@ -150,40 +17,38 @@ var LEGACY_AGENT_MAPPING = {
150
17
  };
151
18
  /**
152
19
  * Resolve legacy agent types to current equivalents
153
- */ function resolveLegacyAgentType(legacyType) {
20
+ */ export function resolveLegacyAgentType(legacyType) {
154
21
  return LEGACY_AGENT_MAPPING[legacyType] || legacyType;
155
22
  }
156
- var AgentLoader = /** @class */ function() {
157
- function AgentLoader() {
158
- this.agentCache = new Map();
159
- this.categoriesCache = [];
160
- this.lastLoadTime = 0;
161
- this.CACHE_EXPIRY = 60000; // 1 minute cache
162
- }
163
- AgentLoader.prototype.getAgentsDirectory = function() {
164
- var currentDir = process.cwd();
23
+ export class AgentLoader {
24
+ agentCache = new Map();
25
+ categoriesCache = [];
26
+ lastLoadTime = 0;
27
+ CACHE_EXPIRY = 60_000;
28
+ getAgentsDirectory() {
29
+ let currentDir = process.cwd();
165
30
  while(currentDir !== '/'){
166
- var claudeAgentsPath = (0, node_path_1.resolve)(currentDir, '.claude', 'agents');
167
- if ((0, node_fs_1.existsSync)(claudeAgentsPath)) {
31
+ const claudeAgentsPath = resolve(currentDir, '.claude', 'agents');
32
+ if (existsSync(claudeAgentsPath)) {
168
33
  return claudeAgentsPath;
169
34
  }
170
- currentDir = (0, node_path_1.dirname)(currentDir);
35
+ currentDir = dirname(currentDir);
171
36
  }
172
- return (0, node_path_1.resolve)(process.cwd(), '.claude', 'agents');
173
- };
174
- AgentLoader.prototype.parseAgentFile = function(filePath) {
37
+ return resolve(process.cwd(), '.claude', 'agents');
38
+ }
39
+ parseAgentFile(filePath) {
175
40
  try {
176
- var content = (0, node_fs_1.readFileSync)(filePath, 'utf-8');
177
- var frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n([\s\S]*)$/);
41
+ const content = readFileSync(filePath, 'utf-8');
42
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n([\s\S]*)$/);
178
43
  if (!frontmatterMatch) {
179
- console.warn("No frontmatter found in ".concat(filePath));
44
+ console.warn(`No frontmatter found in ${filePath}`);
180
45
  return null;
181
46
  }
182
- var yamlContent = frontmatterMatch[1], markdownContent = frontmatterMatch[2];
183
- var frontmatter = (0, yaml_1.parse)(yamlContent);
184
- var description = frontmatter.description;
47
+ const [, yamlContent, markdownContent] = frontmatterMatch;
48
+ const frontmatter = parseYaml(yamlContent);
49
+ const description = frontmatter.description;
185
50
  if (!frontmatter.name || !description) {
186
- console.warn("Missing required fields (name, description) in ".concat(filePath));
51
+ console.warn(`Missing required fields (name, description) in ${filePath}`);
187
52
  return null;
188
53
  }
189
54
  return {
@@ -204,13 +69,129 @@ var AgentLoader = /** @class */ function() {
204
69
  content: markdownContent.trim()
205
70
  };
206
71
  } catch (error) {
207
- console.error("Error parsing agent file ".concat(filePath, ":"), error);
72
+ console.error(`Error parsing agent file ${filePath}:`, error);
208
73
  return null;
209
74
  }
210
- };
211
- AgentLoader.prototype.parseTools = function(frontmatter) {
212
- var extractTools = function(input) {
75
+ }
76
+ parseTools(frontmatter) {
77
+ const extractTools = (input)=>{
213
78
  if (Array.isArray(input)) return input.map(String);
79
+ if (typeof input === 'string') {
80
+ return input.split(/[,\s]+/).map((t)=>t.trim()).filter((t)=>t.length > 0);
81
+ }
82
+ return [];
83
+ };
84
+ // Safely handle tools and capabilities.tools
85
+ const toolsFromFrontmatter = frontmatter.tools ? extractTools(frontmatter.tools) : [];
86
+ const toolsFromCapabilities = frontmatter.capabilities && typeof frontmatter.capabilities === 'object' ? extractTools(Object(frontmatter.capabilities).tools) : [];
87
+ return [
88
+ ...toolsFromFrontmatter,
89
+ ...toolsFromCapabilities
90
+ ];
91
+ }
92
+ async loadAgents() {
93
+ const agentsDir = this.getAgentsDirectory();
94
+ if (!existsSync(agentsDir)) {
95
+ console.warn(`Agents directory not found: ${agentsDir}`);
96
+ return;
97
+ }
98
+ const agentFiles = await new Promise((resolve, reject)=>{
99
+ glob('**/*.md', {
100
+ cwd: agentsDir,
101
+ ignore: [
102
+ '**/README.md',
103
+ '**/MIGRATION_SUMMARY.md'
104
+ ],
105
+ absolute: true
106
+ }, (err, matches)=>{
107
+ if (err) reject(err);
108
+ else resolve(matches);
109
+ });
110
+ });
111
+ this.agentCache.clear();
112
+ this.categoriesCache = [];
113
+ const categoryMap = new Map();
114
+ for (const filePath of agentFiles){
115
+ const agent = this.parseAgentFile(filePath);
116
+ if (agent) {
117
+ this.agentCache.set(agent.name, agent);
118
+ const relativePath = filePath.replace(agentsDir, '');
119
+ const pathParts = relativePath.split('/');
120
+ const category = pathParts[1] || 'uncategorized';
121
+ if (!categoryMap.has(category)) {
122
+ categoryMap.set(category, []);
123
+ }
124
+ categoryMap.get(category).push(agent);
125
+ }
126
+ }
127
+ this.categoriesCache = Array.from(categoryMap.entries()).map(([name, agents])=>({
128
+ name,
129
+ agents: agents.sort((a, b)=>a.name.localeCompare(b.name))
130
+ }));
131
+ this.lastLoadTime = Date.now();
132
+ }
133
+ // Rest of the methods remain similar to the original implementation
134
+ needsRefresh() {
135
+ return Date.now() - this.lastLoadTime > this.CACHE_EXPIRY;
136
+ }
137
+ async ensureLoaded() {
138
+ if (this.agentCache.size === 0 || this.needsRefresh()) {
139
+ await this.loadAgents();
140
+ }
141
+ }
142
+ async getAvailableAgentTypes() {
143
+ await this.ensureLoaded();
144
+ const currentTypes = Array.from(this.agentCache.keys());
145
+ const legacyTypes = Object.keys(LEGACY_AGENT_MAPPING);
146
+ return Array.from(new Set([
147
+ ...currentTypes,
148
+ ...legacyTypes
149
+ ])).sort();
150
+ }
151
+ async getAgent(name) {
152
+ await this.ensureLoaded();
153
+ return this.agentCache.get(name) || this.agentCache.get(resolveLegacyAgentType(name)) || null;
154
+ }
155
+ async getAllAgents() {
156
+ await this.ensureLoaded();
157
+ return Array.from(this.agentCache.values()).sort((a, b)=>a.name.localeCompare(b.name));
158
+ }
159
+ async getAgentCategories() {
160
+ await this.ensureLoaded();
161
+ return this.categoriesCache;
162
+ }
163
+ async searchAgents(query) {
164
+ await this.ensureLoaded();
165
+ const lowerQuery = query.toLowerCase();
166
+ return Array.from(this.agentCache.values()).filter((agent)=>agent.name.toLowerCase().includes(lowerQuery) || agent.description.toLowerCase().includes(lowerQuery) || agent.capabilities?.some((cap)=>cap.toLowerCase().includes(lowerQuery)));
167
+ }
168
+ async isValidAgentType(name) {
169
+ await this.ensureLoaded();
170
+ return this.agentCache.has(name) || this.agentCache.has(resolveLegacyAgentType(name));
171
+ }
172
+ async getAgentsByCategory(category) {
173
+ const categories = await this.getAgentCategories();
174
+ const found = categories.find((cat)=>cat.name === category);
175
+ return found?.agents || [];
176
+ }
177
+ async refresh() {
178
+ this.lastLoadTime = 0;
179
+ await this.loadAgents();
180
+ }
181
+ }
182
+ // Singleton instance
183
+ export const agentLoader = new AgentLoader();
184
+ // Convenience exports for use in other modules
185
+ export const getAvailableAgentTypes = ()=>agentLoader.getAvailableAgentTypes();
186
+ export const getAgent = (name)=>agentLoader.getAgent(name);
187
+ export const getAllAgents = ()=>agentLoader.getAllAgents();
188
+ export const getAgentCategories = ()=>agentLoader.getAgentCategories();
189
+ export const searchAgents = (query)=>agentLoader.searchAgents(query);
190
+ export const isValidAgentType = (name)=>agentLoader.isValidAgentType(name);
191
+ export const getAgentsByCategory = (category)=>agentLoader.getAgentsByCategory(category);
192
+ export const refreshAgents = ()=>agentLoader.refresh();
193
+
194
+ //# sourceMappingURL=agent-loader.js.map.isArray(input)) return input.map(String);
214
195
  if (typeof input === 'string') {
215
196
  return input.split(/[,\s]+/).map(function(t) {
216
197
  return t.trim();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/agents/agent-loader.js"],"sourcesContent":["\"use strict\";\n/**\n * Dynamic Agent Loader - Reads agent definitions from .claude/agents/ directory\n * Single source of truth for agent types in the system\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.refreshAgents = exports.getAgentsByCategory = exports.isValidAgentType = exports.searchAgents = exports.getAgentCategories = exports.getAllAgents = exports.getAgent = exports.getAvailableAgentTypes = exports.agentLoader = exports.AgentLoader = void 0;\nexports.resolveLegacyAgentType = resolveLegacyAgentType;\nvar node_fs_1 = require(\"node:fs\");\nvar glob_1 = require(\"glob\");\nvar node_path_1 = require(\"node:path\");\nvar yaml_1 = require(\"yaml\");\n// Legacy agent type mapping for backward compatibility\nvar LEGACY_AGENT_MAPPING = {\n analyst: 'code-analyzer',\n coordinator: 'hierarchical-coordinator',\n optimizer: 'perf-analyzer',\n documenter: 'api-docs',\n monitor: 'performance-benchmarker',\n specialist: 'system-architect',\n architect: 'system-architect',\n};\n/**\n * Resolve legacy agent types to current equivalents\n */\nfunction resolveLegacyAgentType(legacyType) {\n return LEGACY_AGENT_MAPPING[legacyType] || legacyType;\n}\nvar AgentLoader = /** @class */ (function () {\n function AgentLoader() {\n this.agentCache = new Map();\n this.categoriesCache = [];\n this.lastLoadTime = 0;\n this.CACHE_EXPIRY = 60000; // 1 minute cache\n }\n AgentLoader.prototype.getAgentsDirectory = function () {\n var currentDir = process.cwd();\n while (currentDir !== '/') {\n var claudeAgentsPath = (0, node_path_1.resolve)(currentDir, '.claude', 'agents');\n if ((0, node_fs_1.existsSync)(claudeAgentsPath)) {\n return claudeAgentsPath;\n }\n currentDir = (0, node_path_1.dirname)(currentDir);\n }\n return (0, node_path_1.resolve)(process.cwd(), '.claude', 'agents');\n };\n AgentLoader.prototype.parseAgentFile = function (filePath) {\n try {\n var content = (0, node_fs_1.readFileSync)(filePath, 'utf-8');\n var frontmatterMatch = content.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---\\r?\\n([\\s\\S]*)$/);\n if (!frontmatterMatch) {\n console.warn(\"No frontmatter found in \".concat(filePath));\n return null;\n }\n var yamlContent = frontmatterMatch[1], markdownContent = frontmatterMatch[2];\n var frontmatter = (0, yaml_1.parse)(yamlContent);\n var description = frontmatter.description;\n if (!frontmatter.name || !description) {\n console.warn(\"Missing required fields (name, description) in \".concat(filePath));\n return null;\n }\n return {\n name: String(frontmatter.name),\n type: frontmatter.type ? String(frontmatter.type) : undefined,\n color: frontmatter.color ? String(frontmatter.color) : undefined,\n description: String(description),\n model: frontmatter.model ? String(frontmatter.model) : undefined,\n capabilities: Array.isArray(frontmatter.capabilities)\n ? frontmatter.capabilities.map(String)\n : [],\n priority: ['low', 'medium', 'high', 'critical'].includes(String(frontmatter.priority))\n ? String(frontmatter.priority)\n : 'medium',\n tools: this.parseTools(frontmatter),\n hooks: frontmatter.hooks,\n content: markdownContent.trim(),\n };\n }\n catch (error) {\n console.error(\"Error parsing agent file \".concat(filePath, \":\"), error);\n return null;\n }\n };\n AgentLoader.prototype.parseTools = function (frontmatter) {\n var extractTools = function (input) {\n if (Array.isArray(input))\n return input.map(String);\n if (typeof input === 'string') {\n return input.split(/[,\\s]+/).map(function (t) { return t.trim(); }).filter(function (t) { return t.length > 0; });\n }\n return [];\n };\n // Safely handle tools and capabilities.tools\n var toolsFromFrontmatter = frontmatter.tools\n ? extractTools(frontmatter.tools)\n : [];\n var toolsFromCapabilities = frontmatter.capabilities && typeof frontmatter.capabilities === 'object'\n ? extractTools(Object(frontmatter.capabilities).tools)\n : [];\n return __spreadArray(__spreadArray([], toolsFromFrontmatter, true), toolsFromCapabilities, true);\n };\n AgentLoader.prototype.loadAgents = function () {\n return __awaiter(this, void 0, void 0, function () {\n var agentsDir, agentFiles, categoryMap, _i, agentFiles_1, filePath, agent, relativePath, pathParts, category;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n agentsDir = this.getAgentsDirectory();\n if (!(0, node_fs_1.existsSync)(agentsDir)) {\n console.warn(\"Agents directory not found: \".concat(agentsDir));\n return [2 /*return*/];\n }\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n (0, glob_1.glob)('**/*.md', {\n cwd: agentsDir,\n ignore: ['**/README.md', '**/MIGRATION_SUMMARY.md'],\n absolute: true\n }, function (err, matches) {\n if (err)\n reject(err);\n else\n resolve(matches);\n });\n })];\n case 1:\n agentFiles = _a.sent();\n this.agentCache.clear();\n this.categoriesCache = [];\n categoryMap = new Map();\n for (_i = 0, agentFiles_1 = agentFiles; _i < agentFiles_1.length; _i++) {\n filePath = agentFiles_1[_i];\n agent = this.parseAgentFile(filePath);\n if (agent) {\n this.agentCache.set(agent.name, agent);\n relativePath = filePath.replace(agentsDir, '');\n pathParts = relativePath.split('/');\n category = pathParts[1] || 'uncategorized';\n if (!categoryMap.has(category)) {\n categoryMap.set(category, []);\n }\n categoryMap.get(category).push(agent);\n }\n }\n this.categoriesCache = Array.from(categoryMap.entries()).map(function (_a) {\n var name = _a[0], agents = _a[1];\n return ({\n name: name,\n agents: agents.sort(function (a, b) { return a.name.localeCompare(b.name); }),\n });\n });\n this.lastLoadTime = Date.now();\n return [2 /*return*/];\n }\n });\n });\n };\n // Rest of the methods remain similar to the original implementation\n AgentLoader.prototype.needsRefresh = function () {\n return Date.now() - this.lastLoadTime > this.CACHE_EXPIRY;\n };\n AgentLoader.prototype.ensureLoaded = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.agentCache.size === 0 || this.needsRefresh())) return [3 /*break*/, 2];\n return [4 /*yield*/, this.loadAgents()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n AgentLoader.prototype.getAvailableAgentTypes = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currentTypes, legacyTypes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.ensureLoaded()];\n case 1:\n _a.sent();\n currentTypes = Array.from(this.agentCache.keys());\n legacyTypes = Object.keys(LEGACY_AGENT_MAPPING);\n return [2 /*return*/, Array.from(new Set(__spreadArray(__spreadArray([], currentTypes, true), legacyTypes, true))).sort()];\n }\n });\n });\n };\n AgentLoader.prototype.getAgent = function (name) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.ensureLoaded()];\n case 1:\n _a.sent();\n return [2 /*return*/, this.agentCache.get(name) || this.agentCache.get(resolveLegacyAgentType(name)) || null];\n }\n });\n });\n };\n AgentLoader.prototype.getAllAgents = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.ensureLoaded()];\n case 1:\n _a.sent();\n return [2 /*return*/, Array.from(this.agentCache.values()).sort(function (a, b) { return a.name.localeCompare(b.name); })];\n }\n });\n });\n };\n AgentLoader.prototype.getAgentCategories = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.ensureLoaded()];\n case 1:\n _a.sent();\n return [2 /*return*/, this.categoriesCache];\n }\n });\n });\n };\n AgentLoader.prototype.searchAgents = function (query) {\n return __awaiter(this, void 0, void 0, function () {\n var lowerQuery;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.ensureLoaded()];\n case 1:\n _a.sent();\n lowerQuery = query.toLowerCase();\n return [2 /*return*/, Array.from(this.agentCache.values()).filter(function (agent) {\n var _a;\n return agent.name.toLowerCase().includes(lowerQuery) ||\n agent.description.toLowerCase().includes(lowerQuery) ||\n ((_a = agent.capabilities) === null || _a === void 0 ? void 0 : _a.some(function (cap) { return cap.toLowerCase().includes(lowerQuery); }));\n })];\n }\n });\n });\n };\n AgentLoader.prototype.isValidAgentType = function (name) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.ensureLoaded()];\n case 1:\n _a.sent();\n return [2 /*return*/, this.agentCache.has(name) || this.agentCache.has(resolveLegacyAgentType(name))];\n }\n });\n });\n };\n AgentLoader.prototype.getAgentsByCategory = function (category) {\n return __awaiter(this, void 0, void 0, function () {\n var categories, found;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getAgentCategories()];\n case 1:\n categories = _a.sent();\n found = categories.find(function (cat) { return cat.name === category; });\n return [2 /*return*/, (found === null || found === void 0 ? void 0 : found.agents) || []];\n }\n });\n });\n };\n AgentLoader.prototype.refresh = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.lastLoadTime = 0;\n return [4 /*yield*/, this.loadAgents()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return AgentLoader;\n}());\nexports.AgentLoader = AgentLoader;\n// Singleton instance\nexports.agentLoader = new AgentLoader();\n// Convenience exports for use in other modules\nvar getAvailableAgentTypes = function () { return exports.agentLoader.getAvailableAgentTypes(); };\nexports.getAvailableAgentTypes = getAvailableAgentTypes;\nvar getAgent = function (name) { return exports.agentLoader.getAgent(name); };\nexports.getAgent = getAgent;\nvar getAllAgents = function () { return exports.agentLoader.getAllAgents(); };\nexports.getAllAgents = getAllAgents;\nvar getAgentCategories = function () { return exports.agentLoader.getAgentCategories(); };\nexports.getAgentCategories = getAgentCategories;\nvar searchAgents = function (query) { return exports.agentLoader.searchAgents(query); };\nexports.searchAgents = searchAgents;\nvar isValidAgentType = function (name) { return exports.agentLoader.isValidAgentType(name); };\nexports.isValidAgentType = isValidAgentType;\nvar getAgentsByCategory = function (category) { return exports.agentLoader.getAgentsByCategory(category); };\nexports.getAgentsByCategory = getAgentsByCategory;\nvar refreshAgents = function () { return exports.agentLoader.refresh(); };\nexports.refreshAgents = refreshAgents;\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","Object","create","Iterator","prototype","verb","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","__spreadArray","to","from","pack","arguments","i","l","ar","Array","slice","concat","defineProperty","exports","refreshAgents","getAgentsByCategory","isValidAgentType","searchAgents","getAgentCategories","getAllAgents","getAgent","getAvailableAgentTypes","agentLoader","AgentLoader","resolveLegacyAgentType","node_fs_1","require","glob_1","node_path_1","yaml_1","LEGACY_AGENT_MAPPING","analyst","coordinator","optimizer","documenter","monitor","specialist","architect","legacyType","agentCache","Map","categoriesCache","lastLoadTime","CACHE_EXPIRY","getAgentsDirectory","currentDir","process","cwd","claudeAgentsPath","existsSync","dirname","parseAgentFile","filePath","content","readFileSync","frontmatterMatch","match","console","warn","yamlContent","markdownContent","frontmatter","parse","description","name","String","type","undefined","color","model","capabilities","isArray","map","priority","includes","tools","parseTools","hooks","trim","error","extractTools","input","split","filter","toolsFromFrontmatter","toolsFromCapabilities","loadAgents","agentsDir","agentFiles","categoryMap","_i","agentFiles_1","agent","relativePath","pathParts","category","_a","glob","ignore","absolute","err","matches","clear","set","replace","has","get","entries","agents","sort","a","b","localeCompare","Date","now","needsRefresh","ensureLoaded","size","currentTypes","legacyTypes","keys","Set","values","query","lowerQuery","toLowerCase","some","cap","categories","found","find","cat","refresh"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/agents/agent-loader.ts"],"sourcesContent":["/**\n * Dynamic Agent Loader - Reads agent definitions from .claude/agents/ directory\n * Single source of truth for agent types in the system\n */\n\nimport { readFileSync, existsSync } from 'node:fs';\nimport { glob } from 'glob';\nimport { resolve, dirname } from 'node:path';\nimport { parse as parseYaml } from 'yaml';\n\n// Legacy agent type mapping for backward compatibility\nconst LEGACY_AGENT_MAPPING = {\n analyst: 'code-analyzer',\n coordinator: 'hierarchical-coordinator',\n optimizer: 'perf-analyzer',\n documenter: 'api-docs',\n monitor: 'performance-benchmarker',\n specialist: 'system-architect',\n architect: 'system-architect',\n} as const;\n\n/**\n * Resolve legacy agent types to current equivalents\n */\nexport function resolveLegacyAgentType(legacyType: string): string {\n return LEGACY_AGENT_MAPPING[legacyType as keyof typeof LEGACY_AGENT_MAPPING] || legacyType;\n}\n\nexport interface AgentDefinition {\n name: string;\n type?: string;\n color?: string;\n description: string;\n tools?: string[];\n model?: string;\n capabilities?: string[];\n priority?: 'low' | 'medium' | 'high' | 'critical';\n hooks?: {\n pre?: string;\n post?: string;\n task_complete?: string;\n on_rerun_request?: string;\n lifecycle?: Record<string, string>;\n };\n lifecycle?: {\n state_management?: boolean;\n persistent_memory?: boolean;\n max_retries?: number;\n timeout_ms?: number;\n auto_cleanup?: boolean;\n };\n content?: string;\n}\n\nexport interface AgentCategory {\n name: string;\n agents: AgentDefinition[];\n}\n\nexport class AgentLoader {\n private agentCache = new Map<string, AgentDefinition>();\n private categoriesCache: AgentCategory[] = [];\n private lastLoadTime = 0;\n private readonly CACHE_EXPIRY = 60_000; // 1 minute cache\n\n private getAgentsDirectory(): string {\n let currentDir = process.cwd();\n\n while (currentDir !== '/') {\n const claudeAgentsPath = resolve(currentDir, '.claude', 'agents');\n if (existsSync(claudeAgentsPath)) {\n return claudeAgentsPath;\n }\n currentDir = dirname(currentDir);\n }\n\n return resolve(process.cwd(), '.claude', 'agents');\n }\n\n private parseAgentFile(filePath: string): AgentDefinition | null {\n try {\n const content = readFileSync(filePath, 'utf-8');\n\n const frontmatterMatch = content.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---\\r?\\n([\\s\\S]*)$/);\n if (!frontmatterMatch) {\n console.warn(`No frontmatter found in ${filePath}`);\n return null;\n }\n\n const [, yamlContent, markdownContent] = frontmatterMatch;\n const frontmatter = parseYaml(yamlContent) as Record<string, unknown>;\n\n const description = frontmatter.description;\n if (!frontmatter.name || !description) {\n console.warn(`Missing required fields (name, description) in ${filePath}`);\n return null;\n }\n\n return {\n name: String(frontmatter.name),\n type: frontmatter.type ? String(frontmatter.type) : undefined,\n color: frontmatter.color ? String(frontmatter.color) : undefined,\n description: String(description),\n model: frontmatter.model ? String(frontmatter.model) : undefined,\n capabilities: Array.isArray(frontmatter.capabilities)\n ? frontmatter.capabilities.map(String)\n : [],\n priority: ['low', 'medium', 'high', 'critical'].includes(String(frontmatter.priority))\n ? String(frontmatter.priority) as AgentDefinition['priority']\n : 'medium',\n tools: this.parseTools(frontmatter),\n hooks: frontmatter.hooks as AgentDefinition['hooks'],\n content: markdownContent.trim(),\n };\n } catch (error) {\n console.error(`Error parsing agent file ${filePath}:`, error);\n return null;\n }\n }\n\n private parseTools(frontmatter: Record<string, unknown>): string[] {\n const extractTools = (input: unknown): string[] => {\n if (Array.isArray(input)) return input.map(String);\n if (typeof input === 'string') {\n return input.split(/[,\\s]+/).map(t => t.trim()).filter(t => t.length > 0);\n }\n return [];\n };\n\n // Safely handle tools and capabilities.tools\n const toolsFromFrontmatter = frontmatter.tools\n ? extractTools(frontmatter.tools)\n : [];\n\n const toolsFromCapabilities = frontmatter.capabilities && typeof frontmatter.capabilities === 'object'\n ? extractTools(Object(frontmatter.capabilities).tools)\n : [];\n\n return [...toolsFromFrontmatter, ...toolsFromCapabilities];\n }\n\n private async loadAgents(): Promise<void> {\n const agentsDir = this.getAgentsDirectory();\n\n if (!existsSync(agentsDir)) {\n console.warn(`Agents directory not found: ${agentsDir}`);\n return;\n }\n\n const agentFiles = await new Promise<string[]>((resolve, reject) => {\n glob('**/*.md', {\n cwd: agentsDir,\n ignore: ['**/README.md', '**/MIGRATION_SUMMARY.md'],\n absolute: true\n }, (err, matches) => {\n if (err) reject(err);\n else resolve(matches);\n });\n });\n\n this.agentCache.clear();\n this.categoriesCache = [];\n\n const categoryMap = new Map<string, AgentDefinition[]>();\n\n for (const filePath of agentFiles) {\n const agent = this.parseAgentFile(filePath);\n if (agent) {\n this.agentCache.set(agent.name, agent);\n\n const relativePath = filePath.replace(agentsDir, '');\n const pathParts = relativePath.split('/');\n const category = pathParts[1] || 'uncategorized';\n\n if (!categoryMap.has(category)) {\n categoryMap.set(category, []);\n }\n categoryMap.get(category)!.push(agent);\n }\n }\n\n this.categoriesCache = Array.from(categoryMap.entries()).map(([name, agents]) => ({\n name,\n agents: agents.sort((a, b) => a.name.localeCompare(b.name)),\n }));\n\n this.lastLoadTime = Date.now();\n }\n\n // Rest of the methods remain similar to the original implementation\n private needsRefresh(): boolean {\n return Date.now() - this.lastLoadTime > this.CACHE_EXPIRY;\n }\n\n private async ensureLoaded(): Promise<void> {\n if (this.agentCache.size === 0 || this.needsRefresh()) {\n await this.loadAgents();\n }\n }\n\n async getAvailableAgentTypes(): Promise<string[]> {\n await this.ensureLoaded();\n const currentTypes = Array.from(this.agentCache.keys());\n const legacyTypes = Object.keys(LEGACY_AGENT_MAPPING);\n return Array.from(new Set([...currentTypes, ...legacyTypes])).sort();\n }\n\n async getAgent(name: string): Promise<AgentDefinition | null> {\n await this.ensureLoaded();\n return this.agentCache.get(name) || this.agentCache.get(resolveLegacyAgentType(name)) || null;\n }\n\n async getAllAgents(): Promise<AgentDefinition[]> {\n await this.ensureLoaded();\n return Array.from(this.agentCache.values()).sort((a, b) => a.name.localeCompare(b.name));\n }\n\n async getAgentCategories(): Promise<AgentCategory[]> {\n await this.ensureLoaded();\n return this.categoriesCache;\n }\n\n async searchAgents(query: string): Promise<AgentDefinition[]> {\n await this.ensureLoaded();\n const lowerQuery = query.toLowerCase();\n\n return Array.from(this.agentCache.values()).filter((agent) =>\n agent.name.toLowerCase().includes(lowerQuery) ||\n agent.description.toLowerCase().includes(lowerQuery) ||\n agent.capabilities?.some((cap) => cap.toLowerCase().includes(lowerQuery))\n );\n }\n\n async isValidAgentType(name: string): Promise<boolean> {\n await this.ensureLoaded();\n return this.agentCache.has(name) || this.agentCache.has(resolveLegacyAgentType(name));\n }\n\n async getAgentsByCategory(category: string): Promise<AgentDefinition[]> {\n const categories = await this.getAgentCategories();\n const found = categories.find((cat) => cat.name === category);\n return found?.agents || [];\n }\n\n async refresh(): Promise<void> {\n this.lastLoadTime = 0;\n await this.loadAgents();\n }\n}\n\n// Singleton instance\nexport const agentLoader = new AgentLoader();\n\n// Convenience exports for use in other modules\nexport const getAvailableAgentTypes = () => agentLoader.getAvailableAgentTypes();\nexport const getAgent = (name: string) => agentLoader.getAgent(name);\nexport const getAllAgents = () => agentLoader.getAllAgents();\nexport const getAgentCategories = () => agentLoader.getAgentCategories();\nexport const searchAgents = (query: string) => agentLoader.searchAgents(query);\nexport const isValidAgentType = (name: string) => agentLoader.isValidAgentType(name);\nexport const getAgentsByCategory = (category: string) => agentLoader.getAgentsByCategory(category);\nexport const refreshAgents = () => agentLoader.refresh();\n"],"names":["readFileSync","existsSync","glob","resolve","dirname","parse","parseYaml","LEGACY_AGENT_MAPPING","analyst","coordinator","optimizer","documenter","monitor","specialist","architect","resolveLegacyAgentType","legacyType","AgentLoader","agentCache","Map","categoriesCache","lastLoadTime","CACHE_EXPIRY","getAgentsDirectory","currentDir","process","cwd","claudeAgentsPath","parseAgentFile","filePath","content","frontmatterMatch","match","console","warn","yamlContent","markdownContent","frontmatter","description","name","String","type","undefined","color","model","capabilities","Array","isArray","map","priority","includes","tools","parseTools","hooks","trim","error","extractTools","input","split","t","filter","length","toolsFromFrontmatter","toolsFromCapabilities","Object","loadAgents","agentsDir","agentFiles","Promise","reject","ignore","absolute","err","matches","clear","categoryMap","agent","set","relativePath","replace","pathParts","category","has","get","push","from","entries","agents","sort","a","b","localeCompare","Date","now","needsRefresh","ensureLoaded","size","getAvailableAgentTypes","currentTypes","keys","legacyTypes","Set","getAgent","getAllAgents","values","getAgentCategories","searchAgents","query","lowerQuery","toLowerCase","some","cap","isValidAgentType","getAgentsByCategory","categories","found","find","cat","refresh","agentLoader","refreshAgents"],"mappings":"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"}ories, found;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getAgentCategories()];\n case 1:\n categories = _a.sent();\n found = categories.find(function (cat) { return cat.name === category; });\n return [2 /*return*/, (found === null || found === void 0 ? void 0 : found.agents) || []];\n }\n });\n });\n };\n AgentLoader.prototype.refresh = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.lastLoadTime = 0;\n return [4 /*yield*/, this.loadAgents()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return AgentLoader;\n}());\nexports.AgentLoader = AgentLoader;\n// Singleton instance\nexports.agentLoader = new AgentLoader();\n// Convenience exports for use in other modules\nvar getAvailableAgentTypes = function () { return exports.agentLoader.getAvailableAgentTypes(); };\nexports.getAvailableAgentTypes = getAvailableAgentTypes;\nvar getAgent = function (name) { return exports.agentLoader.getAgent(name); };\nexports.getAgent = getAgent;\nvar getAllAgents = function () { return exports.agentLoader.getAllAgents(); };\nexports.getAllAgents = getAllAgents;\nvar getAgentCategories = function () { return exports.agentLoader.getAgentCategories(); };\nexports.getAgentCategories = getAgentCategories;\nvar searchAgents = function (query) { return exports.agentLoader.searchAgents(query); };\nexports.searchAgents = searchAgents;\nvar isValidAgentType = function (name) { return exports.agentLoader.isValidAgentType(name); };\nexports.isValidAgentType = isValidAgentType;\nvar getAgentsByCategory = function (category) { return exports.agentLoader.getAgentsByCategory(category); };\nexports.getAgentsByCategory = getAgentsByCategory;\nvar refreshAgents = function () { return exports.agentLoader.refresh(); };\nexports.refreshAgents = refreshAgents;\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","Object","create","Iterator","prototype","verb","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","__spreadArray","to","from","pack","arguments","i","l","ar","Array","slice","concat","defineProperty","exports","refreshAgents","getAgentsByCategory","isValidAgentType","searchAgents","getAgentCategories","getAllAgents","getAgent","getAvailableAgentTypes","agentLoader","AgentLoader","resolveLegacyAgentType","node_fs_1","require","glob_1","node_path_1","yaml_1","LEGACY_AGENT_MAPPING","analyst","coordinator","optimizer","documenter","monitor","specialist","architect","legacyType","agentCache","Map","categoriesCache","lastLoadTime","CACHE_EXPIRY","getAgentsDirectory","currentDir","process","cwd","claudeAgentsPath","existsSync","dirname","parseAgentFile","filePath","content","readFileSync","frontmatterMatch","match","console","warn","yamlContent","markdownContent","frontmatter","parse","description","name","String","type","undefined","color","model","capabilities","isArray","map","priority","includes","tools","parseTools","hooks","trim","error","extractTools","input","split","filter","toolsFromFrontmatter","toolsFromCapabilities","loadAgents","agentsDir","agentFiles","categoryMap","_i","agentFiles_1","agent","relativePath","pathParts","category","_a","glob","ignore","absolute","err","matches","clear","set","replace","has","get","entries","agents","sort","a","b","localeCompare","Date","now","needsRefresh","ensureLoaded","size","currentTypes","legacyTypes","keys","Set","values","query","lowerQuery","toLowerCase","some","cap","categories","found","find","cat","refresh"],"mappings":"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"}
@@ -21,6 +21,7 @@ Arguments:
21
21
  Options:
22
22
  --task-id <id> Task identifier for CFN Loop coordination
23
23
  --iteration <n> Iteration number (default: 1)
24
+ --agent-id <id> Explicit agent ID (overrides auto-generated ID)
24
25
  --context <text> Task context/description
25
26
  --mode <mode> Execution mode (cli, api, hybrid)
26
27
  --priority <n> Task priority (1-10)
@@ -115,6 +116,7 @@ Documentation:
115
116
  const taskContext = {
116
117
  taskId: options.taskId,
117
118
  iteration: options.iteration,
119
+ agentId: options.agentId,
118
120
  context: options.context,
119
121
  mode: options.mode,
120
122
  priority: options.priority,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/agent-command.ts"],"sourcesContent":["/**\r\n * Agent Command Handler\r\n *\r\n * Handles `npx claude-flow-novice agent <type> [options]` commands.\r\n * Orchestrates agent definition parsing, prompt building, and execution.\r\n */\r\n\r\nimport { parseAgentDefinition, listAgentDefinitions } from './agent-definition-parser.js';\r\nimport { buildAgentPrompt, TaskContext } from './agent-prompt-builder.js';\r\nimport { executeAgent } from './agent-executor.js';\r\n\r\nexport interface AgentCommandOptions {\r\n taskId?: string;\r\n iteration?: number;\r\n context?: string;\r\n mode?: string;\r\n priority?: number;\r\n parentTaskId?: string;\r\n list?: boolean;\r\n help?: boolean;\r\n}\r\n\r\n/**\r\n * Display agent command help\r\n */\r\nexport function displayAgentHelp(): void {\r\n console.log(`\r\nClaude Flow Novice - Agent Spawning\r\n\r\nUsage:\r\n npx claude-flow-novice agent <type> [options]\r\n\r\nArguments:\r\n <type> Agent type (e.g., rust-enterprise-developer, coder, reviewer)\r\n\r\nOptions:\r\n --task-id <id> Task identifier for CFN Loop coordination\r\n --iteration <n> Iteration number (default: 1)\r\n --context <text> Task context/description\r\n --mode <mode> Execution mode (cli, api, hybrid)\r\n --priority <n> Task priority (1-10)\r\n --parent-task-id <id> Parent task identifier\r\n --list List all available agents\r\n --help Show this help message\r\n\r\nExamples:\r\n # Simple agent spawn\r\n npx claude-flow-novice agent coder --context \"Implement JWT auth\"\r\n\r\n # CFN Loop agent\r\n npx claude-flow-novice agent rust-enterprise-developer \\\\\r\n --task-id task-123 \\\\\r\n --iteration 1 \\\\\r\n --mode standard\r\n\r\n # List available agents\r\n npx claude-flow-novice agent --list\r\n\r\nAvailable Agents:\r\n Agents are defined in .claude/agents/ directory:\r\n - core-agents/ Production-ready core agents\r\n - specialized/ Domain-specific specialists\r\n - development/ Development-focused agents\r\n - security/ Security-focused agents\r\n - custom/ Your custom agents\r\n\r\nDocumentation:\r\n See .claude/agents/CLAUDE.md for agent creation guide\r\n`);\r\n}\r\n\r\n/**\r\n * List all available agent definitions\r\n */\r\nexport async function listAgents(): Promise<void> {\r\n console.log('Searching for agent definitions...\\n');\r\n\r\n const agents = await listAgentDefinitions();\r\n\r\n if (agents.length === 0) {\r\n console.log('No agent definitions found in .claude/agents/');\r\n console.log('\\nTo create agents, see: .claude/agents/CLAUDE.md');\r\n return;\r\n }\r\n\r\n console.log(`Found ${agents.length} agent(s):\\n`);\r\n\r\n // Group by category\r\n const grouped: Record<string, string[]> = {};\r\n\r\n for (const agent of agents) {\r\n const parts = agent.split('/');\r\n const category = parts.length > 1 ? parts[0] : 'root';\r\n const name = parts.length > 1 ? parts.slice(1).join('/') : parts[0];\r\n\r\n if (!grouped[category]) {\r\n grouped[category] = [];\r\n }\r\n grouped[category].push(name);\r\n }\r\n\r\n // Display grouped agents\r\n for (const [category, names] of Object.entries(grouped).sort()) {\r\n console.log(`${category}/`);\r\n for (const name of names.sort()) {\r\n console.log(` - ${name}`);\r\n }\r\n console.log('');\r\n }\r\n\r\n console.log('Usage:');\r\n console.log(' npx claude-flow-novice agent <name> [options]');\r\n}\r\n\r\n/**\r\n * Execute agent command\r\n */\r\nexport async function agentCommand(\r\n agentType: string | undefined,\r\n options: AgentCommandOptions\r\n): Promise<void> {\r\n // Handle --list flag\r\n if (options.list) {\r\n await listAgents();\r\n return;\r\n }\r\n\r\n // Handle --help flag\r\n if (options.help || !agentType) {\r\n displayAgentHelp();\r\n return;\r\n }\r\n\r\n try {\r\n console.log(`[agent-command] Spawning agent: ${agentType}`);\r\n console.log('');\r\n\r\n // Step 1: Parse agent definition\r\n console.log('[1/3] Parsing agent definition...');\r\n const definition = await parseAgentDefinition(agentType);\r\n console.log(` ✓ Found: ${definition.name}`);\r\n console.log(` ✓ Type: ${definition.type || 'specialist'}`);\r\n console.log(` ✓ Model: ${definition.model}`);\r\n console.log(` ✓ Tools: ${definition.tools.join(', ')}`);\r\n console.log('');\r\n\r\n // Step 2: Build agent prompt\r\n console.log('[2/3] Building agent prompt...');\r\n const taskContext: TaskContext = {\r\n taskId: options.taskId,\r\n iteration: options.iteration,\r\n context: options.context,\r\n mode: options.mode,\r\n priority: options.priority,\r\n parentTaskId: options.parentTaskId,\r\n };\r\n\r\n const prompt = await buildAgentPrompt(definition, taskContext);\r\n console.log(` ✓ Prompt size: ${prompt.length} characters`);\r\n console.log(` ✓ CFN Loop protocol: ${prompt.includes('CFN Loop Redis Completion Protocol') ? 'included' : 'not applicable'}`);\r\n console.log(` ✓ Iteration history: ${prompt.includes('## Iteration History') ? 'included' : 'not applicable'}`);\r\n console.log('');\r\n\r\n // Step 3: Execute agent\r\n console.log('[3/3] Executing agent...');\r\n const result = await executeAgent(definition, prompt, taskContext);\r\n\r\n console.log('');\r\n console.log('=== Execution Result ===');\r\n console.log(`Agent ID: ${result.agentId}`);\r\n console.log(`Status: ${result.success ? '✓ Success' : '✗ Failed'}`);\r\n console.log(`Exit Code: ${result.exitCode}`);\r\n\r\n if (result.error) {\r\n console.error(`Error: ${result.error}`);\r\n process.exit(1);\r\n }\r\n\r\n if (result.output) {\r\n console.log('\\nOutput:');\r\n console.log(result.output);\r\n }\r\n\r\n process.exit(result.exitCode);\r\n } catch (error) {\r\n console.error('\\n[agent-command] Error:', error instanceof Error ? error.message : String(error));\r\n process.exit(1);\r\n }\r\n}\r\n"],"names":["parseAgentDefinition","listAgentDefinitions","buildAgentPrompt","executeAgent","displayAgentHelp","console","log","listAgents","agents","length","grouped","agent","parts","split","category","name","slice","join","push","names","Object","entries","sort","agentCommand","agentType","options","list","help","definition","type","model","tools","taskContext","taskId","iteration","context","mode","priority","parentTaskId","prompt","includes","result","agentId","success","exitCode","error","process","exit","output","Error","message","String"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/cli/agent-command.ts"],"sourcesContent":["/**\r\n * Agent Command Handler\r\n *\r\n * Handles `npx claude-flow-novice agent <type> [options]` commands.\r\n * Orchestrates agent definition parsing, prompt building, and execution.\r\n */\r\n\r\nimport { parseAgentDefinition, listAgentDefinitions } from './agent-definition-parser.js';\r\nimport { buildAgentPrompt, TaskContext } from './agent-prompt-builder.js';\r\nimport { executeAgent } from './agent-executor.js';\r\n\r\nexport interface AgentCommandOptions {\r\n taskId?: string;\r\n iteration?: number;\r\n context?: string;\r\n mode?: string;\r\n priority?: number;\r\n parentTaskId?: string;\r\n agentId?: string;\r\n list?: boolean;\r\n help?: boolean;\r\n}\r\n\r\n/**\r\n * Display agent command help\r\n */\r\nexport function displayAgentHelp(): void {\r\n console.log(`\r\nClaude Flow Novice - Agent Spawning\r\n\r\nUsage:\r\n npx claude-flow-novice agent <type> [options]\r\n\r\nArguments:\r\n <type> Agent type (e.g., rust-enterprise-developer, coder, reviewer)\r\n\r\nOptions:\r\n --task-id <id> Task identifier for CFN Loop coordination\r\n --iteration <n> Iteration number (default: 1)\r\n --agent-id <id> Explicit agent ID (overrides auto-generated ID)\r\n --context <text> Task context/description\r\n --mode <mode> Execution mode (cli, api, hybrid)\r\n --priority <n> Task priority (1-10)\r\n --parent-task-id <id> Parent task identifier\r\n --list List all available agents\r\n --help Show this help message\r\n\r\nExamples:\r\n # Simple agent spawn\r\n npx claude-flow-novice agent coder --context \"Implement JWT auth\"\r\n\r\n # CFN Loop agent\r\n npx claude-flow-novice agent rust-enterprise-developer \\\\\r\n --task-id task-123 \\\\\r\n --iteration 1 \\\\\r\n --mode standard\r\n\r\n # List available agents\r\n npx claude-flow-novice agent --list\r\n\r\nAvailable Agents:\r\n Agents are defined in .claude/agents/ directory:\r\n - core-agents/ Production-ready core agents\r\n - specialized/ Domain-specific specialists\r\n - development/ Development-focused agents\r\n - security/ Security-focused agents\r\n - custom/ Your custom agents\r\n\r\nDocumentation:\r\n See .claude/agents/CLAUDE.md for agent creation guide\r\n`);\r\n}\r\n\r\n/**\r\n * List all available agent definitions\r\n */\r\nexport async function listAgents(): Promise<void> {\r\n console.log('Searching for agent definitions...\\n');\r\n\r\n const agents = await listAgentDefinitions();\r\n\r\n if (agents.length === 0) {\r\n console.log('No agent definitions found in .claude/agents/');\r\n console.log('\\nTo create agents, see: .claude/agents/CLAUDE.md');\r\n return;\r\n }\r\n\r\n console.log(`Found ${agents.length} agent(s):\\n`);\r\n\r\n // Group by category\r\n const grouped: Record<string, string[]> = {};\r\n\r\n for (const agent of agents) {\r\n const parts = agent.split('/');\r\n const category = parts.length > 1 ? parts[0] : 'root';\r\n const name = parts.length > 1 ? parts.slice(1).join('/') : parts[0];\r\n\r\n if (!grouped[category]) {\r\n grouped[category] = [];\r\n }\r\n grouped[category].push(name);\r\n }\r\n\r\n // Display grouped agents\r\n for (const [category, names] of Object.entries(grouped).sort()) {\r\n console.log(`${category}/`);\r\n for (const name of names.sort()) {\r\n console.log(` - ${name}`);\r\n }\r\n console.log('');\r\n }\r\n\r\n console.log('Usage:');\r\n console.log(' npx claude-flow-novice agent <name> [options]');\r\n}\r\n\r\n/**\r\n * Execute agent command\r\n */\r\nexport async function agentCommand(\r\n agentType: string | undefined,\r\n options: AgentCommandOptions\r\n): Promise<void> {\r\n // Handle --list flag\r\n if (options.list) {\r\n await listAgents();\r\n return;\r\n }\r\n\r\n // Handle --help flag\r\n if (options.help || !agentType) {\r\n displayAgentHelp();\r\n return;\r\n }\r\n\r\n try {\r\n console.log(`[agent-command] Spawning agent: ${agentType}`);\r\n console.log('');\r\n\r\n // Step 1: Parse agent definition\r\n console.log('[1/3] Parsing agent definition...');\r\n const definition = await parseAgentDefinition(agentType);\r\n console.log(` ✓ Found: ${definition.name}`);\r\n console.log(` ✓ Type: ${definition.type || 'specialist'}`);\r\n console.log(` ✓ Model: ${definition.model}`);\r\n console.log(` ✓ Tools: ${definition.tools.join(', ')}`);\r\n console.log('');\r\n\r\n // Step 2: Build agent prompt\r\n console.log('[2/3] Building agent prompt...');\r\n const taskContext: TaskContext = {\r\n taskId: options.taskId,\r\n iteration: options.iteration,\r\n agentId: options.agentId,\r\n context: options.context,\r\n mode: options.mode,\r\n priority: options.priority,\r\n parentTaskId: options.parentTaskId,\r\n };\r\n\r\n const prompt = await buildAgentPrompt(definition, taskContext);\r\n console.log(` ✓ Prompt size: ${prompt.length} characters`);\r\n console.log(` ✓ CFN Loop protocol: ${prompt.includes('CFN Loop Redis Completion Protocol') ? 'included' : 'not applicable'}`);\r\n console.log(` ✓ Iteration history: ${prompt.includes('## Iteration History') ? 'included' : 'not applicable'}`);\r\n console.log('');\r\n\r\n // Step 3: Execute agent\r\n console.log('[3/3] Executing agent...');\r\n const result = await executeAgent(definition, prompt, taskContext);\r\n\r\n console.log('');\r\n console.log('=== Execution Result ===');\r\n console.log(`Agent ID: ${result.agentId}`);\r\n console.log(`Status: ${result.success ? '✓ Success' : '✗ Failed'}`);\r\n console.log(`Exit Code: ${result.exitCode}`);\r\n\r\n if (result.error) {\r\n console.error(`Error: ${result.error}`);\r\n process.exit(1);\r\n }\r\n\r\n if (result.output) {\r\n console.log('\\nOutput:');\r\n console.log(result.output);\r\n }\r\n\r\n process.exit(result.exitCode);\r\n } catch (error) {\r\n console.error('\\n[agent-command] Error:', error instanceof Error ? error.message : String(error));\r\n process.exit(1);\r\n }\r\n}\r\n"],"names":["parseAgentDefinition","listAgentDefinitions","buildAgentPrompt","executeAgent","displayAgentHelp","console","log","listAgents","agents","length","grouped","agent","parts","split","category","name","slice","join","push","names","Object","entries","sort","agentCommand","agentType","options","list","help","definition","type","model","tools","taskContext","taskId","iteration","agentId","context","mode","priority","parentTaskId","prompt","includes","result","success","exitCode","error","process","exit","output","Error","message","String"],"mappings":"AAAA;;;;;CAKC,GAED,SAASA,oBAAoB,EAAEC,oBAAoB,QAAQ,+BAA+B;AAC1F,SAASC,gBAAgB,QAAqB,4BAA4B;AAC1E,SAASC,YAAY,QAAQ,sBAAsB;AAcnD;;CAEC,GACD,OAAO,SAASC;IACdC,QAAQC,GAAG,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2Cf,CAAC;AACD;AAEA;;CAEC,GACD,OAAO,eAAeC;IACpBF,QAAQC,GAAG,CAAC;IAEZ,MAAME,SAAS,MAAMP;IAErB,IAAIO,OAAOC,MAAM,KAAK,GAAG;QACvBJ,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZ;IACF;IAEAD,QAAQC,GAAG,CAAC,CAAC,MAAM,EAAEE,OAAOC,MAAM,CAAC,YAAY,CAAC;IAEhD,oBAAoB;IACpB,MAAMC,UAAoC,CAAC;IAE3C,KAAK,MAAMC,SAASH,OAAQ;QAC1B,MAAMI,QAAQD,MAAME,KAAK,CAAC;QAC1B,MAAMC,WAAWF,MAAMH,MAAM,GAAG,IAAIG,KAAK,CAAC,EAAE,GAAG;QAC/C,MAAMG,OAAOH,MAAMH,MAAM,GAAG,IAAIG,MAAMI,KAAK,CAAC,GAAGC,IAAI,CAAC,OAAOL,KAAK,CAAC,EAAE;QAEnE,IAAI,CAACF,OAAO,CAACI,SAAS,EAAE;YACtBJ,OAAO,CAACI,SAAS,GAAG,EAAE;QACxB;QACAJ,OAAO,CAACI,SAAS,CAACI,IAAI,CAACH;IACzB;IAEA,yBAAyB;IACzB,KAAK,MAAM,CAACD,UAAUK,MAAM,IAAIC,OAAOC,OAAO,CAACX,SAASY,IAAI,GAAI;QAC9DjB,QAAQC,GAAG,CAAC,GAAGQ,SAAS,CAAC,CAAC;QAC1B,KAAK,MAAMC,QAAQI,MAAMG,IAAI,GAAI;YAC/BjB,QAAQC,GAAG,CAAC,CAAC,IAAI,EAAES,MAAM;QAC3B;QACAV,QAAQC,GAAG,CAAC;IACd;IAEAD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;AACd;AAEA;;CAEC,GACD,OAAO,eAAeiB,aACpBC,SAA6B,EAC7BC,OAA4B;IAE5B,qBAAqB;IACrB,IAAIA,QAAQC,IAAI,EAAE;QAChB,MAAMnB;QACN;IACF;IAEA,qBAAqB;IACrB,IAAIkB,QAAQE,IAAI,IAAI,CAACH,WAAW;QAC9BpB;QACA;IACF;IAEA,IAAI;QACFC,QAAQC,GAAG,CAAC,CAAC,gCAAgC,EAAEkB,WAAW;QAC1DnB,QAAQC,GAAG,CAAC;QAEZ,iCAAiC;QACjCD,QAAQC,GAAG,CAAC;QACZ,MAAMsB,aAAa,MAAM5B,qBAAqBwB;QAC9CnB,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEsB,WAAWb,IAAI,EAAE;QAC3CV,QAAQC,GAAG,CAAC,CAAC,UAAU,EAAEsB,WAAWC,IAAI,IAAI,cAAc;QAC1DxB,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEsB,WAAWE,KAAK,EAAE;QAC5CzB,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEsB,WAAWG,KAAK,CAACd,IAAI,CAAC,OAAO;QACvDZ,QAAQC,GAAG,CAAC;QAEZ,6BAA6B;QAC7BD,QAAQC,GAAG,CAAC;QACZ,MAAM0B,cAA2B;YAC/BC,QAAQR,QAAQQ,MAAM;YACtBC,WAAWT,QAAQS,SAAS;YAC5BC,SAASV,QAAQU,OAAO;YACxBC,SAASX,QAAQW,OAAO;YACxBC,MAAMZ,QAAQY,IAAI;YAClBC,UAAUb,QAAQa,QAAQ;YAC1BC,cAAcd,QAAQc,YAAY;QACpC;QAEA,MAAMC,SAAS,MAAMtC,iBAAiB0B,YAAYI;QAClD3B,QAAQC,GAAG,CAAC,CAAC,iBAAiB,EAAEkC,OAAO/B,MAAM,CAAC,WAAW,CAAC;QAC1DJ,QAAQC,GAAG,CAAC,CAAC,uBAAuB,EAAEkC,OAAOC,QAAQ,CAAC,wCAAwC,aAAa,kBAAkB;QAC7HpC,QAAQC,GAAG,CAAC,CAAC,uBAAuB,EAAEkC,OAAOC,QAAQ,CAAC,0BAA0B,aAAa,kBAAkB;QAC/GpC,QAAQC,GAAG,CAAC;QAEZ,wBAAwB;QACxBD,QAAQC,GAAG,CAAC;QACZ,MAAMoC,SAAS,MAAMvC,aAAayB,YAAYY,QAAQR;QAEtD3B,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC,CAAC,UAAU,EAAEoC,OAAOP,OAAO,EAAE;QACzC9B,QAAQC,GAAG,CAAC,CAAC,QAAQ,EAAEoC,OAAOC,OAAO,GAAG,cAAc,YAAY;QAClEtC,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEoC,OAAOE,QAAQ,EAAE;QAE3C,IAAIF,OAAOG,KAAK,EAAE;YAChBxC,QAAQwC,KAAK,CAAC,CAAC,OAAO,EAAEH,OAAOG,KAAK,EAAE;YACtCC,QAAQC,IAAI,CAAC;QACf;QAEA,IAAIL,OAAOM,MAAM,EAAE;YACjB3C,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAACoC,OAAOM,MAAM;QAC3B;QAEAF,QAAQC,IAAI,CAACL,OAAOE,QAAQ;IAC9B,EAAE,OAAOC,OAAO;QACdxC,QAAQwC,KAAK,CAAC,4BAA4BA,iBAAiBI,QAAQJ,MAAMK,OAAO,GAAGC,OAAON;QAC1FC,QAAQC,IAAI,CAAC;IACf;AACF"}
@@ -75,6 +75,13 @@ import { glob } from 'glob';
75
75
  if (value === '|') {
76
76
  continue; // Will be handled by next lines
77
77
  }
78
+ // Inline array (e.g., [item1, item2, item3])
79
+ if (value.startsWith('[') && value.endsWith(']')) {
80
+ const arrayContent = value.substring(1, value.length - 1);
81
+ const items = arrayContent.split(',').map((item)=>item.trim());
82
+ frontmatter[key] = items;
83
+ continue;
84
+ }
78
85
  // Remove quotes
79
86
  const cleanValue = value.replace(/^["']|["']$/g, '');
80
87
  frontmatter[key] = cleanValue;