monomind 1.19.0 → 2.0.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 (883) hide show
  1. package/README.md +13 -17
  2. package/package.json +16 -35
  3. package/packages/@monomind/cli/.claude/agents/github/issue-tracker.md +0 -2
  4. package/packages/@monomind/cli/.claude/agents/github/pr-manager.md +0 -2
  5. package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +3 -11
  6. package/packages/@monomind/cli/.claude/agents/goal/goal-planner.md +0 -1
  7. package/packages/@monomind/cli/.claude/commands/github/issue-tracker.md +0 -2
  8. package/packages/@monomind/cli/.claude/commands/github/pr-manager.md +0 -2
  9. package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +3 -10
  10. package/packages/@monomind/cli/.claude/commands/mastermind/help.md +3 -3
  11. package/packages/@monomind/cli/.claude/commands/workflows/README.md +0 -1
  12. package/packages/@monomind/cli/.claude/commands/workflows/workflow-create.md +0 -1
  13. package/packages/@monomind/cli/.claude/commands/workflows/workflow-execute.md +1 -3
  14. package/packages/@monomind/cli/.claude/commands/workflows/workflow-export.md +0 -2
  15. package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +18 -1
  16. package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +15 -0
  17. package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +2 -8
  18. package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +149 -7
  19. package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +47 -25
  20. package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +80 -43
  21. package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +8 -4
  22. package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +69 -16
  23. package/packages/@monomind/cli/.claude/helpers/intelligence.cjs +100 -9
  24. package/packages/@monomind/cli/.claude/helpers/router.cjs +78 -5
  25. package/packages/@monomind/cli/.claude/helpers/skill-registry.json +0 -189
  26. package/packages/@monomind/cli/.claude/helpers/token-tracker.cjs +10 -0
  27. package/packages/@monomind/cli/.claude/skills/github-toolkit/SKILL.md +60 -0
  28. package/packages/@monomind/cli/.claude/skills/hive-mind-advanced/SKILL.md +0 -15
  29. package/packages/@monomind/cli/.claude/skills/hooks-automation/SKILL.md +0 -1
  30. package/packages/@monomind/cli/.claude/skills/mastermind-skills/_protocol.md +1 -1
  31. package/packages/@monomind/cli/.claude/skills/mastermind-skills/build.md +1 -2
  32. package/packages/@monomind/cli/.claude/skills/memory-toolkit/SKILL.md +75 -0
  33. package/packages/@monomind/cli/.claude/skills/specialagent/SKILL.md +2 -4
  34. package/packages/@monomind/cli/.claude/skills/swarm-advanced/SKILL.md +0 -1
  35. package/packages/@monomind/cli/README.md +13 -17
  36. package/packages/@monomind/cli/dist/src/autopilot-state.js +4 -5
  37. package/packages/@monomind/cli/dist/src/browser/dashboard/server.js +129 -2
  38. package/packages/@monomind/cli/dist/src/browser/dashboard/ui.html +214 -1764
  39. package/packages/@monomind/cli/dist/src/capabilities/index.d.ts +0 -2
  40. package/packages/@monomind/cli/dist/src/capabilities/index.js +0 -1
  41. package/packages/@monomind/cli/dist/src/commands/agent-lifecycle.js +2 -6
  42. package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +0 -4
  43. package/packages/@monomind/cli/dist/src/commands/analyze.js +1 -29
  44. package/packages/@monomind/cli/dist/src/commands/browse-workflow.js +2 -2
  45. package/packages/@monomind/cli/dist/src/commands/completions.js +3 -22
  46. package/packages/@monomind/cli/dist/src/commands/config.js +0 -6
  47. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +12 -2
  48. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +130 -22
  49. package/packages/@monomind/cli/dist/src/commands/doctor.js +6 -5
  50. package/packages/@monomind/cli/dist/src/commands/guidance.d.ts +5 -1
  51. package/packages/@monomind/cli/dist/src/commands/guidance.js +11 -556
  52. package/packages/@monomind/cli/dist/src/commands/hive-mind-comms.js +11 -4
  53. package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +4 -4
  54. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +9 -6
  55. package/packages/@monomind/cli/dist/src/commands/hooks-formatting.d.ts +1 -5
  56. package/packages/@monomind/cli/dist/src/commands/hooks-formatting.js +1 -18
  57. package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
  58. package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +82 -330
  59. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -5
  60. package/packages/@monomind/cli/dist/src/commands/index.js +0 -45
  61. package/packages/@monomind/cli/dist/src/commands/init-wizard.js +1 -1
  62. package/packages/@monomind/cli/dist/src/commands/init.js +4 -24
  63. package/packages/@monomind/cli/dist/src/commands/neural-core.js +11 -11
  64. package/packages/@monomind/cli/dist/src/commands/neural-optimize.js +9 -11
  65. package/packages/@monomind/cli/dist/src/commands/neural-registry.js +10 -10
  66. package/packages/@monomind/cli/dist/src/commands/providers.js +90 -1
  67. package/packages/@monomind/cli/dist/src/commands/search-universal.d.ts +7 -1
  68. package/packages/@monomind/cli/dist/src/commands/search-universal.js +59 -5
  69. package/packages/@monomind/cli/dist/src/commands/security-cve.js +3 -5
  70. package/packages/@monomind/cli/dist/src/commands/session.js +143 -3
  71. package/packages/@monomind/cli/dist/src/commands/start.js +0 -18
  72. package/packages/@monomind/cli/dist/src/commands/swarm.js +112 -65
  73. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +43 -1
  74. package/packages/@monomind/cli/dist/src/consensus/tally.d.ts +19 -0
  75. package/packages/@monomind/cli/dist/src/consensus/tally.js +34 -0
  76. package/packages/@monomind/cli/dist/src/index.d.ts +3 -2
  77. package/packages/@monomind/cli/dist/src/index.js +9 -12
  78. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +10 -14
  79. package/packages/@monomind/cli/dist/src/init/executor.js +39 -86
  80. package/packages/@monomind/cli/dist/src/init/settings-generator.js +0 -12
  81. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +62 -0
  82. package/packages/@monomind/cli/dist/src/init/types.d.ts +2 -6
  83. package/packages/@monomind/cli/dist/src/init/types.js +0 -3
  84. package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +18 -8
  85. package/packages/@monomind/cli/dist/src/mcp-client.js +0 -2
  86. package/packages/@monomind/cli/dist/src/mcp-server.js +12 -14
  87. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/coherence-check.js +1 -19
  88. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.d.ts +21 -20
  89. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.js +3 -18
  90. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +1 -7
  91. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +2 -2
  92. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +7 -17
  93. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -1
  94. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +174 -38
  95. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.d.ts +18 -0
  96. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.js +25 -0
  97. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +4 -8
  98. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +33 -482
  99. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.d.ts +1 -0
  100. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +51 -43
  101. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.d.ts +31 -0
  102. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.js +196 -0
  103. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +10 -8
  104. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -1
  105. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -1
  106. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +20 -29
  107. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.d.ts +6 -0
  108. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +78 -220
  109. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +9 -4
  110. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +242 -506
  111. package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts +12 -12
  112. package/packages/@monomind/cli/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +4 -4
  113. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +103 -0
  114. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -1
  115. package/packages/@monomind/cli/dist/src/memory/intelligence.js +56 -43
  116. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +14 -9
  117. package/packages/@monomind/cli/dist/src/memory/memory-read.js +1 -19
  118. package/packages/@monomind/cli/dist/src/orgrt/types.d.ts +847 -0
  119. package/packages/@monomind/cli/dist/src/orgrt/types.js +51 -0
  120. package/packages/@monomind/cli/dist/src/parser.js +31 -5
  121. package/packages/@monomind/cli/dist/src/suggest.js +1 -7
  122. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +3 -2
  123. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +22 -70
  124. package/packages/@monomind/cli/dist/src/ui/collector.mjs +69 -44
  125. package/packages/@monomind/cli/dist/src/ui/dashboard.html +112 -25
  126. package/packages/@monomind/cli/dist/src/ui/orgs.html +54 -0
  127. package/packages/@monomind/cli/dist/src/ui/server.mjs +87 -12
  128. package/packages/@monomind/cli/dist/src/update/checker.js +0 -1
  129. package/packages/@monomind/cli/dist/src/utils/cosine-similarity.d.ts +22 -0
  130. package/packages/@monomind/cli/dist/src/utils/cosine-similarity.js +38 -0
  131. package/packages/@monomind/cli/dist/src/utils/input-guards.d.ts +51 -0
  132. package/packages/@monomind/cli/dist/src/utils/input-guards.js +223 -0
  133. package/packages/@monomind/cli/dist/src/utils/json-file.d.ts +33 -0
  134. package/packages/@monomind/cli/dist/src/utils/json-file.js +57 -0
  135. package/packages/@monomind/cli/package.json +11 -7
  136. package/packages/@monomind/cli/scripts/sync-claude-assets.sh +16 -20
  137. package/scripts/generate-agent-avatars.mjs +0 -8
  138. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -54
  139. package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
  140. package/.claude/agents/consensus/quorum-manager.md +0 -803
  141. package/.claude/agents/consensus/security-manager.md +0 -602
  142. package/.claude/agents/core/coder.md +0 -262
  143. package/.claude/agents/core/coordinator.md +0 -71
  144. package/.claude/agents/core/planner.md +0 -170
  145. package/.claude/agents/core/researcher.md +0 -197
  146. package/.claude/agents/core/reviewer.md +0 -327
  147. package/.claude/agents/core/tester.md +0 -318
  148. package/.claude/agents/design/design-monodesign.md +0 -121
  149. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -212
  150. package/.claude/agents/engineering/engineering-ai-engineer.md +0 -165
  151. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -108
  152. package/.claude/agents/engineering/engineering-backend-architect.md +0 -254
  153. package/.claude/agents/engineering/engineering-code-reviewer.md +0 -95
  154. package/.claude/agents/engineering/engineering-data-engineer.md +0 -307
  155. package/.claude/agents/engineering/engineering-database-optimizer.md +0 -200
  156. package/.claude/agents/engineering/engineering-devops-automator.md +0 -430
  157. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -174
  158. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -607
  159. package/.claude/agents/engineering/engineering-frontend-developer.md +0 -249
  160. package/.claude/agents/engineering/engineering-git-workflow-master.md +0 -108
  161. package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -482
  162. package/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -499
  163. package/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -463
  164. package/.claude/agents/engineering/engineering-security-engineer.md +0 -303
  165. package/.claude/agents/engineering/engineering-senior-developer.md +0 -195
  166. package/.claude/agents/engineering/engineering-software-architect.md +0 -100
  167. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -528
  168. package/.claude/agents/engineering/engineering-sre.md +0 -114
  169. package/.claude/agents/engineering/engineering-technical-writer.md +0 -412
  170. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -540
  171. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -351
  172. package/.claude/agents/generated/case-analyst.md +0 -50
  173. package/.claude/agents/generated/channel-intelligence-director.md +0 -87
  174. package/.claude/agents/generated/chief-growth-officer.md +0 -88
  175. package/.claude/agents/generated/churn-analyst.md +0 -53
  176. package/.claude/agents/generated/code-reviewer.md +0 -55
  177. package/.claude/agents/generated/code-validator.md +0 -57
  178. package/.claude/agents/generated/complexity-scanner.md +0 -56
  179. package/.claude/agents/generated/content-seo-strategist.md +0 -90
  180. package/.claude/agents/generated/copy-editor.md +0 -45
  181. package/.claude/agents/generated/court-reporter.md +0 -50
  182. package/.claude/agents/generated/defender.md +0 -51
  183. package/.claude/agents/generated/devbot-orchestrator.md +0 -58
  184. package/.claude/agents/generated/devbot-planner.md +0 -63
  185. package/.claude/agents/generated/developer-community-strategist.md +0 -91
  186. package/.claude/agents/generated/editor-in-chief.md +0 -45
  187. package/.claude/agents/generated/fact-checker.md +0 -45
  188. package/.claude/agents/generated/impact-assessor.md +0 -54
  189. package/.claude/agents/generated/judge.md +0 -51
  190. package/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
  191. package/.claude/agents/generated/prosecutor.md +0 -51
  192. package/.claude/agents/generated/reporter.md +0 -45
  193. package/.claude/agents/generated/social-media-strategist.md +0 -91
  194. package/.claude/agents/generated/video-visual-strategist.md +0 -90
  195. package/.claude/agents/github/code-review-swarm.md +0 -557
  196. package/.claude/agents/github/github-modes.md +0 -154
  197. package/.claude/agents/github/issue-tracker.md +0 -299
  198. package/.claude/agents/github/multi-repo-swarm.md +0 -525
  199. package/.claude/agents/github/pr-manager.md +0 -163
  200. package/.claude/agents/github/project-board-sync.md +0 -478
  201. package/.claude/agents/github/release-manager.md +0 -296
  202. package/.claude/agents/github/repo-architect.md +0 -359
  203. package/.claude/agents/github/swarm-issue.md +0 -548
  204. package/.claude/agents/github/swarm-pr.md +0 -427
  205. package/.claude/agents/github/sync-coordinator.md +0 -355
  206. package/.claude/agents/github/workflow-automation.md +0 -640
  207. package/.claude/agents/goal/goal-planner.md +0 -168
  208. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -129
  209. package/.claude/agents/hive-mind/queen-coordinator.md +0 -202
  210. package/.claude/agents/hive-mind/scout-explorer.md +0 -241
  211. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -192
  212. package/.claude/agents/hive-mind/worker-specialist.md +0 -216
  213. package/.claude/agents/marketing/marketing-competitive-content.md +0 -155
  214. package/.claude/agents/marketing/marketing-cro-specialist.md +0 -147
  215. package/.claude/agents/marketing/marketing-email-specialist.md +0 -90
  216. package/.claude/agents/marketing/marketing-launch-strategist.md +0 -129
  217. package/.claude/agents/marketing/marketing-pricing-strategist.md +0 -127
  218. package/.claude/agents/optimization/benchmark-suite.md +0 -665
  219. package/.claude/agents/optimization/load-balancer.md +0 -431
  220. package/.claude/agents/optimization/performance-monitor.md +0 -672
  221. package/.claude/agents/optimization/resource-allocator.md +0 -674
  222. package/.claude/agents/optimization/topology-optimizer.md +0 -808
  223. package/.claude/agents/reengineer-squad/boss.md +0 -113
  224. package/.claude/agents/reengineer-squad/critic-architect.md +0 -132
  225. package/.claude/agents/reengineer-squad/git-manager.md +0 -145
  226. package/.claude/agents/reengineer-squad/idea-generator.md +0 -95
  227. package/.claude/agents/reengineer-squad/implementer.md +0 -112
  228. package/.claude/agents/reengineer-squad/integration-planner.md +0 -112
  229. package/.claude/agents/reengineer-squad/source-analyst.md +0 -103
  230. package/.claude/agents/reengineer-squad/target-analyst.md +0 -118
  231. package/.claude/agents/reengineer-squad/tester.md +0 -105
  232. package/.claude/agents/schemas/architecture-output.json +0 -43
  233. package/.claude/agents/schemas/code-review-output.json +0 -28
  234. package/.claude/agents/schemas/generic-task-input.json +0 -12
  235. package/.claude/agents/schemas/implementation-output.json +0 -18
  236. package/.claude/agents/schemas/research-output.json +0 -31
  237. package/.claude/agents/schemas/security-audit-output.json +0 -29
  238. package/.claude/agents/schemas/test-report-output.json +0 -29
  239. package/.claude/agents/sparc/architecture.md +0 -453
  240. package/.claude/agents/sparc/pseudocode.md +0 -299
  241. package/.claude/agents/sparc/refinement.md +0 -504
  242. package/.claude/agents/sparc/specification.md +0 -258
  243. package/.claude/agents/specialists/integration-architect.md +0 -94
  244. package/.claude/agents/specialized/agentic-identity-trust.md +0 -388
  245. package/.claude/agents/specialized/agents-orchestrator.md +0 -368
  246. package/.claude/agents/specialized/automation-governance-architect.md +0 -217
  247. package/.claude/agents/specialized/blockchain-security-auditor.md +0 -497
  248. package/.claude/agents/specialized/compliance-auditor.md +0 -159
  249. package/.claude/agents/specialized/identity-graph-operator.md +0 -261
  250. package/.claude/agents/specialized/lsp-index-engineer.md +0 -315
  251. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -89
  252. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -89
  253. package/.claude/agents/specialized/specialized-developer-advocate.md +0 -318
  254. package/.claude/agents/specialized/specialized-document-generator.md +0 -56
  255. package/.claude/agents/specialized/specialized-mcp-builder.md +0 -64
  256. package/.claude/agents/specialized/specialized-model-qa.md +0 -489
  257. package/.claude/agents/specialized/specialized-workflow-architect.md +0 -595
  258. package/.claude/agents/specialized/zk-steward.md +0 -212
  259. package/.claude/agents/swarm/mesh-coordinator.md +0 -363
  260. package/.claude/agents/templates/automation-smart-agent.md +0 -185
  261. package/.claude/agents/templates/coordinator-swarm-init.md +0 -83
  262. package/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  263. package/.claude/agents/testing/production-validator.md +0 -375
  264. package/.claude/agents/testing/tdd-london-swarm.md +0 -241
  265. package/.claude/agents/testing/testing-accessibility-auditor.md +0 -322
  266. package/.claude/agents/testing/testing-api-tester.md +0 -307
  267. package/.claude/agents/testing/testing-evidence-collector.md +0 -213
  268. package/.claude/agents/testing/testing-performance-benchmarker.md +0 -269
  269. package/.claude/agents/testing/testing-test-results-analyzer.md +0 -306
  270. package/.claude/agents/testing/testing-tool-evaluator.md +0 -395
  271. package/.claude/agents/testing/testing-workflow-optimizer.md +0 -451
  272. package/.claude/commands/agents/README.md +0 -14
  273. package/.claude/commands/agents/agent-capabilities.md +0 -25
  274. package/.claude/commands/agents/agent-coordination.md +0 -32
  275. package/.claude/commands/agents/agent-spawning.md +0 -32
  276. package/.claude/commands/agents/agent-types.md +0 -30
  277. package/.claude/commands/analysis/README.md +0 -18
  278. package/.claude/commands/analysis/bottleneck-detect.md +0 -69
  279. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  280. package/.claude/commands/analysis/performance-report.md +0 -52
  281. package/.claude/commands/analysis/token-usage.md +0 -47
  282. package/.claude/commands/automation/README.md +0 -19
  283. package/.claude/commands/automation/auto-agent.md +0 -86
  284. package/.claude/commands/automation/self-healing.md +0 -108
  285. package/.claude/commands/automation/session-memory.md +0 -89
  286. package/.claude/commands/automation/smart-agents.md +0 -81
  287. package/.claude/commands/automation/smart-spawn.md +0 -66
  288. package/.claude/commands/automation/workflow-select.md +0 -60
  289. package/.claude/commands/coordination/README.md +0 -13
  290. package/.claude/commands/coordination/agent-spawn.md +0 -69
  291. package/.claude/commands/coordination/swarm-init.md +0 -82
  292. package/.claude/commands/coordination/task-orchestrate.md +0 -79
  293. package/.claude/commands/github/README.md +0 -24
  294. package/.claude/commands/github/github-modes.md +0 -151
  295. package/.claude/commands/github/issue-tracker.md +0 -293
  296. package/.claude/commands/github/pr-manager.md +0 -173
  297. package/.claude/commands/github/release-manager.md +0 -343
  298. package/.claude/commands/github/repo-architect.md +0 -379
  299. package/.claude/commands/github/sync-coordinator.md +0 -297
  300. package/.claude/commands/hive-mind/README.md +0 -42
  301. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
  302. package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
  303. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
  304. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
  305. package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
  306. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
  307. package/.claude/commands/hive-mind/hive-mind.md +0 -87
  308. package/.claude/commands/hooks/README.md +0 -66
  309. package/.claude/commands/hooks/overview.md +0 -112
  310. package/.claude/commands/hooks/post-edit.md +0 -78
  311. package/.claude/commands/hooks/post-task.md +0 -62
  312. package/.claude/commands/hooks/pre-edit.md +0 -81
  313. package/.claude/commands/hooks/pre-task.md +0 -73
  314. package/.claude/commands/hooks/session-end.md +0 -82
  315. package/.claude/commands/hooks/setup.md +0 -132
  316. package/.claude/commands/mastermind/_repeat.md +0 -492
  317. package/.claude/commands/mastermind/_taskfile.md +0 -232
  318. package/.claude/commands/mastermind/adr.md +0 -9
  319. package/.claude/commands/mastermind/approve.md +0 -91
  320. package/.claude/commands/mastermind/architect.md +0 -52
  321. package/.claude/commands/mastermind/autodev.md +0 -28
  322. package/.claude/commands/mastermind/brain.md +0 -99
  323. package/.claude/commands/mastermind/budget.md +0 -5
  324. package/.claude/commands/mastermind/build.md +0 -23
  325. package/.claude/commands/mastermind/code-review.md +0 -314
  326. package/.claude/commands/mastermind/content.md +0 -23
  327. package/.claude/commands/mastermind/createorg.md +0 -136
  328. package/.claude/commands/mastermind/createtask.md +0 -372
  329. package/.claude/commands/mastermind/debug.md +0 -19
  330. package/.claude/commands/mastermind/design.md +0 -17
  331. package/.claude/commands/mastermind/do.md +0 -525
  332. package/.claude/commands/mastermind/execute.md +0 -17
  333. package/.claude/commands/mastermind/finance.md +0 -23
  334. package/.claude/commands/mastermind/finish.md +0 -17
  335. package/.claude/commands/mastermind/graph-status.md +0 -5
  336. package/.claude/commands/mastermind/help.md +0 -115
  337. package/.claude/commands/mastermind/idea.md +0 -23
  338. package/.claude/commands/mastermind/ideate.md +0 -258
  339. package/.claude/commands/mastermind/improve.md +0 -342
  340. package/.claude/commands/mastermind/loops.md +0 -5
  341. package/.claude/commands/mastermind/marketing.md +0 -23
  342. package/.claude/commands/mastermind/master.md +0 -1124
  343. package/.claude/commands/mastermind/memory.md +0 -227
  344. package/.claude/commands/mastermind/okf-export.md +0 -14
  345. package/.claude/commands/mastermind/okf-import.md +0 -15
  346. package/.claude/commands/mastermind/ops.md +0 -23
  347. package/.claude/commands/mastermind/orgs.md +0 -18
  348. package/.claude/commands/mastermind/orgstatus.md +0 -56
  349. package/.claude/commands/mastermind/plan.md +0 -23
  350. package/.claude/commands/mastermind/receive-review.md +0 -17
  351. package/.claude/commands/mastermind/references/antigravity-tools.md +0 -60
  352. package/.claude/commands/mastermind/references/claude-code-tools.md +0 -50
  353. package/.claude/commands/mastermind/references/codex-tools.md +0 -64
  354. package/.claude/commands/mastermind/references/copilot-tools.md +0 -49
  355. package/.claude/commands/mastermind/references/gemini-tools.md +0 -63
  356. package/.claude/commands/mastermind/references/pi-tools.md +0 -28
  357. package/.claude/commands/mastermind/release.md +0 -23
  358. package/.claude/commands/mastermind/repeat.md +0 -254
  359. package/.claude/commands/mastermind/research.md +0 -23
  360. package/.claude/commands/mastermind/review.md +0 -34
  361. package/.claude/commands/mastermind/runorg.md +0 -153
  362. package/.claude/commands/mastermind/sales.md +0 -23
  363. package/.claude/commands/mastermind/skill-builder.md +0 -17
  364. package/.claude/commands/mastermind/specialagents.md +0 -122
  365. package/.claude/commands/mastermind/stoporg.md +0 -75
  366. package/.claude/commands/mastermind/swarm.md +0 -158
  367. package/.claude/commands/mastermind/taskdev.md +0 -23
  368. package/.claude/commands/mastermind/tdd.md +0 -19
  369. package/.claude/commands/mastermind/techport.md +0 -27
  370. package/.claude/commands/mastermind/understand.md +0 -136
  371. package/.claude/commands/mastermind/verify.md +0 -19
  372. package/.claude/commands/mastermind/worktree.md +0 -17
  373. package/.claude/commands/mastermind.md +0 -121
  374. package/.claude/commands/memory/README.md +0 -79
  375. package/.claude/commands/memory/memory-search.md +0 -77
  376. package/.claude/commands/monitoring/README.md +0 -69
  377. package/.claude/commands/monitoring/agent-metrics.md +0 -65
  378. package/.claude/commands/monitoring/agents.md +0 -71
  379. package/.claude/commands/monitoring/status.md +0 -108
  380. package/.claude/commands/monobrowse.md +0 -21
  381. package/.claude/commands/monoes/README.md +0 -30
  382. package/.claude/commands/monoes/install.md +0 -163
  383. package/.claude/commands/monoes/monoagent.md +0 -148
  384. package/.claude/commands/monoes/monoclip.md +0 -64
  385. package/.claude/commands/monoes/monotask.md +0 -137
  386. package/.claude/commands/monograph/README.md +0 -102
  387. package/.claude/commands/monograph/monograph-build.md +0 -79
  388. package/.claude/commands/monograph/monograph-search.md +0 -96
  389. package/.claude/commands/monograph/monograph-stats.md +0 -53
  390. package/.claude/commands/monograph/monograph-watch.md +0 -63
  391. package/.claude/commands/monograph/monograph-wiki.md +0 -91
  392. package/.claude/commands/optimization/auto-topology.md +0 -85
  393. package/.claude/commands/optimization/performance-optimize.md +0 -79
  394. package/.claude/commands/pair/README.md +0 -79
  395. package/.claude/commands/pair/examples.md +0 -156
  396. package/.claude/commands/pair/modes.md +0 -122
  397. package/.claude/commands/pair/session.md +0 -124
  398. package/.claude/commands/sparc/analyzer.md +0 -35
  399. package/.claude/commands/sparc/architect.md +0 -36
  400. package/.claude/commands/sparc/ask.md +0 -56
  401. package/.claude/commands/sparc/batch-executor.md +0 -37
  402. package/.claude/commands/sparc/code.md +0 -48
  403. package/.claude/commands/sparc/coder.md +0 -37
  404. package/.claude/commands/sparc/debug.md +0 -42
  405. package/.claude/commands/sparc/debugger.md +0 -37
  406. package/.claude/commands/sparc/designer.md +0 -36
  407. package/.claude/commands/sparc/devops.md +0 -68
  408. package/.claude/commands/sparc/docs-writer.md +0 -39
  409. package/.claude/commands/sparc/documenter.md +0 -37
  410. package/.claude/commands/sparc/innovator.md +0 -37
  411. package/.claude/commands/sparc/integration.md +0 -42
  412. package/.claude/commands/sparc/mcp.md +0 -76
  413. package/.claude/commands/sparc/memory-manager.md +0 -57
  414. package/.claude/commands/sparc/optimizer.md +0 -37
  415. package/.claude/commands/sparc/orchestrator.md +0 -70
  416. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  417. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  418. package/.claude/commands/sparc/researcher.md +0 -37
  419. package/.claude/commands/sparc/reviewer.md +0 -37
  420. package/.claude/commands/sparc/security-review.md +0 -39
  421. package/.claude/commands/sparc/sparc-modes.md +0 -120
  422. package/.claude/commands/sparc/sparc.md +0 -71
  423. package/.claude/commands/sparc/spec-pseudocode.md +0 -39
  424. package/.claude/commands/sparc/supabase-admin.md +0 -301
  425. package/.claude/commands/sparc/swarm-coordinator.md +0 -50
  426. package/.claude/commands/sparc/tdd.md +0 -37
  427. package/.claude/commands/sparc/tester.md +0 -37
  428. package/.claude/commands/sparc/tutorial.md +0 -38
  429. package/.claude/commands/sparc/workflow-manager.md +0 -37
  430. package/.claude/commands/sparc.md +0 -112
  431. package/.claude/commands/stream-chain/pipeline.md +0 -116
  432. package/.claude/commands/stream-chain/run.md +0 -156
  433. package/.claude/commands/swarm/README.md +0 -40
  434. package/.claude/commands/swarm/analysis.md +0 -73
  435. package/.claude/commands/swarm/development.md +0 -72
  436. package/.claude/commands/swarm/examples.md +0 -103
  437. package/.claude/commands/swarm/maintenance.md +0 -75
  438. package/.claude/commands/swarm/optimization.md +0 -84
  439. package/.claude/commands/swarm/research.md +0 -76
  440. package/.claude/commands/swarm/swarm.md +0 -79
  441. package/.claude/commands/swarm/testing.md +0 -80
  442. package/.claude/commands/tokens.md +0 -18
  443. package/.claude/commands/truth/start.md +0 -121
  444. package/.claude/commands/ts.md +0 -14
  445. package/.claude/commands/workflows/README.md +0 -65
  446. package/.claude/commands/workflows/development.md +0 -86
  447. package/.claude/commands/workflows/research.md +0 -89
  448. package/.claude/commands/workflows/workflow-create.md +0 -84
  449. package/.claude/commands/workflows/workflow-execute.md +0 -103
  450. package/.claude/commands/workflows/workflow-export.md +0 -90
  451. package/.claude/helpers/control-start.cjs +0 -184
  452. package/.claude/helpers/event-logger.cjs +0 -155
  453. package/.claude/helpers/extras-registry.json +0 -5141
  454. package/.claude/helpers/graphify-freshen.cjs +0 -140
  455. package/.claude/helpers/handlers/adr-draft-handler.cjs +0 -78
  456. package/.claude/helpers/handlers/agent-start-handler.cjs +0 -83
  457. package/.claude/helpers/handlers/budget-status-handler.cjs +0 -14
  458. package/.claude/helpers/handlers/capture-handler.cjs +0 -583
  459. package/.claude/helpers/handlers/compact-handler.cjs +0 -35
  460. package/.claude/helpers/handlers/edit-handler.cjs +0 -145
  461. package/.claude/helpers/handlers/gates-handler.cjs +0 -138
  462. package/.claude/helpers/handlers/graph-status-handler.cjs +0 -45
  463. package/.claude/helpers/handlers/loops-status-handler.cjs +0 -48
  464. package/.claude/helpers/handlers/route-handler.cjs +0 -381
  465. package/.claude/helpers/handlers/session-handler.cjs +0 -234
  466. package/.claude/helpers/handlers/session-restore-handler.cjs +0 -375
  467. package/.claude/helpers/handlers/stats-handler.cjs +0 -14
  468. package/.claude/helpers/handlers/task-handler.cjs +0 -206
  469. package/.claude/helpers/hook-handler.cjs +0 -765
  470. package/.claude/helpers/intelligence.cjs +0 -338
  471. package/.claude/helpers/learning-service.mjs +0 -61
  472. package/.claude/helpers/loop-tracker.cjs +0 -119
  473. package/.claude/helpers/mastermind-activate.cjs +0 -35
  474. package/.claude/helpers/memory-palace.cjs +0 -461
  475. package/.claude/helpers/memory.cjs +0 -193
  476. package/.claude/helpers/metrics-db.mjs +0 -87
  477. package/.claude/helpers/monolean-activate.cjs +0 -30
  478. package/.claude/helpers/monolean-config.cjs +0 -76
  479. package/.claude/helpers/monolean-instructions.cjs +0 -109
  480. package/.claude/helpers/monolean-propagate.cjs +0 -13
  481. package/.claude/helpers/monolean-tracker.cjs +0 -18
  482. package/.claude/helpers/router.cjs +0 -364
  483. package/.claude/helpers/session.cjs +0 -140
  484. package/.claude/helpers/skill-registry.json +0 -1043
  485. package/.claude/helpers/statusline.cjs +0 -1344
  486. package/.claude/helpers/toggle-statusline.cjs +0 -73
  487. package/.claude/helpers/token-tracker.cjs +0 -934
  488. package/.claude/helpers/utils/micro-agents.cjs +0 -354
  489. package/.claude/helpers/utils/monograph.cjs +0 -480
  490. package/.claude/helpers/utils/telemetry.cjs +0 -146
  491. package/.claude/mcp.json +0 -3
  492. package/.claude/scheduled_tasks.lock +0 -1
  493. package/.claude/settings.json +0 -475
  494. package/.claude/skills/.monomind/data/ranked-context.json +0 -5
  495. package/.claude/skills/.monomind/sessions/current.json +0 -13
  496. package/.claude/skills/.monomind/sessions/session-1777829336455.json +0 -15
  497. package/.claude/skills/.monomind/sessions/session-1777831614725.json +0 -15
  498. package/.claude/skills/.monomind/sessions/session-1777832095857.json +0 -15
  499. package/.claude/skills/.monomind/sessions/session-1777839814183.json +0 -15
  500. package/.claude/skills/.monomind/sessions/session-1777841847131.json +0 -15
  501. package/.claude/skills/.monomind/sessions/session-1777843309463.json +0 -15
  502. package/.claude/skills/.monomind/sessions/session-1777880867159.json +0 -15
  503. package/.claude/skills/.monomind/sessions/session-1777881884593.json +0 -15
  504. package/.claude/skills/.monomind/sessions/session-1777884090471.json +0 -15
  505. package/.claude/skills/.monomind/sessions/session-1777884808221.json +0 -15
  506. package/.claude/skills/.monomind/sessions/session-1777885672155.json +0 -15
  507. package/.claude/skills/.monomind/sessions/session-1777886852818.json +0 -15
  508. package/.claude/skills/.monomind/sessions/session-1777896532690.json +0 -15
  509. package/.claude/skills/agent-browser-testing/SKILL.md +0 -964
  510. package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
  511. package/.claude/skills/github-issue-triage/SKILL.md +0 -354
  512. package/.claude/skills/github-repo-recap/SKILL.md +0 -207
  513. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -709
  514. package/.claude/skills/hooks-automation/SKILL.md +0 -1193
  515. package/.claude/skills/mastermind-skills/_agent-select.md +0 -132
  516. package/.claude/skills/mastermind-skills/_delegation.md +0 -83
  517. package/.claude/skills/mastermind-skills/_intake.md +0 -83
  518. package/.claude/skills/mastermind-skills/_protocol.md +0 -404
  519. package/.claude/skills/mastermind-skills/_repeat.md +0 -171
  520. package/.claude/skills/mastermind-skills/access.md +0 -236
  521. package/.claude/skills/mastermind-skills/activity.md +0 -191
  522. package/.claude/skills/mastermind-skills/adapter-manager.md +0 -259
  523. package/.claude/skills/mastermind-skills/adapters.md +0 -204
  524. package/.claude/skills/mastermind-skills/agent-detail.md +0 -242
  525. package/.claude/skills/mastermind-skills/agents.md +0 -178
  526. package/.claude/skills/mastermind-skills/approval-detail.md +0 -259
  527. package/.claude/skills/mastermind-skills/approve.md +0 -188
  528. package/.claude/skills/mastermind-skills/architect.md +0 -862
  529. package/.claude/skills/mastermind-skills/autodev.md +0 -360
  530. package/.claude/skills/mastermind-skills/backup.md +0 -197
  531. package/.claude/skills/mastermind-skills/bootstrap.md +0 -190
  532. package/.claude/skills/mastermind-skills/budgets.md +0 -237
  533. package/.claude/skills/mastermind-skills/build.md +0 -170
  534. package/.claude/skills/mastermind-skills/code-quality-reviewer-prompt.md +0 -60
  535. package/.claude/skills/mastermind-skills/companies.md +0 -256
  536. package/.claude/skills/mastermind-skills/content.md +0 -197
  537. package/.claude/skills/mastermind-skills/costs.md +0 -151
  538. package/.claude/skills/mastermind-skills/createorg.md +0 -862
  539. package/.claude/skills/mastermind-skills/debug.md +0 -232
  540. package/.claude/skills/mastermind-skills/design.md +0 -189
  541. package/.claude/skills/mastermind-skills/diagnose.md +0 -249
  542. package/.claude/skills/mastermind-skills/env.md +0 -198
  543. package/.claude/skills/mastermind-skills/environments.md +0 -250
  544. package/.claude/skills/mastermind-skills/execute.md +0 -104
  545. package/.claude/skills/mastermind-skills/export.md +0 -333
  546. package/.claude/skills/mastermind-skills/finance.md +0 -166
  547. package/.claude/skills/mastermind-skills/finish.md +0 -251
  548. package/.claude/skills/mastermind-skills/goal-detail.md +0 -255
  549. package/.claude/skills/mastermind-skills/goals.md +0 -149
  550. package/.claude/skills/mastermind-skills/heartbeat.md +0 -164
  551. package/.claude/skills/mastermind-skills/idea.md +0 -1142
  552. package/.claude/skills/mastermind-skills/implementer-prompt.md +0 -109
  553. package/.claude/skills/mastermind-skills/import.md +0 -281
  554. package/.claude/skills/mastermind-skills/inbox.md +0 -214
  555. package/.claude/skills/mastermind-skills/instance-settings.md +0 -315
  556. package/.claude/skills/mastermind-skills/instance.md +0 -233
  557. package/.claude/skills/mastermind-skills/invite-landing.md +0 -227
  558. package/.claude/skills/mastermind-skills/invites.md +0 -254
  559. package/.claude/skills/mastermind-skills/issue-detail.md +0 -291
  560. package/.claude/skills/mastermind-skills/issues.md +0 -235
  561. package/.claude/skills/mastermind-skills/join-queue.md +0 -170
  562. package/.claude/skills/mastermind-skills/liveness.md +0 -392
  563. package/.claude/skills/mastermind-skills/marketing.md +0 -228
  564. package/.claude/skills/mastermind-skills/memory.md +0 -321
  565. package/.claude/skills/mastermind-skills/monitor.md +0 -1284
  566. package/.claude/skills/mastermind-skills/monotask.md +0 -350
  567. package/.claude/skills/mastermind-skills/my-issues.md +0 -146
  568. package/.claude/skills/mastermind-skills/new-agent.md +0 -241
  569. package/.claude/skills/mastermind-skills/ops.md +0 -168
  570. package/.claude/skills/mastermind-skills/org-chart.md +0 -209
  571. package/.claude/skills/mastermind-skills/org-settings.md +0 -254
  572. package/.claude/skills/mastermind-skills/orgs.md +0 -98
  573. package/.claude/skills/mastermind-skills/orgstatus.md +0 -194
  574. package/.claude/skills/mastermind-skills/plan-to-tasks.md +0 -136
  575. package/.claude/skills/mastermind-skills/plan.md +0 -198
  576. package/.claude/skills/mastermind-skills/plugin-manager.md +0 -241
  577. package/.claude/skills/mastermind-skills/plugin-settings.md +0 -273
  578. package/.claude/skills/mastermind-skills/plugins.md +0 -190
  579. package/.claude/skills/mastermind-skills/profile.md +0 -187
  580. package/.claude/skills/mastermind-skills/project-detail.md +0 -249
  581. package/.claude/skills/mastermind-skills/project-workspace.md +0 -244
  582. package/.claude/skills/mastermind-skills/projects.md +0 -164
  583. package/.claude/skills/mastermind-skills/receive-review.md +0 -213
  584. package/.claude/skills/mastermind-skills/references/copywriting-frameworks.md +0 -181
  585. package/.claude/skills/mastermind-skills/references/persuasion-psychology.md +0 -158
  586. package/.claude/skills/mastermind-skills/release.md +0 -168
  587. package/.claude/skills/mastermind-skills/research.md +0 -168
  588. package/.claude/skills/mastermind-skills/review.md +0 -233
  589. package/.claude/skills/mastermind-skills/routine-detail.md +0 -253
  590. package/.claude/skills/mastermind-skills/routines.md +0 -203
  591. package/.claude/skills/mastermind-skills/runorg.md +0 -714
  592. package/.claude/skills/mastermind-skills/sales.md +0 -170
  593. package/.claude/skills/mastermind-skills/search.md +0 -186
  594. package/.claude/skills/mastermind-skills/secrets.md +0 -199
  595. package/.claude/skills/mastermind-skills/skill-builder.md +0 -274
  596. package/.claude/skills/mastermind-skills/skills.md +0 -156
  597. package/.claude/skills/mastermind-skills/spec-reviewer-prompt.md +0 -63
  598. package/.claude/skills/mastermind-skills/stoporg.md +0 -138
  599. package/.claude/skills/mastermind-skills/taskdev.md +0 -307
  600. package/.claude/skills/mastermind-skills/tasks.md +0 -149
  601. package/.claude/skills/mastermind-skills/tdd.md +0 -394
  602. package/.claude/skills/mastermind-skills/techport.md +0 -777
  603. package/.claude/skills/mastermind-skills/threads.md +0 -259
  604. package/.claude/skills/mastermind-skills/tree-control.md +0 -250
  605. package/.claude/skills/mastermind-skills/verify.md +0 -196
  606. package/.claude/skills/mastermind-skills/wiki.md +0 -314
  607. package/.claude/skills/mastermind-skills/workspace-detail.md +0 -317
  608. package/.claude/skills/mastermind-skills/workspaces.md +0 -261
  609. package/.claude/skills/mastermind-skills/worktree.md +0 -215
  610. package/.claude/skills/monodesign/SKILL.md +0 -333
  611. package/.claude/skills/monodesign/adapt.md +0 -53
  612. package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
  613. package/.claude/skills/monodesign/animate.md +0 -65
  614. package/.claude/skills/monodesign/audit.md +0 -89
  615. package/.claude/skills/monodesign/bolder.md +0 -50
  616. package/.claude/skills/monodesign/clarify.md +0 -64
  617. package/.claude/skills/monodesign/colorize.md +0 -68
  618. package/.claude/skills/monodesign/craft.md +0 -51
  619. package/.claude/skills/monodesign/critique.md +0 -66
  620. package/.claude/skills/monodesign/delight.md +0 -47
  621. package/.claude/skills/monodesign/distill.md +0 -56
  622. package/.claude/skills/monodesign/document.md +0 -83
  623. package/.claude/skills/monodesign/extract.md +0 -74
  624. package/.claude/skills/monodesign/harden.md +0 -65
  625. package/.claude/skills/monodesign/live.md +0 -59
  626. package/.claude/skills/monodesign/onboard.md +0 -50
  627. package/.claude/skills/monodesign/optimize.md +0 -64
  628. package/.claude/skills/monodesign/overdrive.md +0 -56
  629. package/.claude/skills/monodesign/polish.md +0 -68
  630. package/.claude/skills/monodesign/quieter.md +0 -57
  631. package/.claude/skills/monodesign/reference/adapt.md +0 -190
  632. package/.claude/skills/monodesign/reference/animate.md +0 -175
  633. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -359
  634. package/.claude/skills/monodesign/reference/audit.md +0 -133
  635. package/.claude/skills/monodesign/reference/bolder.md +0 -113
  636. package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
  637. package/.claude/skills/monodesign/reference/brand.md +0 -114
  638. package/.claude/skills/monodesign/reference/clarify.md +0 -174
  639. package/.claude/skills/monodesign/reference/codex.md +0 -107
  640. package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
  641. package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
  642. package/.claude/skills/monodesign/reference/colorize.md +0 -154
  643. package/.claude/skills/monodesign/reference/component-specs.md +0 -260
  644. package/.claude/skills/monodesign/reference/component-states.md +0 -274
  645. package/.claude/skills/monodesign/reference/component-system.md +0 -358
  646. package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
  647. package/.claude/skills/monodesign/reference/craft.md +0 -196
  648. package/.claude/skills/monodesign/reference/critique.md +0 -213
  649. package/.claude/skills/monodesign/reference/delight.md +0 -302
  650. package/.claude/skills/monodesign/reference/design-principles.md +0 -246
  651. package/.claude/skills/monodesign/reference/distill.md +0 -111
  652. package/.claude/skills/monodesign/reference/document.md +0 -427
  653. package/.claude/skills/monodesign/reference/extract.md +0 -69
  654. package/.claude/skills/monodesign/reference/harden.md +0 -347
  655. package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
  656. package/.claude/skills/monodesign/reference/hooks.md +0 -99
  657. package/.claude/skills/monodesign/reference/image-prompts.md +0 -130
  658. package/.claude/skills/monodesign/reference/interaction-design.md +0 -195
  659. package/.claude/skills/monodesign/reference/layout.md +0 -141
  660. package/.claude/skills/monodesign/reference/live.md +0 -622
  661. package/.claude/skills/monodesign/reference/motion-design.md +0 -109
  662. package/.claude/skills/monodesign/reference/onboard.md +0 -234
  663. package/.claude/skills/monodesign/reference/optimize.md +0 -258
  664. package/.claude/skills/monodesign/reference/overdrive.md +0 -130
  665. package/.claude/skills/monodesign/reference/personas.md +0 -179
  666. package/.claude/skills/monodesign/reference/polish.md +0 -233
  667. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
  668. package/.claude/skills/monodesign/reference/product.md +0 -62
  669. package/.claude/skills/monodesign/reference/quieter.md +0 -99
  670. package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
  671. package/.claude/skills/monodesign/reference/shape.md +0 -151
  672. package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
  673. package/.claude/skills/monodesign/reference/teach.md +0 -156
  674. package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
  675. package/.claude/skills/monodesign/reference/typeset.md +0 -124
  676. package/.claude/skills/monodesign/reference/typography.md +0 -159
  677. package/.claude/skills/monodesign/reference/ux-research.md +0 -143
  678. package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
  679. package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
  680. package/.claude/skills/monodesign/shape.md +0 -71
  681. package/.claude/skills/monodesign/teach.md +0 -69
  682. package/.claude/skills/monodesign/typeset.md +0 -59
  683. package/.claude/skills/monolean/SKILL.md +0 -118
  684. package/.claude/skills/monolean-audit/SKILL.md +0 -41
  685. package/.claude/skills/monolean-debt/SKILL.md +0 -46
  686. package/.claude/skills/monolean-help/SKILL.md +0 -60
  687. package/.claude/skills/monolean-review/SKILL.md +0 -57
  688. package/.claude/skills/monomind/.monomind/registry.json +0 -6
  689. package/.claude/skills/monomind/browse-agentcore.md +0 -115
  690. package/.claude/skills/monomind/browse-electron.md +0 -188
  691. package/.claude/skills/monomind/browse-qa.md +0 -228
  692. package/.claude/skills/monomind/browse-references/authentication.md +0 -161
  693. package/.claude/skills/monomind/browse-references/trust-boundaries.md +0 -40
  694. package/.claude/skills/monomind/browse-references/video-recording.md +0 -83
  695. package/.claude/skills/monomind/browse-slack.md +0 -188
  696. package/.claude/skills/monomind/browse-vercel.md +0 -239
  697. package/.claude/skills/monomind/browse.md +0 -724
  698. package/.claude/skills/monomotion/SKILL.md +0 -145
  699. package/.claude/skills/monomotion/rules/api-control.md +0 -139
  700. package/.claude/skills/monomotion/rules/effects.md +0 -109
  701. package/.claude/skills/monomotion/rules/integration.md +0 -140
  702. package/.claude/skills/monomotion/rules/scroll.md +0 -131
  703. package/.claude/skills/monomotion/rules/sequencing.md +0 -105
  704. package/.claude/skills/monomotion/rules/svg.md +0 -101
  705. package/.claude/skills/monomotion/rules/text.md +0 -119
  706. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  707. package/.claude/skills/performance-analysis/SKILL.md +0 -560
  708. package/.claude/skills/skill-builder/SKILL.md +0 -910
  709. package/.claude/skills/sparc-methodology/SKILL.md +0 -950
  710. package/.claude/skills/specialagent/SKILL.md +0 -208
  711. package/.claude/skills/stop-slop/SKILL.md +0 -67
  712. package/.claude/skills/stop-slop/references/examples.md +0 -61
  713. package/.claude/skills/stop-slop/references/phrases.md +0 -130
  714. package/.claude/skills/stop-slop/references/structures.md +0 -136
  715. package/.claude/skills/swarm-advanced/SKILL.md +0 -937
  716. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  717. package/.claude/skills/verification-quality/SKILL.md +0 -674
  718. package/.claude/workflows/feature-dev.yaml +0 -18
  719. package/.claude/workflows/security-audit.yaml +0 -10
  720. package/packages/@monomind/cli/.claude/agents/generated/case-analyst.md +0 -50
  721. package/packages/@monomind/cli/.claude/agents/generated/channel-intelligence-director.md +0 -87
  722. package/packages/@monomind/cli/.claude/agents/generated/chief-growth-officer.md +0 -88
  723. package/packages/@monomind/cli/.claude/agents/generated/churn-analyst.md +0 -53
  724. package/packages/@monomind/cli/.claude/agents/generated/code-reviewer.md +0 -55
  725. package/packages/@monomind/cli/.claude/agents/generated/code-validator.md +0 -57
  726. package/packages/@monomind/cli/.claude/agents/generated/complexity-scanner.md +0 -56
  727. package/packages/@monomind/cli/.claude/agents/generated/content-seo-strategist.md +0 -90
  728. package/packages/@monomind/cli/.claude/agents/generated/copy-editor.md +0 -45
  729. package/packages/@monomind/cli/.claude/agents/generated/court-reporter.md +0 -50
  730. package/packages/@monomind/cli/.claude/agents/generated/defender.md +0 -51
  731. package/packages/@monomind/cli/.claude/agents/generated/devbot-orchestrator.md +0 -58
  732. package/packages/@monomind/cli/.claude/agents/generated/devbot-planner.md +0 -63
  733. package/packages/@monomind/cli/.claude/agents/generated/developer-community-strategist.md +0 -91
  734. package/packages/@monomind/cli/.claude/agents/generated/editor-in-chief.md +0 -45
  735. package/packages/@monomind/cli/.claude/agents/generated/fact-checker.md +0 -45
  736. package/packages/@monomind/cli/.claude/agents/generated/impact-assessor.md +0 -54
  737. package/packages/@monomind/cli/.claude/agents/generated/judge.md +0 -51
  738. package/packages/@monomind/cli/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
  739. package/packages/@monomind/cli/.claude/agents/generated/prosecutor.md +0 -51
  740. package/packages/@monomind/cli/.claude/agents/generated/reporter.md +0 -45
  741. package/packages/@monomind/cli/.claude/agents/generated/social-media-strategist.md +0 -91
  742. package/packages/@monomind/cli/.claude/agents/generated/video-visual-strategist.md +0 -90
  743. package/packages/@monomind/cli/.claude/agents/reengineer-squad/boss.md +0 -113
  744. package/packages/@monomind/cli/.claude/agents/reengineer-squad/critic-architect.md +0 -132
  745. package/packages/@monomind/cli/.claude/agents/reengineer-squad/git-manager.md +0 -145
  746. package/packages/@monomind/cli/.claude/agents/reengineer-squad/idea-generator.md +0 -95
  747. package/packages/@monomind/cli/.claude/agents/reengineer-squad/implementer.md +0 -112
  748. package/packages/@monomind/cli/.claude/agents/reengineer-squad/integration-planner.md +0 -112
  749. package/packages/@monomind/cli/.claude/agents/reengineer-squad/source-analyst.md +0 -103
  750. package/packages/@monomind/cli/.claude/agents/reengineer-squad/target-analyst.md +0 -118
  751. package/packages/@monomind/cli/.claude/agents/reengineer-squad/tester.md +0 -105
  752. package/packages/@monomind/cli/.claude/agents/sparc/architecture.md +0 -453
  753. package/packages/@monomind/cli/.claude/agents/sparc/pseudocode.md +0 -299
  754. package/packages/@monomind/cli/.claude/agents/sparc/refinement.md +0 -504
  755. package/packages/@monomind/cli/.claude/agents/sparc/specification.md +0 -258
  756. package/packages/@monomind/cli/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  757. package/packages/@monomind/cli/.claude/commands/sparc/analyzer.md +0 -35
  758. package/packages/@monomind/cli/.claude/commands/sparc/architect.md +0 -36
  759. package/packages/@monomind/cli/.claude/commands/sparc/ask.md +0 -56
  760. package/packages/@monomind/cli/.claude/commands/sparc/batch-executor.md +0 -37
  761. package/packages/@monomind/cli/.claude/commands/sparc/code.md +0 -48
  762. package/packages/@monomind/cli/.claude/commands/sparc/coder.md +0 -37
  763. package/packages/@monomind/cli/.claude/commands/sparc/debug.md +0 -42
  764. package/packages/@monomind/cli/.claude/commands/sparc/debugger.md +0 -37
  765. package/packages/@monomind/cli/.claude/commands/sparc/designer.md +0 -36
  766. package/packages/@monomind/cli/.claude/commands/sparc/devops.md +0 -68
  767. package/packages/@monomind/cli/.claude/commands/sparc/docs-writer.md +0 -39
  768. package/packages/@monomind/cli/.claude/commands/sparc/documenter.md +0 -37
  769. package/packages/@monomind/cli/.claude/commands/sparc/innovator.md +0 -37
  770. package/packages/@monomind/cli/.claude/commands/sparc/integration.md +0 -42
  771. package/packages/@monomind/cli/.claude/commands/sparc/mcp.md +0 -76
  772. package/packages/@monomind/cli/.claude/commands/sparc/memory-manager.md +0 -57
  773. package/packages/@monomind/cli/.claude/commands/sparc/optimizer.md +0 -37
  774. package/packages/@monomind/cli/.claude/commands/sparc/orchestrator.md +0 -70
  775. package/packages/@monomind/cli/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  776. package/packages/@monomind/cli/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  777. package/packages/@monomind/cli/.claude/commands/sparc/researcher.md +0 -37
  778. package/packages/@monomind/cli/.claude/commands/sparc/reviewer.md +0 -37
  779. package/packages/@monomind/cli/.claude/commands/sparc/security-review.md +0 -39
  780. package/packages/@monomind/cli/.claude/commands/sparc/sparc-modes.md +0 -120
  781. package/packages/@monomind/cli/.claude/commands/sparc/sparc.md +0 -71
  782. package/packages/@monomind/cli/.claude/commands/sparc/spec-pseudocode.md +0 -39
  783. package/packages/@monomind/cli/.claude/commands/sparc/supabase-admin.md +0 -301
  784. package/packages/@monomind/cli/.claude/commands/sparc/swarm-coordinator.md +0 -50
  785. package/packages/@monomind/cli/.claude/commands/sparc/tdd.md +0 -37
  786. package/packages/@monomind/cli/.claude/commands/sparc/tester.md +0 -37
  787. package/packages/@monomind/cli/.claude/commands/sparc/tutorial.md +0 -38
  788. package/packages/@monomind/cli/.claude/commands/sparc/workflow-manager.md +0 -37
  789. package/packages/@monomind/cli/.claude/commands/sparc.md +0 -112
  790. package/packages/@monomind/cli/.claude/skills/sparc-methodology/SKILL.md +0 -950
  791. package/packages/@monomind/cli/dist/src/capabilities/enrichment.d.ts +0 -44
  792. package/packages/@monomind/cli/dist/src/capabilities/enrichment.js +0 -141
  793. package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.d.ts +0 -14
  794. package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.js +0 -295
  795. package/packages/@monomind/cli/dist/src/commands/analyze-graph.d.ts +0 -14
  796. package/packages/@monomind/cli/dist/src/commands/analyze-graph.js +0 -304
  797. package/packages/@monomind/cli/dist/src/commands/claims.d.ts +0 -10
  798. package/packages/@monomind/cli/dist/src/commands/claims.js +0 -650
  799. package/packages/@monomind/cli/dist/src/commands/daemon.d.ts +0 -8
  800. package/packages/@monomind/cli/dist/src/commands/daemon.js +0 -681
  801. package/packages/@monomind/cli/dist/src/commands/enrich.d.ts +0 -10
  802. package/packages/@monomind/cli/dist/src/commands/enrich.js +0 -58
  803. package/packages/@monomind/cli/dist/src/commands/issues.d.ts +0 -21
  804. package/packages/@monomind/cli/dist/src/commands/issues.js +0 -575
  805. package/packages/@monomind/cli/dist/src/commands/workflow.d.ts +0 -8
  806. package/packages/@monomind/cli/dist/src/commands/workflow.js +0 -575
  807. package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +0 -36
  808. package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +0 -88
  809. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  810. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +0 -717
  811. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +0 -198
  812. package/packages/@monomind/cli/dist/src/services/claim-service.js +0 -890
  813. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +0 -311
  814. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +0 -1183
  815. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +0 -230
  816. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +0 -1350
  817. package/packages/@monomind/cli/dist/src/ui/.monomind/capture/active-run.json +0 -1
  818. package/packages/@monomind/guidance/README.md +0 -87
  819. package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
  820. package/packages/@monomind/guidance/dist/adversarial.js +0 -572
  821. package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
  822. package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
  823. package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
  824. package/packages/@monomind/guidance/dist/artifacts.js +0 -356
  825. package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
  826. package/packages/@monomind/guidance/dist/authority.js +0 -558
  827. package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
  828. package/packages/@monomind/guidance/dist/capabilities.js +0 -485
  829. package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
  830. package/packages/@monomind/guidance/dist/coherence.js +0 -378
  831. package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
  832. package/packages/@monomind/guidance/dist/compiler.js +0 -425
  833. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
  834. package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
  835. package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
  836. package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
  837. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
  838. package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
  839. package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
  840. package/packages/@monomind/guidance/dist/evolution.js +0 -500
  841. package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
  842. package/packages/@monomind/guidance/dist/gates.js +0 -302
  843. package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
  844. package/packages/@monomind/guidance/dist/gateway.js +0 -452
  845. package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
  846. package/packages/@monomind/guidance/dist/generators.js +0 -682
  847. package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
  848. package/packages/@monomind/guidance/dist/headless.js +0 -342
  849. package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
  850. package/packages/@monomind/guidance/dist/hooks.js +0 -347
  851. package/packages/@monomind/guidance/dist/index.d.ts +0 -203
  852. package/packages/@monomind/guidance/dist/index.js +0 -320
  853. package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
  854. package/packages/@monomind/guidance/dist/ledger.js +0 -375
  855. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
  856. package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
  857. package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
  858. package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
  859. package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
  860. package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
  861. package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
  862. package/packages/@monomind/guidance/dist/optimizer.js +0 -329
  863. package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
  864. package/packages/@monomind/guidance/dist/persistence.js +0 -464
  865. package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
  866. package/packages/@monomind/guidance/dist/proof.js +0 -238
  867. package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
  868. package/packages/@monomind/guidance/dist/retriever.js +0 -394
  869. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
  870. package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
  871. package/packages/@monomind/guidance/dist/temporal.d.ts +0 -428
  872. package/packages/@monomind/guidance/dist/temporal.js +0 -660
  873. package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
  874. package/packages/@monomind/guidance/dist/trust.js +0 -474
  875. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
  876. package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
  877. package/packages/@monomind/guidance/dist/types.d.ts +0 -378
  878. package/packages/@monomind/guidance/dist/types.js +0 -10
  879. package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
  880. package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
  881. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
  882. package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
  883. package/packages/@monomind/guidance/package.json +0 -119
