monomind 2.7.5 → 2.7.6

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 (905) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/bin/npx-safe-launch.js +0 -0
  4. package/package.json +2 -2
  5. package/packages/@monomind/cli/.claude/agents/architecture/system-design/arch-system-design.md +0 -0
  6. package/packages/@monomind/cli/.claude/agents/consensus/crdt-synchronizer.md +0 -0
  7. package/packages/@monomind/cli/.claude/agents/consensus/quorum-manager.md +80 -777
  8. package/packages/@monomind/cli/.claude/agents/consensus/security-manager.md +0 -0
  9. package/packages/@monomind/cli/.claude/agents/core/coder.md +0 -0
  10. package/packages/@monomind/cli/.claude/agents/core/coordinator.md +0 -0
  11. package/packages/@monomind/cli/.claude/agents/core/planner.md +0 -0
  12. package/packages/@monomind/cli/.claude/agents/core/researcher.md +0 -0
  13. package/packages/@monomind/cli/.claude/agents/core/reviewer.md +0 -0
  14. package/packages/@monomind/cli/.claude/agents/core/tester.md +0 -0
  15. package/packages/@monomind/cli/.claude/agents/design/design-monodesign.md +0 -0
  16. package/packages/@monomind/cli/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -0
  17. package/packages/@monomind/cli/.claude/agents/engineering/engineering-ai-engineer.md +0 -0
  18. package/packages/@monomind/cli/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -0
  19. package/packages/@monomind/cli/.claude/agents/engineering/engineering-backend-architect.md +0 -0
  20. package/packages/@monomind/cli/.claude/agents/engineering/engineering-code-reviewer.md +0 -0
  21. package/packages/@monomind/cli/.claude/agents/engineering/engineering-data-engineer.md +0 -0
  22. package/packages/@monomind/cli/.claude/agents/engineering/engineering-database-optimizer.md +0 -0
  23. package/packages/@monomind/cli/.claude/agents/engineering/engineering-devops-automator.md +0 -0
  24. package/packages/@monomind/cli/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -0
  25. package/packages/@monomind/cli/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -0
  26. package/packages/@monomind/cli/.claude/agents/engineering/engineering-frontend-developer.md +0 -0
  27. package/packages/@monomind/cli/.claude/agents/engineering/engineering-git-workflow-master.md +0 -0
  28. package/packages/@monomind/cli/.claude/agents/engineering/engineering-incident-response-commander.md +0 -0
  29. package/packages/@monomind/cli/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -0
  30. package/packages/@monomind/cli/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -0
  31. package/packages/@monomind/cli/.claude/agents/engineering/engineering-security-engineer.md +0 -0
  32. package/packages/@monomind/cli/.claude/agents/engineering/engineering-senior-developer.md +0 -0
  33. package/packages/@monomind/cli/.claude/agents/engineering/engineering-software-architect.md +0 -0
  34. package/packages/@monomind/cli/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -0
  35. package/packages/@monomind/cli/.claude/agents/engineering/engineering-sre.md +0 -0
  36. package/packages/@monomind/cli/.claude/agents/engineering/engineering-technical-writer.md +0 -0
  37. package/packages/@monomind/cli/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -0
  38. package/packages/@monomind/cli/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -0
  39. package/packages/@monomind/cli/.claude/agents/github/code-review-swarm.md +0 -0
  40. package/packages/@monomind/cli/.claude/agents/github/github-modes.md +0 -0
  41. package/packages/@monomind/cli/.claude/agents/github/issue-tracker.md +0 -0
  42. package/packages/@monomind/cli/.claude/agents/github/multi-repo-swarm.md +0 -0
  43. package/packages/@monomind/cli/.claude/agents/github/pr-manager.md +0 -0
  44. package/packages/@monomind/cli/.claude/agents/github/project-board-sync.md +0 -0
  45. package/packages/@monomind/cli/.claude/agents/github/release-manager.md +0 -0
  46. package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +0 -0
  47. package/packages/@monomind/cli/.claude/agents/github/swarm-issue.md +0 -0
  48. package/packages/@monomind/cli/.claude/agents/github/swarm-pr.md +0 -0
  49. package/packages/@monomind/cli/.claude/agents/github/sync-coordinator.md +0 -0
  50. package/packages/@monomind/cli/.claude/agents/github/workflow-automation.md +0 -0
  51. package/packages/@monomind/cli/.claude/agents/goal/goal-planner.md +0 -0
  52. package/packages/@monomind/cli/.claude/agents/hive-mind/collective-intelligence-coordinator.md +89 -125
  53. package/packages/@monomind/cli/.claude/agents/hive-mind/scout-explorer.md +0 -0
  54. package/packages/@monomind/cli/.claude/agents/hive-mind/swarm-memory-manager.md +0 -0
  55. package/packages/@monomind/cli/.claude/agents/hive-mind/worker-specialist.md +0 -0
  56. package/packages/@monomind/cli/.claude/agents/marketing/marketing-competitive-content.md +0 -0
  57. package/packages/@monomind/cli/.claude/agents/marketing/marketing-cro-specialist.md +0 -0
  58. package/packages/@monomind/cli/.claude/agents/marketing/marketing-email-specialist.md +0 -0
  59. package/packages/@monomind/cli/.claude/agents/marketing/marketing-launch-strategist.md +0 -0
  60. package/packages/@monomind/cli/.claude/agents/marketing/marketing-pricing-strategist.md +0 -0
  61. package/packages/@monomind/cli/.claude/agents/optimization/benchmark-suite.md +0 -0
  62. package/packages/@monomind/cli/.claude/agents/optimization/load-balancer.md +0 -0
  63. package/packages/@monomind/cli/.claude/agents/optimization/performance-monitor.md +0 -0
  64. package/packages/@monomind/cli/.claude/agents/optimization/resource-allocator.md +0 -0
  65. package/packages/@monomind/cli/.claude/agents/optimization/topology-optimizer.md +0 -0
  66. package/packages/@monomind/cli/.claude/agents/schemas/architecture-output.json +0 -0
  67. package/packages/@monomind/cli/.claude/agents/schemas/code-review-output.json +0 -0
  68. package/packages/@monomind/cli/.claude/agents/schemas/generic-task-input.json +0 -0
  69. package/packages/@monomind/cli/.claude/agents/schemas/implementation-output.json +0 -0
  70. package/packages/@monomind/cli/.claude/agents/schemas/research-output.json +0 -0
  71. package/packages/@monomind/cli/.claude/agents/schemas/security-audit-output.json +0 -0
  72. package/packages/@monomind/cli/.claude/agents/schemas/test-report-output.json +0 -0
  73. package/packages/@monomind/cli/.claude/agents/specialists/integration-architect.md +0 -0
  74. package/packages/@monomind/cli/.claude/agents/specialized/agentic-identity-trust.md +0 -0
  75. package/packages/@monomind/cli/.claude/agents/specialized/agents-orchestrator.md +0 -0
  76. package/packages/@monomind/cli/.claude/agents/specialized/automation-governance-architect.md +0 -0
  77. package/packages/@monomind/cli/.claude/agents/specialized/blockchain-security-auditor.md +0 -0
  78. package/packages/@monomind/cli/.claude/agents/specialized/compliance-auditor.md +0 -0
  79. package/packages/@monomind/cli/.claude/agents/specialized/identity-graph-operator.md +0 -0
  80. package/packages/@monomind/cli/.claude/agents/specialized/lsp-index-engineer.md +0 -0
  81. package/packages/@monomind/cli/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -0
  82. package/packages/@monomind/cli/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -0
  83. package/packages/@monomind/cli/.claude/agents/specialized/specialized-developer-advocate.md +0 -0
  84. package/packages/@monomind/cli/.claude/agents/specialized/specialized-document-generator.md +0 -0
  85. package/packages/@monomind/cli/.claude/agents/specialized/specialized-mcp-builder.md +0 -0
  86. package/packages/@monomind/cli/.claude/agents/specialized/specialized-model-qa.md +0 -0
  87. package/packages/@monomind/cli/.claude/agents/specialized/specialized-workflow-architect.md +0 -0
  88. package/packages/@monomind/cli/.claude/agents/specialized/zk-steward.md +0 -0
  89. package/packages/@monomind/cli/.claude/agents/swarm/mesh-coordinator.md +93 -359
  90. package/packages/@monomind/cli/.claude/agents/templates/automation-smart-agent.md +0 -0
  91. package/packages/@monomind/cli/.claude/agents/templates/coordinator-swarm-init.md +0 -0
  92. package/packages/@monomind/cli/.claude/agents/testing/production-validator.md +0 -0
  93. package/packages/@monomind/cli/.claude/agents/testing/tdd-london-swarm.md +0 -0
  94. package/packages/@monomind/cli/.claude/agents/testing/testing-accessibility-auditor.md +0 -0
  95. package/packages/@monomind/cli/.claude/agents/testing/testing-api-tester.md +0 -0
  96. package/packages/@monomind/cli/.claude/agents/testing/testing-evidence-collector.md +0 -0
  97. package/packages/@monomind/cli/.claude/agents/testing/testing-performance-benchmarker.md +0 -0
  98. package/packages/@monomind/cli/.claude/agents/testing/testing-test-results-analyzer.md +0 -0
  99. package/packages/@monomind/cli/.claude/agents/testing/testing-tool-evaluator.md +0 -0
  100. package/packages/@monomind/cli/.claude/agents/testing/testing-workflow-optimizer.md +0 -0
  101. package/packages/@monomind/cli/.claude/commands/agents/README.md +0 -0
  102. package/packages/@monomind/cli/.claude/commands/agents/agent-capabilities.md +0 -0
  103. package/packages/@monomind/cli/.claude/commands/agents/agent-coordination.md +0 -0
  104. package/packages/@monomind/cli/.claude/commands/agents/agent-spawning.md +0 -0
  105. package/packages/@monomind/cli/.claude/commands/agents/agent-types.md +0 -0
  106. package/packages/@monomind/cli/.claude/commands/analysis/README.md +0 -0
  107. package/packages/@monomind/cli/.claude/commands/analysis/bottleneck-detect.md +0 -0
  108. package/packages/@monomind/cli/.claude/commands/analysis/performance-bottlenecks.md +0 -0
  109. package/packages/@monomind/cli/.claude/commands/analysis/performance-report.md +0 -0
  110. package/packages/@monomind/cli/.claude/commands/analysis/token-usage.md +0 -0
  111. package/packages/@monomind/cli/.claude/commands/automation/README.md +0 -0
  112. package/packages/@monomind/cli/.claude/commands/automation/auto-agent.md +0 -0
  113. package/packages/@monomind/cli/.claude/commands/automation/self-healing.md +0 -0
  114. package/packages/@monomind/cli/.claude/commands/automation/session-memory.md +0 -0
  115. package/packages/@monomind/cli/.claude/commands/automation/smart-agents.md +0 -0
  116. package/packages/@monomind/cli/.claude/commands/automation/smart-spawn.md +0 -0
  117. package/packages/@monomind/cli/.claude/commands/automation/workflow-select.md +0 -0
  118. package/packages/@monomind/cli/.claude/commands/coordination/README.md +0 -0
  119. package/packages/@monomind/cli/.claude/commands/coordination/agent-spawn.md +0 -0
  120. package/packages/@monomind/cli/.claude/commands/coordination/swarm-init.md +0 -0
  121. package/packages/@monomind/cli/.claude/commands/coordination/task-orchestrate.md +0 -0
  122. package/packages/@monomind/cli/.claude/commands/github/README.md +0 -0
  123. package/packages/@monomind/cli/.claude/commands/github/github-modes.md +0 -0
  124. package/packages/@monomind/cli/.claude/commands/github/issue-tracker.md +0 -0
  125. package/packages/@monomind/cli/.claude/commands/github/pr-manager.md +0 -0
  126. package/packages/@monomind/cli/.claude/commands/github/release-manager.md +0 -0
  127. package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +0 -0
  128. package/packages/@monomind/cli/.claude/commands/github/sync-coordinator.md +0 -0
  129. package/packages/@monomind/cli/.claude/commands/hive-mind/README.md +0 -0
  130. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-consensus.md +0 -0
  131. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-init.md +0 -0
  132. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-memory.md +0 -0
  133. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-spawn.md +0 -0
  134. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-status.md +0 -0
  135. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-stop.md +0 -0
  136. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind.md +0 -0
  137. package/packages/@monomind/cli/.claude/commands/hooks/README.md +0 -0
  138. package/packages/@monomind/cli/.claude/commands/hooks/overview.md +0 -0
  139. package/packages/@monomind/cli/.claude/commands/hooks/post-edit.md +0 -0
  140. package/packages/@monomind/cli/.claude/commands/hooks/post-task.md +0 -0
  141. package/packages/@monomind/cli/.claude/commands/hooks/pre-edit.md +0 -0
  142. package/packages/@monomind/cli/.claude/commands/hooks/pre-task.md +0 -0
  143. package/packages/@monomind/cli/.claude/commands/hooks/session-end.md +0 -0
  144. package/packages/@monomind/cli/.claude/commands/hooks/setup.md +0 -0
  145. package/packages/@monomind/cli/.claude/commands/mastermind/_repeat.md +0 -0
  146. package/packages/@monomind/cli/.claude/commands/mastermind/_taskfile.md +0 -0
  147. package/packages/@monomind/cli/.claude/commands/mastermind/adr.md +0 -0
  148. package/packages/@monomind/cli/.claude/commands/mastermind/approvev1.md +0 -0
  149. package/packages/@monomind/cli/.claude/commands/mastermind/architect.md +0 -0
  150. package/packages/@monomind/cli/.claude/commands/mastermind/autodev.md +0 -0
  151. package/packages/@monomind/cli/.claude/commands/mastermind/brain.md +0 -0
  152. package/packages/@monomind/cli/.claude/commands/mastermind/budget.md +0 -0
  153. package/packages/@monomind/cli/.claude/commands/mastermind/build.md +0 -0
  154. package/packages/@monomind/cli/.claude/commands/mastermind/code-review.md +0 -0
  155. package/packages/@monomind/cli/.claude/commands/mastermind/content.md +0 -0
  156. package/packages/@monomind/cli/.claude/commands/mastermind/createorg.md +0 -0
  157. package/packages/@monomind/cli/.claude/commands/mastermind/createtask.md +0 -0
  158. package/packages/@monomind/cli/.claude/commands/mastermind/debug.md +0 -0
  159. package/packages/@monomind/cli/.claude/commands/mastermind/design.md +0 -0
  160. package/packages/@monomind/cli/.claude/commands/mastermind/do.md +0 -0
  161. package/packages/@monomind/cli/.claude/commands/mastermind/execute.md +0 -0
  162. package/packages/@monomind/cli/.claude/commands/mastermind/finance.md +0 -0
  163. package/packages/@monomind/cli/.claude/commands/mastermind/finish.md +0 -0
  164. package/packages/@monomind/cli/.claude/commands/mastermind/graph-status.md +0 -0
  165. package/packages/@monomind/cli/.claude/commands/mastermind/help.md +0 -0
  166. package/packages/@monomind/cli/.claude/commands/mastermind/idea.md +0 -0
  167. package/packages/@monomind/cli/.claude/commands/mastermind/ideate.md +0 -0
  168. package/packages/@monomind/cli/.claude/commands/mastermind/improve.md +0 -0
  169. package/packages/@monomind/cli/.claude/commands/mastermind/loops.md +0 -0
  170. package/packages/@monomind/cli/.claude/commands/mastermind/marketing.md +0 -0
  171. package/packages/@monomind/cli/.claude/commands/mastermind/master.md +0 -0
  172. package/packages/@monomind/cli/.claude/commands/mastermind/memory.md +0 -0
  173. package/packages/@monomind/cli/.claude/commands/mastermind/okf-export.md +0 -0
  174. package/packages/@monomind/cli/.claude/commands/mastermind/okf-import.md +0 -0
  175. package/packages/@monomind/cli/.claude/commands/mastermind/ops.md +0 -0
  176. package/packages/@monomind/cli/.claude/commands/mastermind/orgs.md +0 -0
  177. package/packages/@monomind/cli/.claude/commands/mastermind/orgstatus.md +0 -0
  178. package/packages/@monomind/cli/.claude/commands/mastermind/plan.md +0 -0
  179. package/packages/@monomind/cli/.claude/commands/mastermind/receive-review.md +0 -0
  180. package/packages/@monomind/cli/.claude/commands/mastermind/references/antigravity-tools.md +0 -0
  181. package/packages/@monomind/cli/.claude/commands/mastermind/references/claude-code-tools.md +0 -0
  182. package/packages/@monomind/cli/.claude/commands/mastermind/references/codex-tools.md +0 -0
  183. package/packages/@monomind/cli/.claude/commands/mastermind/references/copilot-tools.md +0 -0
  184. package/packages/@monomind/cli/.claude/commands/mastermind/references/gemini-tools.md +0 -0
  185. package/packages/@monomind/cli/.claude/commands/mastermind/references/pi-tools.md +0 -0
  186. package/packages/@monomind/cli/.claude/commands/mastermind/release.md +0 -0
  187. package/packages/@monomind/cli/.claude/commands/mastermind/repeat.md +0 -0
  188. package/packages/@monomind/cli/.claude/commands/mastermind/research.md +0 -0
  189. package/packages/@monomind/cli/.claude/commands/mastermind/review.md +0 -0
  190. package/packages/@monomind/cli/.claude/commands/mastermind/runorg.md +0 -0
  191. package/packages/@monomind/cli/.claude/commands/mastermind/runorgv1.md +0 -0
  192. package/packages/@monomind/cli/.claude/commands/mastermind/sales.md +0 -0
  193. package/packages/@monomind/cli/.claude/commands/mastermind/skill-builder.md +0 -0
  194. package/packages/@monomind/cli/.claude/commands/mastermind/specialagents.md +0 -0
  195. package/packages/@monomind/cli/.claude/commands/mastermind/stoporg.md +0 -0
  196. package/packages/@monomind/cli/.claude/commands/mastermind/swarm.md +0 -0
  197. package/packages/@monomind/cli/.claude/commands/mastermind/taskdev.md +0 -0
  198. package/packages/@monomind/cli/.claude/commands/mastermind/tdd.md +0 -0
  199. package/packages/@monomind/cli/.claude/commands/mastermind/techport.md +0 -0
  200. package/packages/@monomind/cli/.claude/commands/mastermind/topology.md +0 -0
  201. package/packages/@monomind/cli/.claude/commands/mastermind/understand.md +0 -0
  202. package/packages/@monomind/cli/.claude/commands/mastermind/verify.md +0 -0
  203. package/packages/@monomind/cli/.claude/commands/mastermind/worktree.md +0 -0
  204. package/packages/@monomind/cli/.claude/commands/mastermind.md +0 -0
  205. package/packages/@monomind/cli/.claude/commands/memory/README.md +0 -0
  206. package/packages/@monomind/cli/.claude/commands/memory/memory-search.md +0 -0
  207. package/packages/@monomind/cli/.claude/commands/monitoring/README.md +0 -0
  208. package/packages/@monomind/cli/.claude/commands/monitoring/agent-metrics.md +0 -0
  209. package/packages/@monomind/cli/.claude/commands/monitoring/agents.md +0 -0
  210. package/packages/@monomind/cli/.claude/commands/monitoring/status.md +0 -0
  211. package/packages/@monomind/cli/.claude/commands/monobrowse.md +0 -0
  212. package/packages/@monomind/cli/.claude/commands/monoes/README.md +0 -0
  213. package/packages/@monomind/cli/.claude/commands/monoes/install.md +0 -0
  214. package/packages/@monomind/cli/.claude/commands/monoes/monoagent.md +0 -0
  215. package/packages/@monomind/cli/.claude/commands/monoes/monoclip.md +0 -0
  216. package/packages/@monomind/cli/.claude/commands/monoes/monotask.md +0 -0
  217. package/packages/@monomind/cli/.claude/commands/monograph/README.md +0 -0
  218. package/packages/@monomind/cli/.claude/commands/monograph/monograph-build.md +0 -0
  219. package/packages/@monomind/cli/.claude/commands/monograph/monograph-search.md +0 -0
  220. package/packages/@monomind/cli/.claude/commands/monograph/monograph-stats.md +0 -0
  221. package/packages/@monomind/cli/.claude/commands/monograph/monograph-watch.md +0 -0
  222. package/packages/@monomind/cli/.claude/commands/monograph/monograph-wiki.md +0 -0
  223. package/packages/@monomind/cli/.claude/commands/optimization/auto-topology.md +0 -0
  224. package/packages/@monomind/cli/.claude/commands/optimization/performance-optimize.md +0 -0
  225. package/packages/@monomind/cli/.claude/commands/pair/README.md +0 -0
  226. package/packages/@monomind/cli/.claude/commands/pair/examples.md +0 -0
  227. package/packages/@monomind/cli/.claude/commands/pair/modes.md +0 -0
  228. package/packages/@monomind/cli/.claude/commands/pair/session.md +0 -0
  229. package/packages/@monomind/cli/.claude/commands/stream-chain/pipeline.md +0 -0
  230. package/packages/@monomind/cli/.claude/commands/stream-chain/run.md +0 -0
  231. package/packages/@monomind/cli/.claude/commands/swarm/README.md +0 -0
  232. package/packages/@monomind/cli/.claude/commands/swarm/analysis.md +0 -0
  233. package/packages/@monomind/cli/.claude/commands/swarm/development.md +0 -0
  234. package/packages/@monomind/cli/.claude/commands/swarm/examples.md +0 -0
  235. package/packages/@monomind/cli/.claude/commands/swarm/maintenance.md +0 -0
  236. package/packages/@monomind/cli/.claude/commands/swarm/optimization.md +0 -0
  237. package/packages/@monomind/cli/.claude/commands/swarm/research.md +0 -0
  238. package/packages/@monomind/cli/.claude/commands/swarm/swarm.md +0 -0
  239. package/packages/@monomind/cli/.claude/commands/swarm/testing.md +0 -0
  240. package/packages/@monomind/cli/.claude/commands/tokens.md +0 -0
  241. package/packages/@monomind/cli/.claude/commands/truth/start.md +0 -0
  242. package/packages/@monomind/cli/.claude/commands/ts.md +0 -0
  243. package/packages/@monomind/cli/.claude/commands/workflows/README.md +0 -0
  244. package/packages/@monomind/cli/.claude/commands/workflows/development.md +0 -0
  245. package/packages/@monomind/cli/.claude/commands/workflows/research.md +0 -0
  246. package/packages/@monomind/cli/.claude/commands/workflows/workflow-create.md +0 -0
  247. package/packages/@monomind/cli/.claude/commands/workflows/workflow-execute.md +0 -0
  248. package/packages/@monomind/cli/.claude/commands/workflows/workflow-export.md +0 -0
  249. package/packages/@monomind/cli/.claude/helpers/build-skill-registry.cjs +323 -0
  250. package/packages/@monomind/cli/.claude/helpers/control-start.cjs +0 -0
  251. package/packages/@monomind/cli/.claude/helpers/control-stop.cjs +0 -0
  252. package/packages/@monomind/cli/.claude/helpers/event-logger.cjs +0 -0
  253. package/packages/@monomind/cli/.claude/helpers/graphify-freshen.cjs +0 -0
  254. package/packages/@monomind/cli/.claude/helpers/handlers/adr-draft-handler.cjs +0 -0
  255. package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +0 -0
  256. package/packages/@monomind/cli/.claude/helpers/handlers/budget-status-handler.cjs +0 -0
  257. package/packages/@monomind/cli/.claude/helpers/handlers/capture-handler.cjs +0 -0
  258. package/packages/@monomind/cli/.claude/helpers/handlers/compact-handler.cjs +0 -0
  259. package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +0 -0
  260. package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +0 -0
  261. package/packages/@monomind/cli/.claude/helpers/handlers/graph-status-handler.cjs +0 -0
  262. package/packages/@monomind/cli/.claude/helpers/handlers/loops-status-handler.cjs +0 -0
  263. package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +0 -0
  264. package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +0 -0
  265. package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +1 -1
  266. package/packages/@monomind/cli/.claude/helpers/handlers/stats-handler.cjs +0 -0
  267. package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +0 -0
  268. package/packages/@monomind/cli/.claude/helpers/intelligence.cjs +0 -0
  269. package/packages/@monomind/cli/.claude/helpers/learning-service.mjs +0 -0
  270. package/packages/@monomind/cli/.claude/helpers/loop-tracker.cjs +0 -0
  271. package/packages/@monomind/cli/.claude/helpers/mastermind-activate.cjs +0 -0
  272. package/packages/@monomind/cli/.claude/helpers/memory-palace.cjs +0 -0
  273. package/packages/@monomind/cli/.claude/helpers/memory.cjs +0 -0
  274. package/packages/@monomind/cli/.claude/helpers/metrics-db.mjs +0 -0
  275. package/packages/@monomind/cli/.claude/helpers/monolean-activate.cjs +0 -0
  276. package/packages/@monomind/cli/.claude/helpers/monolean-config.cjs +0 -0
  277. package/packages/@monomind/cli/.claude/helpers/monolean-instructions.cjs +0 -0
  278. package/packages/@monomind/cli/.claude/helpers/monolean-propagate.cjs +0 -0
  279. package/packages/@monomind/cli/.claude/helpers/monolean-tracker.cjs +0 -0
  280. package/packages/@monomind/cli/.claude/helpers/router.cjs +158 -34
  281. package/packages/@monomind/cli/.claude/helpers/session.cjs +0 -0
  282. package/packages/@monomind/cli/.claude/helpers/skill-registry.json +4739 -645
  283. package/packages/@monomind/cli/.claude/helpers/statusline.cjs +0 -0
  284. package/packages/@monomind/cli/.claude/helpers/toggle-statusline.cjs +0 -0
  285. package/packages/@monomind/cli/.claude/helpers/token-tracker.cjs +0 -0
  286. package/packages/@monomind/cli/.claude/helpers/utils/agent-registrations.cjs +0 -0
  287. package/packages/@monomind/cli/.claude/helpers/utils/fs-helpers.cjs +0 -0
  288. package/packages/@monomind/cli/.claude/helpers/utils/micro-agents.cjs +0 -0
  289. package/packages/@monomind/cli/.claude/helpers/utils/monograph.cjs +0 -0
  290. package/packages/@monomind/cli/.claude/helpers/utils/system-pressure.cjs +0 -0
  291. package/packages/@monomind/cli/.claude/helpers/utils/telemetry.cjs +0 -0
  292. package/packages/@monomind/cli/.claude/settings.json +0 -0
  293. package/packages/@monomind/cli/.claude/skills/agent-browser-testing/SKILL.md +0 -0
  294. package/packages/@monomind/cli/.claude/skills/agentic-jujutsu/SKILL.md +0 -0
  295. package/packages/@monomind/cli/.claude/skills/github-issue-triage/SKILL.md +0 -0
  296. package/packages/@monomind/cli/.claude/skills/github-repo-recap/SKILL.md +0 -0
  297. package/packages/@monomind/cli/.claude/skills/github-toolkit/SKILL.md +60 -0
  298. package/packages/@monomind/cli/.claude/skills/hive-mind-advanced/SKILL.md +0 -0
  299. package/packages/@monomind/cli/.claude/skills/hooks-automation/SKILL.md +0 -0
  300. package/packages/@monomind/cli/.claude/skills/mastermind-access/SKILL.md +0 -0
  301. package/packages/@monomind/cli/.claude/skills/mastermind-activity/SKILL.md +0 -0
  302. package/packages/@monomind/cli/.claude/skills/mastermind-adapter-manager/SKILL.md +0 -0
  303. package/packages/@monomind/cli/.claude/skills/mastermind-adapters/SKILL.md +0 -0
  304. package/packages/@monomind/cli/.claude/skills/mastermind-agent-detail/SKILL.md +0 -0
  305. package/packages/@monomind/cli/.claude/skills/mastermind-agent-select/SKILL.md +0 -0
  306. package/packages/@monomind/cli/.claude/skills/mastermind-agents/SKILL.md +0 -0
  307. package/packages/@monomind/cli/.claude/skills/mastermind-approval-detail/SKILL.md +0 -0
  308. package/packages/@monomind/cli/.claude/skills/mastermind-approvev1/SKILL.md +0 -0
  309. package/packages/@monomind/cli/.claude/skills/mastermind-architect/SKILL.md +0 -0
  310. package/packages/@monomind/cli/.claude/skills/mastermind-autodev/SKILL.md +0 -0
  311. package/packages/@monomind/cli/.claude/skills/mastermind-backup/SKILL.md +0 -0
  312. package/packages/@monomind/cli/.claude/skills/mastermind-bootstrap/SKILL.md +0 -0
  313. package/packages/@monomind/cli/.claude/skills/mastermind-budgets/SKILL.md +0 -0
  314. package/packages/@monomind/cli/.claude/skills/mastermind-build/SKILL.md +0 -0
  315. package/packages/@monomind/cli/.claude/skills/mastermind-companies/SKILL.md +0 -0
  316. package/packages/@monomind/cli/.claude/skills/mastermind-content/SKILL.md +0 -0
  317. package/packages/@monomind/cli/.claude/skills/mastermind-costs/SKILL.md +0 -0
  318. package/packages/@monomind/cli/.claude/skills/mastermind-createorg/SKILL.md +0 -0
  319. package/packages/@monomind/cli/.claude/skills/mastermind-debug/SKILL.md +0 -0
  320. package/packages/@monomind/cli/.claude/skills/mastermind-delegation/SKILL.md +0 -0
  321. package/packages/@monomind/cli/.claude/skills/mastermind-design/SKILL.md +0 -0
  322. package/packages/@monomind/cli/.claude/skills/mastermind-diagnose/SKILL.md +0 -0
  323. package/packages/@monomind/cli/.claude/skills/mastermind-env/SKILL.md +0 -0
  324. package/packages/@monomind/cli/.claude/skills/mastermind-environments/SKILL.md +0 -0
  325. package/packages/@monomind/cli/.claude/skills/mastermind-execute/SKILL.md +0 -0
  326. package/packages/@monomind/cli/.claude/skills/mastermind-export/SKILL.md +0 -0
  327. package/packages/@monomind/cli/.claude/skills/mastermind-finance/SKILL.md +0 -0
  328. package/packages/@monomind/cli/.claude/skills/mastermind-finish/SKILL.md +0 -0
  329. package/packages/@monomind/cli/.claude/skills/mastermind-goal-detail/SKILL.md +0 -0
  330. package/packages/@monomind/cli/.claude/skills/mastermind-goals/SKILL.md +0 -0
  331. package/packages/@monomind/cli/.claude/skills/mastermind-heartbeatv1/SKILL.md +0 -0
  332. package/packages/@monomind/cli/.claude/skills/mastermind-idea/SKILL.md +0 -0
  333. package/packages/@monomind/cli/.claude/skills/mastermind-import/SKILL.md +0 -0
  334. package/packages/@monomind/cli/.claude/skills/mastermind-inbox/SKILL.md +0 -0
  335. package/packages/@monomind/cli/.claude/skills/mastermind-instance/SKILL.md +0 -0
  336. package/packages/@monomind/cli/.claude/skills/mastermind-instance-settings/SKILL.md +0 -0
  337. package/packages/@monomind/cli/.claude/skills/mastermind-intake/SKILL.md +0 -0
  338. package/packages/@monomind/cli/.claude/skills/mastermind-invite-landing/SKILL.md +0 -0
  339. package/packages/@monomind/cli/.claude/skills/mastermind-invites/SKILL.md +0 -0
  340. package/packages/@monomind/cli/.claude/skills/mastermind-issue-detail/SKILL.md +0 -0
  341. package/packages/@monomind/cli/.claude/skills/mastermind-issues/SKILL.md +0 -0
  342. package/packages/@monomind/cli/.claude/skills/mastermind-join-queue/SKILL.md +0 -0
  343. package/packages/@monomind/cli/.claude/skills/mastermind-liveness/SKILL.md +0 -0
  344. package/packages/@monomind/cli/.claude/skills/mastermind-marketing/SKILL.md +0 -0
  345. package/packages/@monomind/cli/.claude/skills/mastermind-marketing/references/copywriting-frameworks.md +0 -0
  346. package/packages/@monomind/cli/.claude/skills/mastermind-marketing/references/persuasion-psychology.md +0 -0
  347. package/packages/@monomind/cli/.claude/skills/mastermind-memory/SKILL.md +0 -0
  348. package/packages/@monomind/cli/.claude/skills/mastermind-monitor/SKILL.md +0 -0
  349. package/packages/@monomind/cli/.claude/skills/mastermind-monotask/SKILL.md +0 -0
  350. package/packages/@monomind/cli/.claude/skills/mastermind-my-issues/SKILL.md +0 -0
  351. package/packages/@monomind/cli/.claude/skills/mastermind-new-agent/SKILL.md +0 -0
  352. package/packages/@monomind/cli/.claude/skills/mastermind-ops/SKILL.md +0 -0
  353. package/packages/@monomind/cli/.claude/skills/mastermind-org-chart/SKILL.md +0 -0
  354. package/packages/@monomind/cli/.claude/skills/mastermind-org-settings/SKILL.md +0 -0
  355. package/packages/@monomind/cli/.claude/skills/mastermind-orgs/SKILL.md +0 -0
  356. package/packages/@monomind/cli/.claude/skills/mastermind-orgstatus/SKILL.md +0 -0
  357. package/packages/@monomind/cli/.claude/skills/mastermind-plan/SKILL.md +0 -0
  358. package/packages/@monomind/cli/.claude/skills/mastermind-plan-to-tasks/SKILL.md +0 -0
  359. package/packages/@monomind/cli/.claude/skills/mastermind-plugin-manager/SKILL.md +0 -0
  360. package/packages/@monomind/cli/.claude/skills/mastermind-plugin-settings/SKILL.md +0 -0
  361. package/packages/@monomind/cli/.claude/skills/mastermind-plugins/SKILL.md +0 -0
  362. package/packages/@monomind/cli/.claude/skills/mastermind-profile/SKILL.md +0 -0
  363. package/packages/@monomind/cli/.claude/skills/mastermind-project-detail/SKILL.md +0 -0
  364. package/packages/@monomind/cli/.claude/skills/mastermind-project-workspace/SKILL.md +0 -0
  365. package/packages/@monomind/cli/.claude/skills/mastermind-projects/SKILL.md +0 -0
  366. package/packages/@monomind/cli/.claude/skills/mastermind-protocol/SKILL.md +0 -0
  367. package/packages/@monomind/cli/.claude/skills/mastermind-receive-review/SKILL.md +0 -0
  368. package/packages/@monomind/cli/.claude/skills/mastermind-release/SKILL.md +0 -0
  369. package/packages/@monomind/cli/.claude/skills/mastermind-repeat/SKILL.md +0 -0
  370. package/packages/@monomind/cli/.claude/skills/mastermind-research/SKILL.md +0 -0
  371. package/packages/@monomind/cli/.claude/skills/mastermind-review/SKILL.md +0 -0
  372. package/packages/@monomind/cli/.claude/skills/mastermind-routine-detail/SKILL.md +0 -0
  373. package/packages/@monomind/cli/.claude/skills/mastermind-routines/SKILL.md +0 -0
  374. package/packages/@monomind/cli/.claude/skills/mastermind-runorg/SKILL.md +0 -0
  375. package/packages/@monomind/cli/.claude/skills/mastermind-runorgv1/SKILL.md +0 -0
  376. package/packages/@monomind/cli/.claude/skills/mastermind-sales/SKILL.md +0 -0
  377. package/packages/@monomind/cli/.claude/skills/mastermind-search/SKILL.md +0 -0
  378. package/packages/@monomind/cli/.claude/skills/mastermind-secrets/SKILL.md +0 -0
  379. package/packages/@monomind/cli/.claude/skills/mastermind-skill-builder/SKILL.md +0 -0
  380. package/packages/@monomind/cli/.claude/skills/mastermind-skills/SKILL.md +0 -0
  381. package/packages/@monomind/cli/.claude/skills/mastermind-stoporg/SKILL.md +0 -0
  382. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/SKILL.md +0 -0
  383. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/code-quality-reviewer-prompt.md +0 -0
  384. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/final-reviewer-prompt.md +0 -0
  385. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/implementer-prompt.md +0 -0
  386. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/spec-reviewer-prompt.md +0 -0
  387. package/packages/@monomind/cli/.claude/skills/mastermind-tasks/SKILL.md +0 -0
  388. package/packages/@monomind/cli/.claude/skills/mastermind-tdd/SKILL.md +0 -0
  389. package/packages/@monomind/cli/.claude/skills/mastermind-techport/SKILL.md +0 -0
  390. package/packages/@monomind/cli/.claude/skills/mastermind-threads/SKILL.md +0 -0
  391. package/packages/@monomind/cli/.claude/skills/mastermind-tree-control/SKILL.md +0 -0
  392. package/packages/@monomind/cli/.claude/skills/mastermind-verify/SKILL.md +0 -0
  393. package/packages/@monomind/cli/.claude/skills/mastermind-wiki/SKILL.md +0 -0
  394. package/packages/@monomind/cli/.claude/skills/mastermind-workspace-detail/SKILL.md +0 -0
  395. package/packages/@monomind/cli/.claude/skills/mastermind-workspaces/SKILL.md +0 -0
  396. package/packages/@monomind/cli/.claude/skills/mastermind-worktree/SKILL.md +0 -0
  397. package/packages/@monomind/cli/.claude/skills/memory-toolkit/SKILL.md +75 -0
  398. package/packages/@monomind/cli/.claude/skills/monodesign/SKILL.md +257 -0
  399. package/packages/@monomind/cli/.claude/skills/monodesign/adapt.md +53 -0
  400. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-asset-producer.md +100 -0
  401. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
  402. package/packages/@monomind/cli/.claude/skills/monodesign/animate.md +65 -0
  403. package/packages/@monomind/cli/.claude/skills/monodesign/audit.md +89 -0
  404. package/packages/@monomind/cli/.claude/skills/monodesign/bolder.md +50 -0
  405. package/packages/@monomind/cli/.claude/skills/monodesign/clarify.md +64 -0
  406. package/packages/@monomind/cli/.claude/skills/monodesign/colorize.md +68 -0
  407. package/packages/@monomind/cli/.claude/skills/monodesign/craft.md +51 -0
  408. package/packages/@monomind/cli/.claude/skills/monodesign/critique.md +66 -0
  409. package/packages/@monomind/cli/.claude/skills/monodesign/delight.md +47 -0
  410. package/packages/@monomind/cli/.claude/skills/monodesign/distill.md +56 -0
  411. package/packages/@monomind/cli/.claude/skills/monodesign/document.md +83 -0
  412. package/packages/@monomind/cli/.claude/skills/monodesign/extract.md +74 -0
  413. package/packages/@monomind/cli/.claude/skills/monodesign/harden.md +65 -0
  414. package/packages/@monomind/cli/.claude/skills/monodesign/init.md +30 -0
  415. package/packages/@monomind/cli/.claude/skills/monodesign/layout.md +36 -0
  416. package/packages/@monomind/cli/.claude/skills/monodesign/live.md +34 -0
  417. package/packages/@monomind/cli/.claude/skills/monodesign/onboard.md +50 -0
  418. package/packages/@monomind/cli/.claude/skills/monodesign/optimize.md +64 -0
  419. package/packages/@monomind/cli/.claude/skills/monodesign/overdrive.md +56 -0
  420. package/packages/@monomind/cli/.claude/skills/monodesign/polish.md +68 -0
  421. package/packages/@monomind/cli/.claude/skills/monodesign/quieter.md +57 -0
  422. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.md +312 -0
  423. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.native.md +58 -0
  424. package/packages/@monomind/cli/.claude/skills/monodesign/reference/android.md +40 -0
  425. package/packages/@monomind/cli/.claude/skills/monodesign/reference/animate.md +203 -0
  426. package/packages/@monomind/cli/.claude/skills/monodesign/reference/antipatterns-catalog.md +410 -0
  427. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.md +135 -0
  428. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.native.md +139 -0
  429. package/packages/@monomind/cli/.claude/skills/monodesign/reference/bolder.md +120 -0
  430. package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
  431. package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand.md +108 -0
  432. package/packages/@monomind/cli/.claude/skills/monodesign/reference/clarify.md +288 -0
  433. package/packages/@monomind/cli/.claude/skills/monodesign/reference/codex.md +105 -0
  434. package/packages/@monomind/cli/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
  435. package/packages/@monomind/cli/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
  436. package/packages/@monomind/cli/.claude/skills/monodesign/reference/colorize.md +257 -0
  437. package/packages/@monomind/cli/.claude/skills/monodesign/reference/component-specs.md +260 -0
  438. package/packages/@monomind/cli/.claude/skills/monodesign/reference/component-states.md +274 -0
  439. package/packages/@monomind/cli/.claude/skills/monodesign/reference/component-system.md +358 -0
  440. package/packages/@monomind/cli/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
  441. package/packages/@monomind/cli/.claude/skills/monodesign/reference/craft.md +123 -0
  442. package/packages/@monomind/cli/.claude/skills/monodesign/reference/critique.md +780 -0
  443. package/packages/@monomind/cli/.claude/skills/monodesign/reference/delight.md +302 -0
  444. package/packages/@monomind/cli/.claude/skills/monodesign/reference/design-principles.md +246 -0
  445. package/packages/@monomind/cli/.claude/skills/monodesign/reference/distill.md +111 -0
  446. package/packages/@monomind/cli/.claude/skills/monodesign/reference/document.md +429 -0
  447. package/packages/@monomind/cli/.claude/skills/monodesign/reference/extract.md +69 -0
  448. package/packages/@monomind/cli/.claude/skills/monodesign/reference/harden.md +347 -0
  449. package/packages/@monomind/cli/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
  450. package/packages/@monomind/cli/.claude/skills/monodesign/reference/hooks.md +92 -0
  451. package/packages/@monomind/cli/.claude/skills/monodesign/reference/image-prompts.md +130 -0
  452. package/packages/@monomind/cli/.claude/skills/monodesign/reference/init.md +221 -0
  453. package/packages/@monomind/cli/.claude/skills/monodesign/reference/interaction-design.md +189 -0
  454. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ios.md +45 -0
  455. package/packages/@monomind/cli/.claude/skills/monodesign/reference/layout.md +185 -0
  456. package/packages/@monomind/cli/.claude/skills/monodesign/reference/live.md +710 -0
  457. package/packages/@monomind/cli/.claude/skills/monodesign/reference/motion-design.md +109 -0
  458. package/packages/@monomind/cli/.claude/skills/monodesign/reference/onboard.md +234 -0
  459. package/packages/@monomind/cli/.claude/skills/monodesign/reference/optimize.md +258 -0
  460. package/packages/@monomind/cli/.claude/skills/monodesign/reference/overdrive.md +130 -0
  461. package/packages/@monomind/cli/.claude/skills/monodesign/reference/personas.md +179 -0
  462. package/packages/@monomind/cli/.claude/skills/monodesign/reference/polish.md +241 -0
  463. package/packages/@monomind/cli/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
  464. package/packages/@monomind/cli/.claude/skills/monodesign/reference/product.md +60 -0
  465. package/packages/@monomind/cli/.claude/skills/monodesign/reference/quieter.md +99 -0
  466. package/packages/@monomind/cli/.claude/skills/monodesign/reference/responsive-design.md +114 -0
  467. package/packages/@monomind/cli/.claude/skills/monodesign/reference/shape.md +165 -0
  468. package/packages/@monomind/cli/.claude/skills/monodesign/reference/spatial-design.md +100 -0
  469. package/packages/@monomind/cli/.claude/skills/monodesign/reference/teach.md +10 -0
  470. package/packages/@monomind/cli/.claude/skills/monodesign/reference/token-architecture.md +222 -0
  471. package/packages/@monomind/cli/.claude/skills/monodesign/reference/typeset.md +301 -0
  472. package/packages/@monomind/cli/.claude/skills/monodesign/reference/typography.md +159 -0
  473. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ux-research.md +143 -0
  474. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ux-rules.md +211 -0
  475. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ux-writing.md +107 -0
  476. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
  477. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
  478. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context.mjs +1061 -0
  479. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
  480. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect-csp.mjs +198 -0
  481. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect.mjs +33 -0
  482. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1962 -0
  483. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
  484. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
  485. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5608 -0
  486. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
  487. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
  488. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +258 -0
  489. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
  490. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1015 -0
  491. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
  492. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
  493. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
  494. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
  495. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
  496. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
  497. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
  498. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
  499. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
  500. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +3002 -0
  501. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
  502. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
  503. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
  504. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
  505. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
  506. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-admin.mjs +661 -0
  507. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
  508. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-lib.mjs +1776 -0
  509. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook.mjs +61 -0
  510. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/design-parser.mjs +842 -0
  511. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
  512. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
  513. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
  514. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
  515. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
  516. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
  517. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
  518. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
  519. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
  520. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
  521. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
  522. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
  523. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
  524. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
  525. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +274 -0
  526. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
  527. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
  528. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
  529. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-dom.js +146 -0
  530. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-session.js +123 -0
  531. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser.js +11240 -0
  532. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
  533. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
  534. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
  535. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
  536. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-inject.mjs +583 -0
  537. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
  538. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
  539. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
  540. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
  541. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-server.mjs +1137 -0
  542. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
  543. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
  544. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-wrap.mjs +894 -0
  545. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live.mjs +297 -0
  546. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
  547. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/palette.mjs +633 -0
  548. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/pin.mjs +221 -0
  549. package/packages/@monomind/cli/.claude/skills/monodesign/shape.md +71 -0
  550. package/packages/@monomind/cli/.claude/skills/monodesign/teach.md +18 -0
  551. package/packages/@monomind/cli/.claude/skills/monodesign/typeset.md +59 -0
  552. package/packages/@monomind/cli/.claude/skills/monolean/SKILL.md +0 -0
  553. package/packages/@monomind/cli/.claude/skills/monolean-audit/SKILL.md +0 -0
  554. package/packages/@monomind/cli/.claude/skills/monolean-debt/SKILL.md +0 -0
  555. package/packages/@monomind/cli/.claude/skills/monolean-help/SKILL.md +0 -0
  556. package/packages/@monomind/cli/.claude/skills/monolean-review/SKILL.md +0 -0
  557. package/packages/@monomind/cli/.claude/skills/monomind/browse-agentcore.md +0 -0
  558. package/packages/@monomind/cli/.claude/skills/monomind/browse-electron.md +0 -0
  559. package/packages/@monomind/cli/.claude/skills/monomind/browse-qa.md +0 -0
  560. package/packages/@monomind/cli/.claude/skills/monomind/browse-references/authentication.md +0 -0
  561. package/packages/@monomind/cli/.claude/skills/monomind/browse-references/trust-boundaries.md +0 -0
  562. package/packages/@monomind/cli/.claude/skills/monomind/browse-references/video-recording.md +0 -0
  563. package/packages/@monomind/cli/.claude/skills/monomind/browse-slack.md +0 -0
  564. package/packages/@monomind/cli/.claude/skills/monomind/browse-vercel.md +0 -0
  565. package/packages/@monomind/cli/.claude/skills/monomind/browse.md +0 -0
  566. package/packages/@monomind/cli/.claude/skills/monomotion/SKILL.md +0 -0
  567. package/packages/@monomind/cli/.claude/skills/monomotion/rules/api-control.md +0 -0
  568. package/packages/@monomind/cli/.claude/skills/monomotion/rules/effects.md +0 -0
  569. package/packages/@monomind/cli/.claude/skills/monomotion/rules/integration.md +0 -0
  570. package/packages/@monomind/cli/.claude/skills/monomotion/rules/scroll.md +0 -0
  571. package/packages/@monomind/cli/.claude/skills/monomotion/rules/sequencing.md +0 -0
  572. package/packages/@monomind/cli/.claude/skills/monomotion/rules/svg.md +0 -0
  573. package/packages/@monomind/cli/.claude/skills/monomotion/rules/text.md +0 -0
  574. package/packages/@monomind/cli/.claude/skills/pair-programming/SKILL.md +0 -0
  575. package/packages/@monomind/cli/.claude/skills/performance-analysis/SKILL.md +0 -0
  576. package/packages/@monomind/cli/.claude/skills/skill-builder/SKILL.md +0 -0
  577. package/packages/@monomind/cli/.claude/skills/specialagent/SKILL.md +0 -0
  578. package/packages/@monomind/cli/.claude/skills/stop-slop/SKILL.md +0 -0
  579. package/packages/@monomind/cli/.claude/skills/stop-slop/references/examples.md +0 -0
  580. package/packages/@monomind/cli/.claude/skills/stop-slop/references/phrases.md +0 -0
  581. package/packages/@monomind/cli/.claude/skills/stop-slop/references/structures.md +0 -0
  582. package/packages/@monomind/cli/.claude/skills/swarm-advanced/SKILL.md +0 -0
  583. package/packages/@monomind/cli/.claude/skills/swarm-orchestration/SKILL.md +0 -0
  584. package/packages/@monomind/cli/.claude/skills/verification-quality/SKILL.md +0 -0
  585. package/packages/@monomind/cli/README.md +0 -0
  586. package/packages/@monomind/cli/bin/cli.js +14 -7
  587. package/packages/@monomind/cli/bin/preinstall.cjs +0 -0
  588. package/packages/@monomind/cli/dist/src/commands/cleanup.js +6 -2
  589. package/packages/@monomind/cli/dist/src/commands/hooks-routing-commands.js +8 -22
  590. package/packages/@monomind/cli/dist/src/commands/performance.js +7 -0
  591. package/packages/@monomind/cli/dist/src/index.js +27 -31
  592. package/packages/@monomind/cli/dist/src/mcp-client.js +18 -0
  593. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +5 -2
  594. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +2 -2
  595. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +2 -2
  596. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +1 -1
  597. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +4 -4
  598. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +1 -1
  599. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +1 -1
  600. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +16 -3
  601. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.d.ts +16 -5
  602. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +21 -234
  603. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.d.ts +26 -14
  604. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +26 -14
  605. package/packages/@monomind/cli/dist/src/memory/intelligence.js +17 -1
  606. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +12 -0
  607. package/packages/@monomind/cli/dist/src/orgrt/daemon.js +6 -2
  608. package/packages/@monomind/cli/dist/src/routing/embed-worker.js +8 -0
  609. package/packages/@monomind/cli/package.json +5 -3
  610. package/packages/@monomind/cli/scripts/deploy-ipfs-node.sh +0 -0
  611. package/packages/@monomind/cli/scripts/understand-analyze.mjs +0 -0
  612. package/scripts/generate-agent-avatars.mjs +0 -0
  613. package/scripts/generate-channel-profile-assets.sh +67 -0
  614. package/scripts/growth-content-calendar.mjs +30 -7
  615. package/scripts/growth-profile-kit.mjs +156 -0
  616. package/scripts/ua-enrich.mjs +0 -0
  617. package/scripts/ua-import.mjs +0 -0
  618. package/scripts/verify-appliance.sh +0 -0
  619. package/packages/@monomind/cli/.claude/agents/hive-mind/queen-coordinator.md +0 -202
  620. package/packages/@monomind/cli/.claude/helpers/extras-registry.json +0 -5141
  621. package/packages/@monomind/cli/dist/dashboard/server.js +0 -137
  622. package/packages/@monomind/cli/dist/src/agents/halt-signal.d.ts +0 -25
  623. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +0 -76
  624. package/packages/@monomind/cli/dist/src/agents/index.d.ts +0 -18
  625. package/packages/@monomind/cli/dist/src/agents/index.js +0 -13
  626. package/packages/@monomind/cli/dist/src/agents/managed-agent.d.ts +0 -41
  627. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +0 -69
  628. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +0 -23
  629. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +0 -49
  630. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +0 -22
  631. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +0 -80
  632. package/packages/@monomind/cli/dist/src/agents/registry-query.d.ts +0 -71
  633. package/packages/@monomind/cli/dist/src/agents/registry-query.js +0 -125
  634. package/packages/@monomind/cli/dist/src/agents/score-decay.d.ts +0 -19
  635. package/packages/@monomind/cli/dist/src/agents/score-decay.js +0 -22
  636. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.d.ts +0 -13
  637. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js +0 -40
  638. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.d.ts +0 -54
  639. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +0 -212
  640. package/packages/@monomind/cli/dist/src/agents/termination-watcher.d.ts +0 -30
  641. package/packages/@monomind/cli/dist/src/agents/termination-watcher.js +0 -84
  642. package/packages/@monomind/cli/dist/src/agents/trigger-index.d.ts +0 -20
  643. package/packages/@monomind/cli/dist/src/agents/trigger-index.js +0 -38
  644. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +0 -64
  645. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +0 -308
  646. package/packages/@monomind/cli/dist/src/agents/version-diff.d.ts +0 -18
  647. package/packages/@monomind/cli/dist/src/agents/version-diff.js +0 -64
  648. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -60
  649. package/packages/@monomind/cli/dist/src/agents/version-store.js +0 -235
  650. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -45
  651. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.js +0 -404
  652. package/packages/@monomind/cli/dist/src/browser/actions.d.ts +0 -29
  653. package/packages/@monomind/cli/dist/src/browser/actions.js +0 -398
  654. package/packages/@monomind/cli/dist/src/browser/adapters/google.d.ts +0 -3
  655. package/packages/@monomind/cli/dist/src/browser/adapters/google.js +0 -17
  656. package/packages/@monomind/cli/dist/src/browser/adapters/microsoft.d.ts +0 -3
  657. package/packages/@monomind/cli/dist/src/browser/adapters/microsoft.js +0 -16
  658. package/packages/@monomind/cli/dist/src/browser/batch.d.ts +0 -5
  659. package/packages/@monomind/cli/dist/src/browser/batch.js +0 -2
  660. package/packages/@monomind/cli/dist/src/browser/browser.d.ts +0 -15
  661. package/packages/@monomind/cli/dist/src/browser/browser.js +0 -256
  662. package/packages/@monomind/cli/dist/src/browser/cdp.d.ts +0 -18
  663. package/packages/@monomind/cli/dist/src/browser/cdp.js +0 -153
  664. package/packages/@monomind/cli/dist/src/browser/console-log.d.ts +0 -23
  665. package/packages/@monomind/cli/dist/src/browser/console-log.js +0 -104
  666. package/packages/@monomind/cli/dist/src/browser/dashboard/api-types.d.ts +0 -50
  667. package/packages/@monomind/cli/dist/src/browser/dashboard/api-types.js +0 -14
  668. package/packages/@monomind/cli/dist/src/browser/dialog.d.ts +0 -12
  669. package/packages/@monomind/cli/dist/src/browser/dialog.js +0 -53
  670. package/packages/@monomind/cli/dist/src/browser/emulation.d.ts +0 -15
  671. package/packages/@monomind/cli/dist/src/browser/emulation.js +0 -62
  672. package/packages/@monomind/cli/dist/src/browser/find.d.ts +0 -22
  673. package/packages/@monomind/cli/dist/src/browser/find.js +0 -169
  674. package/packages/@monomind/cli/dist/src/browser/har.d.ts +0 -27
  675. package/packages/@monomind/cli/dist/src/browser/har.js +0 -161
  676. package/packages/@monomind/cli/dist/src/browser/index.d.ts +0 -23
  677. package/packages/@monomind/cli/dist/src/browser/index.js +0 -23
  678. package/packages/@monomind/cli/dist/src/browser/network.d.ts +0 -32
  679. package/packages/@monomind/cli/dist/src/browser/network.js +0 -214
  680. package/packages/@monomind/cli/dist/src/browser/pdf.d.ts +0 -15
  681. package/packages/@monomind/cli/dist/src/browser/pdf.js +0 -27
  682. package/packages/@monomind/cli/dist/src/browser/profiler.d.ts +0 -10
  683. package/packages/@monomind/cli/dist/src/browser/profiler.js +0 -77
  684. package/packages/@monomind/cli/dist/src/browser/record.d.ts +0 -21
  685. package/packages/@monomind/cli/dist/src/browser/record.js +0 -59
  686. package/packages/@monomind/cli/dist/src/browser/screenshot.d.ts +0 -15
  687. package/packages/@monomind/cli/dist/src/browser/screenshot.js +0 -38
  688. package/packages/@monomind/cli/dist/src/browser/session.d.ts +0 -8
  689. package/packages/@monomind/cli/dist/src/browser/session.js +0 -91
  690. package/packages/@monomind/cli/dist/src/browser/snapshot.d.ts +0 -12
  691. package/packages/@monomind/cli/dist/src/browser/snapshot.js +0 -179
  692. package/packages/@monomind/cli/dist/src/browser/storage.d.ts +0 -12
  693. package/packages/@monomind/cli/dist/src/browser/storage.js +0 -46
  694. package/packages/@monomind/cli/dist/src/browser/tabs.d.ts +0 -8
  695. package/packages/@monomind/cli/dist/src/browser/tabs.js +0 -25
  696. package/packages/@monomind/cli/dist/src/browser/trace.d.ts +0 -10
  697. package/packages/@monomind/cli/dist/src/browser/trace.js +0 -87
  698. package/packages/@monomind/cli/dist/src/browser/types.d.ts +0 -111
  699. package/packages/@monomind/cli/dist/src/browser/types.js +0 -16
  700. package/packages/@monomind/cli/dist/src/browser/vitals.d.ts +0 -15
  701. package/packages/@monomind/cli/dist/src/browser/vitals.js +0 -116
  702. package/packages/@monomind/cli/dist/src/browser/wait.d.ts +0 -4
  703. package/packages/@monomind/cli/dist/src/browser/wait.js +0 -146
  704. package/packages/@monomind/cli/dist/src/browser/workflow/builtin-handlers.d.ts +0 -3
  705. package/packages/@monomind/cli/dist/src/browser/workflow/builtin-handlers.js +0 -343
  706. package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +0 -14
  707. package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +0 -333
  708. package/packages/@monomind/cli/dist/src/commands/hive-mind-comms.d.ts +0 -11
  709. package/packages/@monomind/cli/dist/src/commands/hive-mind-comms.js +0 -249
  710. package/packages/@monomind/cli/dist/src/commands/hive-mind-helpers.d.ts +0 -35
  711. package/packages/@monomind/cli/dist/src/commands/hive-mind-helpers.js +0 -203
  712. package/packages/@monomind/cli/dist/src/commands/hive-mind-ops.d.ts +0 -6
  713. package/packages/@monomind/cli/dist/src/commands/hive-mind-ops.js +0 -119
  714. package/packages/@monomind/cli/dist/src/commands/hive-mind-spawn.d.ts +0 -12
  715. package/packages/@monomind/cli/dist/src/commands/hive-mind-spawn.js +0 -274
  716. package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +0 -11
  717. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +0 -142
  718. package/packages/@monomind/cli/dist/src/commands/neural.d.ts +0 -10
  719. package/packages/@monomind/cli/dist/src/commands/neural.js +0 -32
  720. package/packages/@monomind/cli/dist/src/commands/process.d.ts +0 -10
  721. package/packages/@monomind/cli/dist/src/commands/process.js +0 -734
  722. package/packages/@monomind/cli/dist/src/commands/replay.d.ts +0 -8
  723. package/packages/@monomind/cli/dist/src/commands/replay.js +0 -66
  724. package/packages/@monomind/cli/dist/src/commands/scan.d.ts +0 -10
  725. package/packages/@monomind/cli/dist/src/commands/scan.js +0 -31
  726. package/packages/@monomind/cli/dist/src/commands/sync.d.ts +0 -10
  727. package/packages/@monomind/cli/dist/src/commands/sync.js +0 -100
  728. package/packages/@monomind/cli/dist/src/commands/transfer-store.d.ts +0 -13
  729. package/packages/@monomind/cli/dist/src/commands/transfer-store.js +0 -442
  730. package/packages/@monomind/cli/dist/src/commands/ui.js +0 -68
  731. package/packages/@monomind/cli/dist/src/consensus/index.d.ts +0 -7
  732. package/packages/@monomind/cli/dist/src/consensus/index.js +0 -6
  733. package/packages/@monomind/cli/dist/src/context/context-provider.d.ts +0 -44
  734. package/packages/@monomind/cli/dist/src/context/context-provider.js +0 -25
  735. package/packages/@monomind/cli/dist/src/context/git-state-provider.d.ts +0 -12
  736. package/packages/@monomind/cli/dist/src/context/git-state-provider.js +0 -34
  737. package/packages/@monomind/cli/dist/src/context/index.d.ts +0 -12
  738. package/packages/@monomind/cli/dist/src/context/index.js +0 -12
  739. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.d.ts +0 -15
  740. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.js +0 -19
  741. package/packages/@monomind/cli/dist/src/context/prompt-assembler.d.ts +0 -26
  742. package/packages/@monomind/cli/dist/src/context/prompt-assembler.js +0 -93
  743. package/packages/@monomind/cli/dist/src/context/task-history-provider.d.ts +0 -24
  744. package/packages/@monomind/cli/dist/src/context/task-history-provider.js +0 -32
  745. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.d.ts +0 -14
  746. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.js +0 -27
  747. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +0 -31
  748. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +0 -81
  749. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +0 -33
  750. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +0 -90
  751. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.d.ts +0 -24
  752. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +0 -65
  753. package/packages/@monomind/cli/dist/src/dlq/index.d.ts +0 -10
  754. package/packages/@monomind/cli/dist/src/dlq/index.js +0 -7
  755. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +0 -33
  756. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +0 -107
  757. package/packages/@monomind/cli/dist/src/eval/dataset-runner.d.ts +0 -23
  758. package/packages/@monomind/cli/dist/src/eval/dataset-runner.js +0 -59
  759. package/packages/@monomind/cli/dist/src/eval/index.d.ts +0 -10
  760. package/packages/@monomind/cli/dist/src/eval/index.js +0 -7
  761. package/packages/@monomind/cli/dist/src/eval/trace-collector.d.ts +0 -40
  762. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +0 -102
  763. package/packages/@monomind/cli/dist/src/graph/enrich.mjs +0 -362
  764. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  765. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.js +0 -264
  766. package/packages/@monomind/cli/dist/src/interactive/interrupt.d.ts +0 -22
  767. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +0 -71
  768. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.d.ts +0 -25
  769. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.js +0 -48
  770. package/packages/@monomind/cli/dist/src/mcp/tool-registry.d.ts +0 -61
  771. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +0 -246
  772. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.d.ts +0 -14
  773. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.js +0 -329
  774. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.d.ts +0 -30
  775. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +0 -596
  776. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
  777. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +0 -758
  778. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.d.ts +0 -18
  779. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.js +0 -25
  780. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.d.ts +0 -31
  781. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.js +0 -196
  782. package/packages/@monomind/cli/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.d.ts +0 -229
  783. package/packages/@monomind/cli/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.js +0 -414
  784. package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.d.ts +0 -186
  785. package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.js +0 -375
  786. package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/track-trends.d.ts +0 -165
  787. package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/track-trends.js +0 -395
  788. package/packages/@monomind/cli/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.d.ts +0 -277
  789. package/packages/@monomind/cli/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.js +0 -508
  790. package/packages/@monomind/cli/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.d.ts +0 -209
  791. package/packages/@monomind/cli/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.js +0 -391
  792. package/packages/@monomind/cli/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.d.ts +0 -151
  793. package/packages/@monomind/cli/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.js +0 -422
  794. package/packages/@monomind/cli/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.d.ts +0 -211
  795. package/packages/@monomind/cli/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.js +0 -437
  796. package/packages/@monomind/cli/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.d.ts +0 -276
  797. package/packages/@monomind/cli/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.js +0 -410
  798. package/packages/@monomind/cli/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.d.ts +0 -235
  799. package/packages/@monomind/cli/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.js +0 -363
  800. package/packages/@monomind/cli/dist/src/mcp-tools/quality/security-compliance/audit-compliance.d.ts +0 -170
  801. package/packages/@monomind/cli/dist/src/mcp-tools/quality/security-compliance/audit-compliance.js +0 -394
  802. package/packages/@monomind/cli/dist/src/mcp-tools/quality/security-compliance/security-scan.d.ts +0 -167
  803. package/packages/@monomind/cli/dist/src/mcp-tools/quality/security-compliance/security-scan.js +0 -476
  804. package/packages/@monomind/cli/dist/src/mcp-tools/quality/test-generation/generate-tests.d.ts +0 -161
  805. package/packages/@monomind/cli/dist/src/mcp-tools/quality/test-generation/generate-tests.js +0 -400
  806. package/packages/@monomind/cli/dist/src/mcp-tools/quality/test-generation/suggest-tests.d.ts +0 -141
  807. package/packages/@monomind/cli/dist/src/mcp-tools/quality/test-generation/suggest-tests.js +0 -328
  808. package/packages/@monomind/cli/dist/src/mcp-tools/quality/test-generation/tdd-cycle.d.ts +0 -144
  809. package/packages/@monomind/cli/dist/src/mcp-tools/quality/test-generation/tdd-cycle.js +0 -348
  810. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -9
  811. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +0 -230
  812. package/packages/@monomind/cli/dist/src/model/complexity-scorer.d.ts +0 -21
  813. package/packages/@monomind/cli/dist/src/model/complexity-scorer.js +0 -106
  814. package/packages/@monomind/cli/dist/src/model/index.d.ts +0 -4
  815. package/packages/@monomind/cli/dist/src/model/index.js +0 -4
  816. package/packages/@monomind/cli/dist/src/model/model-settings.d.ts +0 -22
  817. package/packages/@monomind/cli/dist/src/model/model-settings.js +0 -33
  818. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.d.ts +0 -24
  819. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.js +0 -65
  820. package/packages/@monomind/cli/dist/src/monovector/capabilities.d.ts +0 -34
  821. package/packages/@monomind/cli/dist/src/monovector/capabilities.js +0 -37
  822. package/packages/@monomind/cli/dist/src/orchestration/index.d.ts +0 -7
  823. package/packages/@monomind/cli/dist/src/orchestration/index.js +0 -6
  824. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.d.ts +0 -11
  825. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.js +0 -31
  826. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.d.ts +0 -68
  827. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +0 -180
  828. package/packages/@monomind/cli/dist/src/runtime/headless.d.ts +0 -60
  829. package/packages/@monomind/cli/dist/src/runtime/headless.js +0 -284
  830. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  831. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.js +0 -95
  832. package/packages/@monomind/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  833. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +0 -623
  834. package/packages/@monomind/cli/dist/src/services/index.d.ts +0 -13
  835. package/packages/@monomind/cli/dist/src/services/index.js +0 -11
  836. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +0 -201
  837. package/packages/@monomind/cli/dist/src/services/worker-queue.js +0 -594
  838. package/packages/@monomind/cli/dist/src/swarm/communication-graph.d.ts +0 -25
  839. package/packages/@monomind/cli/dist/src/swarm/communication-graph.js +0 -77
  840. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +0 -31
  841. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +0 -61
  842. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +0 -19
  843. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +0 -68
  844. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  845. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.js +0 -205
  846. package/packages/@monomind/cli/dist/src/transfer/export.d.ts +0 -25
  847. package/packages/@monomind/cli/dist/src/transfer/export.js +0 -123
  848. package/packages/@monomind/cli/dist/src/transfer/index.d.ts +0 -12
  849. package/packages/@monomind/cli/dist/src/transfer/index.js +0 -31
  850. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.d.ts +0 -109
  851. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +0 -384
  852. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.d.ts +0 -95
  853. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +0 -450
  854. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.d.ts +0 -72
  855. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.js +0 -373
  856. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.d.ts +0 -49
  857. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.js +0 -189
  858. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.d.ts +0 -82
  859. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +0 -319
  860. package/packages/@monomind/cli/dist/src/transfer/storage/index.d.ts +0 -6
  861. package/packages/@monomind/cli/dist/src/transfer/storage/index.js +0 -6
  862. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +0 -92
  863. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +0 -431
  864. package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +0 -79
  865. package/packages/@monomind/cli/dist/src/transfer/store/download.js +0 -428
  866. package/packages/@monomind/cli/dist/src/transfer/store/index.d.ts +0 -84
  867. package/packages/@monomind/cli/dist/src/transfer/store/index.js +0 -153
  868. package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +0 -76
  869. package/packages/@monomind/cli/dist/src/transfer/store/publish.js +0 -305
  870. package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +0 -66
  871. package/packages/@monomind/cli/dist/src/transfer/store/registry.js +0 -326
  872. package/packages/@monomind/cli/dist/src/transfer/store/search.d.ts +0 -54
  873. package/packages/@monomind/cli/dist/src/transfer/store/search.js +0 -247
  874. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  875. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.js +0 -190
  876. package/packages/@monomind/cli/dist/src/transfer/store/types.d.ts +0 -193
  877. package/packages/@monomind/cli/dist/src/transfer/store/types.js +0 -6
  878. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.d.ts +0 -6
  879. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.js +0 -105
  880. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.d.ts +0 -7
  881. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.js +0 -214
  882. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.d.ts +0 -10
  883. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +0 -82
  884. package/packages/@monomind/cli/dist/src/workflow/context-resolver.d.ts +0 -12
  885. package/packages/@monomind/cli/dist/src/workflow/context-resolver.js +0 -23
  886. package/packages/@monomind/cli/dist/src/workflow/dag-builder.d.ts +0 -17
  887. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +0 -129
  888. package/packages/@monomind/cli/dist/src/workflow/dag-executor.d.ts +0 -9
  889. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +0 -116
  890. package/packages/@monomind/cli/dist/src/workflow/dag-types.d.ts +0 -41
  891. package/packages/@monomind/cli/dist/src/workflow/dag-types.js +0 -8
  892. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.d.ts +0 -12
  893. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.js +0 -20
  894. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +0 -165
  895. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +0 -82
  896. package/packages/@monomind/cli/dist/src/workflow/index.d.ts +0 -13
  897. package/packages/@monomind/cli/dist/src/workflow/index.js +0 -11
  898. package/packages/@monomind/cli/dist/src/workflow/template-engine.d.ts +0 -11
  899. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +0 -40
  900. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.d.ts +0 -29
  901. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +0 -227
  902. package/packages/@monomind/cli/dist/workflow/builtin-handlers.js +0 -321
  903. package/packages/@monomind/cli/dist/workflow/engine.js +0 -253
  904. package/packages/@monomind/cli/dist/workflow/expression.js +0 -98
  905. package/packages/@monomind/cli/dist/workflow/types.js +0 -2
