monomind 1.19.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (870) hide show
  1. package/README.md +2 -5
  2. package/package.json +15 -34
  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/skills/github-toolkit/SKILL.md +60 -0
  27. package/packages/@monomind/cli/.claude/skills/hive-mind-advanced/SKILL.md +0 -15
  28. package/packages/@monomind/cli/.claude/skills/hooks-automation/SKILL.md +0 -1
  29. package/packages/@monomind/cli/.claude/skills/mastermind-skills/_protocol.md +1 -1
  30. package/packages/@monomind/cli/.claude/skills/mastermind-skills/build.md +1 -2
  31. package/packages/@monomind/cli/.claude/skills/memory-toolkit/SKILL.md +75 -0
  32. package/packages/@monomind/cli/.claude/skills/specialagent/SKILL.md +2 -4
  33. package/packages/@monomind/cli/.claude/skills/swarm-advanced/SKILL.md +0 -1
  34. package/packages/@monomind/cli/README.md +2 -5
  35. package/packages/@monomind/cli/dist/src/autopilot-state.js +4 -5
  36. package/packages/@monomind/cli/dist/src/browser/dashboard/server.js +69 -1
  37. package/packages/@monomind/cli/dist/src/browser/dashboard/ui.html +214 -1764
  38. package/packages/@monomind/cli/dist/src/capabilities/index.d.ts +0 -2
  39. package/packages/@monomind/cli/dist/src/capabilities/index.js +0 -1
  40. package/packages/@monomind/cli/dist/src/commands/agent-lifecycle.js +2 -6
  41. package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +0 -4
  42. package/packages/@monomind/cli/dist/src/commands/analyze.js +1 -29
  43. package/packages/@monomind/cli/dist/src/commands/completions.js +3 -22
  44. package/packages/@monomind/cli/dist/src/commands/config.js +0 -6
  45. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +12 -2
  46. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +130 -22
  47. package/packages/@monomind/cli/dist/src/commands/doctor.js +6 -5
  48. package/packages/@monomind/cli/dist/src/commands/guidance.d.ts +5 -1
  49. package/packages/@monomind/cli/dist/src/commands/guidance.js +11 -556
  50. package/packages/@monomind/cli/dist/src/commands/hive-mind-comms.js +11 -4
  51. package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +4 -4
  52. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +9 -6
  53. package/packages/@monomind/cli/dist/src/commands/hooks-formatting.d.ts +1 -5
  54. package/packages/@monomind/cli/dist/src/commands/hooks-formatting.js +1 -18
  55. package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
  56. package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +82 -330
  57. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -5
  58. package/packages/@monomind/cli/dist/src/commands/index.js +0 -45
  59. package/packages/@monomind/cli/dist/src/commands/init-wizard.js +1 -1
  60. package/packages/@monomind/cli/dist/src/commands/init.js +4 -24
  61. package/packages/@monomind/cli/dist/src/commands/neural-core.js +11 -11
  62. package/packages/@monomind/cli/dist/src/commands/neural-optimize.js +9 -11
  63. package/packages/@monomind/cli/dist/src/commands/neural-registry.js +10 -10
  64. package/packages/@monomind/cli/dist/src/commands/providers.js +90 -1
  65. package/packages/@monomind/cli/dist/src/commands/search-universal.d.ts +7 -1
  66. package/packages/@monomind/cli/dist/src/commands/search-universal.js +59 -5
  67. package/packages/@monomind/cli/dist/src/commands/security-cve.js +3 -5
  68. package/packages/@monomind/cli/dist/src/commands/session.js +143 -3
  69. package/packages/@monomind/cli/dist/src/commands/start.js +0 -18
  70. package/packages/@monomind/cli/dist/src/commands/swarm.js +112 -65
  71. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +43 -1
  72. package/packages/@monomind/cli/dist/src/consensus/tally.d.ts +19 -0
  73. package/packages/@monomind/cli/dist/src/consensus/tally.js +34 -0
  74. package/packages/@monomind/cli/dist/src/index.d.ts +3 -2
  75. package/packages/@monomind/cli/dist/src/index.js +9 -12
  76. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +10 -14
  77. package/packages/@monomind/cli/dist/src/init/executor.js +39 -86
  78. package/packages/@monomind/cli/dist/src/init/settings-generator.js +0 -12
  79. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +62 -0
  80. package/packages/@monomind/cli/dist/src/init/types.d.ts +2 -6
  81. package/packages/@monomind/cli/dist/src/init/types.js +0 -3
  82. package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +18 -8
  83. package/packages/@monomind/cli/dist/src/mcp-client.js +0 -2
  84. package/packages/@monomind/cli/dist/src/mcp-server.js +12 -14
  85. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/coherence-check.js +1 -19
  86. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.d.ts +3 -2
  87. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.js +3 -18
  88. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +1 -7
  89. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +2 -2
  90. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +7 -17
  91. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -1
  92. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +174 -38
  93. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.d.ts +18 -0
  94. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.js +25 -0
  95. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +4 -8
  96. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +33 -482
  97. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.d.ts +1 -0
  98. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +51 -43
  99. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.d.ts +31 -0
  100. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.js +196 -0
  101. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +10 -8
  102. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -1
  103. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -1
  104. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +20 -29
  105. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.d.ts +6 -0
  106. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +78 -220
  107. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +9 -4
  108. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +242 -506
  109. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +103 -0
  110. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -1
  111. package/packages/@monomind/cli/dist/src/memory/intelligence.js +56 -43
  112. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +14 -9
  113. package/packages/@monomind/cli/dist/src/memory/memory-read.js +1 -19
  114. package/packages/@monomind/cli/dist/src/suggest.js +1 -7
  115. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +3 -2
  116. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +22 -70
  117. package/packages/@monomind/cli/dist/src/update/checker.js +0 -1
  118. package/packages/@monomind/cli/dist/src/utils/cosine-similarity.d.ts +22 -0
  119. package/packages/@monomind/cli/dist/src/utils/cosine-similarity.js +38 -0
  120. package/packages/@monomind/cli/dist/src/utils/input-guards.d.ts +51 -0
  121. package/packages/@monomind/cli/dist/src/utils/input-guards.js +223 -0
  122. package/packages/@monomind/cli/dist/src/utils/json-file.d.ts +33 -0
  123. package/packages/@monomind/cli/dist/src/utils/json-file.js +57 -0
  124. package/packages/@monomind/cli/package.json +9 -6
  125. package/packages/@monomind/cli/scripts/sync-claude-assets.sh +16 -20
  126. package/scripts/generate-agent-avatars.mjs +0 -8
  127. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -54
  128. package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
  129. package/.claude/agents/consensus/quorum-manager.md +0 -803
  130. package/.claude/agents/consensus/security-manager.md +0 -602
  131. package/.claude/agents/core/coder.md +0 -262
  132. package/.claude/agents/core/coordinator.md +0 -71
  133. package/.claude/agents/core/planner.md +0 -170
  134. package/.claude/agents/core/researcher.md +0 -197
  135. package/.claude/agents/core/reviewer.md +0 -327
  136. package/.claude/agents/core/tester.md +0 -318
  137. package/.claude/agents/design/design-monodesign.md +0 -121
  138. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -212
  139. package/.claude/agents/engineering/engineering-ai-engineer.md +0 -165
  140. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -108
  141. package/.claude/agents/engineering/engineering-backend-architect.md +0 -254
  142. package/.claude/agents/engineering/engineering-code-reviewer.md +0 -95
  143. package/.claude/agents/engineering/engineering-data-engineer.md +0 -307
  144. package/.claude/agents/engineering/engineering-database-optimizer.md +0 -200
  145. package/.claude/agents/engineering/engineering-devops-automator.md +0 -430
  146. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -174
  147. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -607
  148. package/.claude/agents/engineering/engineering-frontend-developer.md +0 -249
  149. package/.claude/agents/engineering/engineering-git-workflow-master.md +0 -108
  150. package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -482
  151. package/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -499
  152. package/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -463
  153. package/.claude/agents/engineering/engineering-security-engineer.md +0 -303
  154. package/.claude/agents/engineering/engineering-senior-developer.md +0 -195
  155. package/.claude/agents/engineering/engineering-software-architect.md +0 -100
  156. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -528
  157. package/.claude/agents/engineering/engineering-sre.md +0 -114
  158. package/.claude/agents/engineering/engineering-technical-writer.md +0 -412
  159. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -540
  160. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -351
  161. package/.claude/agents/generated/case-analyst.md +0 -50
  162. package/.claude/agents/generated/channel-intelligence-director.md +0 -87
  163. package/.claude/agents/generated/chief-growth-officer.md +0 -88
  164. package/.claude/agents/generated/churn-analyst.md +0 -53
  165. package/.claude/agents/generated/code-reviewer.md +0 -55
  166. package/.claude/agents/generated/code-validator.md +0 -57
  167. package/.claude/agents/generated/complexity-scanner.md +0 -56
  168. package/.claude/agents/generated/content-seo-strategist.md +0 -90
  169. package/.claude/agents/generated/copy-editor.md +0 -45
  170. package/.claude/agents/generated/court-reporter.md +0 -50
  171. package/.claude/agents/generated/defender.md +0 -51
  172. package/.claude/agents/generated/devbot-orchestrator.md +0 -58
  173. package/.claude/agents/generated/devbot-planner.md +0 -63
  174. package/.claude/agents/generated/developer-community-strategist.md +0 -91
  175. package/.claude/agents/generated/editor-in-chief.md +0 -45
  176. package/.claude/agents/generated/fact-checker.md +0 -45
  177. package/.claude/agents/generated/impact-assessor.md +0 -54
  178. package/.claude/agents/generated/judge.md +0 -51
  179. package/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
  180. package/.claude/agents/generated/prosecutor.md +0 -51
  181. package/.claude/agents/generated/reporter.md +0 -45
  182. package/.claude/agents/generated/social-media-strategist.md +0 -91
  183. package/.claude/agents/generated/video-visual-strategist.md +0 -90
  184. package/.claude/agents/github/code-review-swarm.md +0 -557
  185. package/.claude/agents/github/github-modes.md +0 -154
  186. package/.claude/agents/github/issue-tracker.md +0 -299
  187. package/.claude/agents/github/multi-repo-swarm.md +0 -525
  188. package/.claude/agents/github/pr-manager.md +0 -163
  189. package/.claude/agents/github/project-board-sync.md +0 -478
  190. package/.claude/agents/github/release-manager.md +0 -296
  191. package/.claude/agents/github/repo-architect.md +0 -359
  192. package/.claude/agents/github/swarm-issue.md +0 -548
  193. package/.claude/agents/github/swarm-pr.md +0 -427
  194. package/.claude/agents/github/sync-coordinator.md +0 -355
  195. package/.claude/agents/github/workflow-automation.md +0 -640
  196. package/.claude/agents/goal/goal-planner.md +0 -168
  197. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -129
  198. package/.claude/agents/hive-mind/queen-coordinator.md +0 -202
  199. package/.claude/agents/hive-mind/scout-explorer.md +0 -241
  200. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -192
  201. package/.claude/agents/hive-mind/worker-specialist.md +0 -216
  202. package/.claude/agents/marketing/marketing-competitive-content.md +0 -155
  203. package/.claude/agents/marketing/marketing-cro-specialist.md +0 -147
  204. package/.claude/agents/marketing/marketing-email-specialist.md +0 -90
  205. package/.claude/agents/marketing/marketing-launch-strategist.md +0 -129
  206. package/.claude/agents/marketing/marketing-pricing-strategist.md +0 -127
  207. package/.claude/agents/optimization/benchmark-suite.md +0 -665
  208. package/.claude/agents/optimization/load-balancer.md +0 -431
  209. package/.claude/agents/optimization/performance-monitor.md +0 -672
  210. package/.claude/agents/optimization/resource-allocator.md +0 -674
  211. package/.claude/agents/optimization/topology-optimizer.md +0 -808
  212. package/.claude/agents/reengineer-squad/boss.md +0 -113
  213. package/.claude/agents/reengineer-squad/critic-architect.md +0 -132
  214. package/.claude/agents/reengineer-squad/git-manager.md +0 -145
  215. package/.claude/agents/reengineer-squad/idea-generator.md +0 -95
  216. package/.claude/agents/reengineer-squad/implementer.md +0 -112
  217. package/.claude/agents/reengineer-squad/integration-planner.md +0 -112
  218. package/.claude/agents/reengineer-squad/source-analyst.md +0 -103
  219. package/.claude/agents/reengineer-squad/target-analyst.md +0 -118
  220. package/.claude/agents/reengineer-squad/tester.md +0 -105
  221. package/.claude/agents/schemas/architecture-output.json +0 -43
  222. package/.claude/agents/schemas/code-review-output.json +0 -28
  223. package/.claude/agents/schemas/generic-task-input.json +0 -12
  224. package/.claude/agents/schemas/implementation-output.json +0 -18
  225. package/.claude/agents/schemas/research-output.json +0 -31
  226. package/.claude/agents/schemas/security-audit-output.json +0 -29
  227. package/.claude/agents/schemas/test-report-output.json +0 -29
  228. package/.claude/agents/sparc/architecture.md +0 -453
  229. package/.claude/agents/sparc/pseudocode.md +0 -299
  230. package/.claude/agents/sparc/refinement.md +0 -504
  231. package/.claude/agents/sparc/specification.md +0 -258
  232. package/.claude/agents/specialists/integration-architect.md +0 -94
  233. package/.claude/agents/specialized/agentic-identity-trust.md +0 -388
  234. package/.claude/agents/specialized/agents-orchestrator.md +0 -368
  235. package/.claude/agents/specialized/automation-governance-architect.md +0 -217
  236. package/.claude/agents/specialized/blockchain-security-auditor.md +0 -497
  237. package/.claude/agents/specialized/compliance-auditor.md +0 -159
  238. package/.claude/agents/specialized/identity-graph-operator.md +0 -261
  239. package/.claude/agents/specialized/lsp-index-engineer.md +0 -315
  240. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -89
  241. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -89
  242. package/.claude/agents/specialized/specialized-developer-advocate.md +0 -318
  243. package/.claude/agents/specialized/specialized-document-generator.md +0 -56
  244. package/.claude/agents/specialized/specialized-mcp-builder.md +0 -64
  245. package/.claude/agents/specialized/specialized-model-qa.md +0 -489
  246. package/.claude/agents/specialized/specialized-workflow-architect.md +0 -595
  247. package/.claude/agents/specialized/zk-steward.md +0 -212
  248. package/.claude/agents/swarm/mesh-coordinator.md +0 -363
  249. package/.claude/agents/templates/automation-smart-agent.md +0 -185
  250. package/.claude/agents/templates/coordinator-swarm-init.md +0 -83
  251. package/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  252. package/.claude/agents/testing/production-validator.md +0 -375
  253. package/.claude/agents/testing/tdd-london-swarm.md +0 -241
  254. package/.claude/agents/testing/testing-accessibility-auditor.md +0 -322
  255. package/.claude/agents/testing/testing-api-tester.md +0 -307
  256. package/.claude/agents/testing/testing-evidence-collector.md +0 -213
  257. package/.claude/agents/testing/testing-performance-benchmarker.md +0 -269
  258. package/.claude/agents/testing/testing-test-results-analyzer.md +0 -306
  259. package/.claude/agents/testing/testing-tool-evaluator.md +0 -395
  260. package/.claude/agents/testing/testing-workflow-optimizer.md +0 -451
  261. package/.claude/commands/agents/README.md +0 -14
  262. package/.claude/commands/agents/agent-capabilities.md +0 -25
  263. package/.claude/commands/agents/agent-coordination.md +0 -32
  264. package/.claude/commands/agents/agent-spawning.md +0 -32
  265. package/.claude/commands/agents/agent-types.md +0 -30
  266. package/.claude/commands/analysis/README.md +0 -18
  267. package/.claude/commands/analysis/bottleneck-detect.md +0 -69
  268. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  269. package/.claude/commands/analysis/performance-report.md +0 -52
  270. package/.claude/commands/analysis/token-usage.md +0 -47
  271. package/.claude/commands/automation/README.md +0 -19
  272. package/.claude/commands/automation/auto-agent.md +0 -86
  273. package/.claude/commands/automation/self-healing.md +0 -108
  274. package/.claude/commands/automation/session-memory.md +0 -89
  275. package/.claude/commands/automation/smart-agents.md +0 -81
  276. package/.claude/commands/automation/smart-spawn.md +0 -66
  277. package/.claude/commands/automation/workflow-select.md +0 -60
  278. package/.claude/commands/coordination/README.md +0 -13
  279. package/.claude/commands/coordination/agent-spawn.md +0 -69
  280. package/.claude/commands/coordination/swarm-init.md +0 -82
  281. package/.claude/commands/coordination/task-orchestrate.md +0 -79
  282. package/.claude/commands/github/README.md +0 -24
  283. package/.claude/commands/github/github-modes.md +0 -151
  284. package/.claude/commands/github/issue-tracker.md +0 -293
  285. package/.claude/commands/github/pr-manager.md +0 -173
  286. package/.claude/commands/github/release-manager.md +0 -343
  287. package/.claude/commands/github/repo-architect.md +0 -379
  288. package/.claude/commands/github/sync-coordinator.md +0 -297
  289. package/.claude/commands/hive-mind/README.md +0 -42
  290. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
  291. package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
  292. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
  293. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
  294. package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
  295. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
  296. package/.claude/commands/hive-mind/hive-mind.md +0 -87
  297. package/.claude/commands/hooks/README.md +0 -66
  298. package/.claude/commands/hooks/overview.md +0 -112
  299. package/.claude/commands/hooks/post-edit.md +0 -78
  300. package/.claude/commands/hooks/post-task.md +0 -62
  301. package/.claude/commands/hooks/pre-edit.md +0 -81
  302. package/.claude/commands/hooks/pre-task.md +0 -73
  303. package/.claude/commands/hooks/session-end.md +0 -82
  304. package/.claude/commands/hooks/setup.md +0 -132
  305. package/.claude/commands/mastermind/_repeat.md +0 -492
  306. package/.claude/commands/mastermind/_taskfile.md +0 -232
  307. package/.claude/commands/mastermind/adr.md +0 -9
  308. package/.claude/commands/mastermind/approve.md +0 -91
  309. package/.claude/commands/mastermind/architect.md +0 -52
  310. package/.claude/commands/mastermind/autodev.md +0 -28
  311. package/.claude/commands/mastermind/brain.md +0 -99
  312. package/.claude/commands/mastermind/budget.md +0 -5
  313. package/.claude/commands/mastermind/build.md +0 -23
  314. package/.claude/commands/mastermind/code-review.md +0 -314
  315. package/.claude/commands/mastermind/content.md +0 -23
  316. package/.claude/commands/mastermind/createorg.md +0 -136
  317. package/.claude/commands/mastermind/createtask.md +0 -372
  318. package/.claude/commands/mastermind/debug.md +0 -19
  319. package/.claude/commands/mastermind/design.md +0 -17
  320. package/.claude/commands/mastermind/do.md +0 -525
  321. package/.claude/commands/mastermind/execute.md +0 -17
  322. package/.claude/commands/mastermind/finance.md +0 -23
  323. package/.claude/commands/mastermind/finish.md +0 -17
  324. package/.claude/commands/mastermind/graph-status.md +0 -5
  325. package/.claude/commands/mastermind/help.md +0 -115
  326. package/.claude/commands/mastermind/idea.md +0 -23
  327. package/.claude/commands/mastermind/ideate.md +0 -258
  328. package/.claude/commands/mastermind/improve.md +0 -342
  329. package/.claude/commands/mastermind/loops.md +0 -5
  330. package/.claude/commands/mastermind/marketing.md +0 -23
  331. package/.claude/commands/mastermind/master.md +0 -1124
  332. package/.claude/commands/mastermind/memory.md +0 -227
  333. package/.claude/commands/mastermind/okf-export.md +0 -14
  334. package/.claude/commands/mastermind/okf-import.md +0 -15
  335. package/.claude/commands/mastermind/ops.md +0 -23
  336. package/.claude/commands/mastermind/orgs.md +0 -18
  337. package/.claude/commands/mastermind/orgstatus.md +0 -56
  338. package/.claude/commands/mastermind/plan.md +0 -23
  339. package/.claude/commands/mastermind/receive-review.md +0 -17
  340. package/.claude/commands/mastermind/references/antigravity-tools.md +0 -60
  341. package/.claude/commands/mastermind/references/claude-code-tools.md +0 -50
  342. package/.claude/commands/mastermind/references/codex-tools.md +0 -64
  343. package/.claude/commands/mastermind/references/copilot-tools.md +0 -49
  344. package/.claude/commands/mastermind/references/gemini-tools.md +0 -63
  345. package/.claude/commands/mastermind/references/pi-tools.md +0 -28
  346. package/.claude/commands/mastermind/release.md +0 -23
  347. package/.claude/commands/mastermind/repeat.md +0 -254
  348. package/.claude/commands/mastermind/research.md +0 -23
  349. package/.claude/commands/mastermind/review.md +0 -34
  350. package/.claude/commands/mastermind/runorg.md +0 -153
  351. package/.claude/commands/mastermind/sales.md +0 -23
  352. package/.claude/commands/mastermind/skill-builder.md +0 -17
  353. package/.claude/commands/mastermind/specialagents.md +0 -122
  354. package/.claude/commands/mastermind/stoporg.md +0 -75
  355. package/.claude/commands/mastermind/swarm.md +0 -158
  356. package/.claude/commands/mastermind/taskdev.md +0 -23
  357. package/.claude/commands/mastermind/tdd.md +0 -19
  358. package/.claude/commands/mastermind/techport.md +0 -27
  359. package/.claude/commands/mastermind/understand.md +0 -136
  360. package/.claude/commands/mastermind/verify.md +0 -19
  361. package/.claude/commands/mastermind/worktree.md +0 -17
  362. package/.claude/commands/mastermind.md +0 -121
  363. package/.claude/commands/memory/README.md +0 -79
  364. package/.claude/commands/memory/memory-search.md +0 -77
  365. package/.claude/commands/monitoring/README.md +0 -69
  366. package/.claude/commands/monitoring/agent-metrics.md +0 -65
  367. package/.claude/commands/monitoring/agents.md +0 -71
  368. package/.claude/commands/monitoring/status.md +0 -108
  369. package/.claude/commands/monobrowse.md +0 -21
  370. package/.claude/commands/monoes/README.md +0 -30
  371. package/.claude/commands/monoes/install.md +0 -163
  372. package/.claude/commands/monoes/monoagent.md +0 -148
  373. package/.claude/commands/monoes/monoclip.md +0 -64
  374. package/.claude/commands/monoes/monotask.md +0 -137
  375. package/.claude/commands/monograph/README.md +0 -102
  376. package/.claude/commands/monograph/monograph-build.md +0 -79
  377. package/.claude/commands/monograph/monograph-search.md +0 -96
  378. package/.claude/commands/monograph/monograph-stats.md +0 -53
  379. package/.claude/commands/monograph/monograph-watch.md +0 -63
  380. package/.claude/commands/monograph/monograph-wiki.md +0 -91
  381. package/.claude/commands/optimization/auto-topology.md +0 -85
  382. package/.claude/commands/optimization/performance-optimize.md +0 -79
  383. package/.claude/commands/pair/README.md +0 -79
  384. package/.claude/commands/pair/examples.md +0 -156
  385. package/.claude/commands/pair/modes.md +0 -122
  386. package/.claude/commands/pair/session.md +0 -124
  387. package/.claude/commands/sparc/analyzer.md +0 -35
  388. package/.claude/commands/sparc/architect.md +0 -36
  389. package/.claude/commands/sparc/ask.md +0 -56
  390. package/.claude/commands/sparc/batch-executor.md +0 -37
  391. package/.claude/commands/sparc/code.md +0 -48
  392. package/.claude/commands/sparc/coder.md +0 -37
  393. package/.claude/commands/sparc/debug.md +0 -42
  394. package/.claude/commands/sparc/debugger.md +0 -37
  395. package/.claude/commands/sparc/designer.md +0 -36
  396. package/.claude/commands/sparc/devops.md +0 -68
  397. package/.claude/commands/sparc/docs-writer.md +0 -39
  398. package/.claude/commands/sparc/documenter.md +0 -37
  399. package/.claude/commands/sparc/innovator.md +0 -37
  400. package/.claude/commands/sparc/integration.md +0 -42
  401. package/.claude/commands/sparc/mcp.md +0 -76
  402. package/.claude/commands/sparc/memory-manager.md +0 -57
  403. package/.claude/commands/sparc/optimizer.md +0 -37
  404. package/.claude/commands/sparc/orchestrator.md +0 -70
  405. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  406. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  407. package/.claude/commands/sparc/researcher.md +0 -37
  408. package/.claude/commands/sparc/reviewer.md +0 -37
  409. package/.claude/commands/sparc/security-review.md +0 -39
  410. package/.claude/commands/sparc/sparc-modes.md +0 -120
  411. package/.claude/commands/sparc/sparc.md +0 -71
  412. package/.claude/commands/sparc/spec-pseudocode.md +0 -39
  413. package/.claude/commands/sparc/supabase-admin.md +0 -301
  414. package/.claude/commands/sparc/swarm-coordinator.md +0 -50
  415. package/.claude/commands/sparc/tdd.md +0 -37
  416. package/.claude/commands/sparc/tester.md +0 -37
  417. package/.claude/commands/sparc/tutorial.md +0 -38
  418. package/.claude/commands/sparc/workflow-manager.md +0 -37
  419. package/.claude/commands/sparc.md +0 -112
  420. package/.claude/commands/stream-chain/pipeline.md +0 -116
  421. package/.claude/commands/stream-chain/run.md +0 -156
  422. package/.claude/commands/swarm/README.md +0 -40
  423. package/.claude/commands/swarm/analysis.md +0 -73
  424. package/.claude/commands/swarm/development.md +0 -72
  425. package/.claude/commands/swarm/examples.md +0 -103
  426. package/.claude/commands/swarm/maintenance.md +0 -75
  427. package/.claude/commands/swarm/optimization.md +0 -84
  428. package/.claude/commands/swarm/research.md +0 -76
  429. package/.claude/commands/swarm/swarm.md +0 -79
  430. package/.claude/commands/swarm/testing.md +0 -80
  431. package/.claude/commands/tokens.md +0 -18
  432. package/.claude/commands/truth/start.md +0 -121
  433. package/.claude/commands/ts.md +0 -14
  434. package/.claude/commands/workflows/README.md +0 -65
  435. package/.claude/commands/workflows/development.md +0 -86
  436. package/.claude/commands/workflows/research.md +0 -89
  437. package/.claude/commands/workflows/workflow-create.md +0 -84
  438. package/.claude/commands/workflows/workflow-execute.md +0 -103
  439. package/.claude/commands/workflows/workflow-export.md +0 -90
  440. package/.claude/helpers/control-start.cjs +0 -184
  441. package/.claude/helpers/event-logger.cjs +0 -155
  442. package/.claude/helpers/extras-registry.json +0 -5141
  443. package/.claude/helpers/graphify-freshen.cjs +0 -140
  444. package/.claude/helpers/handlers/adr-draft-handler.cjs +0 -78
  445. package/.claude/helpers/handlers/agent-start-handler.cjs +0 -83
  446. package/.claude/helpers/handlers/budget-status-handler.cjs +0 -14
  447. package/.claude/helpers/handlers/capture-handler.cjs +0 -583
  448. package/.claude/helpers/handlers/compact-handler.cjs +0 -35
  449. package/.claude/helpers/handlers/edit-handler.cjs +0 -145
  450. package/.claude/helpers/handlers/gates-handler.cjs +0 -138
  451. package/.claude/helpers/handlers/graph-status-handler.cjs +0 -45
  452. package/.claude/helpers/handlers/loops-status-handler.cjs +0 -48
  453. package/.claude/helpers/handlers/route-handler.cjs +0 -381
  454. package/.claude/helpers/handlers/session-handler.cjs +0 -234
  455. package/.claude/helpers/handlers/session-restore-handler.cjs +0 -375
  456. package/.claude/helpers/handlers/stats-handler.cjs +0 -14
  457. package/.claude/helpers/handlers/task-handler.cjs +0 -206
  458. package/.claude/helpers/hook-handler.cjs +0 -765
  459. package/.claude/helpers/intelligence.cjs +0 -338
  460. package/.claude/helpers/learning-service.mjs +0 -61
  461. package/.claude/helpers/loop-tracker.cjs +0 -119
  462. package/.claude/helpers/mastermind-activate.cjs +0 -35
  463. package/.claude/helpers/memory-palace.cjs +0 -461
  464. package/.claude/helpers/memory.cjs +0 -193
  465. package/.claude/helpers/metrics-db.mjs +0 -87
  466. package/.claude/helpers/monolean-activate.cjs +0 -30
  467. package/.claude/helpers/monolean-config.cjs +0 -76
  468. package/.claude/helpers/monolean-instructions.cjs +0 -109
  469. package/.claude/helpers/monolean-propagate.cjs +0 -13
  470. package/.claude/helpers/monolean-tracker.cjs +0 -18
  471. package/.claude/helpers/router.cjs +0 -364
  472. package/.claude/helpers/session.cjs +0 -140
  473. package/.claude/helpers/skill-registry.json +0 -1043
  474. package/.claude/helpers/statusline.cjs +0 -1344
  475. package/.claude/helpers/toggle-statusline.cjs +0 -73
  476. package/.claude/helpers/token-tracker.cjs +0 -934
  477. package/.claude/helpers/utils/micro-agents.cjs +0 -354
  478. package/.claude/helpers/utils/monograph.cjs +0 -480
  479. package/.claude/helpers/utils/telemetry.cjs +0 -146
  480. package/.claude/mcp.json +0 -3
  481. package/.claude/scheduled_tasks.lock +0 -1
  482. package/.claude/settings.json +0 -475
  483. package/.claude/skills/.monomind/data/ranked-context.json +0 -5
  484. package/.claude/skills/.monomind/sessions/current.json +0 -13
  485. package/.claude/skills/.monomind/sessions/session-1777829336455.json +0 -15
  486. package/.claude/skills/.monomind/sessions/session-1777831614725.json +0 -15
  487. package/.claude/skills/.monomind/sessions/session-1777832095857.json +0 -15
  488. package/.claude/skills/.monomind/sessions/session-1777839814183.json +0 -15
  489. package/.claude/skills/.monomind/sessions/session-1777841847131.json +0 -15
  490. package/.claude/skills/.monomind/sessions/session-1777843309463.json +0 -15
  491. package/.claude/skills/.monomind/sessions/session-1777880867159.json +0 -15
  492. package/.claude/skills/.monomind/sessions/session-1777881884593.json +0 -15
  493. package/.claude/skills/.monomind/sessions/session-1777884090471.json +0 -15
  494. package/.claude/skills/.monomind/sessions/session-1777884808221.json +0 -15
  495. package/.claude/skills/.monomind/sessions/session-1777885672155.json +0 -15
  496. package/.claude/skills/.monomind/sessions/session-1777886852818.json +0 -15
  497. package/.claude/skills/.monomind/sessions/session-1777896532690.json +0 -15
  498. package/.claude/skills/agent-browser-testing/SKILL.md +0 -964
  499. package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
  500. package/.claude/skills/github-issue-triage/SKILL.md +0 -354
  501. package/.claude/skills/github-repo-recap/SKILL.md +0 -207
  502. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -709
  503. package/.claude/skills/hooks-automation/SKILL.md +0 -1193
  504. package/.claude/skills/mastermind-skills/_agent-select.md +0 -132
  505. package/.claude/skills/mastermind-skills/_delegation.md +0 -83
  506. package/.claude/skills/mastermind-skills/_intake.md +0 -83
  507. package/.claude/skills/mastermind-skills/_protocol.md +0 -404
  508. package/.claude/skills/mastermind-skills/_repeat.md +0 -171
  509. package/.claude/skills/mastermind-skills/access.md +0 -236
  510. package/.claude/skills/mastermind-skills/activity.md +0 -191
  511. package/.claude/skills/mastermind-skills/adapter-manager.md +0 -259
  512. package/.claude/skills/mastermind-skills/adapters.md +0 -204
  513. package/.claude/skills/mastermind-skills/agent-detail.md +0 -242
  514. package/.claude/skills/mastermind-skills/agents.md +0 -178
  515. package/.claude/skills/mastermind-skills/approval-detail.md +0 -259
  516. package/.claude/skills/mastermind-skills/approve.md +0 -188
  517. package/.claude/skills/mastermind-skills/architect.md +0 -862
  518. package/.claude/skills/mastermind-skills/autodev.md +0 -360
  519. package/.claude/skills/mastermind-skills/backup.md +0 -197
  520. package/.claude/skills/mastermind-skills/bootstrap.md +0 -190
  521. package/.claude/skills/mastermind-skills/budgets.md +0 -237
  522. package/.claude/skills/mastermind-skills/build.md +0 -170
  523. package/.claude/skills/mastermind-skills/code-quality-reviewer-prompt.md +0 -60
  524. package/.claude/skills/mastermind-skills/companies.md +0 -256
  525. package/.claude/skills/mastermind-skills/content.md +0 -197
  526. package/.claude/skills/mastermind-skills/costs.md +0 -151
  527. package/.claude/skills/mastermind-skills/createorg.md +0 -862
  528. package/.claude/skills/mastermind-skills/debug.md +0 -232
  529. package/.claude/skills/mastermind-skills/design.md +0 -189
  530. package/.claude/skills/mastermind-skills/diagnose.md +0 -249
  531. package/.claude/skills/mastermind-skills/env.md +0 -198
  532. package/.claude/skills/mastermind-skills/environments.md +0 -250
  533. package/.claude/skills/mastermind-skills/execute.md +0 -104
  534. package/.claude/skills/mastermind-skills/export.md +0 -333
  535. package/.claude/skills/mastermind-skills/finance.md +0 -166
  536. package/.claude/skills/mastermind-skills/finish.md +0 -251
  537. package/.claude/skills/mastermind-skills/goal-detail.md +0 -255
  538. package/.claude/skills/mastermind-skills/goals.md +0 -149
  539. package/.claude/skills/mastermind-skills/heartbeat.md +0 -164
  540. package/.claude/skills/mastermind-skills/idea.md +0 -1142
  541. package/.claude/skills/mastermind-skills/implementer-prompt.md +0 -109
  542. package/.claude/skills/mastermind-skills/import.md +0 -281
  543. package/.claude/skills/mastermind-skills/inbox.md +0 -214
  544. package/.claude/skills/mastermind-skills/instance-settings.md +0 -315
  545. package/.claude/skills/mastermind-skills/instance.md +0 -233
  546. package/.claude/skills/mastermind-skills/invite-landing.md +0 -227
  547. package/.claude/skills/mastermind-skills/invites.md +0 -254
  548. package/.claude/skills/mastermind-skills/issue-detail.md +0 -291
  549. package/.claude/skills/mastermind-skills/issues.md +0 -235
  550. package/.claude/skills/mastermind-skills/join-queue.md +0 -170
  551. package/.claude/skills/mastermind-skills/liveness.md +0 -392
  552. package/.claude/skills/mastermind-skills/marketing.md +0 -228
  553. package/.claude/skills/mastermind-skills/memory.md +0 -321
  554. package/.claude/skills/mastermind-skills/monitor.md +0 -1284
  555. package/.claude/skills/mastermind-skills/monotask.md +0 -350
  556. package/.claude/skills/mastermind-skills/my-issues.md +0 -146
  557. package/.claude/skills/mastermind-skills/new-agent.md +0 -241
  558. package/.claude/skills/mastermind-skills/ops.md +0 -168
  559. package/.claude/skills/mastermind-skills/org-chart.md +0 -209
  560. package/.claude/skills/mastermind-skills/org-settings.md +0 -254
  561. package/.claude/skills/mastermind-skills/orgs.md +0 -98
  562. package/.claude/skills/mastermind-skills/orgstatus.md +0 -194
  563. package/.claude/skills/mastermind-skills/plan-to-tasks.md +0 -136
  564. package/.claude/skills/mastermind-skills/plan.md +0 -198
  565. package/.claude/skills/mastermind-skills/plugin-manager.md +0 -241
  566. package/.claude/skills/mastermind-skills/plugin-settings.md +0 -273
  567. package/.claude/skills/mastermind-skills/plugins.md +0 -190
  568. package/.claude/skills/mastermind-skills/profile.md +0 -187
  569. package/.claude/skills/mastermind-skills/project-detail.md +0 -249
  570. package/.claude/skills/mastermind-skills/project-workspace.md +0 -244
  571. package/.claude/skills/mastermind-skills/projects.md +0 -164
  572. package/.claude/skills/mastermind-skills/receive-review.md +0 -213
  573. package/.claude/skills/mastermind-skills/references/copywriting-frameworks.md +0 -181
  574. package/.claude/skills/mastermind-skills/references/persuasion-psychology.md +0 -158
  575. package/.claude/skills/mastermind-skills/release.md +0 -168
  576. package/.claude/skills/mastermind-skills/research.md +0 -168
  577. package/.claude/skills/mastermind-skills/review.md +0 -233
  578. package/.claude/skills/mastermind-skills/routine-detail.md +0 -253
  579. package/.claude/skills/mastermind-skills/routines.md +0 -203
  580. package/.claude/skills/mastermind-skills/runorg.md +0 -714
  581. package/.claude/skills/mastermind-skills/sales.md +0 -170
  582. package/.claude/skills/mastermind-skills/search.md +0 -186
  583. package/.claude/skills/mastermind-skills/secrets.md +0 -199
  584. package/.claude/skills/mastermind-skills/skill-builder.md +0 -274
  585. package/.claude/skills/mastermind-skills/skills.md +0 -156
  586. package/.claude/skills/mastermind-skills/spec-reviewer-prompt.md +0 -63
  587. package/.claude/skills/mastermind-skills/stoporg.md +0 -138
  588. package/.claude/skills/mastermind-skills/taskdev.md +0 -307
  589. package/.claude/skills/mastermind-skills/tasks.md +0 -149
  590. package/.claude/skills/mastermind-skills/tdd.md +0 -394
  591. package/.claude/skills/mastermind-skills/techport.md +0 -777
  592. package/.claude/skills/mastermind-skills/threads.md +0 -259
  593. package/.claude/skills/mastermind-skills/tree-control.md +0 -250
  594. package/.claude/skills/mastermind-skills/verify.md +0 -196
  595. package/.claude/skills/mastermind-skills/wiki.md +0 -314
  596. package/.claude/skills/mastermind-skills/workspace-detail.md +0 -317
  597. package/.claude/skills/mastermind-skills/workspaces.md +0 -261
  598. package/.claude/skills/mastermind-skills/worktree.md +0 -215
  599. package/.claude/skills/monodesign/SKILL.md +0 -333
  600. package/.claude/skills/monodesign/adapt.md +0 -53
  601. package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
  602. package/.claude/skills/monodesign/animate.md +0 -65
  603. package/.claude/skills/monodesign/audit.md +0 -89
  604. package/.claude/skills/monodesign/bolder.md +0 -50
  605. package/.claude/skills/monodesign/clarify.md +0 -64
  606. package/.claude/skills/monodesign/colorize.md +0 -68
  607. package/.claude/skills/monodesign/craft.md +0 -51
  608. package/.claude/skills/monodesign/critique.md +0 -66
  609. package/.claude/skills/monodesign/delight.md +0 -47
  610. package/.claude/skills/monodesign/distill.md +0 -56
  611. package/.claude/skills/monodesign/document.md +0 -83
  612. package/.claude/skills/monodesign/extract.md +0 -74
  613. package/.claude/skills/monodesign/harden.md +0 -65
  614. package/.claude/skills/monodesign/live.md +0 -59
  615. package/.claude/skills/monodesign/onboard.md +0 -50
  616. package/.claude/skills/monodesign/optimize.md +0 -64
  617. package/.claude/skills/monodesign/overdrive.md +0 -56
  618. package/.claude/skills/monodesign/polish.md +0 -68
  619. package/.claude/skills/monodesign/quieter.md +0 -57
  620. package/.claude/skills/monodesign/reference/adapt.md +0 -190
  621. package/.claude/skills/monodesign/reference/animate.md +0 -175
  622. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -359
  623. package/.claude/skills/monodesign/reference/audit.md +0 -133
  624. package/.claude/skills/monodesign/reference/bolder.md +0 -113
  625. package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
  626. package/.claude/skills/monodesign/reference/brand.md +0 -114
  627. package/.claude/skills/monodesign/reference/clarify.md +0 -174
  628. package/.claude/skills/monodesign/reference/codex.md +0 -107
  629. package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
  630. package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
  631. package/.claude/skills/monodesign/reference/colorize.md +0 -154
  632. package/.claude/skills/monodesign/reference/component-specs.md +0 -260
  633. package/.claude/skills/monodesign/reference/component-states.md +0 -274
  634. package/.claude/skills/monodesign/reference/component-system.md +0 -358
  635. package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
  636. package/.claude/skills/monodesign/reference/craft.md +0 -196
  637. package/.claude/skills/monodesign/reference/critique.md +0 -213
  638. package/.claude/skills/monodesign/reference/delight.md +0 -302
  639. package/.claude/skills/monodesign/reference/design-principles.md +0 -246
  640. package/.claude/skills/monodesign/reference/distill.md +0 -111
  641. package/.claude/skills/monodesign/reference/document.md +0 -427
  642. package/.claude/skills/monodesign/reference/extract.md +0 -69
  643. package/.claude/skills/monodesign/reference/harden.md +0 -347
  644. package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
  645. package/.claude/skills/monodesign/reference/hooks.md +0 -99
  646. package/.claude/skills/monodesign/reference/image-prompts.md +0 -130
  647. package/.claude/skills/monodesign/reference/interaction-design.md +0 -195
  648. package/.claude/skills/monodesign/reference/layout.md +0 -141
  649. package/.claude/skills/monodesign/reference/live.md +0 -622
  650. package/.claude/skills/monodesign/reference/motion-design.md +0 -109
  651. package/.claude/skills/monodesign/reference/onboard.md +0 -234
  652. package/.claude/skills/monodesign/reference/optimize.md +0 -258
  653. package/.claude/skills/monodesign/reference/overdrive.md +0 -130
  654. package/.claude/skills/monodesign/reference/personas.md +0 -179
  655. package/.claude/skills/monodesign/reference/polish.md +0 -233
  656. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
  657. package/.claude/skills/monodesign/reference/product.md +0 -62
  658. package/.claude/skills/monodesign/reference/quieter.md +0 -99
  659. package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
  660. package/.claude/skills/monodesign/reference/shape.md +0 -151
  661. package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
  662. package/.claude/skills/monodesign/reference/teach.md +0 -156
  663. package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
  664. package/.claude/skills/monodesign/reference/typeset.md +0 -124
  665. package/.claude/skills/monodesign/reference/typography.md +0 -159
  666. package/.claude/skills/monodesign/reference/ux-research.md +0 -143
  667. package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
  668. package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
  669. package/.claude/skills/monodesign/shape.md +0 -71
  670. package/.claude/skills/monodesign/teach.md +0 -69
  671. package/.claude/skills/monodesign/typeset.md +0 -59
  672. package/.claude/skills/monolean/SKILL.md +0 -118
  673. package/.claude/skills/monolean-audit/SKILL.md +0 -41
  674. package/.claude/skills/monolean-debt/SKILL.md +0 -46
  675. package/.claude/skills/monolean-help/SKILL.md +0 -60
  676. package/.claude/skills/monolean-review/SKILL.md +0 -57
  677. package/.claude/skills/monomind/.monomind/registry.json +0 -6
  678. package/.claude/skills/monomind/browse-agentcore.md +0 -115
  679. package/.claude/skills/monomind/browse-electron.md +0 -188
  680. package/.claude/skills/monomind/browse-qa.md +0 -228
  681. package/.claude/skills/monomind/browse-references/authentication.md +0 -161
  682. package/.claude/skills/monomind/browse-references/trust-boundaries.md +0 -40
  683. package/.claude/skills/monomind/browse-references/video-recording.md +0 -83
  684. package/.claude/skills/monomind/browse-slack.md +0 -188
  685. package/.claude/skills/monomind/browse-vercel.md +0 -239
  686. package/.claude/skills/monomind/browse.md +0 -724
  687. package/.claude/skills/monomotion/SKILL.md +0 -145
  688. package/.claude/skills/monomotion/rules/api-control.md +0 -139
  689. package/.claude/skills/monomotion/rules/effects.md +0 -109
  690. package/.claude/skills/monomotion/rules/integration.md +0 -140
  691. package/.claude/skills/monomotion/rules/scroll.md +0 -131
  692. package/.claude/skills/monomotion/rules/sequencing.md +0 -105
  693. package/.claude/skills/monomotion/rules/svg.md +0 -101
  694. package/.claude/skills/monomotion/rules/text.md +0 -119
  695. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  696. package/.claude/skills/performance-analysis/SKILL.md +0 -560
  697. package/.claude/skills/skill-builder/SKILL.md +0 -910
  698. package/.claude/skills/sparc-methodology/SKILL.md +0 -950
  699. package/.claude/skills/specialagent/SKILL.md +0 -208
  700. package/.claude/skills/stop-slop/SKILL.md +0 -67
  701. package/.claude/skills/stop-slop/references/examples.md +0 -61
  702. package/.claude/skills/stop-slop/references/phrases.md +0 -130
  703. package/.claude/skills/stop-slop/references/structures.md +0 -136
  704. package/.claude/skills/swarm-advanced/SKILL.md +0 -937
  705. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  706. package/.claude/skills/verification-quality/SKILL.md +0 -674
  707. package/.claude/workflows/feature-dev.yaml +0 -18
  708. package/.claude/workflows/security-audit.yaml +0 -10
  709. package/packages/@monomind/cli/.claude/agents/generated/case-analyst.md +0 -50
  710. package/packages/@monomind/cli/.claude/agents/generated/channel-intelligence-director.md +0 -87
  711. package/packages/@monomind/cli/.claude/agents/generated/chief-growth-officer.md +0 -88
  712. package/packages/@monomind/cli/.claude/agents/generated/churn-analyst.md +0 -53
  713. package/packages/@monomind/cli/.claude/agents/generated/code-reviewer.md +0 -55
  714. package/packages/@monomind/cli/.claude/agents/generated/code-validator.md +0 -57
  715. package/packages/@monomind/cli/.claude/agents/generated/complexity-scanner.md +0 -56
  716. package/packages/@monomind/cli/.claude/agents/generated/content-seo-strategist.md +0 -90
  717. package/packages/@monomind/cli/.claude/agents/generated/copy-editor.md +0 -45
  718. package/packages/@monomind/cli/.claude/agents/generated/court-reporter.md +0 -50
  719. package/packages/@monomind/cli/.claude/agents/generated/defender.md +0 -51
  720. package/packages/@monomind/cli/.claude/agents/generated/devbot-orchestrator.md +0 -58
  721. package/packages/@monomind/cli/.claude/agents/generated/devbot-planner.md +0 -63
  722. package/packages/@monomind/cli/.claude/agents/generated/developer-community-strategist.md +0 -91
  723. package/packages/@monomind/cli/.claude/agents/generated/editor-in-chief.md +0 -45
  724. package/packages/@monomind/cli/.claude/agents/generated/fact-checker.md +0 -45
  725. package/packages/@monomind/cli/.claude/agents/generated/impact-assessor.md +0 -54
  726. package/packages/@monomind/cli/.claude/agents/generated/judge.md +0 -51
  727. package/packages/@monomind/cli/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
  728. package/packages/@monomind/cli/.claude/agents/generated/prosecutor.md +0 -51
  729. package/packages/@monomind/cli/.claude/agents/generated/reporter.md +0 -45
  730. package/packages/@monomind/cli/.claude/agents/generated/social-media-strategist.md +0 -91
  731. package/packages/@monomind/cli/.claude/agents/generated/video-visual-strategist.md +0 -90
  732. package/packages/@monomind/cli/.claude/agents/reengineer-squad/boss.md +0 -113
  733. package/packages/@monomind/cli/.claude/agents/reengineer-squad/critic-architect.md +0 -132
  734. package/packages/@monomind/cli/.claude/agents/reengineer-squad/git-manager.md +0 -145
  735. package/packages/@monomind/cli/.claude/agents/reengineer-squad/idea-generator.md +0 -95
  736. package/packages/@monomind/cli/.claude/agents/reengineer-squad/implementer.md +0 -112
  737. package/packages/@monomind/cli/.claude/agents/reengineer-squad/integration-planner.md +0 -112
  738. package/packages/@monomind/cli/.claude/agents/reengineer-squad/source-analyst.md +0 -103
  739. package/packages/@monomind/cli/.claude/agents/reengineer-squad/target-analyst.md +0 -118
  740. package/packages/@monomind/cli/.claude/agents/reengineer-squad/tester.md +0 -105
  741. package/packages/@monomind/cli/.claude/agents/sparc/architecture.md +0 -453
  742. package/packages/@monomind/cli/.claude/agents/sparc/pseudocode.md +0 -299
  743. package/packages/@monomind/cli/.claude/agents/sparc/refinement.md +0 -504
  744. package/packages/@monomind/cli/.claude/agents/sparc/specification.md +0 -258
  745. package/packages/@monomind/cli/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  746. package/packages/@monomind/cli/.claude/commands/sparc/analyzer.md +0 -35
  747. package/packages/@monomind/cli/.claude/commands/sparc/architect.md +0 -36
  748. package/packages/@monomind/cli/.claude/commands/sparc/ask.md +0 -56
  749. package/packages/@monomind/cli/.claude/commands/sparc/batch-executor.md +0 -37
  750. package/packages/@monomind/cli/.claude/commands/sparc/code.md +0 -48
  751. package/packages/@monomind/cli/.claude/commands/sparc/coder.md +0 -37
  752. package/packages/@monomind/cli/.claude/commands/sparc/debug.md +0 -42
  753. package/packages/@monomind/cli/.claude/commands/sparc/debugger.md +0 -37
  754. package/packages/@monomind/cli/.claude/commands/sparc/designer.md +0 -36
  755. package/packages/@monomind/cli/.claude/commands/sparc/devops.md +0 -68
  756. package/packages/@monomind/cli/.claude/commands/sparc/docs-writer.md +0 -39
  757. package/packages/@monomind/cli/.claude/commands/sparc/documenter.md +0 -37
  758. package/packages/@monomind/cli/.claude/commands/sparc/innovator.md +0 -37
  759. package/packages/@monomind/cli/.claude/commands/sparc/integration.md +0 -42
  760. package/packages/@monomind/cli/.claude/commands/sparc/mcp.md +0 -76
  761. package/packages/@monomind/cli/.claude/commands/sparc/memory-manager.md +0 -57
  762. package/packages/@monomind/cli/.claude/commands/sparc/optimizer.md +0 -37
  763. package/packages/@monomind/cli/.claude/commands/sparc/orchestrator.md +0 -70
  764. package/packages/@monomind/cli/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  765. package/packages/@monomind/cli/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  766. package/packages/@monomind/cli/.claude/commands/sparc/researcher.md +0 -37
  767. package/packages/@monomind/cli/.claude/commands/sparc/reviewer.md +0 -37
  768. package/packages/@monomind/cli/.claude/commands/sparc/security-review.md +0 -39
  769. package/packages/@monomind/cli/.claude/commands/sparc/sparc-modes.md +0 -120
  770. package/packages/@monomind/cli/.claude/commands/sparc/sparc.md +0 -71
  771. package/packages/@monomind/cli/.claude/commands/sparc/spec-pseudocode.md +0 -39
  772. package/packages/@monomind/cli/.claude/commands/sparc/supabase-admin.md +0 -301
  773. package/packages/@monomind/cli/.claude/commands/sparc/swarm-coordinator.md +0 -50
  774. package/packages/@monomind/cli/.claude/commands/sparc/tdd.md +0 -37
  775. package/packages/@monomind/cli/.claude/commands/sparc/tester.md +0 -37
  776. package/packages/@monomind/cli/.claude/commands/sparc/tutorial.md +0 -38
  777. package/packages/@monomind/cli/.claude/commands/sparc/workflow-manager.md +0 -37
  778. package/packages/@monomind/cli/.claude/commands/sparc.md +0 -112
  779. package/packages/@monomind/cli/.claude/skills/sparc-methodology/SKILL.md +0 -950
  780. package/packages/@monomind/cli/dist/src/capabilities/enrichment.d.ts +0 -44
  781. package/packages/@monomind/cli/dist/src/capabilities/enrichment.js +0 -141
  782. package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.d.ts +0 -14
  783. package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.js +0 -295
  784. package/packages/@monomind/cli/dist/src/commands/analyze-graph.d.ts +0 -14
  785. package/packages/@monomind/cli/dist/src/commands/analyze-graph.js +0 -304
  786. package/packages/@monomind/cli/dist/src/commands/claims.d.ts +0 -10
  787. package/packages/@monomind/cli/dist/src/commands/claims.js +0 -650
  788. package/packages/@monomind/cli/dist/src/commands/daemon.d.ts +0 -8
  789. package/packages/@monomind/cli/dist/src/commands/daemon.js +0 -681
  790. package/packages/@monomind/cli/dist/src/commands/enrich.d.ts +0 -10
  791. package/packages/@monomind/cli/dist/src/commands/enrich.js +0 -58
  792. package/packages/@monomind/cli/dist/src/commands/issues.d.ts +0 -21
  793. package/packages/@monomind/cli/dist/src/commands/issues.js +0 -575
  794. package/packages/@monomind/cli/dist/src/commands/workflow.d.ts +0 -8
  795. package/packages/@monomind/cli/dist/src/commands/workflow.js +0 -575
  796. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  797. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +0 -717
  798. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +0 -198
  799. package/packages/@monomind/cli/dist/src/services/claim-service.js +0 -890
  800. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +0 -311
  801. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +0 -1183
  802. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +0 -230
  803. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +0 -1350
  804. package/packages/@monomind/cli/dist/src/ui/.monomind/capture/active-run.json +0 -1
  805. package/packages/@monomind/guidance/README.md +0 -87
  806. package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
  807. package/packages/@monomind/guidance/dist/adversarial.js +0 -572
  808. package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
  809. package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
  810. package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
  811. package/packages/@monomind/guidance/dist/artifacts.js +0 -356
  812. package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
  813. package/packages/@monomind/guidance/dist/authority.js +0 -558
  814. package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
  815. package/packages/@monomind/guidance/dist/capabilities.js +0 -485
  816. package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
  817. package/packages/@monomind/guidance/dist/coherence.js +0 -378
  818. package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
  819. package/packages/@monomind/guidance/dist/compiler.js +0 -425
  820. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
  821. package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
  822. package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
  823. package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
  824. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
  825. package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
  826. package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
  827. package/packages/@monomind/guidance/dist/evolution.js +0 -500
  828. package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
  829. package/packages/@monomind/guidance/dist/gates.js +0 -302
  830. package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
  831. package/packages/@monomind/guidance/dist/gateway.js +0 -452
  832. package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
  833. package/packages/@monomind/guidance/dist/generators.js +0 -682
  834. package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
  835. package/packages/@monomind/guidance/dist/headless.js +0 -342
  836. package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
  837. package/packages/@monomind/guidance/dist/hooks.js +0 -347
  838. package/packages/@monomind/guidance/dist/index.d.ts +0 -203
  839. package/packages/@monomind/guidance/dist/index.js +0 -320
  840. package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
  841. package/packages/@monomind/guidance/dist/ledger.js +0 -375
  842. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
  843. package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
  844. package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
  845. package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
  846. package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
  847. package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
  848. package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
  849. package/packages/@monomind/guidance/dist/optimizer.js +0 -329
  850. package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
  851. package/packages/@monomind/guidance/dist/persistence.js +0 -464
  852. package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
  853. package/packages/@monomind/guidance/dist/proof.js +0 -238
  854. package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
  855. package/packages/@monomind/guidance/dist/retriever.js +0 -394
  856. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
  857. package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
  858. package/packages/@monomind/guidance/dist/temporal.d.ts +0 -428
  859. package/packages/@monomind/guidance/dist/temporal.js +0 -660
  860. package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
  861. package/packages/@monomind/guidance/dist/trust.js +0 -474
  862. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
  863. package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
  864. package/packages/@monomind/guidance/dist/types.d.ts +0 -378
  865. package/packages/@monomind/guidance/dist/types.js +0 -10
  866. package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
  867. package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
  868. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
  869. package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
  870. 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