@@ -1,1183 +0,0 @@
1
- /**
2
- * Headless Worker Executor
3
- * Enables workers to invoke Claude Code in headless mode with configurable sandbox profiles.
4
- *
5
- * ADR-020: Headless Worker Integration Architecture
6
- * - Integrates with CLAUDE_CODE_HEADLESS and CLAUDE_CODE_SANDBOX_MODE environment variables
7
- * - Provides process pool for concurrent execution
8
- * - Builds context from file glob patterns
9
- * - Supports prompt templates and output parsing
10
- * - Implements timeout and graceful error handling
11
- *
12
- * Key Features:
13
- * - Process pool with configurable maxConcurrent
14
- * - Context building from file glob patterns with caching
15
- * - Prompt template system with context injection
16
- * - Output parsing (text, json, markdown)
17
- * - Timeout handling with graceful termination
18
- * - Execution logging for debugging
19
- * - Event emission for monitoring
20
- */
21
- import { spawn, execSync } from 'child_process';
22
- import { EventEmitter } from 'events';
23
- import { existsSync, readFileSync, readdirSync, mkdirSync, writeFileSync, renameSync } from 'fs';
24
- import { join } from 'path';
25
- // ============================================
26
- // Constants
27
- // ============================================
28
- /**
29
- * Array of headless worker types for runtime checking
30
- */
31
- export const HEADLESS_WORKER_TYPES = [
32
- 'audit',
33
- 'optimize',
34
- 'testgaps',
35
- 'document',
36
- 'ultralearn',
37
- 'refactor',
38
- 'deepdive',
39
- 'predict',
40
- ];
41
- /**
42
- * Array of local worker types
43
- */
44
- export const LOCAL_WORKER_TYPES = [
45
- 'map',
46
- 'consolidate',
47
- 'benchmark',
48
- 'preload',
49
- ];
50
- /**
51
- * Model ID mapping
52
- */
53
- /**
54
- * Model ID mapping — use short aliases so they auto-resolve to the latest
55
- * snapshot. Hardcoded dated IDs (e.g. claude-sonnet-4-5-20250929) go stale
56
- * when Anthropic retires them, causing 100% worker failure (#1431).
57
- *
58
- * Users can override per-worker via the `model` field in daemon-state.json
59
- * or the ANTHROPIC_MODEL environment variable.
60
- */
61
- const MODEL_IDS = {
62
- sonnet: 'sonnet',
63
- opus: 'opus',
64
- haiku: 'haiku',
65
- };
66
- /**
67
- * Default headless worker configurations based on ADR-020
68
- */
69
- export const HEADLESS_WORKER_CONFIGS = {
70
- audit: {
71
- type: 'audit',
72
- mode: 'headless',
73
- intervalMs: 30 * 60 * 1000,
74
- priority: 'critical',
75
- description: 'AI-powered security analysis',
76
- enabled: true,
77
- headless: {
78
- promptTemplate: `Analyze this codebase for security vulnerabilities:
79
- - Check for hardcoded secrets (API keys, passwords)
80
- - Identify SQL injection risks
81
- - Find XSS vulnerabilities
82
- - Check for insecure dependencies
83
- - Identify authentication/authorization issues
84
-
85
- Provide a JSON report with:
86
- {
87
- "vulnerabilities": [{ "severity": "high|medium|low", "file": "...", "line": N, "description": "..." }],
88
- "riskScore": 0-100,
89
- "recommendations": ["..."]
90
- }`,
91
- sandbox: 'strict',
92
- model: 'haiku',
93
- outputFormat: 'json',
94
- contextPatterns: ['**/*.ts', '**/*.js', '**/package.json'],
95
- timeoutMs: 5 * 60 * 1000,
96
- },
97
- },
98
- optimize: {
99
- type: 'optimize',
100
- mode: 'headless',
101
- intervalMs: 60 * 60 * 1000,
102
- priority: 'high',
103
- description: 'AI optimization suggestions',
104
- enabled: true,
105
- headless: {
106
- promptTemplate: `Analyze this codebase for performance optimizations:
107
- - Identify N+1 query patterns
108
- - Find unnecessary re-renders in React
109
- - Suggest caching opportunities
110
- - Identify memory leaks
111
- - Find redundant computations
112
-
113
- Provide actionable suggestions with code examples.`,
114
- sandbox: 'permissive',
115
- model: 'sonnet',
116
- outputFormat: 'markdown',
117
- contextPatterns: ['src/**/*.ts', 'src/**/*.tsx'],
118
- timeoutMs: 10 * 60 * 1000,
119
- },
120
- },
121
- testgaps: {
122
- type: 'testgaps',
123
- mode: 'headless',
124
- intervalMs: 60 * 60 * 1000,
125
- priority: 'normal',
126
- description: 'AI test gap analysis',
127
- enabled: true,
128
- headless: {
129
- promptTemplate: `Analyze test coverage and identify gaps:
130
- - Find untested functions and classes
131
- - Identify edge cases not covered
132
- - Suggest new test scenarios
133
- - Check for missing error handling tests
134
- - Identify integration test gaps
135
-
136
- For each gap, provide a test skeleton.`,
137
- sandbox: 'permissive',
138
- model: 'sonnet',
139
- outputFormat: 'markdown',
140
- contextPatterns: ['src/**/*.ts', 'tests/**/*.ts', '__tests__/**/*.ts'],
141
- timeoutMs: 10 * 60 * 1000,
142
- },
143
- },
144
- document: {
145
- type: 'document',
146
- mode: 'headless',
147
- intervalMs: 120 * 60 * 1000,
148
- priority: 'low',
149
- description: 'AI documentation generation',
150
- enabled: false,
151
- headless: {
152
- promptTemplate: `Generate documentation for undocumented code:
153
- - Add JSDoc comments to functions
154
- - Create README sections for modules
155
- - Document API endpoints
156
- - Add inline comments for complex logic
157
- - Generate usage examples
158
-
159
- Focus on public APIs and exported functions.`,
160
- sandbox: 'permissive',
161
- model: 'haiku',
162
- outputFormat: 'markdown',
163
- contextPatterns: ['src/**/*.ts'],
164
- timeoutMs: 10 * 60 * 1000,
165
- },
166
- },
167
- ultralearn: {
168
- type: 'ultralearn',
169
- mode: 'headless',
170
- intervalMs: 0, // Manual trigger only
171
- priority: 'normal',
172
- description: 'Deep knowledge acquisition',
173
- enabled: false,
174
- headless: {
175
- promptTemplate: `Deeply analyze this codebase to learn:
176
- - Architectural patterns used
177
- - Coding conventions
178
- - Domain-specific terminology
179
- - Common patterns and idioms
180
- - Team preferences
181
-
182
- Provide insights as JSON:
183
- {
184
- "architecture": { "patterns": [...], "style": "..." },
185
- "conventions": { "naming": "...", "formatting": "..." },
186
- "domains": ["..."],
187
- "insights": ["..."]
188
- }`,
189
- sandbox: 'strict',
190
- model: 'opus',
191
- outputFormat: 'json',
192
- contextPatterns: ['**/*.ts', '**/CLAUDE.md', '**/README.md'],
193
- timeoutMs: 15 * 60 * 1000,
194
- },
195
- },
196
- refactor: {
197
- type: 'refactor',
198
- mode: 'headless',
199
- intervalMs: 0, // Manual trigger only
200
- priority: 'normal',
201
- description: 'AI refactoring suggestions',
202
- enabled: false,
203
- headless: {
204
- promptTemplate: `Suggest refactoring opportunities:
205
- - Identify code duplication
206
- - Suggest better abstractions
207
- - Find opportunities for design patterns
208
- - Identify overly complex functions
209
- - Suggest module reorganization
210
-
211
- Provide before/after code examples.`,
212
- sandbox: 'permissive',
213
- model: 'sonnet',
214
- outputFormat: 'markdown',
215
- contextPatterns: ['src/**/*.ts'],
216
- timeoutMs: 10 * 60 * 1000,
217
- },
218
- },
219
- deepdive: {
220
- type: 'deepdive',
221
- mode: 'headless',
222
- intervalMs: 0, // Manual trigger only
223
- priority: 'normal',
224
- description: 'Deep code analysis',
225
- enabled: false,
226
- headless: {
227
- promptTemplate: `Perform deep analysis of this codebase:
228
- - Understand data flow
229
- - Map dependencies
230
- - Identify architectural issues
231
- - Find potential bugs
232
- - Analyze error handling
233
-
234
- Provide comprehensive report.`,
235
- sandbox: 'strict',
236
- model: 'opus',
237
- outputFormat: 'markdown',
238
- contextPatterns: ['src/**/*.ts'],
239
- timeoutMs: 15 * 60 * 1000,
240
- },
241
- },
242
- predict: {
243
- type: 'predict',
244
- mode: 'headless',
245
- intervalMs: 10 * 60 * 1000,
246
- priority: 'low',
247
- description: 'Predictive preloading',
248
- enabled: false,
249
- headless: {
250
- promptTemplate: `Based on recent activity, predict what the developer needs:
251
- - Files likely to be edited next
252
- - Tests that should be run
253
- - Documentation to reference
254
- - Dependencies to check
255
-
256
- Provide preload suggestions as JSON:
257
- {
258
- "filesToPreload": ["..."],
259
- "testsToRun": ["..."],
260
- "docsToReference": ["..."],
261
- "confidence": 0.0-1.0
262
- }`,
263
- sandbox: 'strict',
264
- model: 'haiku',
265
- outputFormat: 'json',
266
- contextPatterns: ['.monomind/metrics/*.json'],
267
- timeoutMs: 2 * 60 * 1000,
268
- },
269
- },
270
- };
271
- /**
272
- * Local worker configurations
273
- */
274
- export const LOCAL_WORKER_CONFIGS = {
275
- map: {
276
- type: 'map',
277
- mode: 'local',
278
- intervalMs: 15 * 60 * 1000,
279
- priority: 'normal',
280
- description: 'Codebase mapping',
281
- enabled: true,
282
- },
283
- consolidate: {
284
- type: 'consolidate',
285
- mode: 'local',
286
- intervalMs: 30 * 60 * 1000,
287
- priority: 'low',
288
- description: 'Memory consolidation',
289
- enabled: true,
290
- },
291
- benchmark: {
292
- type: 'benchmark',
293
- mode: 'local',
294
- intervalMs: 60 * 60 * 1000,
295
- priority: 'low',
296
- description: 'Performance benchmarking',
297
- enabled: false,
298
- },
299
- preload: {
300
- type: 'preload',
301
- mode: 'local',
302
- intervalMs: 5 * 60 * 1000,
303
- priority: 'low',
304
- description: 'Resource preloading',
305
- enabled: false,
306
- },
307
- };
308
- /**
309
- * Combined worker configurations
310
- */
311
- export const ALL_WORKER_CONFIGS = [
312
- ...Object.values(HEADLESS_WORKER_CONFIGS),
313
- ...Object.values(LOCAL_WORKER_CONFIGS),
314
- ];
315
- // ============================================
316
- // Utility Functions
317
- // ============================================
318
- /**
319
- * Check if a worker type is a headless worker
320
- */
321
- export function isHeadlessWorker(type) {
322
- return HEADLESS_WORKER_TYPES.includes(type);
323
- }
324
- /**
325
- * Check if a worker type is a local worker
326
- */
327
- export function isLocalWorker(type) {
328
- return LOCAL_WORKER_TYPES.includes(type);
329
- }
330
- /**
331
- * Get model ID from model type
332
- */
333
- export function getModelId(model) {
334
- return MODEL_IDS[model];
335
- }
336
- /**
337
- * Get worker configuration by type
338
- */
339
- export function getWorkerConfig(type) {
340
- if (isHeadlessWorker(type)) {
341
- return HEADLESS_WORKER_CONFIGS[type];
342
- }
343
- if (isLocalWorker(type)) {
344
- return LOCAL_WORKER_CONFIGS[type];
345
- }
346
- return undefined;
347
- }
348
- // ============================================
349
- // HeadlessWorkerExecutor Class
350
- // ============================================
351
- /**
352
- * HeadlessWorkerExecutor - Executes workers using Claude Code in headless mode
353
- *
354
- * Features:
355
- * - Process pool with configurable concurrency limit
356
- * - Pending queue for overflow requests
357
- * - Context caching with configurable TTL
358
- * - Execution logging for debugging
359
- * - Event emission for monitoring
360
- * - Graceful termination
361
- */
362
- export class HeadlessWorkerExecutor extends EventEmitter {
363
- projectRoot;
364
- config;
365
- processPool = new Map();
366
- pendingQueue = [];
367
- contextCache = new Map();
368
- claudeCodeAvailable = null;
369
- claudeCodeAvailableCheckedAt = null;
370
- claudeCodeVersion = null;
371
- // SECURITY: synchronous reservation counter so processQueue() does not
372
- // drain the entire pendingQueue before async pool insertions catch up.
373
- // Without this, a single processQueue() iteration could spawn hundreds of
374
- // claude child processes simultaneously (DoS amplifier: 1 dequeue → 500 spawns).
375
- activeReservations = 0;
376
- constructor(projectRoot, options) {
377
- super();
378
- this.projectRoot = projectRoot;
379
- // Merge with defaults
380
- this.config = {
381
- maxConcurrent: options?.maxConcurrent ?? 2,
382
- defaultTimeoutMs: options?.defaultTimeoutMs ?? 5 * 60 * 1000,
383
- maxContextFiles: options?.maxContextFiles ?? 20,
384
- maxCharsPerFile: options?.maxCharsPerFile ?? 5000,
385
- logDir: options?.logDir ?? join(projectRoot, '.monomind', 'logs', 'headless'),
386
- cacheContext: options?.cacheContext ?? true,
387
- cacheTtlMs: options?.cacheTtlMs ?? 60000, // 1 minute default
388
- };
389
- // Ensure log directory exists
390
- this.ensureLogDir();
391
- }
392
- // ============================================
393
- // Public API
394
- // ============================================
395
- /**
396
- * Check if Claude Code CLI is available
397
- */
398
- async isAvailable() {
399
- const NEGATIVE_CACHE_TTL_MS = 60_000; // re-check after 1 min on negative result
400
- if (this.claudeCodeAvailable === true) {
401
- return true;
402
- }
403
- if (this.claudeCodeAvailable === false && this.claudeCodeAvailableCheckedAt !== null) {
404
- if (Date.now() - this.claudeCodeAvailableCheckedAt < NEGATIVE_CACHE_TTL_MS) {
405
- return false;
406
- }
407
- }
408
- try {
409
- const output = execSync('claude --version', {
410
- encoding: 'utf-8',
411
- stdio: 'pipe',
412
- timeout: 5000,
413
- windowsHide: true, // Prevent phantom console windows on Windows
414
- });
415
- this.claudeCodeAvailable = true;
416
- this.claudeCodeAvailableCheckedAt = Date.now();
417
- this.claudeCodeVersion = output.trim();
418
- this.emit('status', { available: true, version: this.claudeCodeVersion });
419
- return true;
420
- }
421
- catch {
422
- this.claudeCodeAvailable = false;
423
- this.claudeCodeAvailableCheckedAt = Date.now();
424
- this.emit('status', { available: false });
425
- return false;
426
- }
427
- }
428
- /**
429
- * Get Claude Code version
430
- */
431
- async getVersion() {
432
- await this.isAvailable();
433
- return this.claudeCodeVersion;
434
- }
435
- /**
436
- * Execute a headless worker
437
- */
438
- async execute(workerType, configOverrides) {
439
- const baseConfig = HEADLESS_WORKER_CONFIGS[workerType];
440
- if (!baseConfig) {
441
- throw new Error(`Unknown headless worker type: ${workerType}`);
442
- }
443
- // Check availability
444
- const available = await this.isAvailable();
445
- if (!available) {
446
- const result = this.createErrorResult(workerType, 'Claude Code CLI not available. Install with: npm install -g @anthropic-ai/claude-code');
447
- this.emit('error', result);
448
- return result;
449
- }
450
- // Check concurrent limit using activeReservations (synchronous counter)
451
- // rather than processPool.size (which is updated only after async setup).
452
- if (this.activeReservations >= this.config.maxConcurrent) {
453
- // Queue the request
454
- const MAX_PENDING = 500;
455
- if (this.pendingQueue.length >= MAX_PENDING) {
456
- return this.createErrorResult(workerType, 'Pending queue is full');
457
- }
458
- return new Promise((resolve, reject) => {
459
- const entry = {
460
- workerType,
461
- config: configOverrides,
462
- resolve,
463
- reject,
464
- queuedAt: new Date(),
465
- };
466
- this.pendingQueue.push(entry);
467
- this.emit('queued', {
468
- workerType,
469
- queuePosition: this.pendingQueue.length,
470
- });
471
- });
472
- }
473
- // Reserve the slot synchronously and release it (regardless of success
474
- // or failure) so processQueue can pull the next pending item.
475
- this.activeReservations++;
476
- try {
477
- return await this.executeInternal(workerType, configOverrides);
478
- }
479
- finally {
480
- this.activeReservations--;
481
- this.processQueue();
482
- }
483
- }
484
- /**
485
- * Get pool status
486
- */
487
- getPoolStatus() {
488
- const now = Date.now();
489
- return {
490
- activeCount: this.processPool.size,
491
- queueLength: this.pendingQueue.length,
492
- maxConcurrent: this.config.maxConcurrent,
493
- activeWorkers: Array.from(this.processPool.values()).map((entry) => ({
494
- executionId: entry.executionId,
495
- workerType: entry.workerType,
496
- startTime: entry.startTime,
497
- elapsedMs: now - entry.startTime.getTime(),
498
- })),
499
- queuedWorkers: this.pendingQueue.map((entry) => ({
500
- workerType: entry.workerType,
501
- queuedAt: entry.queuedAt,
502
- waitingMs: now - entry.queuedAt.getTime(),
503
- })),
504
- };
505
- }
506
- /**
507
- * Get number of active executions
508
- */
509
- getActiveCount() {
510
- return this.processPool.size;
511
- }
512
- /**
513
- * Cancel a running execution
514
- */
515
- cancel(executionId) {
516
- const entry = this.processPool.get(executionId);
517
- if (!entry) {
518
- return false;
519
- }
520
- clearTimeout(entry.timeout);
521
- let exited = false;
522
- entry.process.once('exit', () => { exited = true; });
523
- try {
524
- entry.process.kill('SIGTERM');
525
- }
526
- catch { /* may already be dead */ }
527
- const killTimer = setTimeout(() => {
528
- if (!exited) {
529
- try {
530
- entry.process.kill('SIGKILL');
531
- }
532
- catch { /* ignore */ }
533
- }
534
- }, 5000);
535
- killTimer.unref();
536
- entry.process.once('exit', () => clearTimeout(killTimer));
537
- this.processPool.delete(executionId);
538
- this.emit('cancelled', { executionId });
539
- // Process next in queue
540
- this.processQueue();
541
- return true;
542
- }
543
- /**
544
- * Cancel all running executions for a specific worker type.
545
- * Used by the timeout handler in worker-daemon to avoid killing unrelated workers.
546
- */
547
- cancelByType(workerType) {
548
- let cancelled = false;
549
- const entries = Array.from(this.processPool.entries());
550
- for (const [executionId, entry] of entries) {
551
- if (entry.workerType !== workerType)
552
- continue;
553
- clearTimeout(entry.timeout);
554
- let exited = false;
555
- entry.process.once('exit', () => { exited = true; });
556
- try {
557
- entry.process.kill('SIGTERM');
558
- }
559
- catch { /* may already be dead */ }
560
- const killTimer = setTimeout(() => {
561
- if (!exited) {
562
- try {
563
- entry.process.kill('SIGKILL');
564
- }
565
- catch { /* ignore */ }
566
- }
567
- }, 5000);
568
- killTimer.unref();
569
- entry.process.once('exit', () => clearTimeout(killTimer));
570
- this.processPool.delete(executionId);
571
- this.emit('cancelled', { executionId });
572
- cancelled = true;
573
- }
574
- if (cancelled)
575
- this.processQueue();
576
- return cancelled;
577
- }
578
- /**
579
- * Cancel all running executions
580
- */
581
- cancelAll() {
582
- let cancelled = 0;
583
- // Cancel active processes (convert to array to avoid iterator issues)
584
- const entries = Array.from(this.processPool.entries());
585
- for (const [executionId, entry] of entries) {
586
- clearTimeout(entry.timeout);
587
- // Track exit so the SIGKILL fallback can't be sent to a recycled PID.
588
- // entry.process.killed is set by Node when .kill() was called, NOT when
589
- // the OS process actually exited — without an explicit 'exit' listener,
590
- // a recycled PID can receive our SIGKILL.
591
- let exited = false;
592
- entry.process.once('exit', () => { exited = true; });
593
- try {
594
- entry.process.kill('SIGTERM');
595
- }
596
- catch { /* may already be dead */ }
597
- const killTimer = setTimeout(() => {
598
- if (exited)
599
- return;
600
- try {
601
- entry.process.kill('SIGKILL');
602
- }
603
- catch { /* already dead */ }
604
- }, 5000);
605
- killTimer.unref();
606
- entry.process.once('exit', () => clearTimeout(killTimer));
607
- this.emit('cancelled', { executionId });
608
- cancelled++;
609
- }
610
- this.processPool.clear();
611
- // Reject pending queue
612
- for (const entry of this.pendingQueue) {
613
- entry.reject(new Error('Executor cancelled all executions'));
614
- }
615
- this.pendingQueue = [];
616
- this.emit('allCancelled', { count: cancelled });
617
- return cancelled;
618
- }
619
- /**
620
- * Clear context cache
621
- */
622
- clearContextCache() {
623
- this.contextCache.clear();
624
- this.emit('cacheClear', {});
625
- }
626
- /**
627
- * Get worker configuration
628
- */
629
- getConfig(workerType) {
630
- return HEADLESS_WORKER_CONFIGS[workerType];
631
- }
632
- /**
633
- * Get all headless worker types
634
- */
635
- getHeadlessWorkerTypes() {
636
- return [...HEADLESS_WORKER_TYPES];
637
- }
638
- /**
639
- * Get all local worker types
640
- */
641
- getLocalWorkerTypes() {
642
- return [...LOCAL_WORKER_TYPES];
643
- }
644
- // ============================================
645
- // Private Methods
646
- // ============================================
647
- /**
648
- * Ensure log directory exists
649
- */
650
- ensureLogDir() {
651
- try {
652
- if (!existsSync(this.config.logDir)) {
653
- mkdirSync(this.config.logDir, { recursive: true });
654
- }
655
- }
656
- catch (error) {
657
- this.emit('warning', { message: 'Failed to create log directory', error });
658
- }
659
- }
660
- /**
661
- * Internal execution logic
662
- */
663
- async executeInternal(workerType, configOverrides) {
664
- const baseConfig = HEADLESS_WORKER_CONFIGS[workerType];
665
- const headless = { ...baseConfig.headless, ...configOverrides };
666
- const startTime = Date.now();
667
- const executionId = `${workerType}_${startTime}_${Math.random().toString(36).slice(2, 8)}`;
668
- this.emit('start', { executionId, workerType, config: headless });
669
- try {
670
- // Build context from file patterns
671
- const context = await this.buildContext(headless.contextPatterns || []);
672
- // Build the full prompt
673
- const fullPrompt = this.buildPrompt(headless.promptTemplate, context);
674
- // Log prompt for debugging
675
- this.logExecution(executionId, 'prompt', fullPrompt);
676
- // Execute Claude Code headlessly
677
- const result = await this.executeClaudeCode(fullPrompt, {
678
- sandbox: headless.sandbox,
679
- model: headless.model || 'sonnet',
680
- timeoutMs: headless.timeoutMs || this.config.defaultTimeoutMs,
681
- executionId,
682
- workerType,
683
- });
684
- // Parse output based on format
685
- let parsedOutput;
686
- if (headless.outputFormat === 'json' && result.output) {
687
- parsedOutput = this.parseJsonOutput(result.output);
688
- }
689
- else if (headless.outputFormat === 'markdown' && result.output) {
690
- parsedOutput = this.parseMarkdownOutput(result.output);
691
- }
692
- const executionResult = {
693
- success: result.success,
694
- output: result.output,
695
- parsedOutput,
696
- durationMs: Date.now() - startTime,
697
- tokensUsed: result.tokensUsed,
698
- model: headless.model || 'sonnet',
699
- sandboxMode: headless.sandbox,
700
- workerType,
701
- timestamp: new Date(),
702
- executionId,
703
- error: result.error,
704
- };
705
- // Log result
706
- this.logExecution(executionId, 'result', JSON.stringify(executionResult, null, 2));
707
- this.emit('complete', executionResult);
708
- return executionResult;
709
- }
710
- catch (error) {
711
- const errorMessage = error instanceof Error ? error.message : String(error);
712
- const executionResult = this.createErrorResult(workerType, errorMessage);
713
- executionResult.executionId = executionId;
714
- executionResult.durationMs = Date.now() - startTime;
715
- this.logExecution(executionId, 'error', errorMessage);
716
- this.emit('error', executionResult);
717
- return executionResult;
718
- }
719
- finally {
720
- // Process next in queue
721
- this.processQueue();
722
- }
723
- }
724
- /**
725
- * Process the pending queue
726
- */
727
- processQueue() {
728
- // Gate on activeReservations (synchronous counter) so we cannot
729
- // accidentally drain the queue past maxConcurrent before async setup
730
- // populates processPool.
731
- while (this.pendingQueue.length > 0 &&
732
- this.activeReservations < this.config.maxConcurrent) {
733
- const next = this.pendingQueue.shift();
734
- if (!next)
735
- break;
736
- this.activeReservations++;
737
- this.executeInternal(next.workerType, next.config)
738
- .then(next.resolve, next.reject)
739
- .finally(() => {
740
- this.activeReservations--;
741
- this.processQueue();
742
- });
743
- }
744
- }
745
- /**
746
- * Build context from file patterns
747
- */
748
- async buildContext(patterns) {
749
- if (patterns.length === 0)
750
- return '';
751
- // Check cache
752
- const cacheKey = patterns.sort().join('|');
753
- if (this.config.cacheContext) {
754
- const cached = this.contextCache.get(cacheKey);
755
- if (cached && Date.now() - cached.timestamp < this.config.cacheTtlMs) {
756
- return cached.content;
757
- }
758
- }
759
- // Collect files matching patterns
760
- const files = [];
761
- for (const pattern of patterns) {
762
- const matches = this.simpleGlob(pattern);
763
- files.push(...matches);
764
- }
765
- // Deduplicate and limit
766
- const uniqueFiles = Array.from(new Set(files)).slice(0, this.config.maxContextFiles);
767
- // Build context
768
- const { resolve: resolvePath, sep } = await import('path');
769
- const contextParts = [];
770
- for (const file of uniqueFiles) {
771
- try {
772
- const fullPath = join(this.projectRoot, file);
773
- const resolvedFull = resolvePath(fullPath);
774
- const resolvedRoot = resolvePath(this.projectRoot);
775
- if (!resolvedFull.startsWith(resolvedRoot + sep) && resolvedFull !== resolvedRoot)
776
- continue;
777
- if (!existsSync(resolvedFull))
778
- continue;
779
- const content = readFileSync(resolvedFull, 'utf-8');
780
- const truncated = content.slice(0, this.config.maxCharsPerFile);
781
- const wasTruncated = content.length > this.config.maxCharsPerFile;
782
- contextParts.push(`--- ${file}${wasTruncated ? ' (truncated)' : ''} ---\n${truncated}`);
783
- }
784
- catch {
785
- // Skip unreadable files
786
- }
787
- }
788
- const contextContent = contextParts.join('\n\n');
789
- // Cache the result (evict oldest when at capacity)
790
- if (this.config.cacheContext) {
791
- if (this.contextCache.size >= 50) {
792
- const oldestKey = this.contextCache.keys().next().value;
793
- if (oldestKey !== undefined)
794
- this.contextCache.delete(oldestKey);
795
- }
796
- this.contextCache.set(cacheKey, {
797
- content: contextContent,
798
- timestamp: Date.now(),
799
- patterns,
800
- });
801
- }
802
- return contextContent;
803
- }
804
- /**
805
- * Simple glob implementation for file matching
806
- */
807
- simpleGlob(pattern) {
808
- const results = [];
809
- // Handle simple patterns (no wildcards)
810
- if (!pattern.includes('*')) {
811
- const fullPath = join(this.projectRoot, pattern);
812
- if (existsSync(fullPath)) {
813
- results.push(pattern);
814
- }
815
- return results;
816
- }
817
- // Parse pattern parts
818
- const parts = pattern.split('/');
819
- const scanDir = (dir, remainingParts) => {
820
- if (remainingParts.length === 0)
821
- return;
822
- if (results.length >= 100)
823
- return; // Limit results
824
- try {
825
- const fullDir = join(this.projectRoot, dir);
826
- if (!existsSync(fullDir))
827
- return;
828
- const entries = readdirSync(fullDir, { withFileTypes: true });
829
- const currentPart = remainingParts[0];
830
- const isLastPart = remainingParts.length === 1;
831
- for (const entry of entries) {
832
- // Skip common non-code directories
833
- if (entry.name === 'node_modules' ||
834
- entry.name === '.git' ||
835
- entry.name === 'dist' ||
836
- entry.name === 'build' ||
837
- entry.name === 'coverage' ||
838
- entry.name === '.next' ||
839
- entry.name === '.cache') {
840
- continue;
841
- }
842
- const entryPath = dir ? `${dir}/${entry.name}` : entry.name;
843
- if (currentPart === '**') {
844
- // Recursive glob
845
- if (entry.isDirectory()) {
846
- scanDir(entryPath, remainingParts); // Continue with **
847
- scanDir(entryPath, remainingParts.slice(1)); // Try next part
848
- }
849
- else if (entry.isFile() && remainingParts.length > 1) {
850
- // Check if file matches next pattern part
851
- const nextPart = remainingParts[1];
852
- if (this.matchesPattern(entry.name, nextPart)) {
853
- results.push(entryPath);
854
- }
855
- }
856
- }
857
- else if (this.matchesPattern(entry.name, currentPart)) {
858
- if (isLastPart && entry.isFile()) {
859
- results.push(entryPath);
860
- }
861
- else if (!isLastPart && entry.isDirectory()) {
862
- scanDir(entryPath, remainingParts.slice(1));
863
- }
864
- }
865
- }
866
- }
867
- catch {
868
- // Skip unreadable directories
869
- }
870
- };
871
- scanDir('', parts);
872
- return results;
873
- }
874
- /**
875
- * Match filename against a simple pattern
876
- */
877
- matchesPattern(name, pattern) {
878
- if (pattern === '*')
879
- return true;
880
- if (pattern === '**')
881
- return true;
882
- // Handle *.ext patterns
883
- if (pattern.startsWith('*.')) {
884
- return name.endsWith(pattern.slice(1));
885
- }
886
- // Handle prefix* patterns
887
- if (pattern.endsWith('*')) {
888
- return name.startsWith(pattern.slice(0, -1));
889
- }
890
- // Handle *suffix patterns
891
- if (pattern.startsWith('*')) {
892
- return name.endsWith(pattern.slice(1));
893
- }
894
- // Exact match
895
- return name === pattern;
896
- }
897
- /**
898
- * Build full prompt with context
899
- */
900
- buildPrompt(template, context) {
901
- if (!context) {
902
- return `${template}
903
-
904
- ## Instructions
905
-
906
- Analyze the codebase and provide your response following the format specified in the task.`;
907
- }
908
- return `${template}
909
-
910
- ## Codebase Context
911
-
912
- ${context}
913
-
914
- ## Instructions
915
-
916
- Analyze the above codebase context and provide your response following the format specified in the task.`;
917
- }
918
- /**
919
- * Execute Claude Code in headless mode
920
- */
921
- executeClaudeCode(prompt, options) {
922
- return new Promise((resolve) => {
923
- // SECURITY: in strict sandbox mode, build a minimal env allowlist instead
924
- // of forwarding the entire parent env. The previous spread also passed
925
- // LD_PRELOAD, NODE_OPTIONS, DYLD_INSERT_LIBRARIES, PYTHONPATH, HTTP_PROXY,
926
- // etc. — which means "strict" was a label, not a control. Now it actually
927
- // strips dangerous loaders/proxies even when the parent has them set.
928
- const STRICT_ENV_ALLOWLIST = new Set([
929
- 'PATH', 'HOME', 'USER', 'LOGNAME', 'LANG', 'LC_ALL', 'TZ', 'TERM', 'SHELL',
930
- 'TMPDIR', 'TMP', 'TEMP',
931
- 'ANTHROPIC_API_KEY', 'ANTHROPIC_MODEL', 'ANTHROPIC_BASE_URL',
932
- ]);
933
- const FORBIDDEN_ENV = new Set([
934
- 'LD_PRELOAD', 'LD_LIBRARY_PATH', 'LD_AUDIT',
935
- 'DYLD_INSERT_LIBRARIES', 'DYLD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH',
936
- 'NODE_OPTIONS', 'NODE_PATH',
937
- 'PYTHONPATH', 'PYTHONHOME', 'PYTHONSTARTUP',
938
- 'HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY',
939
- 'BASH_ENV', 'ENV', 'CDPATH',
940
- 'PERL5OPT', 'RUBYOPT',
941
- 'JAVA_TOOL_OPTIONS', '_JAVA_OPTIONS', 'JDK_JAVA_OPTIONS',
942
- ]);
943
- const baseEnv = {};
944
- if (options.sandbox === 'strict') {
945
- for (const k of STRICT_ENV_ALLOWLIST) {
946
- const v = process.env[k];
947
- if (typeof v === 'string')
948
- baseEnv[k] = v;
949
- }
950
- }
951
- else {
952
- for (const [k, v] of Object.entries(process.env)) {
953
- if (typeof v !== 'string')
954
- continue;
955
- if (FORBIDDEN_ENV.has(k))
956
- continue; // always strip in any mode
957
- baseEnv[k] = v;
958
- }
959
- }
960
- const env = {
961
- ...baseEnv,
962
- CLAUDE_CODE_HEADLESS: 'true',
963
- CLAUDE_CODE_SANDBOX_MODE: options.sandbox,
964
- // Fix #1395 Bug 2: Workers fail inside active Claude Code session.
965
- // Claude Code detects nested sessions and exits immediately.
966
- // Setting CLAUDE_ENTRYPOINT=worker bypasses the nested-session check,
967
- // and unsetting CLAUDE_SESSION_ID prevents parent session detection.
968
- CLAUDE_ENTRYPOINT: 'worker',
969
- };
970
- // Remove parent session markers so the child doesn't detect a "nested" session
971
- delete env.CLAUDE_SESSION_ID;
972
- delete env.CLAUDE_PARENT_SESSION_ID;
973
- // Set model
974
- // Resolve model: user env override > config override > default alias
975
- env.ANTHROPIC_MODEL = process.env.ANTHROPIC_MODEL || MODEL_IDS[options.model];
976
- // Spawn claude CLI process — `--` terminates option parsing so prompt can't smuggle flags
977
- const child = spawn('claude', ['--print', '--', prompt], {
978
- cwd: this.projectRoot,
979
- env,
980
- stdio: ['ignore', 'pipe', 'pipe'], // 'ignore' closes stdin at spawn — fixes #1395 where claude --print blocks on EOF
981
- windowsHide: true, // Prevent phantom console windows on Windows
982
- });
983
- // Setup timeout — track real exit via 'exit' listener.
984
- // child.killed is set by Node when .kill() is called (signal sent), NOT
985
- // when the OS process exited. Without an explicit `exited` flag the
986
- // SIGKILL fallback never fires for a process that ignores SIGTERM, and
987
- // the slot leaks indefinitely.
988
- let sigkillTimer;
989
- let childExited = false;
990
- child.once('exit', () => { childExited = true; });
991
- const timeoutHandle = setTimeout(() => {
992
- if (this.processPool.has(options.executionId)) {
993
- try {
994
- child.kill('SIGTERM');
995
- }
996
- catch { /* may already be dead */ }
997
- sigkillTimer = setTimeout(() => {
998
- if (childExited)
999
- return;
1000
- try {
1001
- child.kill('SIGKILL');
1002
- }
1003
- catch { /* already dead */ }
1004
- }, 5000);
1005
- sigkillTimer.unref();
1006
- }
1007
- }, options.timeoutMs);
1008
- // Track in process pool
1009
- const poolEntry = {
1010
- process: child,
1011
- executionId: options.executionId,
1012
- workerType: options.workerType,
1013
- startTime: new Date(),
1014
- timeout: timeoutHandle,
1015
- };
1016
- this.processPool.set(options.executionId, poolEntry);
1017
- let stdout = '';
1018
- let stderr = '';
1019
- let resolved = false;
1020
- // Cap stdout + stderr to 10 MB each to prevent OOM if a spawned Claude
1021
- // Code process emits unexpectedly large output (e.g. a worker that dumps
1022
- // a large file listing). Once the cap is reached we stop appending; the
1023
- // truncation marker lets callers detect that output was cut.
1024
- const MAX_HEADLESS_OUTPUT_BYTES = 10 * 1024 * 1024; // 10 MB
1025
- const TRUNCATION_MARKER = '\n[... output truncated at 10 MB ...]';
1026
- const cleanup = () => {
1027
- clearTimeout(timeoutHandle);
1028
- clearTimeout(sigkillTimer);
1029
- this.processPool.delete(options.executionId);
1030
- };
1031
- child.stdout?.on('data', (data) => {
1032
- const chunk = data.toString();
1033
- if (stdout.length < MAX_HEADLESS_OUTPUT_BYTES) {
1034
- stdout += chunk;
1035
- if (stdout.length >= MAX_HEADLESS_OUTPUT_BYTES) {
1036
- stdout = stdout.slice(0, MAX_HEADLESS_OUTPUT_BYTES) + TRUNCATION_MARKER;
1037
- }
1038
- }
1039
- this.emit('output', {
1040
- executionId: options.executionId,
1041
- type: 'stdout',
1042
- data: chunk,
1043
- });
1044
- });
1045
- child.stderr?.on('data', (data) => {
1046
- const chunk = data.toString();
1047
- if (stderr.length < MAX_HEADLESS_OUTPUT_BYTES) {
1048
- stderr += chunk;
1049
- if (stderr.length >= MAX_HEADLESS_OUTPUT_BYTES) {
1050
- stderr = stderr.slice(0, MAX_HEADLESS_OUTPUT_BYTES) + TRUNCATION_MARKER;
1051
- }
1052
- }
1053
- this.emit('output', {
1054
- executionId: options.executionId,
1055
- type: 'stderr',
1056
- data: chunk,
1057
- });
1058
- });
1059
- child.on('close', (code) => {
1060
- if (resolved)
1061
- return;
1062
- resolved = true;
1063
- cleanup();
1064
- resolve({
1065
- success: code === 0,
1066
- output: stdout || stderr,
1067
- error: code !== 0 ? stderr || `Process exited with code ${code}` : undefined,
1068
- });
1069
- });
1070
- child.on('error', (error) => {
1071
- if (resolved)
1072
- return;
1073
- resolved = true;
1074
- cleanup();
1075
- resolve({
1076
- success: false,
1077
- output: '',
1078
- error: error.message,
1079
- });
1080
- });
1081
- });
1082
- }
1083
- /**
1084
- * Parse JSON output from Claude Code
1085
- */
1086
- parseJsonOutput(output) {
1087
- try {
1088
- // Try to find JSON in code blocks first
1089
- const codeBlockMatch = output.match(/```(?:json)?\s*([\s\S]*?)```/);
1090
- if (codeBlockMatch) {
1091
- return JSON.parse(codeBlockMatch[1].trim());
1092
- }
1093
- // Try to find any JSON object
1094
- const jsonMatch = output.match(/\{[\s\S]*\}/);
1095
- if (jsonMatch) {
1096
- return JSON.parse(jsonMatch[0]);
1097
- }
1098
- // Try direct parse
1099
- return JSON.parse(output.trim());
1100
- }
1101
- catch {
1102
- return {
1103
- parseError: true,
1104
- rawOutput: output,
1105
- };
1106
- }
1107
- }
1108
- /**
1109
- * Parse markdown output into sections
1110
- */
1111
- parseMarkdownOutput(output) {
1112
- const sections = [];
1113
- const codeBlocks = [];
1114
- // Extract code blocks first
1115
- const codeBlockRegex = /```(\w*)\n([\s\S]*?)```/g;
1116
- let codeMatch;
1117
- while ((codeMatch = codeBlockRegex.exec(output)) !== null) {
1118
- codeBlocks.push({
1119
- language: codeMatch[1] || 'text',
1120
- code: codeMatch[2].trim(),
1121
- });
1122
- }
1123
- // Parse sections
1124
- const lines = output.split('\n');
1125
- let currentSection = null;
1126
- for (const line of lines) {
1127
- const headerMatch = line.match(/^(#{1,6})\s+(.+)$/);
1128
- if (headerMatch) {
1129
- if (currentSection) {
1130
- sections.push(currentSection);
1131
- }
1132
- currentSection = {
1133
- title: headerMatch[2].trim(),
1134
- content: '',
1135
- level: headerMatch[1].length,
1136
- };
1137
- }
1138
- else if (currentSection) {
1139
- currentSection.content += line + '\n';
1140
- }
1141
- }
1142
- if (currentSection) {
1143
- currentSection.content = currentSection.content.trim();
1144
- sections.push(currentSection);
1145
- }
1146
- return { sections, codeBlocks };
1147
- }
1148
- /**
1149
- * Create an error result
1150
- */
1151
- createErrorResult(workerType, error) {
1152
- return {
1153
- success: false,
1154
- output: '',
1155
- durationMs: 0,
1156
- model: 'unknown',
1157
- sandboxMode: 'strict',
1158
- workerType,
1159
- timestamp: new Date(),
1160
- executionId: `error_${Date.now()}`,
1161
- error,
1162
- };
1163
- }
1164
- /**
1165
- * Log execution details for debugging
1166
- */
1167
- logExecution(executionId, type, content) {
1168
- try {
1169
- const timestamp = new Date().toISOString();
1170
- const logFile = join(this.config.logDir, `${executionId}_${type}.log`);
1171
- const logContent = `[${timestamp}] ${type.toUpperCase()}\n${'='.repeat(60)}\n${content}\n`;
1172
- const tmpLog = logFile + '.tmp';
1173
- writeFileSync(tmpLog, logContent);
1174
- renameSync(tmpLog, logFile);
1175
- }
1176
- catch {
1177
- // Ignore log write errors
1178
- }
1179
- }
1180
- }
1181
- // Export default
1182
- export default HeadlessWorkerExecutor;
1183
- //# sourceMappingURL=headless-worker-executor.js.map