@@ -0,0 +1,939 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { getLiveDir } from '../lib/monodesign-paths.mjs';
5
+ import { readBuffer as readManualEditsBuffer } from './manual-edits-buffer.mjs';
6
+
7
+ const APPLY_EVENT_HARD_TIMEOUT_MS = Number(process.env.MONODESIGN_LIVE_APPLY_EVENT_HARD_TIMEOUT_MS || 150_000);
8
+ const APPLY_EVENT_SOFT_DEADLINE_MS = Number(process.env.MONODESIGN_LIVE_APPLY_EVENT_SOFT_DEADLINE_MS || 120_000);
9
+ const DEFAULT_MANUAL_EDIT_APPLY_CHUNK_SIZE = 3;
10
+ const MIN_MANUAL_EDIT_APPLY_CHUNK_SIZE = 1;
11
+ const MAX_MANUAL_EDIT_APPLY_CHUNK_SIZE = 20;
12
+ const MANUAL_APPLY_COMPACT_TEXT_LIMIT = 240;
13
+ const MANUAL_APPLY_COMPACT_NEARBY_LIMIT = 4;
14
+
15
+ export function createManualApplyController({
16
+ pendingEvents,
17
+ pendingApplyDeferreds,
18
+ timedOutApplyIds,
19
+ enqueueEvent,
20
+ acknowledgePendingEvent,
21
+ flushPendingPolls,
22
+ recordManualEditActivity,
23
+ cwd = () => process.cwd(),
24
+ } = {}) {
25
+ const projectCwd = () => typeof cwd === 'function' ? cwd() : cwd || process.cwd();
26
+
27
+ function tombstoneTimedOutApplyId(eventId, details = {}) {
28
+ if (!eventId) return;
29
+ timedOutApplyIds.set(eventId, details);
30
+ if (timedOutApplyIds.size <= 200) return;
31
+ const oldest = timedOutApplyIds.keys().next().value;
32
+ timedOutApplyIds.delete(oldest);
33
+ }
34
+
35
+ function pushApplyEventAndWait(batch, pageUrl, chunk = null, repair = null) {
36
+ const cwdValue = projectCwd();
37
+ const eventId = randomUUID().replace(/-/g, '').slice(0, 8);
38
+ const evidencePath = writeManualApplyEvidence(eventId, batch, cwdValue);
39
+ const event = {
40
+ type: 'manual_edit_apply',
41
+ id: eventId,
42
+ pageUrl,
43
+ batch: compactManualApplyBatch(batch, cwdValue),
44
+ evidencePath,
45
+ agentAction: buildManualApplyAgentAction(eventId),
46
+ schemaVersion: 1,
47
+ deadlineMs: APPLY_EVENT_SOFT_DEADLINE_MS,
48
+ };
49
+ if (chunk) event.chunk = chunk;
50
+ if (repair) event.repair = repair;
51
+ const rollbackSnapshot = snapshotApplyEventFiles(batch, cwdValue);
52
+ recordManualEditActivity('manual_edit_apply_dispatched', {
53
+ id: eventId,
54
+ pageUrl,
55
+ chunk,
56
+ repair,
57
+ entryCount: Array.isArray(batch.entries) ? batch.entries.length : 0,
58
+ opCount: countManualApplyOps(batch),
59
+ fileCount: collectManualApplyFiles(batch, [], cwdValue).length,
60
+ });
61
+ return new Promise((resolve, reject) => {
62
+ const timer = setTimeout(() => {
63
+ pendingApplyDeferreds.delete(eventId);
64
+ tombstoneTimedOutApplyId(eventId, { batch, rollbackSnapshot, cwd: cwdValue });
65
+ acknowledgePendingEvent(eventId);
66
+ removeManualApplyEvidence(evidencePath, cwdValue);
67
+ recordManualEditActivity('manual_edit_apply_timeout', {
68
+ id: eventId,
69
+ pageUrl,
70
+ chunk,
71
+ entryCount: Array.isArray(batch.entries) ? batch.entries.length : 0,
72
+ opCount: countManualApplyOps(batch),
73
+ });
74
+ reject(new Error('chat_agent_timeout'));
75
+ }, APPLY_EVENT_HARD_TIMEOUT_MS);
76
+ pendingApplyDeferreds.set(eventId, { resolve, reject, timer, event, batch, pageUrl, rollbackSnapshot, cwd: cwdValue });
77
+ enqueueEvent(event);
78
+ });
79
+ }
80
+
81
+ async function pushBatchInChunksAndWait(batch, pageUrl, context = {}) {
82
+ const repair = context?.repair || batch?.repair || null;
83
+ if (repair) return pushApplyEventAndWait(batch, pageUrl, null, repair);
84
+ const chunks = splitManualApplyBatch(batch, manualEditApplyChunkSize());
85
+ if (chunks.length <= 1) return pushApplyEventAndWait(batch, pageUrl);
86
+
87
+ const expectedOpsByEntry = new Map();
88
+ for (const entry of batch?.entries || []) {
89
+ expectedOpsByEntry.set(entry.id, Array.isArray(entry.ops) ? entry.ops.length : 0);
90
+ }
91
+
92
+ const appliedOpsByEntry = new Map();
93
+ const failedByEntry = new Map();
94
+ const files = new Set();
95
+ const notes = [];
96
+ let aborted = false;
97
+
98
+ for (const chunk of chunks) {
99
+ if (aborted) {
100
+ markChunkEntriesFailed(failedByEntry, chunk, 'manual_edit_chunk_aborted');
101
+ continue;
102
+ }
103
+
104
+ let result;
105
+ try {
106
+ result = normalizeApplyChunkResult(await pushApplyEventAndWait(chunk.batch, pageUrl, chunk.meta));
107
+ } catch (err) {
108
+ markChunkEntriesFailed(failedByEntry, chunk, err.message || 'chat_agent_error');
109
+ aborted = true;
110
+ continue;
111
+ }
112
+
113
+ for (const file of result.files) files.add(file);
114
+ notes.push(...result.notes);
115
+
116
+ const chunkFailedIds = new Set();
117
+ for (const item of result.failed) {
118
+ const entryId = item.entryId || item.id;
119
+ if (!entryId) continue;
120
+ chunkFailedIds.add(entryId);
121
+ if (!failedByEntry.has(entryId)) {
122
+ failedByEntry.set(entryId, {
123
+ entryId,
124
+ reason: item.reason || item.message || 'failed',
125
+ candidates: Array.isArray(item.candidates) ? item.candidates : [],
126
+ });
127
+ }
128
+ }
129
+
130
+ if (result.status === 'error') {
131
+ markChunkEntriesFailed(failedByEntry, chunk, result.message || firstFailureReason(result) || 'chat_agent_error');
132
+ aborted = true;
133
+ continue;
134
+ }
135
+
136
+ const reportedAppliedIds = new Set(result.appliedEntryIds);
137
+ for (const entryId of reportedAppliedIds) {
138
+ if (!chunk.entryIds.has(entryId) || chunkFailedIds.has(entryId)) continue;
139
+ appliedOpsByEntry.set(entryId, (appliedOpsByEntry.get(entryId) || 0) + (chunk.opCountsByEntry.get(entryId) || 0));
140
+ }
141
+
142
+ for (const entryId of chunk.entryIds) {
143
+ if (reportedAppliedIds.has(entryId) || chunkFailedIds.has(entryId)) continue;
144
+ if (!failedByEntry.has(entryId)) {
145
+ failedByEntry.set(entryId, { entryId, reason: 'not_reported_applied', candidates: [] });
146
+ }
147
+ }
148
+ }
149
+
150
+ const appliedEntryIds = [];
151
+ for (const [entryId, expectedOps] of expectedOpsByEntry.entries()) {
152
+ if (failedByEntry.has(entryId)) continue;
153
+ if ((appliedOpsByEntry.get(entryId) || 0) === expectedOps && expectedOps > 0) {
154
+ appliedEntryIds.push(entryId);
155
+ } else if (!failedByEntry.has(entryId)) {
156
+ failedByEntry.set(entryId, { entryId, reason: 'not_reported_applied', candidates: [] });
157
+ }
158
+ }
159
+
160
+ const failed = [...failedByEntry.values()];
161
+ return {
162
+ status: failed.length === 0 ? 'done' : appliedEntryIds.length > 0 ? 'partial' : 'error',
163
+ appliedEntryIds,
164
+ failed,
165
+ files: [...files],
166
+ notes,
167
+ };
168
+ }
169
+
170
+ function getDeferred(eventId) {
171
+ return pendingApplyDeferreds.get(eventId) || null;
172
+ }
173
+
174
+ function hasTimedOutId(eventId) {
175
+ return timedOutApplyIds.has(eventId);
176
+ }
177
+
178
+ function resolveDeferred(eventId, body) {
179
+ const deferred = pendingApplyDeferreds.get(eventId);
180
+ if (!deferred) return false;
181
+ pendingApplyDeferreds.delete(eventId);
182
+ clearTimeout(deferred.timer);
183
+ removeManualApplyEvidence(deferred.event?.evidencePath, deferred.cwd || projectCwd());
184
+ deferred.resolve(body);
185
+ return true;
186
+ }
187
+
188
+ function rejectDeferred(eventId, reason) {
189
+ const deferred = pendingApplyDeferreds.get(eventId);
190
+ if (!deferred) return false;
191
+ pendingApplyDeferreds.delete(eventId);
192
+ clearTimeout(deferred.timer);
193
+ removeManualApplyEvidence(deferred.event?.evidencePath, deferred.cwd || projectCwd());
194
+ deferred.reject(new Error(reason || 'chat_agent_error'));
195
+ return true;
196
+ }
197
+
198
+ function referencedManualApplyEvidencePaths(cwdValue = projectCwd()) {
199
+ const referenced = new Set();
200
+ const add = (event) => {
201
+ const fullPath = normalizeManualApplyEvidencePath(event?.evidencePath, cwdValue);
202
+ if (fullPath) referenced.add(fullPath);
203
+ };
204
+ for (const entry of pendingEvents) add(entry.event);
205
+ for (const deferred of pendingApplyDeferreds.values()) add(deferred.event);
206
+ return referenced;
207
+ }
208
+
209
+ function pruneStaleEvidence(cwdValue = projectCwd()) {
210
+ const dir = manualApplyEvidenceDir(cwdValue);
211
+ if (!fs.existsSync(dir)) return [];
212
+ const referenced = referencedManualApplyEvidencePaths(cwdValue);
213
+ const removed = [];
214
+ for (const name of fs.readdirSync(dir)) {
215
+ if (!name.endsWith('.json')) continue;
216
+ const fullPath = path.join(dir, name);
217
+ if (referenced.has(fullPath)) continue;
218
+ try {
219
+ fs.unlinkSync(fullPath);
220
+ removed.push(fullPath);
221
+ } catch {
222
+ // Stale evidence cleanup is best-effort; Apply verification never relies
223
+ // on deleting these files.
224
+ }
225
+ }
226
+ return removed;
227
+ }
228
+
229
+ function rollbackTimedOutReply(msg) {
230
+ const details = timedOutApplyIds.get(msg.id);
231
+ if (!details) return { rolledBackFiles: [], rollbackFailures: [] };
232
+ timedOutApplyIds.delete(msg.id);
233
+ return rollbackApplySnapshot(
234
+ details.batch,
235
+ details.rollbackSnapshot,
236
+ msg.data?.files || [],
237
+ 'stale_manual_edit_apply_reply',
238
+ details.cwd || projectCwd(),
239
+ );
240
+ }
241
+
242
+ function cancelPendingEvents(pageUrl, reason = 'manual_edit_discarded') {
243
+ const canceledById = new Map();
244
+ const shouldCancel = (event) => event?.type === 'manual_edit_apply' && (!pageUrl || event.pageUrl === pageUrl);
245
+
246
+ for (let i = pendingEvents.length - 1; i >= 0; i -= 1) {
247
+ const event = pendingEvents[i]?.event;
248
+ if (!shouldCancel(event)) continue;
249
+ pendingEvents.splice(i, 1);
250
+ removeManualApplyEvidence(event.evidencePath, projectCwd());
251
+ canceledById.set(event.id, {
252
+ id: event.id,
253
+ pageUrl: event.pageUrl,
254
+ entryCount: event.batch?.entries?.length || 0,
255
+ });
256
+ }
257
+
258
+ for (const [eventId, deferred] of [...pendingApplyDeferreds.entries()]) {
259
+ if (!shouldCancel(deferred.event)) continue;
260
+ pendingApplyDeferreds.delete(eventId);
261
+ clearTimeout(deferred.timer);
262
+ const cwdValue = deferred.cwd || projectCwd();
263
+ const rollback = rollbackApplySnapshot(deferred.batch, deferred.rollbackSnapshot, [], reason, cwdValue);
264
+ tombstoneTimedOutApplyId(eventId, {
265
+ batch: deferred.batch,
266
+ rollbackSnapshot: deferred.rollbackSnapshot,
267
+ reason,
268
+ cwd: cwdValue,
269
+ });
270
+ removeManualApplyEvidence(deferred.event?.evidencePath, cwdValue);
271
+ canceledById.set(eventId, {
272
+ id: eventId,
273
+ pageUrl: deferred.pageUrl,
274
+ entryCount: deferred.batch?.entries?.length || 0,
275
+ rolledBackFiles: rollback.rolledBackFiles,
276
+ rollbackFailures: rollback.rollbackFailures,
277
+ });
278
+ deferred.reject(new Error(reason));
279
+ }
280
+
281
+ if (canceledById.size > 0) flushPendingPolls();
282
+ return [...canceledById.values()];
283
+ }
284
+
285
+ return {
286
+ buildAgentAction: buildManualApplyAgentAction,
287
+ cancelPendingEvents,
288
+ clearTransaction: (transactionId = null) => clearManualApplyTransaction(projectCwd(), transactionId),
289
+ countOps: countManualApplyOps,
290
+ getDeferred,
291
+ hasTimedOutId,
292
+ pruneStaleEvidence,
293
+ pushBatchInChunksAndWait,
294
+ readTransaction: () => readManualApplyTransaction(projectCwd()),
295
+ rejectDeferred,
296
+ resolveDeferred,
297
+ rollbackTimedOutReply,
298
+ rollbackTransaction: (opts = {}) => rollbackManualApplyTransaction({
299
+ cwd: projectCwd(),
300
+ recordManualEditActivity,
301
+ ...opts,
302
+ }),
303
+ summarizeEvent: (event = {}, batch = event.batch) => summarizeManualApplyEvent(event, batch, projectCwd()),
304
+ validateResultMessage: validateManualApplyResultMessage,
305
+ writeTransaction: (opts = {}) => writeManualApplyTransaction({ cwd: projectCwd(), ...opts }),
306
+ };
307
+ }
308
+
309
+ export function manualEditApplyChunkSize(env = process.env) {
310
+ const raw = Number(env.MONODESIGN_LIVE_MANUAL_EDIT_CHUNK_SIZE);
311
+ if (!Number.isFinite(raw)) return DEFAULT_MANUAL_EDIT_APPLY_CHUNK_SIZE;
312
+ const size = Math.trunc(raw);
313
+ return Math.max(MIN_MANUAL_EDIT_APPLY_CHUNK_SIZE, Math.min(MAX_MANUAL_EDIT_APPLY_CHUNK_SIZE, size));
314
+ }
315
+
316
+ export function countManualApplyOps(entriesOrBatch) {
317
+ const entries = Array.isArray(entriesOrBatch)
318
+ ? entriesOrBatch
319
+ : Array.isArray(entriesOrBatch?.entries) ? entriesOrBatch.entries : [];
320
+ let count = 0;
321
+ for (const entry of entries) count += Array.isArray(entry.ops) ? entry.ops.length : 0;
322
+ return count;
323
+ }
324
+
325
+ export function writeManualApplyEvidence(eventId, batch, cwd = process.cwd()) {
326
+ const dir = manualApplyEvidenceDir(cwd);
327
+ fs.mkdirSync(dir, { recursive: true });
328
+ const evidencePath = path.join(dir, `${eventId}.json`);
329
+ fs.writeFileSync(evidencePath, JSON.stringify(batch, null, 2) + '\n', 'utf-8');
330
+ return evidencePath;
331
+ }
332
+
333
+ export function manualApplyEvidenceDir(cwd = process.cwd()) {
334
+ return path.join(getLiveDir(cwd), 'manual-edit-evidence');
335
+ }
336
+
337
+ export function normalizeManualApplyEvidencePath(evidencePath, cwd = process.cwd()) {
338
+ if (!evidencePath || typeof evidencePath !== 'string') return null;
339
+ const fullPath = path.isAbsolute(evidencePath) ? evidencePath : path.resolve(cwd, evidencePath);
340
+ const evidenceDir = manualApplyEvidenceDir(cwd);
341
+ const relative = path.relative(evidenceDir, fullPath);
342
+ if (!relative || relative.startsWith('..') || path.isAbsolute(relative)) return null;
343
+ if (path.extname(relative) !== '.json') return null;
344
+ return fullPath;
345
+ }
346
+
347
+ export function removeManualApplyEvidence(evidencePath, cwd = process.cwd()) {
348
+ const fullPath = normalizeManualApplyEvidencePath(evidencePath, cwd);
349
+ if (!fullPath) return false;
350
+ try {
351
+ fs.unlinkSync(fullPath);
352
+ return true;
353
+ } catch {
354
+ return false;
355
+ }
356
+ }
357
+
358
+ export function compactManualApplyBatch(batch = {}, cwd = process.cwd()) {
359
+ const entries = (batch.entries || []).map(compactManualApplyEntry);
360
+ const candidates = compactManualApplyCandidates(batch.candidates || [], cwd);
361
+ return {
362
+ version: batch.version,
363
+ pageUrl: batch.pageUrl || null,
364
+ count: batch.count,
365
+ entries,
366
+ ops: entries.flatMap((entry) => entry.ops.map((op) => ({ ...op, entryId: entry.id }))),
367
+ candidates: candidates.length > 0 ? candidates : undefined,
368
+ context: batch.context ? {
369
+ bufferPath: batch.context.bufferPath,
370
+ totalEntries: batch.context.totalEntries,
371
+ totalOps: batch.context.totalOps,
372
+ chunkIndex: batch.context.chunkIndex,
373
+ chunkTotal: batch.context.chunkTotal,
374
+ totalApplyOps: batch.context.totalApplyOps,
375
+ } : undefined,
376
+ };
377
+ }
378
+
379
+ export function compactManualApplyCandidates(candidates, cwd = process.cwd()) {
380
+ return (Array.isArray(candidates) ? candidates : [])
381
+ .slice(0, 24)
382
+ .map((candidate) => ({
383
+ entryId: candidate.entryId,
384
+ ref: candidate.ref,
385
+ sourceHint: compactManualApplySourceMatch(candidate.sourceHint, cwd),
386
+ textMatches: compactManualApplySourceMatches(candidate.textMatches, 8, cwd),
387
+ objectKeyMatches: compactManualApplySourceMatches(candidate.objectKeyMatches, 8, cwd),
388
+ contextTextMatches: compactManualApplySourceMatches(candidate.contextTextMatches, 8, cwd),
389
+ locatorMatches: compactManualApplySourceMatches(candidate.locatorMatches, 6, cwd),
390
+ }));
391
+ }
392
+
393
+ function compactManualApplySourceMatches(matches, limit, cwd) {
394
+ return (Array.isArray(matches) ? matches : [])
395
+ .slice(0, limit)
396
+ .map((match) => compactManualApplySourceMatch(match, cwd))
397
+ .filter(Boolean);
398
+ }
399
+
400
+ function compactManualApplySourceMatch(match, cwd) {
401
+ if (!match || typeof match !== 'object') return null;
402
+ const file = match.relativeFile || match.file;
403
+ if (!file && !match.line) return null;
404
+ return {
405
+ file: summarizeManualLogFile(file, cwd),
406
+ line: match.line || null,
407
+ column: match.column || null,
408
+ reason: match.reason || match.kind || undefined,
409
+ status: match.status || undefined,
410
+ };
411
+ }
412
+
413
+ function compactManualApplyEntry(entry = {}) {
414
+ return {
415
+ id: entry.id,
416
+ pageUrl: entry.pageUrl,
417
+ stagedAt: entry.stagedAt || null,
418
+ element: compactManualApplyContext(entry.element),
419
+ ops: (entry.ops || []).map(compactManualApplyOp),
420
+ };
421
+ }
422
+
423
+ function compactManualApplyOp(op = {}) {
424
+ return {
425
+ entryId: op.entryId,
426
+ ref: op.ref,
427
+ contextRef: op.contextRef,
428
+ tag: op.tag,
429
+ elementId: op.elementId,
430
+ classes: Array.isArray(op.classes) ? op.classes : [],
431
+ originalText: op.originalText,
432
+ newText: op.newText,
433
+ deleted: op.deleted === true || undefined,
434
+ sourceHint: op.sourceHint || null,
435
+ leaf: compactManualApplyContext(op.leaf),
436
+ nearbyEditableTexts: compactNearbyManualEditTexts(op.nearbyEditableTexts),
437
+ container: compactManualApplyContext(op.container),
438
+ contextHints: Array.isArray(op.contextHints) ? op.contextHints.slice(0, 8) : undefined,
439
+ };
440
+ }
441
+
442
+ function compactManualApplyContext(value) {
443
+ if (!value || typeof value !== 'object') return null;
444
+ return {
445
+ ref: value.ref,
446
+ tagName: value.tagName || value.tag || null,
447
+ id: value.id || null,
448
+ classes: Array.isArray(value.classes) ? value.classes : [],
449
+ textContent: truncateManualApplyText(value.textContent, MANUAL_APPLY_COMPACT_TEXT_LIMIT),
450
+ };
451
+ }
452
+
453
+ function compactNearbyManualEditTexts(items) {
454
+ return (Array.isArray(items) ? items : [])
455
+ .slice(0, MANUAL_APPLY_COMPACT_NEARBY_LIMIT)
456
+ .map((item) => typeof item === 'string' ? { text: truncateManualApplyText(item, MANUAL_APPLY_COMPACT_TEXT_LIMIT) } : {
457
+ ref: item?.ref,
458
+ tag: item?.tag,
459
+ classes: Array.isArray(item?.classes) ? item.classes : [],
460
+ text: truncateManualApplyText(item?.text, MANUAL_APPLY_COMPACT_TEXT_LIMIT),
461
+ });
462
+ }
463
+
464
+ function truncateManualApplyText(value, max) {
465
+ if (typeof value !== 'string') return value || null;
466
+ return value.length > max ? value.slice(0, max) : value;
467
+ }
468
+
469
+ function normalizeApplyChunkResult(result) {
470
+ const status = result?.status === 'partial' ? 'partial' : result?.status === 'error' ? 'error' : 'done';
471
+ return {
472
+ status,
473
+ message: typeof result?.message === 'string' ? result.message : null,
474
+ appliedEntryIds: Array.isArray(result?.appliedEntryIds) ? result.appliedEntryIds.filter((id) => typeof id === 'string') : [],
475
+ failed: Array.isArray(result?.failed) ? result.failed.filter(Boolean) : [],
476
+ files: Array.isArray(result?.files) ? result.files.filter((file) => typeof file === 'string') : [],
477
+ notes: Array.isArray(result?.notes) ? result.notes.filter((note) => typeof note === 'string') : [],
478
+ };
479
+ }
480
+
481
+ function manualApplyResultShapeHint(eventId = 'EVENT_ID') {
482
+ return `Use live-poll.mjs --reply ${eventId} done --data '{"status":"done","appliedEntryIds":["ENTRY_ID"],"failed":[],"files":["src/page.html"],"notes":[]}'`;
483
+ }
484
+
485
+ function invalidManualApplyResult(reason, eventId, extra = {}) {
486
+ return {
487
+ ok: false,
488
+ body: {
489
+ error: 'invalid_manual_apply_result',
490
+ reason,
491
+ hint: manualApplyResultShapeHint(eventId),
492
+ ...extra,
493
+ },
494
+ };
495
+ }
496
+
497
+ export function validateManualApplyResultMessage(msg, deferred) {
498
+ let data = msg?.data;
499
+ const eventId = msg?.id || deferred?.event?.id || 'EVENT_ID';
500
+ if (!data || typeof data !== 'object' || Array.isArray(data)) {
501
+ return invalidManualApplyResult('missing_result_data', eventId);
502
+ }
503
+ if ('entries' in data || 'ops' in data) {
504
+ return invalidManualApplyResult('summary_result_not_allowed', eventId);
505
+ }
506
+ if (!['done', 'partial', 'error'].includes(data.status)) {
507
+ return invalidManualApplyResult('invalid_status', eventId, { status: data.status ?? null });
508
+ }
509
+
510
+ for (const key of ['appliedEntryIds', 'failed', 'files', 'notes']) {
511
+ if (!Array.isArray(data[key])) {
512
+ return invalidManualApplyResult(`${key}_must_be_array`, eventId);
513
+ }
514
+ }
515
+
516
+ for (const [index, value] of data.appliedEntryIds.entries()) {
517
+ if (typeof value !== 'string' || !value) {
518
+ return invalidManualApplyResult('appliedEntryIds_must_contain_strings', eventId, { index });
519
+ }
520
+ }
521
+ for (const [index, value] of data.files.entries()) {
522
+ if (typeof value !== 'string' || !value) {
523
+ return invalidManualApplyResult('files_must_contain_strings', eventId, { index });
524
+ }
525
+ }
526
+ for (const [index, value] of data.notes.entries()) {
527
+ if (typeof value !== 'string') {
528
+ return invalidManualApplyResult('notes_must_contain_strings', eventId, { index });
529
+ }
530
+ }
531
+ for (const [index, item] of data.failed.entries()) {
532
+ if (!item || typeof item !== 'object' || Array.isArray(item)) {
533
+ return invalidManualApplyResult('failed_must_contain_objects', eventId, { index });
534
+ }
535
+ if (typeof item.entryId !== 'string' || !item.entryId) {
536
+ return invalidManualApplyResult('failed_entryId_required', eventId, { index });
537
+ }
538
+ if (typeof item.reason !== 'string' || !item.reason) {
539
+ return invalidManualApplyResult('failed_reason_required', eventId, { index });
540
+ }
541
+ }
542
+
543
+ const eventEntryIds = new Set((deferred?.batch?.entries || []).map((entry) => entry.id).filter(Boolean));
544
+ for (const entryId of data.appliedEntryIds) {
545
+ if (eventEntryIds.size > 0 && !eventEntryIds.has(entryId)) {
546
+ return invalidManualApplyResult('applied_entry_id_not_in_event', eventId, { entryId });
547
+ }
548
+ }
549
+ for (const item of data.failed) {
550
+ if (eventEntryIds.size > 0 && !eventEntryIds.has(item.entryId)) {
551
+ return invalidManualApplyResult('failed_entry_id_not_in_event', eventId, { entryId: item.entryId });
552
+ }
553
+ }
554
+
555
+ if (data.status === 'done') {
556
+ if (data.failed.length > 0) {
557
+ return invalidManualApplyResult('done_result_has_failed_entries', eventId);
558
+ }
559
+ if (countManualApplyOps(deferred?.batch) > 0 && data.appliedEntryIds.length === 0) {
560
+ return invalidManualApplyResult('done_result_missing_applied_entry_ids', eventId);
561
+ }
562
+ }
563
+ if (data.status === 'partial' && data.appliedEntryIds.length === 0 && data.failed.length === 0) {
564
+ return invalidManualApplyResult('partial_result_has_no_entries', eventId);
565
+ }
566
+ if (data.status === 'error' && data.appliedEntryIds.length > 0) {
567
+ return invalidManualApplyResult('error_result_has_applied_entries', eventId);
568
+ }
569
+
570
+ return {
571
+ ok: true,
572
+ result: {
573
+ status: data.status,
574
+ message: typeof data.message === 'string' ? data.message : undefined,
575
+ appliedEntryIds: data.appliedEntryIds,
576
+ failed: data.failed,
577
+ files: data.files,
578
+ notes: data.notes,
579
+ },
580
+ };
581
+ }
582
+
583
+ function firstFailureReason(result) {
584
+ const first = Array.isArray(result?.failed) ? result.failed.find(Boolean) : null;
585
+ return first?.reason || first?.message || null;
586
+ }
587
+
588
+ function markChunkEntriesFailed(failedByEntry, chunk, reason) {
589
+ for (const entryId of chunk.entryIds) {
590
+ if (failedByEntry.has(entryId)) continue;
591
+ failedByEntry.set(entryId, { entryId, reason, candidates: [] });
592
+ }
593
+ }
594
+
595
+ export function splitManualApplyBatch(batch, maxOps) {
596
+ const totalOpCount = countManualApplyOps(batch);
597
+ if (totalOpCount <= maxOps) {
598
+ return [{
599
+ batch,
600
+ meta: null,
601
+ entryIds: new Set((batch?.entries || []).map((entry) => entry.id).filter(Boolean)),
602
+ opCountsByEntry: new Map((batch?.entries || []).map((entry) => [entry.id, Array.isArray(entry.ops) ? entry.ops.length : 0])),
603
+ }];
604
+ }
605
+
606
+ const rawChunks = [];
607
+ let current = createManualApplyChunkBuilder();
608
+ for (const entry of batch?.entries || []) {
609
+ const ops = entry.ops || [];
610
+ if (ops.length <= maxOps) {
611
+ if (current.opCount > 0 && current.opCount + ops.length > maxOps) {
612
+ rawChunks.push(current);
613
+ current = createManualApplyChunkBuilder();
614
+ }
615
+ for (const op of ops) addOpToManualApplyChunk(current, entry, op);
616
+ continue;
617
+ }
618
+ if (current.opCount > 0) {
619
+ rawChunks.push(current);
620
+ current = createManualApplyChunkBuilder();
621
+ }
622
+ for (const op of ops) {
623
+ if (current.opCount >= maxOps) {
624
+ rawChunks.push(current);
625
+ current = createManualApplyChunkBuilder();
626
+ }
627
+ addOpToManualApplyChunk(current, entry, op);
628
+ }
629
+ }
630
+ if (current.opCount > 0) rawChunks.push(current);
631
+
632
+ return rawChunks.map((chunk, index) => ({
633
+ batch: {
634
+ ...batch,
635
+ count: chunk.opCount,
636
+ entries: chunk.entries,
637
+ ops: chunk.ops,
638
+ candidates: filterManualApplyChunkCandidates(batch, chunk.refsByEntry),
639
+ context: {
640
+ ...(batch?.context || {}),
641
+ totalEntries: chunk.entries.length,
642
+ totalOps: chunk.opCount,
643
+ chunkIndex: index + 1,
644
+ chunkTotal: rawChunks.length,
645
+ totalApplyOps: totalOpCount,
646
+ },
647
+ },
648
+ meta: {
649
+ index: index + 1,
650
+ total: rawChunks.length,
651
+ opCount: chunk.opCount,
652
+ totalOpCount,
653
+ },
654
+ entryIds: new Set(chunk.entries.map((entry) => entry.id).filter(Boolean)),
655
+ opCountsByEntry: chunk.opCountsByEntry,
656
+ }));
657
+ }
658
+
659
+ function createManualApplyChunkBuilder() {
660
+ return {
661
+ entries: [],
662
+ entryById: new Map(),
663
+ entryIds: new Set(),
664
+ ops: [],
665
+ refsByEntry: new Map(),
666
+ opCountsByEntry: new Map(),
667
+ opCount: 0,
668
+ };
669
+ }
670
+
671
+ function addOpToManualApplyChunk(chunk, entry, op) {
672
+ let chunkEntry = chunk.entryById.get(entry.id);
673
+ if (!chunkEntry) {
674
+ chunkEntry = { ...entry, ops: [] };
675
+ chunk.entryById.set(entry.id, chunkEntry);
676
+ chunk.entryIds.add(entry.id);
677
+ chunk.entries.push(chunkEntry);
678
+ }
679
+ chunkEntry.ops.push(op);
680
+ chunk.ops.push({ ...op, entryId: op.entryId || entry.id });
681
+ if (!chunk.refsByEntry.has(entry.id)) chunk.refsByEntry.set(entry.id, new Set());
682
+ if (op.ref) chunk.refsByEntry.get(entry.id).add(op.ref);
683
+ chunk.opCountsByEntry.set(entry.id, (chunk.opCountsByEntry.get(entry.id) || 0) + 1);
684
+ chunk.opCount += 1;
685
+ }
686
+
687
+ function filterManualApplyChunkCandidates(batch, refsByEntry) {
688
+ return (batch?.candidates || []).filter((candidate) => {
689
+ const refs = refsByEntry.get(candidate.entryId);
690
+ if (!refs) return false;
691
+ if (!candidate.ref) return true;
692
+ return refs.has(candidate.ref);
693
+ });
694
+ }
695
+
696
+ export function snapshotApplyEventFiles(batch, cwd = process.cwd()) {
697
+ const snapshot = new Map();
698
+ for (const relativeFile of collectManualApplyFiles(batch, [], cwd)) {
699
+ const absolute = path.resolve(cwd, relativeFile);
700
+ try {
701
+ snapshot.set(relativeFile, {
702
+ exists: fs.existsSync(absolute),
703
+ content: fs.existsSync(absolute) ? fs.readFileSync(absolute, 'utf-8') : '',
704
+ });
705
+ } catch {
706
+ // If a file cannot be read before dispatch, do not attempt late rollback.
707
+ }
708
+ }
709
+ return snapshot;
710
+ }
711
+
712
+ export function manualApplyTransactionPath(cwd = process.cwd()) {
713
+ return path.join(getLiveDir(cwd), 'manual-edit-apply-transaction.json');
714
+ }
715
+
716
+ export function readManualApplyTransaction(cwd = process.cwd()) {
717
+ const file = manualApplyTransactionPath(cwd);
718
+ if (!fs.existsSync(file)) return null;
719
+ try {
720
+ return JSON.parse(fs.readFileSync(file, 'utf-8'));
721
+ } catch {
722
+ return null;
723
+ }
724
+ }
725
+
726
+ export function writeManualApplyTransaction({ cwd = process.cwd(), pageUrl = null, batch }) {
727
+ const file = manualApplyTransactionPath(cwd);
728
+ const files = collectManualApplyFiles(batch, [], cwd);
729
+ const transaction = {
730
+ version: 1,
731
+ id: randomUUID().replace(/-/g, '').slice(0, 8),
732
+ createdAt: new Date().toISOString(),
733
+ pageUrl,
734
+ entryIds: (batch?.entries || []).map((entry) => entry.id).filter(Boolean),
735
+ files: files.map((relativeFile) => {
736
+ const absolute = path.resolve(cwd, relativeFile);
737
+ const exists = fs.existsSync(absolute);
738
+ return {
739
+ file: relativeFile,
740
+ exists,
741
+ content: exists ? fs.readFileSync(absolute, 'utf-8') : '',
742
+ };
743
+ }),
744
+ };
745
+ fs.mkdirSync(path.dirname(file), { recursive: true });
746
+ fs.writeFileSync(`${file}.tmp`, JSON.stringify(transaction, null, 2) + '\n', 'utf-8');
747
+ fs.renameSync(`${file}.tmp`, file);
748
+ return transaction;
749
+ }
750
+
751
+ export function clearManualApplyTransaction(cwd = process.cwd(), transactionId = null) {
752
+ const file = manualApplyTransactionPath(cwd);
753
+ if (!fs.existsSync(file)) return false;
754
+ if (transactionId) {
755
+ const existing = readManualApplyTransaction(cwd);
756
+ if (existing?.id && existing.id !== transactionId) return false;
757
+ }
758
+ try {
759
+ fs.unlinkSync(file);
760
+ return true;
761
+ } catch {
762
+ return false;
763
+ }
764
+ }
765
+
766
+ export function rollbackManualApplyTransaction({
767
+ cwd = process.cwd(),
768
+ pageUrl = null,
769
+ reason = 'manual_edit_transaction_rollback',
770
+ recordManualEditActivity = null,
771
+ } = {}) {
772
+ const transaction = readManualApplyTransaction(cwd);
773
+ if (!transaction) return null;
774
+ if (pageUrl && transaction.pageUrl && transaction.pageUrl !== pageUrl) return null;
775
+
776
+ let pendingIds = new Set();
777
+ try {
778
+ const buffer = readManualEditsBuffer(cwd);
779
+ pendingIds = new Set((buffer.entries || []).map((entry) => entry.id).filter(Boolean));
780
+ } catch {
781
+ pendingIds = new Set(transaction.entryIds || []);
782
+ }
783
+ const shouldRollback = (transaction.entryIds || []).some((id) => pendingIds.has(id));
784
+ if (!shouldRollback) {
785
+ clearManualApplyTransaction(cwd, transaction.id);
786
+ return { id: transaction.id, reason, rolledBackFiles: [], rollbackFailures: [], skipped: 'entries_not_pending' };
787
+ }
788
+
789
+ const rolledBackFiles = [];
790
+ const rollbackFailures = [];
791
+ for (const item of transaction.files || []) {
792
+ const relativeFile = normalizeProjectFile(item.file, cwd);
793
+ if (!relativeFile) continue;
794
+ const absolute = path.resolve(cwd, relativeFile);
795
+ try {
796
+ if (item.exists) {
797
+ fs.mkdirSync(path.dirname(absolute), { recursive: true });
798
+ fs.writeFileSync(absolute, item.content || '', 'utf-8');
799
+ } else if (fs.existsSync(absolute)) {
800
+ fs.rmSync(absolute);
801
+ }
802
+ rolledBackFiles.push(relativeFile);
803
+ } catch (err) {
804
+ rollbackFailures.push({ file: relativeFile, reason: 'restore_failed', message: err.message || String(err) });
805
+ }
806
+ }
807
+ clearManualApplyTransaction(cwd, transaction.id);
808
+ recordManualEditActivity?.('manual_edit_transaction_rolled_back', {
809
+ id: transaction.id,
810
+ pageUrl: transaction.pageUrl || null,
811
+ reason,
812
+ entryIds: transaction.entryIds || [],
813
+ rolledBackFiles: rolledBackFiles.map((file) => summarizeManualLogFile(file, cwd)).filter(Boolean),
814
+ rollbackFailures: summarizeManualDiagnostics(rollbackFailures, cwd),
815
+ });
816
+ return { id: transaction.id, reason, rolledBackFiles, rollbackFailures };
817
+ }
818
+
819
+ export function collectManualApplyFiles(batch, extraFiles = [], cwd = process.cwd()) {
820
+ const files = [];
821
+ for (const entry of batch?.entries || []) {
822
+ for (const op of entry.ops || []) files.push(op.sourceHint?.file);
823
+ }
824
+ for (const candidate of batch?.candidates || []) {
825
+ files.push(candidate.sourceHint?.relativeFile, candidate.sourceHint?.file);
826
+ for (const item of candidate.textMatches || []) files.push(item.file);
827
+ for (const item of candidate.objectKeyMatches || []) files.push(item.file);
828
+ for (const item of candidate.locatorMatches || []) files.push(item.file);
829
+ for (const item of candidate.contextTextMatches || []) files.push(item.file);
830
+ }
831
+ files.push(...(extraFiles || []));
832
+ return [...new Set(files)]
833
+ .map((file) => normalizeProjectFile(file, cwd))
834
+ .filter(Boolean);
835
+ }
836
+
837
+ function normalizeProjectFile(file, cwd = process.cwd()) {
838
+ if (!file || typeof file !== 'string') return null;
839
+ const absolute = path.isAbsolute(file) ? file : path.resolve(cwd, file);
840
+ const relative = path.relative(cwd, absolute);
841
+ if (!relative || relative.startsWith('..') || path.isAbsolute(relative)) return null;
842
+ return relative;
843
+ }
844
+
845
+ export function rollbackApplySnapshot(
846
+ batch,
847
+ rollbackSnapshot,
848
+ extraFiles = [],
849
+ _reason = 'manual_edit_apply_snapshot_rollback',
850
+ cwd = process.cwd(),
851
+ ) {
852
+ const scope = collectManualApplyFiles(batch, extraFiles, cwd);
853
+ const rolledBackFiles = [];
854
+ const rollbackFailures = [];
855
+ for (const relativeFile of scope) {
856
+ const before = rollbackSnapshot?.get(relativeFile);
857
+ if (!before) continue;
858
+ const absolute = path.resolve(cwd, relativeFile);
859
+ try {
860
+ if (before.exists) {
861
+ fs.mkdirSync(path.dirname(absolute), { recursive: true });
862
+ fs.writeFileSync(absolute, before.content, 'utf-8');
863
+ } else if (fs.existsSync(absolute)) {
864
+ fs.rmSync(absolute);
865
+ }
866
+ rolledBackFiles.push(relativeFile);
867
+ } catch (err) {
868
+ rollbackFailures.push({ file: relativeFile, reason: 'restore_failed', message: err.message || String(err) });
869
+ }
870
+ }
871
+ return { rolledBackFiles, rollbackFailures };
872
+ }
873
+
874
+ function manualApplyReplyCommand(eventOrId = 'EVENT_ID') {
875
+ const id = typeof eventOrId === 'string' ? eventOrId : eventOrId?.id || 'EVENT_ID';
876
+ return `live-poll.mjs --reply ${id} done --data '<json>'`;
877
+ }
878
+
879
+ export function buildManualApplyAgentAction(eventOrId = 'EVENT_ID') {
880
+ return {
881
+ kind: 'manual_edit_apply',
882
+ required: 'apply_source_edits_then_reply',
883
+ replyCommand: manualApplyReplyCommand(eventOrId),
884
+ warning: 'Polling only leases this work item; it does not commit source edits.',
885
+ };
886
+ }
887
+
888
+ export function summarizeManualApplyEvent(event = {}, batch = event.batch, cwd = process.cwd()) {
889
+ const entries = Array.isArray(batch?.entries) ? batch.entries : [];
890
+ const opCount = entries.reduce((sum, entry) => sum + (Array.isArray(entry.ops) ? entry.ops.length : 0), 0);
891
+ return {
892
+ pageUrl: event.pageUrl || null,
893
+ chunk: event.chunk || null,
894
+ entryCount: entries.length,
895
+ opCount,
896
+ files: collectManualApplyFiles(batch, [], cwd),
897
+ };
898
+ }
899
+
900
+ export function summarizeManualApplyFailures(failed, cwd = process.cwd()) {
901
+ if (!Array.isArray(failed)) return [];
902
+ return failed.slice(0, 20).map((item) => ({
903
+ id: item.id || item.entryId || null,
904
+ reason: item.reason || item.message || 'failed',
905
+ message: compactManualLogText(item.message, 300),
906
+ files: Array.isArray(item.files) ? item.files.slice(0, 12).map((file) => summarizeManualLogFile(file, cwd)).filter(Boolean) : undefined,
907
+ checks: summarizeManualDiagnostics(item.checks, cwd),
908
+ failures: summarizeManualDiagnostics(item.failures, cwd),
909
+ candidates: summarizeManualDiagnostics(item.candidates, cwd),
910
+ }));
911
+ }
912
+
913
+ export function summarizeManualDiagnostics(items, cwd = process.cwd()) {
914
+ if (!Array.isArray(items) || items.length === 0) return undefined;
915
+ return items.slice(0, 12).map((item) => ({
916
+ reason: item.reason || item.kind || undefined,
917
+ detail: compactManualLogText(item.detail, 220),
918
+ message: compactManualLogText(item.message, 300),
919
+ file: summarizeManualLogFile(item.file || item.relativeFile, cwd),
920
+ line: item.line || undefined,
921
+ ref: compactManualLogText(item.ref, 180),
922
+ marker: compactManualLogText(item.marker, 120),
923
+ files: Array.isArray(item.files) ? item.files.slice(0, 8).map((file) => summarizeManualLogFile(file, cwd)).filter(Boolean) : undefined,
924
+ }));
925
+ }
926
+
927
+ export function summarizeManualLogFile(file, cwd = process.cwd()) {
928
+ if (!file || typeof file !== 'string') return undefined;
929
+ if (!path.isAbsolute(file)) return file;
930
+ const relative = path.relative(cwd, file);
931
+ return relative && !relative.startsWith('..') && !path.isAbsolute(relative) ? relative : file;
932
+ }
933
+
934
+ export function compactManualLogText(value, max = 200) {
935
+ if (typeof value !== 'string') return undefined;
936
+ const normalized = value.replace(/\s+/g, ' ').trim();
937
+ if (normalized.length <= max) return normalized;
938
+ return normalized.slice(0, max) + `... [truncated ${normalized.length - max} chars]`;
939
+ }