@monoes/monomindcli 2.8.4 → 2.9.2

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 (1795) hide show
  1. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -0
  2. package/.claude/agents/consensus/crdt-synchronizer.md +0 -0
  3. package/.claude/agents/consensus/quorum-manager.md +0 -0
  4. package/.claude/agents/consensus/security-manager.md +0 -0
  5. package/.claude/agents/core/coder.md +0 -0
  6. package/.claude/agents/core/coordinator.md +0 -0
  7. package/.claude/agents/core/planner.md +0 -0
  8. package/.claude/agents/core/researcher.md +0 -0
  9. package/.claude/agents/core/reviewer.md +0 -0
  10. package/.claude/agents/core/tester.md +0 -0
  11. package/.claude/agents/design/design-monodesign.md +0 -0
  12. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -0
  13. package/.claude/agents/engineering/engineering-ai-engineer.md +0 -0
  14. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -0
  15. package/.claude/agents/engineering/engineering-backend-architect.md +0 -0
  16. package/.claude/agents/engineering/engineering-code-reviewer.md +0 -0
  17. package/.claude/agents/engineering/engineering-data-engineer.md +0 -0
  18. package/.claude/agents/engineering/engineering-database-optimizer.md +0 -0
  19. package/.claude/agents/engineering/engineering-devops-automator.md +0 -0
  20. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -0
  21. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -0
  22. package/.claude/agents/engineering/engineering-frontend-developer.md +0 -0
  23. package/.claude/agents/engineering/engineering-git-workflow-master.md +0 -0
  24. package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -0
  25. package/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -0
  26. package/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -0
  27. package/.claude/agents/engineering/engineering-security-engineer.md +0 -0
  28. package/.claude/agents/engineering/engineering-senior-developer.md +0 -0
  29. package/.claude/agents/engineering/engineering-software-architect.md +0 -0
  30. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -0
  31. package/.claude/agents/engineering/engineering-sre.md +0 -0
  32. package/.claude/agents/engineering/engineering-technical-writer.md +0 -0
  33. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -0
  34. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -0
  35. package/.claude/agents/github/code-review-swarm.md +0 -0
  36. package/.claude/agents/github/github-modes.md +0 -0
  37. package/.claude/agents/github/issue-tracker.md +0 -0
  38. package/.claude/agents/github/multi-repo-swarm.md +0 -0
  39. package/.claude/agents/github/pr-manager.md +0 -0
  40. package/.claude/agents/github/project-board-sync.md +0 -0
  41. package/.claude/agents/github/release-manager.md +0 -0
  42. package/.claude/agents/github/repo-architect.md +0 -0
  43. package/.claude/agents/github/swarm-issue.md +0 -0
  44. package/.claude/agents/github/swarm-pr.md +0 -0
  45. package/.claude/agents/github/sync-coordinator.md +0 -0
  46. package/.claude/agents/github/workflow-automation.md +0 -0
  47. package/.claude/agents/goal/goal-planner.md +0 -0
  48. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -0
  49. package/.claude/agents/hive-mind/scout-explorer.md +0 -0
  50. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -0
  51. package/.claude/agents/hive-mind/worker-specialist.md +0 -0
  52. package/.claude/agents/marketing/marketing-competitive-content.md +0 -0
  53. package/.claude/agents/marketing/marketing-cro-specialist.md +0 -0
  54. package/.claude/agents/marketing/marketing-email-specialist.md +0 -0
  55. package/.claude/agents/marketing/marketing-launch-strategist.md +0 -0
  56. package/.claude/agents/marketing/marketing-pricing-strategist.md +0 -0
  57. package/.claude/agents/optimization/benchmark-suite.md +0 -0
  58. package/.claude/agents/optimization/load-balancer.md +0 -0
  59. package/.claude/agents/optimization/performance-monitor.md +0 -0
  60. package/.claude/agents/optimization/resource-allocator.md +0 -0
  61. package/.claude/agents/optimization/topology-optimizer.md +0 -0
  62. package/.claude/agents/schemas/architecture-output.json +0 -0
  63. package/.claude/agents/schemas/code-review-output.json +0 -0
  64. package/.claude/agents/schemas/generic-task-input.json +0 -0
  65. package/.claude/agents/schemas/implementation-output.json +0 -0
  66. package/.claude/agents/schemas/research-output.json +0 -0
  67. package/.claude/agents/schemas/security-audit-output.json +0 -0
  68. package/.claude/agents/schemas/test-report-output.json +0 -0
  69. package/.claude/agents/specialists/integration-architect.md +0 -0
  70. package/.claude/agents/specialized/agentic-identity-trust.md +0 -0
  71. package/.claude/agents/specialized/agents-orchestrator.md +0 -0
  72. package/.claude/agents/specialized/automation-governance-architect.md +0 -0
  73. package/.claude/agents/specialized/blockchain-security-auditor.md +0 -0
  74. package/.claude/agents/specialized/compliance-auditor.md +0 -0
  75. package/.claude/agents/specialized/identity-graph-operator.md +0 -0
  76. package/.claude/agents/specialized/lsp-index-engineer.md +0 -0
  77. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -0
  78. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -0
  79. package/.claude/agents/specialized/specialized-developer-advocate.md +0 -0
  80. package/.claude/agents/specialized/specialized-document-generator.md +0 -0
  81. package/.claude/agents/specialized/specialized-mcp-builder.md +0 -0
  82. package/.claude/agents/specialized/specialized-model-qa.md +0 -0
  83. package/.claude/agents/specialized/specialized-workflow-architect.md +0 -0
  84. package/.claude/agents/specialized/zk-steward.md +0 -0
  85. package/.claude/agents/swarm/mesh-coordinator.md +0 -0
  86. package/.claude/agents/templates/automation-smart-agent.md +0 -0
  87. package/.claude/agents/templates/coordinator-swarm-init.md +0 -0
  88. package/.claude/agents/testing/production-validator.md +0 -0
  89. package/.claude/agents/testing/tdd-london-swarm.md +0 -0
  90. package/.claude/agents/testing/testing-accessibility-auditor.md +0 -0
  91. package/.claude/agents/testing/testing-api-tester.md +0 -0
  92. package/.claude/agents/testing/testing-evidence-collector.md +0 -0
  93. package/.claude/agents/testing/testing-performance-benchmarker.md +0 -0
  94. package/.claude/agents/testing/testing-test-results-analyzer.md +0 -0
  95. package/.claude/agents/testing/testing-tool-evaluator.md +0 -0
  96. package/.claude/agents/testing/testing-workflow-optimizer.md +0 -0
  97. package/.claude/commands/agents/README.md +0 -0
  98. package/.claude/commands/agents/agent-capabilities.md +0 -0
  99. package/.claude/commands/agents/agent-coordination.md +0 -0
  100. package/.claude/commands/agents/agent-spawning.md +0 -0
  101. package/.claude/commands/agents/agent-types.md +0 -0
  102. package/.claude/commands/analysis/README.md +0 -0
  103. package/.claude/commands/analysis/bottleneck-detect.md +0 -0
  104. package/.claude/commands/analysis/performance-bottlenecks.md +0 -0
  105. package/.claude/commands/analysis/performance-report.md +0 -0
  106. package/.claude/commands/analysis/token-usage.md +0 -0
  107. package/.claude/commands/automation/README.md +0 -0
  108. package/.claude/commands/automation/auto-agent.md +0 -0
  109. package/.claude/commands/automation/self-healing.md +0 -0
  110. package/.claude/commands/automation/session-memory.md +0 -0
  111. package/.claude/commands/automation/smart-agents.md +0 -0
  112. package/.claude/commands/automation/smart-spawn.md +0 -0
  113. package/.claude/commands/automation/workflow-select.md +0 -0
  114. package/.claude/commands/coordination/README.md +0 -0
  115. package/.claude/commands/coordination/agent-spawn.md +0 -0
  116. package/.claude/commands/coordination/swarm-init.md +0 -0
  117. package/.claude/commands/coordination/task-orchestrate.md +0 -0
  118. package/.claude/commands/github/README.md +0 -0
  119. package/.claude/commands/github/github-modes.md +0 -0
  120. package/.claude/commands/github/issue-tracker.md +0 -0
  121. package/.claude/commands/github/pr-manager.md +0 -0
  122. package/.claude/commands/github/release-manager.md +0 -0
  123. package/.claude/commands/github/repo-architect.md +0 -0
  124. package/.claude/commands/github/sync-coordinator.md +0 -0
  125. package/.claude/commands/hive-mind/README.md +0 -0
  126. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -0
  127. package/.claude/commands/hive-mind/hive-mind-init.md +0 -0
  128. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -0
  129. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -0
  130. package/.claude/commands/hive-mind/hive-mind-status.md +0 -0
  131. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -0
  132. package/.claude/commands/hive-mind/hive-mind.md +0 -0
  133. package/.claude/commands/hooks/README.md +0 -0
  134. package/.claude/commands/hooks/overview.md +0 -0
  135. package/.claude/commands/hooks/post-edit.md +0 -0
  136. package/.claude/commands/hooks/post-task.md +0 -0
  137. package/.claude/commands/hooks/pre-edit.md +0 -0
  138. package/.claude/commands/hooks/pre-task.md +0 -0
  139. package/.claude/commands/hooks/session-end.md +0 -0
  140. package/.claude/commands/hooks/setup.md +0 -0
  141. package/.claude/commands/mastermind/_repeat.md +0 -0
  142. package/.claude/commands/mastermind/_taskfile.md +0 -0
  143. package/.claude/commands/mastermind/adr.md +0 -0
  144. package/.claude/commands/mastermind/approvev1.md +0 -0
  145. package/.claude/commands/mastermind/architect.md +0 -0
  146. package/.claude/commands/mastermind/autodev.md +0 -0
  147. package/.claude/commands/mastermind/brain.md +0 -0
  148. package/.claude/commands/mastermind/budget.md +0 -0
  149. package/.claude/commands/mastermind/build.md +0 -0
  150. package/.claude/commands/mastermind/code-review.md +0 -0
  151. package/.claude/commands/mastermind/content.md +0 -0
  152. package/.claude/commands/mastermind/createorg.md +0 -0
  153. package/.claude/commands/mastermind/createtask.md +0 -0
  154. package/.claude/commands/mastermind/debug.md +0 -0
  155. package/.claude/commands/mastermind/design.md +0 -0
  156. package/.claude/commands/mastermind/do.md +0 -0
  157. package/.claude/commands/mastermind/execute.md +0 -0
  158. package/.claude/commands/mastermind/finance.md +0 -0
  159. package/.claude/commands/mastermind/finish.md +0 -0
  160. package/.claude/commands/mastermind/graph-status.md +0 -0
  161. package/.claude/commands/mastermind/help.md +0 -0
  162. package/.claude/commands/mastermind/idea.md +0 -0
  163. package/.claude/commands/mastermind/ideate.md +0 -0
  164. package/.claude/commands/mastermind/improve.md +0 -0
  165. package/.claude/commands/mastermind/loops.md +0 -0
  166. package/.claude/commands/mastermind/marketing.md +0 -0
  167. package/.claude/commands/mastermind/master.md +0 -0
  168. package/.claude/commands/mastermind/memory.md +0 -0
  169. package/.claude/commands/mastermind/okf-export.md +0 -0
  170. package/.claude/commands/mastermind/okf-import.md +0 -0
  171. package/.claude/commands/mastermind/ops.md +0 -0
  172. package/.claude/commands/mastermind/orgs.md +0 -0
  173. package/.claude/commands/mastermind/orgstatus.md +0 -0
  174. package/.claude/commands/mastermind/plan.md +0 -0
  175. package/.claude/commands/mastermind/receive-review.md +0 -0
  176. package/.claude/commands/mastermind/references/antigravity-tools.md +0 -0
  177. package/.claude/commands/mastermind/references/claude-code-tools.md +0 -0
  178. package/.claude/commands/mastermind/references/codex-tools.md +0 -0
  179. package/.claude/commands/mastermind/references/copilot-tools.md +0 -0
  180. package/.claude/commands/mastermind/references/gemini-tools.md +0 -0
  181. package/.claude/commands/mastermind/references/pi-tools.md +0 -0
  182. package/.claude/commands/mastermind/release.md +0 -0
  183. package/.claude/commands/mastermind/repeat.md +0 -0
  184. package/.claude/commands/mastermind/research.md +0 -0
  185. package/.claude/commands/mastermind/review.md +0 -0
  186. package/.claude/commands/mastermind/runorg.md +0 -0
  187. package/.claude/commands/mastermind/runorgv1.md +0 -0
  188. package/.claude/commands/mastermind/sales.md +0 -0
  189. package/.claude/commands/mastermind/skill-builder.md +0 -0
  190. package/.claude/commands/mastermind/specialagents.md +0 -0
  191. package/.claude/commands/mastermind/stoporg.md +0 -0
  192. package/.claude/commands/mastermind/swarm.md +0 -0
  193. package/.claude/commands/mastermind/taskdev.md +0 -0
  194. package/.claude/commands/mastermind/tdd.md +0 -0
  195. package/.claude/commands/mastermind/techport.md +0 -0
  196. package/.claude/commands/mastermind/topology.md +0 -0
  197. package/.claude/commands/mastermind/understand.md +0 -0
  198. package/.claude/commands/mastermind/verify.md +0 -0
  199. package/.claude/commands/mastermind/worktree.md +0 -0
  200. package/.claude/commands/mastermind.md +0 -0
  201. package/.claude/commands/memory/README.md +0 -0
  202. package/.claude/commands/memory/memory-search.md +0 -0
  203. package/.claude/commands/monitoring/README.md +0 -0
  204. package/.claude/commands/monitoring/agent-metrics.md +0 -0
  205. package/.claude/commands/monitoring/agents.md +0 -0
  206. package/.claude/commands/monitoring/status.md +0 -0
  207. package/.claude/commands/monobrowse.md +0 -0
  208. package/.claude/commands/monoes/README.md +0 -0
  209. package/.claude/commands/monoes/install.md +0 -0
  210. package/.claude/commands/monoes/monoagent.md +0 -0
  211. package/.claude/commands/monoes/monoclip.md +0 -0
  212. package/.claude/commands/monoes/monotask.md +0 -0
  213. package/.claude/commands/monograph/README.md +0 -0
  214. package/.claude/commands/monograph/monograph-build.md +0 -0
  215. package/.claude/commands/monograph/monograph-search.md +0 -0
  216. package/.claude/commands/monograph/monograph-stats.md +0 -0
  217. package/.claude/commands/monograph/monograph-watch.md +0 -0
  218. package/.claude/commands/monograph/monograph-wiki.md +0 -0
  219. package/.claude/commands/optimization/auto-topology.md +0 -0
  220. package/.claude/commands/optimization/performance-optimize.md +0 -0
  221. package/.claude/commands/pair/README.md +0 -0
  222. package/.claude/commands/pair/examples.md +0 -0
  223. package/.claude/commands/pair/modes.md +0 -0
  224. package/.claude/commands/pair/session.md +0 -0
  225. package/.claude/commands/stream-chain/pipeline.md +0 -0
  226. package/.claude/commands/stream-chain/run.md +0 -0
  227. package/.claude/commands/swarm/README.md +0 -0
  228. package/.claude/commands/swarm/analysis.md +0 -0
  229. package/.claude/commands/swarm/development.md +0 -0
  230. package/.claude/commands/swarm/examples.md +0 -0
  231. package/.claude/commands/swarm/maintenance.md +0 -0
  232. package/.claude/commands/swarm/optimization.md +0 -0
  233. package/.claude/commands/swarm/research.md +0 -0
  234. package/.claude/commands/swarm/swarm.md +0 -0
  235. package/.claude/commands/swarm/testing.md +0 -0
  236. package/.claude/commands/tokens.md +0 -0
  237. package/.claude/commands/truth/start.md +0 -0
  238. package/.claude/commands/ts.md +0 -0
  239. package/.claude/commands/workflows/README.md +0 -0
  240. package/.claude/commands/workflows/development.md +0 -0
  241. package/.claude/commands/workflows/research.md +0 -0
  242. package/.claude/commands/workflows/workflow-create.md +0 -0
  243. package/.claude/commands/workflows/workflow-execute.md +0 -0
  244. package/.claude/commands/workflows/workflow-export.md +0 -0
  245. package/.claude/helpers/build-skill-registry.cjs +0 -0
  246. package/.claude/helpers/control-start.cjs +0 -0
  247. package/.claude/helpers/control-stop.cjs +0 -0
  248. package/.claude/helpers/event-logger.cjs +0 -0
  249. package/.claude/helpers/graphify-freshen.cjs +0 -0
  250. package/.claude/helpers/handlers/adr-draft-handler.cjs +0 -0
  251. package/.claude/helpers/handlers/agent-start-handler.cjs +0 -0
  252. package/.claude/helpers/handlers/budget-status-handler.cjs +0 -0
  253. package/.claude/helpers/handlers/capture-handler.cjs +0 -0
  254. package/.claude/helpers/handlers/compact-handler.cjs +0 -0
  255. package/.claude/helpers/handlers/edit-handler.cjs +0 -0
  256. package/.claude/helpers/handlers/gates-handler.cjs +0 -0
  257. package/.claude/helpers/handlers/graph-status-handler.cjs +0 -0
  258. package/.claude/helpers/handlers/loops-status-handler.cjs +0 -0
  259. package/.claude/helpers/handlers/route-handler.cjs +12 -0
  260. package/.claude/helpers/handlers/session-handler.cjs +0 -0
  261. package/.claude/helpers/handlers/session-restore-handler.cjs +28 -7
  262. package/.claude/helpers/handlers/stats-handler.cjs +0 -0
  263. package/.claude/helpers/handlers/task-handler.cjs +0 -0
  264. package/.claude/helpers/intelligence.cjs +0 -0
  265. package/.claude/helpers/learning-service.mjs +0 -0
  266. package/.claude/helpers/loop-tracker.cjs +0 -0
  267. package/.claude/helpers/mastermind-activate.cjs +0 -0
  268. package/.claude/helpers/memory-palace.cjs +0 -0
  269. package/.claude/helpers/memory.cjs +0 -0
  270. package/.claude/helpers/metrics-db.mjs +0 -0
  271. package/.claude/helpers/monolean-activate.cjs +0 -0
  272. package/.claude/helpers/monolean-config.cjs +0 -0
  273. package/.claude/helpers/monolean-instructions.cjs +0 -0
  274. package/.claude/helpers/monolean-propagate.cjs +0 -0
  275. package/.claude/helpers/monolean-tracker.cjs +0 -0
  276. package/.claude/helpers/router.cjs +0 -0
  277. package/.claude/helpers/session.cjs +0 -0
  278. package/.claude/helpers/skill-registry.json +0 -0
  279. package/.claude/helpers/statusline.cjs +0 -0
  280. package/.claude/helpers/toggle-statusline.cjs +0 -0
  281. package/.claude/helpers/token-tracker.cjs +0 -0
  282. package/.claude/helpers/utils/agent-registrations.cjs +0 -0
  283. package/.claude/helpers/utils/fs-helpers.cjs +0 -0
  284. package/.claude/helpers/utils/micro-agents.cjs +22 -0
  285. package/.claude/helpers/utils/monograph.cjs +0 -0
  286. package/.claude/helpers/utils/system-pressure.cjs +0 -0
  287. package/.claude/helpers/utils/telemetry.cjs +0 -0
  288. package/.claude/settings.json +0 -0
  289. package/.claude/skills/agent-browser-testing/SKILL.md +0 -0
  290. package/.claude/skills/agentic-jujutsu/SKILL.md +0 -0
  291. package/.claude/skills/github-issue-triage/SKILL.md +0 -0
  292. package/.claude/skills/github-repo-recap/SKILL.md +0 -0
  293. package/.claude/skills/github-toolkit/SKILL.md +60 -0
  294. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -0
  295. package/.claude/skills/hooks-automation/SKILL.md +0 -0
  296. package/.claude/skills/mastermind-access/SKILL.md +0 -0
  297. package/.claude/skills/mastermind-activity/SKILL.md +0 -0
  298. package/.claude/skills/mastermind-adapter-manager/SKILL.md +0 -0
  299. package/.claude/skills/mastermind-adapters/SKILL.md +0 -0
  300. package/.claude/skills/mastermind-agent-detail/SKILL.md +0 -0
  301. package/.claude/skills/mastermind-agent-select/SKILL.md +0 -0
  302. package/.claude/skills/mastermind-agents/SKILL.md +0 -0
  303. package/.claude/skills/mastermind-approval-detail/SKILL.md +0 -0
  304. package/.claude/skills/mastermind-approvev1/SKILL.md +0 -0
  305. package/.claude/skills/mastermind-architect/SKILL.md +0 -0
  306. package/.claude/skills/mastermind-autodev/SKILL.md +0 -0
  307. package/.claude/skills/mastermind-backup/SKILL.md +0 -0
  308. package/.claude/skills/mastermind-bootstrap/SKILL.md +0 -0
  309. package/.claude/skills/mastermind-budgets/SKILL.md +0 -0
  310. package/.claude/skills/mastermind-build/SKILL.md +0 -0
  311. package/.claude/skills/mastermind-companies/SKILL.md +0 -0
  312. package/.claude/skills/mastermind-content/SKILL.md +0 -0
  313. package/.claude/skills/mastermind-costs/SKILL.md +0 -0
  314. package/.claude/skills/mastermind-createorg/SKILL.md +0 -0
  315. package/.claude/skills/mastermind-debug/SKILL.md +0 -0
  316. package/.claude/skills/mastermind-delegation/SKILL.md +0 -0
  317. package/.claude/skills/mastermind-design/SKILL.md +0 -0
  318. package/.claude/skills/mastermind-diagnose/SKILL.md +0 -0
  319. package/.claude/skills/mastermind-env/SKILL.md +0 -0
  320. package/.claude/skills/mastermind-environments/SKILL.md +0 -0
  321. package/.claude/skills/mastermind-execute/SKILL.md +0 -0
  322. package/.claude/skills/mastermind-export/SKILL.md +0 -0
  323. package/.claude/skills/mastermind-finance/SKILL.md +0 -0
  324. package/.claude/skills/mastermind-finish/SKILL.md +0 -0
  325. package/.claude/skills/mastermind-goal-detail/SKILL.md +0 -0
  326. package/.claude/skills/mastermind-goals/SKILL.md +0 -0
  327. package/.claude/skills/mastermind-heartbeatv1/SKILL.md +0 -0
  328. package/.claude/skills/mastermind-idea/SKILL.md +0 -0
  329. package/.claude/skills/mastermind-import/SKILL.md +0 -0
  330. package/.claude/skills/mastermind-inbox/SKILL.md +0 -0
  331. package/.claude/skills/mastermind-instance/SKILL.md +0 -0
  332. package/.claude/skills/mastermind-instance-settings/SKILL.md +0 -0
  333. package/.claude/skills/mastermind-intake/SKILL.md +0 -0
  334. package/.claude/skills/mastermind-invite-landing/SKILL.md +0 -0
  335. package/.claude/skills/mastermind-invites/SKILL.md +0 -0
  336. package/.claude/skills/mastermind-issue-detail/SKILL.md +0 -0
  337. package/.claude/skills/mastermind-issues/SKILL.md +0 -0
  338. package/.claude/skills/mastermind-join-queue/SKILL.md +0 -0
  339. package/.claude/skills/mastermind-liveness/SKILL.md +0 -0
  340. package/.claude/skills/mastermind-marketing/SKILL.md +0 -0
  341. package/.claude/skills/mastermind-marketing/references/copywriting-frameworks.md +0 -0
  342. package/.claude/skills/mastermind-marketing/references/persuasion-psychology.md +0 -0
  343. package/.claude/skills/mastermind-memory/SKILL.md +0 -0
  344. package/.claude/skills/mastermind-monitor/SKILL.md +0 -0
  345. package/.claude/skills/mastermind-monotask/SKILL.md +0 -0
  346. package/.claude/skills/mastermind-my-issues/SKILL.md +0 -0
  347. package/.claude/skills/mastermind-new-agent/SKILL.md +0 -0
  348. package/.claude/skills/mastermind-ops/SKILL.md +0 -0
  349. package/.claude/skills/mastermind-org-chart/SKILL.md +0 -0
  350. package/.claude/skills/mastermind-org-settings/SKILL.md +0 -0
  351. package/.claude/skills/mastermind-orgs/SKILL.md +0 -0
  352. package/.claude/skills/mastermind-orgstatus/SKILL.md +0 -0
  353. package/.claude/skills/mastermind-plan/SKILL.md +0 -0
  354. package/.claude/skills/mastermind-plan-to-tasks/SKILL.md +0 -0
  355. package/.claude/skills/mastermind-plugin-manager/SKILL.md +0 -0
  356. package/.claude/skills/mastermind-plugin-settings/SKILL.md +0 -0
  357. package/.claude/skills/mastermind-plugins/SKILL.md +0 -0
  358. package/.claude/skills/mastermind-profile/SKILL.md +0 -0
  359. package/.claude/skills/mastermind-project-detail/SKILL.md +0 -0
  360. package/.claude/skills/mastermind-project-workspace/SKILL.md +0 -0
  361. package/.claude/skills/mastermind-projects/SKILL.md +0 -0
  362. package/.claude/skills/mastermind-protocol/SKILL.md +0 -0
  363. package/.claude/skills/mastermind-receive-review/SKILL.md +0 -0
  364. package/.claude/skills/mastermind-release/SKILL.md +0 -0
  365. package/.claude/skills/mastermind-repeat/SKILL.md +0 -0
  366. package/.claude/skills/mastermind-research/SKILL.md +0 -0
  367. package/.claude/skills/mastermind-review/SKILL.md +0 -0
  368. package/.claude/skills/mastermind-routine-detail/SKILL.md +0 -0
  369. package/.claude/skills/mastermind-routines/SKILL.md +0 -0
  370. package/.claude/skills/mastermind-runorg/SKILL.md +0 -0
  371. package/.claude/skills/mastermind-runorgv1/SKILL.md +0 -0
  372. package/.claude/skills/mastermind-sales/SKILL.md +0 -0
  373. package/.claude/skills/mastermind-search/SKILL.md +0 -0
  374. package/.claude/skills/mastermind-secrets/SKILL.md +0 -0
  375. package/.claude/skills/mastermind-skill-builder/SKILL.md +0 -0
  376. package/.claude/skills/mastermind-skills/SKILL.md +0 -0
  377. package/.claude/skills/mastermind-stoporg/SKILL.md +0 -0
  378. package/.claude/skills/mastermind-taskdev/SKILL.md +0 -0
  379. package/.claude/skills/mastermind-taskdev/code-quality-reviewer-prompt.md +0 -0
  380. package/.claude/skills/mastermind-taskdev/final-reviewer-prompt.md +0 -0
  381. package/.claude/skills/mastermind-taskdev/implementer-prompt.md +0 -0
  382. package/.claude/skills/mastermind-taskdev/spec-reviewer-prompt.md +0 -0
  383. package/.claude/skills/mastermind-tasks/SKILL.md +0 -0
  384. package/.claude/skills/mastermind-tdd/SKILL.md +0 -0
  385. package/.claude/skills/mastermind-techport/SKILL.md +0 -0
  386. package/.claude/skills/mastermind-threads/SKILL.md +0 -0
  387. package/.claude/skills/mastermind-tree-control/SKILL.md +0 -0
  388. package/.claude/skills/mastermind-verify/SKILL.md +0 -0
  389. package/.claude/skills/mastermind-wiki/SKILL.md +0 -0
  390. package/.claude/skills/mastermind-workspace-detail/SKILL.md +0 -0
  391. package/.claude/skills/mastermind-workspaces/SKILL.md +0 -0
  392. package/.claude/skills/mastermind-worktree/SKILL.md +0 -0
  393. package/.claude/skills/memory-toolkit/SKILL.md +75 -0
  394. package/.claude/skills/monodesign/SKILL.md +0 -0
  395. package/.claude/skills/monodesign/adapt.md +0 -0
  396. package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -0
  397. package/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +0 -0
  398. package/.claude/skills/monodesign/animate.md +0 -0
  399. package/.claude/skills/monodesign/audit.md +0 -0
  400. package/.claude/skills/monodesign/bolder.md +0 -0
  401. package/.claude/skills/monodesign/clarify.md +0 -0
  402. package/.claude/skills/monodesign/colorize.md +0 -0
  403. package/.claude/skills/monodesign/craft.md +0 -0
  404. package/.claude/skills/monodesign/critique.md +0 -0
  405. package/.claude/skills/monodesign/delight.md +0 -0
  406. package/.claude/skills/monodesign/distill.md +0 -0
  407. package/.claude/skills/monodesign/document.md +0 -0
  408. package/.claude/skills/monodesign/extract.md +0 -0
  409. package/.claude/skills/monodesign/harden.md +0 -0
  410. package/.claude/skills/monodesign/init.md +0 -0
  411. package/.claude/skills/monodesign/layout.md +0 -0
  412. package/.claude/skills/monodesign/live.md +0 -0
  413. package/.claude/skills/monodesign/onboard.md +0 -0
  414. package/.claude/skills/monodesign/optimize.md +0 -0
  415. package/.claude/skills/monodesign/overdrive.md +0 -0
  416. package/.claude/skills/monodesign/polish.md +0 -0
  417. package/.claude/skills/monodesign/quieter.md +0 -0
  418. package/.claude/skills/monodesign/reference/adapt.md +0 -0
  419. package/.claude/skills/monodesign/reference/adapt.native.md +0 -0
  420. package/.claude/skills/monodesign/reference/android.md +0 -0
  421. package/.claude/skills/monodesign/reference/animate.md +0 -0
  422. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -0
  423. package/.claude/skills/monodesign/reference/audit.md +0 -0
  424. package/.claude/skills/monodesign/reference/audit.native.md +0 -0
  425. package/.claude/skills/monodesign/reference/bolder.md +0 -0
  426. package/.claude/skills/monodesign/reference/brand-workflow.md +0 -0
  427. package/.claude/skills/monodesign/reference/brand.md +0 -0
  428. package/.claude/skills/monodesign/reference/clarify.md +0 -0
  429. package/.claude/skills/monodesign/reference/codex.md +0 -0
  430. package/.claude/skills/monodesign/reference/cognitive-load.md +0 -0
  431. package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -0
  432. package/.claude/skills/monodesign/reference/colorize.md +0 -0
  433. package/.claude/skills/monodesign/reference/component-specs.md +0 -0
  434. package/.claude/skills/monodesign/reference/component-states.md +0 -0
  435. package/.claude/skills/monodesign/reference/component-system.md +0 -0
  436. package/.claude/skills/monodesign/reference/copy-formulas.md +0 -0
  437. package/.claude/skills/monodesign/reference/craft.md +0 -0
  438. package/.claude/skills/monodesign/reference/critique.md +0 -0
  439. package/.claude/skills/monodesign/reference/delight.md +0 -0
  440. package/.claude/skills/monodesign/reference/design-principles.md +0 -0
  441. package/.claude/skills/monodesign/reference/distill.md +0 -0
  442. package/.claude/skills/monodesign/reference/document.md +0 -0
  443. package/.claude/skills/monodesign/reference/extract.md +0 -0
  444. package/.claude/skills/monodesign/reference/harden.md +0 -0
  445. package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -0
  446. package/.claude/skills/monodesign/reference/hooks.md +0 -0
  447. package/.claude/skills/monodesign/reference/image-prompts.md +0 -0
  448. package/.claude/skills/monodesign/reference/init.md +0 -0
  449. package/.claude/skills/monodesign/reference/interaction-design.md +0 -0
  450. package/.claude/skills/monodesign/reference/ios.md +0 -0
  451. package/.claude/skills/monodesign/reference/layout.md +0 -0
  452. package/.claude/skills/monodesign/reference/live.md +0 -0
  453. package/.claude/skills/monodesign/reference/motion-design.md +0 -0
  454. package/.claude/skills/monodesign/reference/onboard.md +0 -0
  455. package/.claude/skills/monodesign/reference/optimize.md +0 -0
  456. package/.claude/skills/monodesign/reference/overdrive.md +0 -0
  457. package/.claude/skills/monodesign/reference/personas.md +0 -0
  458. package/.claude/skills/monodesign/reference/polish.md +0 -0
  459. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -0
  460. package/.claude/skills/monodesign/reference/product.md +0 -0
  461. package/.claude/skills/monodesign/reference/quieter.md +0 -0
  462. package/.claude/skills/monodesign/reference/responsive-design.md +0 -0
  463. package/.claude/skills/monodesign/reference/shape.md +0 -0
  464. package/.claude/skills/monodesign/reference/spatial-design.md +0 -0
  465. package/.claude/skills/monodesign/reference/teach.md +0 -0
  466. package/.claude/skills/monodesign/reference/token-architecture.md +0 -0
  467. package/.claude/skills/monodesign/reference/typeset.md +0 -0
  468. package/.claude/skills/monodesign/reference/typography.md +0 -0
  469. package/.claude/skills/monodesign/reference/ux-research.md +0 -0
  470. package/.claude/skills/monodesign/reference/ux-rules.md +0 -0
  471. package/.claude/skills/monodesign/reference/ux-writing.md +0 -0
  472. package/.claude/skills/monodesign/scripts/command-metadata.json +0 -0
  473. package/.claude/skills/monodesign/scripts/context-signals.mjs +0 -0
  474. package/.claude/skills/monodesign/scripts/context.mjs +0 -0
  475. package/.claude/skills/monodesign/scripts/critique-storage.mjs +0 -0
  476. package/.claude/skills/monodesign/scripts/detect-csp.mjs +0 -0
  477. package/.claude/skills/monodesign/scripts/detect.mjs +0 -0
  478. package/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +0 -0
  479. package/.claude/skills/monodesign/scripts/detector/cli/main.mjs +0 -0
  480. package/.claude/skills/monodesign/scripts/detector/design-system.mjs +0 -0
  481. package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +0 -0
  482. package/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +0 -0
  483. package/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +0 -0
  484. package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +0 -0
  485. package/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +0 -0
  486. package/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +0 -0
  487. package/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +0 -0
  488. package/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -0
  489. package/.claude/skills/monodesign/scripts/detector/findings.mjs +0 -0
  490. package/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +0 -0
  491. package/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +0 -0
  492. package/.claude/skills/monodesign/scripts/detector/fix/index.mjs +0 -0
  493. package/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +0 -0
  494. package/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +0 -0
  495. package/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +0 -0
  496. package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +0 -0
  497. package/.claude/skills/monodesign/scripts/detector/shared/color.mjs +0 -0
  498. package/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +0 -0
  499. package/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +0 -0
  500. package/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +0 -0
  501. package/.claude/skills/monodesign/scripts/detector/shared/page.mjs +0 -0
  502. package/.claude/skills/monodesign/scripts/hook-admin.mjs +0 -0
  503. package/.claude/skills/monodesign/scripts/hook-before-edit.mjs +0 -0
  504. package/.claude/skills/monodesign/scripts/hook-lib.mjs +0 -0
  505. package/.claude/skills/monodesign/scripts/hook.mjs +0 -0
  506. package/.claude/skills/monodesign/scripts/lib/design-parser.mjs +0 -0
  507. package/.claude/skills/monodesign/scripts/lib/is-generated.mjs +0 -0
  508. package/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +0 -0
  509. package/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +0 -0
  510. package/.claude/skills/monodesign/scripts/lib/provider.mjs +0 -0
  511. package/.claude/skills/monodesign/scripts/lib/target-args.mjs +0 -0
  512. package/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +0 -0
  513. package/.claude/skills/monodesign/scripts/live/completion.mjs +0 -0
  514. package/.claude/skills/monodesign/scripts/live/event-validation.mjs +0 -0
  515. package/.claude/skills/monodesign/scripts/live/insert-ui.mjs +0 -0
  516. package/.claude/skills/monodesign/scripts/live/manual-apply.mjs +0 -0
  517. package/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +0 -0
  518. package/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +0 -0
  519. package/.claude/skills/monodesign/scripts/live/session-store.mjs +0 -0
  520. package/.claude/skills/monodesign/scripts/live/svelte-component.mjs +0 -0
  521. package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +11 -6
  522. package/.claude/skills/monodesign/scripts/live/ui-core.mjs +0 -0
  523. package/.claude/skills/monodesign/scripts/live/vocabulary.mjs +0 -0
  524. package/.claude/skills/monodesign/scripts/live-accept.mjs +0 -0
  525. package/.claude/skills/monodesign/scripts/live-browser-dom.js +0 -0
  526. package/.claude/skills/monodesign/scripts/live-browser-session.js +0 -0
  527. package/.claude/skills/monodesign/scripts/live-browser.js +0 -0
  528. package/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +0 -0
  529. package/.claude/skills/monodesign/scripts/live-complete.mjs +0 -0
  530. package/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +0 -0
  531. package/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +0 -0
  532. package/.claude/skills/monodesign/scripts/live-inject.mjs +20 -7
  533. package/.claude/skills/monodesign/scripts/live-insert.mjs +0 -0
  534. package/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +0 -0
  535. package/.claude/skills/monodesign/scripts/live-poll.mjs +0 -0
  536. package/.claude/skills/monodesign/scripts/live-resume.mjs +0 -0
  537. package/.claude/skills/monodesign/scripts/live-server.mjs +38 -2
  538. package/.claude/skills/monodesign/scripts/live-status.mjs +0 -0
  539. package/.claude/skills/monodesign/scripts/live-target.mjs +0 -0
  540. package/.claude/skills/monodesign/scripts/live-wrap.mjs +0 -0
  541. package/.claude/skills/monodesign/scripts/live.mjs +0 -0
  542. package/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +0 -0
  543. package/.claude/skills/monodesign/scripts/palette.mjs +0 -0
  544. package/.claude/skills/monodesign/scripts/pin.mjs +0 -0
  545. package/.claude/skills/monodesign/shape.md +0 -0
  546. package/.claude/skills/monodesign/teach.md +0 -0
  547. package/.claude/skills/monodesign/typeset.md +0 -0
  548. package/.claude/skills/monolean/SKILL.md +0 -0
  549. package/.claude/skills/monolean-audit/SKILL.md +0 -0
  550. package/.claude/skills/monolean-debt/SKILL.md +0 -0
  551. package/.claude/skills/monolean-help/SKILL.md +0 -0
  552. package/.claude/skills/monolean-review/SKILL.md +0 -0
  553. package/.claude/skills/monomind/browse-agentcore.md +0 -0
  554. package/.claude/skills/monomind/browse-electron.md +0 -0
  555. package/.claude/skills/monomind/browse-qa.md +0 -0
  556. package/.claude/skills/monomind/browse-references/authentication.md +0 -0
  557. package/.claude/skills/monomind/browse-references/trust-boundaries.md +0 -0
  558. package/.claude/skills/monomind/browse-references/video-recording.md +0 -0
  559. package/.claude/skills/monomind/browse-slack.md +0 -0
  560. package/.claude/skills/monomind/browse-vercel.md +0 -0
  561. package/.claude/skills/monomind/browse.md +0 -0
  562. package/.claude/skills/monomotion/SKILL.md +0 -0
  563. package/.claude/skills/monomotion/rules/api-control.md +0 -0
  564. package/.claude/skills/monomotion/rules/effects.md +0 -0
  565. package/.claude/skills/monomotion/rules/integration.md +0 -0
  566. package/.claude/skills/monomotion/rules/scroll.md +0 -0
  567. package/.claude/skills/monomotion/rules/sequencing.md +0 -0
  568. package/.claude/skills/monomotion/rules/svg.md +0 -0
  569. package/.claude/skills/monomotion/rules/text.md +0 -0
  570. package/.claude/skills/pair-programming/SKILL.md +0 -0
  571. package/.claude/skills/performance-analysis/SKILL.md +0 -0
  572. package/.claude/skills/skill-builder/SKILL.md +0 -0
  573. package/.claude/skills/specialagent/SKILL.md +0 -0
  574. package/.claude/skills/stop-slop/SKILL.md +0 -0
  575. package/.claude/skills/stop-slop/references/examples.md +0 -0
  576. package/.claude/skills/stop-slop/references/phrases.md +0 -0
  577. package/.claude/skills/stop-slop/references/structures.md +0 -0
  578. package/.claude/skills/swarm-advanced/SKILL.md +0 -0
  579. package/.claude/skills/swarm-orchestration/SKILL.md +0 -0
  580. package/.claude/skills/verification-quality/SKILL.md +0 -0
  581. package/README.md +8 -6
  582. package/bin/preinstall.cjs +0 -0
  583. package/dist/src/agents/registry-builder.d.ts +0 -0
  584. package/dist/src/agents/registry-builder.d.ts.map +0 -0
  585. package/dist/src/agents/registry-builder.js +0 -0
  586. package/dist/src/agents/registry-builder.js.map +0 -0
  587. package/dist/src/autopilot-state.d.ts +0 -0
  588. package/dist/src/autopilot-state.d.ts.map +0 -0
  589. package/dist/src/autopilot-state.js +0 -0
  590. package/dist/src/autopilot-state.js.map +0 -0
  591. package/dist/src/browser/action-builder/analyzer.d.ts +0 -0
  592. package/dist/src/browser/action-builder/analyzer.d.ts.map +0 -0
  593. package/dist/src/browser/action-builder/analyzer.js +0 -0
  594. package/dist/src/browser/action-builder/analyzer.js.map +0 -0
  595. package/dist/src/browser/action-builder/types.d.ts +0 -0
  596. package/dist/src/browser/action-builder/types.d.ts.map +0 -0
  597. package/dist/src/browser/action-builder/types.js +0 -0
  598. package/dist/src/browser/action-builder/types.js.map +0 -0
  599. package/dist/src/browser/adapters/gemini.d.ts +0 -0
  600. package/dist/src/browser/adapters/gemini.d.ts.map +0 -0
  601. package/dist/src/browser/adapters/gemini.js +0 -0
  602. package/dist/src/browser/adapters/gemini.js.map +0 -0
  603. package/dist/src/browser/adapters/index.d.ts +0 -0
  604. package/dist/src/browser/adapters/index.d.ts.map +0 -0
  605. package/dist/src/browser/adapters/index.js +0 -0
  606. package/dist/src/browser/adapters/index.js.map +0 -0
  607. package/dist/src/browser/adapters/instagram.d.ts +0 -0
  608. package/dist/src/browser/adapters/instagram.d.ts.map +0 -0
  609. package/dist/src/browser/adapters/instagram.js +0 -0
  610. package/dist/src/browser/adapters/instagram.js.map +0 -0
  611. package/dist/src/browser/adapters/linkedin.d.ts +0 -0
  612. package/dist/src/browser/adapters/linkedin.d.ts.map +0 -0
  613. package/dist/src/browser/adapters/linkedin.js +0 -0
  614. package/dist/src/browser/adapters/linkedin.js.map +0 -0
  615. package/dist/src/browser/adapters/x.d.ts +0 -0
  616. package/dist/src/browser/adapters/x.d.ts.map +0 -0
  617. package/dist/src/browser/adapters/x.js +0 -0
  618. package/dist/src/browser/adapters/x.js.map +0 -0
  619. package/dist/src/browser/dashboard/server.d.ts +5 -0
  620. package/dist/src/browser/dashboard/server.d.ts.map +1 -1
  621. package/dist/src/browser/dashboard/server.js +59 -4
  622. package/dist/src/browser/dashboard/server.js.map +1 -1
  623. package/dist/src/browser/dashboard/ui.html +18 -8
  624. package/dist/src/browser/workflow/engine.d.ts +0 -0
  625. package/dist/src/browser/workflow/engine.d.ts.map +0 -0
  626. package/dist/src/browser/workflow/engine.js +0 -0
  627. package/dist/src/browser/workflow/engine.js.map +0 -0
  628. package/dist/src/browser/workflow/expression.d.ts +0 -0
  629. package/dist/src/browser/workflow/expression.d.ts.map +0 -0
  630. package/dist/src/browser/workflow/expression.js +0 -0
  631. package/dist/src/browser/workflow/expression.js.map +0 -0
  632. package/dist/src/browser/workflow/store.d.ts +0 -0
  633. package/dist/src/browser/workflow/store.d.ts.map +1 -1
  634. package/dist/src/browser/workflow/store.js +3 -2
  635. package/dist/src/browser/workflow/store.js.map +1 -1
  636. package/dist/src/browser/workflow/types.d.ts +0 -0
  637. package/dist/src/browser/workflow/types.d.ts.map +0 -0
  638. package/dist/src/browser/workflow/types.js +0 -0
  639. package/dist/src/browser/workflow/types.js.map +0 -0
  640. package/dist/src/capabilities/cap-code.d.ts +0 -0
  641. package/dist/src/capabilities/cap-code.d.ts.map +0 -0
  642. package/dist/src/capabilities/cap-code.js +0 -0
  643. package/dist/src/capabilities/cap-code.js.map +0 -0
  644. package/dist/src/capabilities/cap-data.d.ts +0 -0
  645. package/dist/src/capabilities/cap-data.d.ts.map +0 -0
  646. package/dist/src/capabilities/cap-data.js +0 -0
  647. package/dist/src/capabilities/cap-data.js.map +0 -0
  648. package/dist/src/capabilities/cap-documents.d.ts +0 -0
  649. package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
  650. package/dist/src/capabilities/cap-documents.js +21 -16
  651. package/dist/src/capabilities/cap-documents.js.map +1 -1
  652. package/dist/src/capabilities/cap-graph.d.ts +0 -0
  653. package/dist/src/capabilities/cap-graph.d.ts.map +0 -0
  654. package/dist/src/capabilities/cap-graph.js +0 -0
  655. package/dist/src/capabilities/cap-graph.js.map +0 -0
  656. package/dist/src/capabilities/cap-media.d.ts +0 -0
  657. package/dist/src/capabilities/cap-media.d.ts.map +0 -0
  658. package/dist/src/capabilities/cap-media.js +0 -0
  659. package/dist/src/capabilities/cap-media.js.map +0 -0
  660. package/dist/src/capabilities/cap-timeline.d.ts +0 -0
  661. package/dist/src/capabilities/cap-timeline.d.ts.map +0 -0
  662. package/dist/src/capabilities/cap-timeline.js +0 -0
  663. package/dist/src/capabilities/cap-timeline.js.map +0 -0
  664. package/dist/src/capabilities/index.d.ts +0 -0
  665. package/dist/src/capabilities/index.d.ts.map +0 -0
  666. package/dist/src/capabilities/index.js +0 -0
  667. package/dist/src/capabilities/index.js.map +0 -0
  668. package/dist/src/capabilities/manager.d.ts +0 -0
  669. package/dist/src/capabilities/manager.d.ts.map +0 -0
  670. package/dist/src/capabilities/manager.js +0 -0
  671. package/dist/src/capabilities/manager.js.map +0 -0
  672. package/dist/src/capabilities/scanner.d.ts +0 -0
  673. package/dist/src/capabilities/scanner.d.ts.map +0 -0
  674. package/dist/src/capabilities/scanner.js +0 -0
  675. package/dist/src/capabilities/scanner.js.map +0 -0
  676. package/dist/src/capabilities/types.d.ts +0 -0
  677. package/dist/src/capabilities/types.d.ts.map +0 -0
  678. package/dist/src/capabilities/types.js +0 -0
  679. package/dist/src/capabilities/types.js.map +0 -0
  680. package/dist/src/commands/agent-lifecycle.d.ts +0 -0
  681. package/dist/src/commands/agent-lifecycle.d.ts.map +0 -0
  682. package/dist/src/commands/agent-lifecycle.js +0 -0
  683. package/dist/src/commands/agent-lifecycle.js.map +0 -0
  684. package/dist/src/commands/agent-ops.d.ts +0 -0
  685. package/dist/src/commands/agent-ops.d.ts.map +0 -0
  686. package/dist/src/commands/agent-ops.js +0 -0
  687. package/dist/src/commands/agent-ops.js.map +0 -0
  688. package/dist/src/commands/agent.d.ts +0 -0
  689. package/dist/src/commands/agent.d.ts.map +0 -0
  690. package/dist/src/commands/agent.js +0 -0
  691. package/dist/src/commands/agent.js.map +0 -0
  692. package/dist/src/commands/analyze-ast.d.ts +0 -0
  693. package/dist/src/commands/analyze-ast.d.ts.map +0 -0
  694. package/dist/src/commands/analyze-ast.js +0 -0
  695. package/dist/src/commands/analyze-ast.js.map +0 -0
  696. package/dist/src/commands/analyze-diff.d.ts +0 -0
  697. package/dist/src/commands/analyze-diff.d.ts.map +0 -0
  698. package/dist/src/commands/analyze-diff.js +0 -0
  699. package/dist/src/commands/analyze-diff.js.map +0 -0
  700. package/dist/src/commands/analyze-imports.d.ts +0 -0
  701. package/dist/src/commands/analyze-imports.d.ts.map +0 -0
  702. package/dist/src/commands/analyze-imports.js +0 -0
  703. package/dist/src/commands/analyze-imports.js.map +0 -0
  704. package/dist/src/commands/analyze-symbols.d.ts +0 -0
  705. package/dist/src/commands/analyze-symbols.d.ts.map +0 -0
  706. package/dist/src/commands/analyze-symbols.js +0 -0
  707. package/dist/src/commands/analyze-symbols.js.map +0 -0
  708. package/dist/src/commands/analyze.d.ts +0 -0
  709. package/dist/src/commands/analyze.d.ts.map +0 -0
  710. package/dist/src/commands/analyze.js +0 -0
  711. package/dist/src/commands/analyze.js.map +0 -0
  712. package/dist/src/commands/autopilot.d.ts +0 -0
  713. package/dist/src/commands/autopilot.d.ts.map +0 -0
  714. package/dist/src/commands/autopilot.js +0 -0
  715. package/dist/src/commands/autopilot.js.map +0 -0
  716. package/dist/src/commands/browse-action.d.ts +0 -0
  717. package/dist/src/commands/browse-action.d.ts.map +0 -0
  718. package/dist/src/commands/browse-action.js +0 -0
  719. package/dist/src/commands/browse-action.js.map +0 -0
  720. package/dist/src/commands/browse-platform.d.ts +0 -0
  721. package/dist/src/commands/browse-platform.d.ts.map +0 -0
  722. package/dist/src/commands/browse-platform.js +0 -0
  723. package/dist/src/commands/browse-platform.js.map +0 -0
  724. package/dist/src/commands/browse-workflow.d.ts +0 -0
  725. package/dist/src/commands/browse-workflow.d.ts.map +0 -0
  726. package/dist/src/commands/browse-workflow.js +0 -0
  727. package/dist/src/commands/browse-workflow.js.map +0 -0
  728. package/dist/src/commands/browse.d.ts +0 -0
  729. package/dist/src/commands/browse.d.ts.map +0 -0
  730. package/dist/src/commands/browse.js +0 -0
  731. package/dist/src/commands/browse.js.map +0 -0
  732. package/dist/src/commands/cleanup.d.ts +0 -0
  733. package/dist/src/commands/cleanup.d.ts.map +0 -0
  734. package/dist/src/commands/cleanup.js +0 -0
  735. package/dist/src/commands/cleanup.js.map +0 -0
  736. package/dist/src/commands/completions.d.ts +0 -0
  737. package/dist/src/commands/completions.d.ts.map +0 -0
  738. package/dist/src/commands/completions.js +0 -0
  739. package/dist/src/commands/completions.js.map +0 -0
  740. package/dist/src/commands/config.d.ts +0 -0
  741. package/dist/src/commands/config.d.ts.map +0 -0
  742. package/dist/src/commands/config.js +0 -0
  743. package/dist/src/commands/config.js.map +0 -0
  744. package/dist/src/commands/crash-reporting.d.ts +0 -0
  745. package/dist/src/commands/crash-reporting.d.ts.map +0 -0
  746. package/dist/src/commands/crash-reporting.js +0 -0
  747. package/dist/src/commands/crash-reporting.js.map +0 -0
  748. package/dist/src/commands/design-detect.d.ts +0 -0
  749. package/dist/src/commands/design-detect.d.ts.map +0 -0
  750. package/dist/src/commands/design-detect.js +0 -0
  751. package/dist/src/commands/design-detect.js.map +0 -0
  752. package/dist/src/commands/design-palette.d.ts +0 -0
  753. package/dist/src/commands/design-palette.d.ts.map +0 -0
  754. package/dist/src/commands/design-palette.js +0 -0
  755. package/dist/src/commands/design-palette.js.map +0 -0
  756. package/dist/src/commands/doc.d.ts +0 -0
  757. package/dist/src/commands/doc.d.ts.map +0 -0
  758. package/dist/src/commands/doc.js +0 -0
  759. package/dist/src/commands/doc.js.map +0 -0
  760. package/dist/src/commands/doctor-env-checks.d.ts +0 -0
  761. package/dist/src/commands/doctor-env-checks.d.ts.map +0 -0
  762. package/dist/src/commands/doctor-env-checks.js +0 -0
  763. package/dist/src/commands/doctor-env-checks.js.map +0 -0
  764. package/dist/src/commands/doctor-monoes-checks.d.ts +0 -0
  765. package/dist/src/commands/doctor-monoes-checks.d.ts.map +0 -0
  766. package/dist/src/commands/doctor-monoes-checks.js +0 -0
  767. package/dist/src/commands/doctor-monoes-checks.js.map +0 -0
  768. package/dist/src/commands/doctor-project-checks.d.ts +0 -0
  769. package/dist/src/commands/doctor-project-checks.d.ts.map +0 -0
  770. package/dist/src/commands/doctor-project-checks.js +0 -0
  771. package/dist/src/commands/doctor-project-checks.js.map +0 -0
  772. package/dist/src/commands/doctor.d.ts +0 -0
  773. package/dist/src/commands/doctor.d.ts.map +1 -1
  774. package/dist/src/commands/doctor.js +22 -18
  775. package/dist/src/commands/doctor.js.map +1 -1
  776. package/dist/src/commands/download-embeddings.d.ts +8 -0
  777. package/dist/src/commands/download-embeddings.d.ts.map +1 -0
  778. package/dist/src/commands/download-embeddings.js +34 -0
  779. package/dist/src/commands/download-embeddings.js.map +1 -0
  780. package/dist/src/commands/guidance.d.ts +0 -0
  781. package/dist/src/commands/guidance.d.ts.map +0 -0
  782. package/dist/src/commands/guidance.js +0 -0
  783. package/dist/src/commands/guidance.js.map +0 -0
  784. package/dist/src/commands/hooks-core-commands.d.ts +0 -0
  785. package/dist/src/commands/hooks-core-commands.d.ts.map +0 -0
  786. package/dist/src/commands/hooks-core-commands.js +0 -0
  787. package/dist/src/commands/hooks-core-commands.js.map +0 -0
  788. package/dist/src/commands/hooks-coverage-commands.d.ts +0 -0
  789. package/dist/src/commands/hooks-coverage-commands.d.ts.map +0 -0
  790. package/dist/src/commands/hooks-coverage-commands.js +0 -0
  791. package/dist/src/commands/hooks-coverage-commands.js.map +0 -0
  792. package/dist/src/commands/hooks-coverage-gaps.d.ts +0 -0
  793. package/dist/src/commands/hooks-coverage-gaps.d.ts.map +0 -0
  794. package/dist/src/commands/hooks-coverage-gaps.js +0 -0
  795. package/dist/src/commands/hooks-coverage-gaps.js.map +0 -0
  796. package/dist/src/commands/hooks-coverage-routing.d.ts +0 -0
  797. package/dist/src/commands/hooks-coverage-routing.d.ts.map +0 -0
  798. package/dist/src/commands/hooks-coverage-routing.js +0 -0
  799. package/dist/src/commands/hooks-coverage-routing.js.map +0 -0
  800. package/dist/src/commands/hooks-coverage-utils.d.ts +0 -0
  801. package/dist/src/commands/hooks-coverage-utils.d.ts.map +0 -0
  802. package/dist/src/commands/hooks-coverage-utils.js +0 -0
  803. package/dist/src/commands/hooks-coverage-utils.js.map +0 -0
  804. package/dist/src/commands/hooks-extended-commands.d.ts +0 -0
  805. package/dist/src/commands/hooks-extended-commands.d.ts.map +0 -0
  806. package/dist/src/commands/hooks-extended-commands.js +0 -0
  807. package/dist/src/commands/hooks-extended-commands.js.map +0 -0
  808. package/dist/src/commands/hooks-formatting.d.ts +0 -0
  809. package/dist/src/commands/hooks-formatting.d.ts.map +0 -0
  810. package/dist/src/commands/hooks-formatting.js +0 -0
  811. package/dist/src/commands/hooks-formatting.js.map +0 -0
  812. package/dist/src/commands/hooks-routing-commands.d.ts +0 -0
  813. package/dist/src/commands/hooks-routing-commands.d.ts.map +0 -0
  814. package/dist/src/commands/hooks-routing-commands.js +0 -0
  815. package/dist/src/commands/hooks-routing-commands.js.map +0 -0
  816. package/dist/src/commands/hooks-workers.d.ts +0 -0
  817. package/dist/src/commands/hooks-workers.d.ts.map +0 -0
  818. package/dist/src/commands/hooks-workers.js +0 -0
  819. package/dist/src/commands/hooks-workers.js.map +0 -0
  820. package/dist/src/commands/hooks.d.ts +0 -0
  821. package/dist/src/commands/hooks.d.ts.map +1 -1
  822. package/dist/src/commands/hooks.js +14 -0
  823. package/dist/src/commands/hooks.js.map +1 -1
  824. package/dist/src/commands/index.d.ts +0 -0
  825. package/dist/src/commands/index.d.ts.map +1 -1
  826. package/dist/src/commands/index.js +4 -0
  827. package/dist/src/commands/index.js.map +1 -1
  828. package/dist/src/commands/init-subcommands.d.ts +0 -0
  829. package/dist/src/commands/init-subcommands.d.ts.map +0 -0
  830. package/dist/src/commands/init-subcommands.js +0 -0
  831. package/dist/src/commands/init-subcommands.js.map +0 -0
  832. package/dist/src/commands/init-upgrade.d.ts +0 -0
  833. package/dist/src/commands/init-upgrade.d.ts.map +0 -0
  834. package/dist/src/commands/init-upgrade.js +0 -0
  835. package/dist/src/commands/init-upgrade.js.map +0 -0
  836. package/dist/src/commands/init-wizard.d.ts +0 -0
  837. package/dist/src/commands/init-wizard.d.ts.map +1 -1
  838. package/dist/src/commands/init-wizard.js +36 -1
  839. package/dist/src/commands/init-wizard.js.map +1 -1
  840. package/dist/src/commands/init.d.ts +0 -0
  841. package/dist/src/commands/init.d.ts.map +1 -1
  842. package/dist/src/commands/init.js +81 -1
  843. package/dist/src/commands/init.js.map +1 -1
  844. package/dist/src/commands/mcp.d.ts +0 -0
  845. package/dist/src/commands/mcp.d.ts.map +0 -0
  846. package/dist/src/commands/mcp.js +0 -0
  847. package/dist/src/commands/mcp.js.map +0 -0
  848. package/dist/src/commands/memory-admin.d.ts +0 -0
  849. package/dist/src/commands/memory-admin.d.ts.map +0 -0
  850. package/dist/src/commands/memory-admin.js +0 -0
  851. package/dist/src/commands/memory-admin.js.map +0 -0
  852. package/dist/src/commands/memory-crud.d.ts +0 -0
  853. package/dist/src/commands/memory-crud.d.ts.map +0 -0
  854. package/dist/src/commands/memory-crud.js +0 -0
  855. package/dist/src/commands/memory-crud.js.map +0 -0
  856. package/dist/src/commands/memory-list.d.ts +0 -0
  857. package/dist/src/commands/memory-list.d.ts.map +0 -0
  858. package/dist/src/commands/memory-list.js +0 -0
  859. package/dist/src/commands/memory-list.js.map +0 -0
  860. package/dist/src/commands/memory-transfer.d.ts +0 -0
  861. package/dist/src/commands/memory-transfer.d.ts.map +0 -0
  862. package/dist/src/commands/memory-transfer.js +0 -0
  863. package/dist/src/commands/memory-transfer.js.map +0 -0
  864. package/dist/src/commands/memory.d.ts +0 -0
  865. package/dist/src/commands/memory.d.ts.map +0 -0
  866. package/dist/src/commands/memory.js +0 -0
  867. package/dist/src/commands/memory.js.map +0 -0
  868. package/dist/src/commands/monograph.d.ts +0 -0
  869. package/dist/src/commands/monograph.d.ts.map +1 -1
  870. package/dist/src/commands/monograph.js +35 -1
  871. package/dist/src/commands/monograph.js.map +1 -1
  872. package/dist/src/commands/neural-core.d.ts +0 -0
  873. package/dist/src/commands/neural-core.d.ts.map +0 -0
  874. package/dist/src/commands/neural-core.js +0 -0
  875. package/dist/src/commands/neural-core.js.map +0 -0
  876. package/dist/src/commands/neural-optimize.d.ts +0 -0
  877. package/dist/src/commands/neural-optimize.d.ts.map +0 -0
  878. package/dist/src/commands/neural-optimize.js +0 -0
  879. package/dist/src/commands/neural-optimize.js.map +0 -0
  880. package/dist/src/commands/neural-registry.d.ts +0 -0
  881. package/dist/src/commands/neural-registry.d.ts.map +0 -0
  882. package/dist/src/commands/neural-registry.js +0 -0
  883. package/dist/src/commands/neural-registry.js.map +0 -0
  884. package/dist/src/commands/org-observe.d.ts +10 -0
  885. package/dist/src/commands/org-observe.d.ts.map +1 -1
  886. package/dist/src/commands/org-observe.js +195 -31
  887. package/dist/src/commands/org-observe.js.map +1 -1
  888. package/dist/src/commands/org-visualize.d.ts +0 -0
  889. package/dist/src/commands/org-visualize.d.ts.map +0 -0
  890. package/dist/src/commands/org-visualize.js +0 -0
  891. package/dist/src/commands/org-visualize.js.map +0 -0
  892. package/dist/src/commands/org.d.ts +1 -0
  893. package/dist/src/commands/org.d.ts.map +1 -1
  894. package/dist/src/commands/org.js +139 -3
  895. package/dist/src/commands/org.js.map +1 -1
  896. package/dist/src/commands/performance.d.ts +0 -0
  897. package/dist/src/commands/performance.d.ts.map +0 -0
  898. package/dist/src/commands/performance.js +0 -0
  899. package/dist/src/commands/performance.js.map +0 -0
  900. package/dist/src/commands/platforms.d.ts +0 -0
  901. package/dist/src/commands/platforms.d.ts.map +0 -0
  902. package/dist/src/commands/platforms.js +0 -0
  903. package/dist/src/commands/platforms.js.map +0 -0
  904. package/dist/src/commands/providers.d.ts +0 -0
  905. package/dist/src/commands/providers.d.ts.map +0 -0
  906. package/dist/src/commands/providers.js +0 -0
  907. package/dist/src/commands/providers.js.map +0 -0
  908. package/dist/src/commands/report-crash.d.ts +0 -0
  909. package/dist/src/commands/report-crash.d.ts.map +0 -0
  910. package/dist/src/commands/report-crash.js +0 -0
  911. package/dist/src/commands/report-crash.js.map +0 -0
  912. package/dist/src/commands/route.d.ts +1 -9
  913. package/dist/src/commands/route.d.ts.map +1 -1
  914. package/dist/src/commands/route.js +42 -65
  915. package/dist/src/commands/route.js.map +1 -1
  916. package/dist/src/commands/search-universal.d.ts +0 -0
  917. package/dist/src/commands/search-universal.d.ts.map +0 -0
  918. package/dist/src/commands/search-universal.js +0 -0
  919. package/dist/src/commands/search-universal.js.map +0 -0
  920. package/dist/src/commands/security-cve.d.ts +0 -0
  921. package/dist/src/commands/security-cve.d.ts.map +1 -1
  922. package/dist/src/commands/security-cve.js +2 -1
  923. package/dist/src/commands/security-cve.js.map +1 -1
  924. package/dist/src/commands/security-misc.d.ts +0 -0
  925. package/dist/src/commands/security-misc.d.ts.map +0 -0
  926. package/dist/src/commands/security-misc.js +0 -0
  927. package/dist/src/commands/security-misc.js.map +0 -0
  928. package/dist/src/commands/security-scan.d.ts +0 -0
  929. package/dist/src/commands/security-scan.d.ts.map +0 -0
  930. package/dist/src/commands/security-scan.js +0 -0
  931. package/dist/src/commands/security-scan.js.map +0 -0
  932. package/dist/src/commands/security.d.ts +0 -0
  933. package/dist/src/commands/security.d.ts.map +0 -0
  934. package/dist/src/commands/security.js +0 -0
  935. package/dist/src/commands/security.js.map +0 -0
  936. package/dist/src/commands/session.d.ts +0 -0
  937. package/dist/src/commands/session.d.ts.map +0 -0
  938. package/dist/src/commands/session.js +0 -0
  939. package/dist/src/commands/session.js.map +0 -0
  940. package/dist/src/commands/start.d.ts +0 -0
  941. package/dist/src/commands/start.d.ts.map +0 -0
  942. package/dist/src/commands/start.js +0 -0
  943. package/dist/src/commands/start.js.map +0 -0
  944. package/dist/src/commands/status.d.ts +0 -0
  945. package/dist/src/commands/status.d.ts.map +0 -0
  946. package/dist/src/commands/status.js +0 -0
  947. package/dist/src/commands/status.js.map +0 -0
  948. package/dist/src/commands/swarm.d.ts +0 -0
  949. package/dist/src/commands/swarm.d.ts.map +0 -0
  950. package/dist/src/commands/swarm.js +0 -0
  951. package/dist/src/commands/swarm.js.map +0 -0
  952. package/dist/src/commands/task.d.ts +0 -0
  953. package/dist/src/commands/task.d.ts.map +0 -0
  954. package/dist/src/commands/task.js +0 -0
  955. package/dist/src/commands/task.js.map +0 -0
  956. package/dist/src/commands/tokens.d.ts +0 -0
  957. package/dist/src/commands/tokens.d.ts.map +0 -0
  958. package/dist/src/commands/tokens.js +0 -0
  959. package/dist/src/commands/tokens.js.map +0 -0
  960. package/dist/src/commands/update.d.ts +0 -0
  961. package/dist/src/commands/update.d.ts.map +0 -0
  962. package/dist/src/commands/update.js +0 -0
  963. package/dist/src/commands/update.js.map +0 -0
  964. package/dist/src/consensus/audit-writer.d.ts +0 -0
  965. package/dist/src/consensus/audit-writer.d.ts.map +0 -0
  966. package/dist/src/consensus/audit-writer.js +0 -0
  967. package/dist/src/consensus/audit-writer.js.map +0 -0
  968. package/dist/src/consensus/tally.d.ts +0 -0
  969. package/dist/src/consensus/tally.d.ts.map +0 -0
  970. package/dist/src/consensus/tally.js +0 -0
  971. package/dist/src/consensus/tally.js.map +0 -0
  972. package/dist/src/index.d.ts +0 -10
  973. package/dist/src/index.d.ts.map +1 -1
  974. package/dist/src/index.js +4 -15
  975. package/dist/src/index.js.map +1 -1
  976. package/dist/src/init/claudemd-generator.d.ts +0 -0
  977. package/dist/src/init/claudemd-generator.d.ts.map +0 -0
  978. package/dist/src/init/claudemd-generator.js +0 -0
  979. package/dist/src/init/claudemd-generator.js.map +0 -0
  980. package/dist/src/init/copy-assets.d.ts +17 -0
  981. package/dist/src/init/copy-assets.d.ts.map +1 -0
  982. package/dist/src/init/copy-assets.js +271 -0
  983. package/dist/src/init/copy-assets.js.map +1 -0
  984. package/dist/src/init/executor.d.ts +2 -30
  985. package/dist/src/init/executor.d.ts.map +1 -1
  986. package/dist/src/init/executor.js +56 -2493
  987. package/dist/src/init/executor.js.map +1 -1
  988. package/dist/src/init/geminimd-generator.d.ts +0 -0
  989. package/dist/src/init/geminimd-generator.d.ts.map +0 -0
  990. package/dist/src/init/geminimd-generator.js +0 -0
  991. package/dist/src/init/geminimd-generator.js.map +0 -0
  992. package/dist/src/init/helpers-generator.d.ts +0 -0
  993. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  994. package/dist/src/init/helpers-generator.js +9 -0
  995. package/dist/src/init/helpers-generator.js.map +1 -1
  996. package/dist/src/init/index.d.ts +0 -0
  997. package/dist/src/init/index.d.ts.map +0 -0
  998. package/dist/src/init/index.js +0 -0
  999. package/dist/src/init/index.js.map +0 -0
  1000. package/dist/src/init/kimi-generator.d.ts +0 -0
  1001. package/dist/src/init/kimi-generator.d.ts.map +0 -0
  1002. package/dist/src/init/kimi-generator.js +0 -0
  1003. package/dist/src/init/kimi-generator.js.map +0 -0
  1004. package/dist/src/init/mcp-generator.d.ts +0 -0
  1005. package/dist/src/init/mcp-generator.d.ts.map +0 -0
  1006. package/dist/src/init/mcp-generator.js +0 -0
  1007. package/dist/src/init/mcp-generator.js.map +0 -0
  1008. package/dist/src/init/opencode-generator.d.ts +0 -0
  1009. package/dist/src/init/opencode-generator.d.ts.map +0 -0
  1010. package/dist/src/init/opencode-generator.js +0 -0
  1011. package/dist/src/init/opencode-generator.js.map +0 -0
  1012. package/dist/src/init/settings-generator.d.ts +0 -0
  1013. package/dist/src/init/settings-generator.d.ts.map +1 -1
  1014. package/dist/src/init/settings-generator.js +0 -4
  1015. package/dist/src/init/settings-generator.js.map +1 -1
  1016. package/dist/src/init/shared-instructions-generator.d.ts +0 -0
  1017. package/dist/src/init/shared-instructions-generator.d.ts.map +0 -0
  1018. package/dist/src/init/shared-instructions-generator.js +0 -0
  1019. package/dist/src/init/shared-instructions-generator.js.map +0 -0
  1020. package/dist/src/init/shared.d.ts +112 -0
  1021. package/dist/src/init/shared.d.ts.map +1 -0
  1022. package/dist/src/init/shared.js +475 -0
  1023. package/dist/src/init/shared.js.map +1 -0
  1024. package/dist/src/init/statusline-generator.d.ts +0 -0
  1025. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  1026. package/dist/src/init/statusline-generator.js +37 -0
  1027. package/dist/src/init/statusline-generator.js.map +1 -1
  1028. package/dist/src/init/types.d.ts +1 -1
  1029. package/dist/src/init/types.d.ts.map +1 -1
  1030. package/dist/src/init/types.js +0 -0
  1031. package/dist/src/init/types.js.map +0 -0
  1032. package/dist/src/init/upgrade.d.ts +34 -0
  1033. package/dist/src/init/upgrade.d.ts.map +1 -0
  1034. package/dist/src/init/upgrade.js +477 -0
  1035. package/dist/src/init/upgrade.js.map +1 -0
  1036. package/dist/src/init/write-antigravity.d.ts +13 -0
  1037. package/dist/src/init/write-antigravity.d.ts.map +1 -0
  1038. package/dist/src/init/write-antigravity.js +117 -0
  1039. package/dist/src/init/write-antigravity.js.map +1 -0
  1040. package/dist/src/init/write-capabilities.d.ts +9 -0
  1041. package/dist/src/init/write-capabilities.d.ts.map +1 -0
  1042. package/dist/src/init/write-capabilities.js +392 -0
  1043. package/dist/src/init/write-capabilities.js.map +1 -0
  1044. package/dist/src/init/write-claude.d.ts +25 -0
  1045. package/dist/src/init/write-claude.d.ts.map +1 -0
  1046. package/dist/src/init/write-claude.js +279 -0
  1047. package/dist/src/init/write-claude.js.map +1 -0
  1048. package/dist/src/init/write-kimicode.d.ts +19 -0
  1049. package/dist/src/init/write-kimicode.d.ts.map +1 -0
  1050. package/dist/src/init/write-kimicode.js +223 -0
  1051. package/dist/src/init/write-kimicode.js.map +1 -0
  1052. package/dist/src/init/write-opencode.d.ts +14 -0
  1053. package/dist/src/init/write-opencode.d.ts.map +1 -0
  1054. package/dist/src/init/write-opencode.js +130 -0
  1055. package/dist/src/init/write-opencode.js.map +1 -0
  1056. package/dist/src/init/write-runtime-config.d.ts +14 -0
  1057. package/dist/src/init/write-runtime-config.d.ts.map +1 -0
  1058. package/dist/src/init/write-runtime-config.js +214 -0
  1059. package/dist/src/init/write-runtime-config.js.map +1 -0
  1060. package/dist/src/init/write-sample-org.d.ts +9 -0
  1061. package/dist/src/init/write-sample-org.d.ts.map +1 -0
  1062. package/dist/src/init/write-sample-org.js +39 -0
  1063. package/dist/src/init/write-sample-org.js.map +1 -0
  1064. package/dist/src/knowledge/document-pipeline.d.ts +0 -0
  1065. package/dist/src/knowledge/document-pipeline.d.ts.map +0 -0
  1066. package/dist/src/knowledge/document-pipeline.js +0 -0
  1067. package/dist/src/knowledge/document-pipeline.js.map +0 -0
  1068. package/dist/src/knowledge/eval/corpus.d.ts +0 -0
  1069. package/dist/src/knowledge/eval/corpus.d.ts.map +0 -0
  1070. package/dist/src/knowledge/eval/corpus.js +0 -0
  1071. package/dist/src/knowledge/eval/corpus.js.map +0 -0
  1072. package/dist/src/knowledge/eval/golden-set.d.ts +0 -0
  1073. package/dist/src/knowledge/eval/golden-set.d.ts.map +0 -0
  1074. package/dist/src/knowledge/eval/golden-set.js +1 -1
  1075. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  1076. package/dist/src/knowledge/eval/harness.d.ts +0 -0
  1077. package/dist/src/knowledge/eval/harness.d.ts.map +0 -0
  1078. package/dist/src/knowledge/eval/harness.js +0 -0
  1079. package/dist/src/knowledge/eval/harness.js.map +0 -0
  1080. package/dist/src/knowledge/eval/metrics.d.ts +0 -0
  1081. package/dist/src/knowledge/eval/metrics.d.ts.map +0 -0
  1082. package/dist/src/knowledge/eval/metrics.js +0 -0
  1083. package/dist/src/knowledge/eval/metrics.js.map +0 -0
  1084. package/dist/src/knowledge/eval/model-presence.d.ts +0 -0
  1085. package/dist/src/knowledge/eval/model-presence.d.ts.map +0 -0
  1086. package/dist/src/knowledge/eval/model-presence.js +0 -0
  1087. package/dist/src/knowledge/eval/model-presence.js.map +0 -0
  1088. package/dist/src/knowledge/eval/network-guard.d.ts +0 -0
  1089. package/dist/src/knowledge/eval/network-guard.d.ts.map +0 -0
  1090. package/dist/src/knowledge/eval/network-guard.js +0 -0
  1091. package/dist/src/knowledge/eval/network-guard.js.map +0 -0
  1092. package/dist/src/knowledge/eval/retrievers.d.ts +0 -0
  1093. package/dist/src/knowledge/eval/retrievers.d.ts.map +0 -0
  1094. package/dist/src/knowledge/eval/retrievers.js +0 -0
  1095. package/dist/src/knowledge/eval/retrievers.js.map +0 -0
  1096. package/dist/src/knowledge/eval/signals.d.ts +0 -0
  1097. package/dist/src/knowledge/eval/signals.d.ts.map +0 -0
  1098. package/dist/src/knowledge/eval/signals.js +0 -0
  1099. package/dist/src/knowledge/eval/signals.js.map +0 -0
  1100. package/dist/src/mcp-client.d.ts +0 -0
  1101. package/dist/src/mcp-client.d.ts.map +0 -0
  1102. package/dist/src/mcp-client.js +0 -0
  1103. package/dist/src/mcp-client.js.map +0 -0
  1104. package/dist/src/mcp-server.d.ts +0 -0
  1105. package/dist/src/mcp-server.d.ts.map +0 -0
  1106. package/dist/src/mcp-server.js +0 -0
  1107. package/dist/src/mcp-server.js.map +0 -0
  1108. package/dist/src/mcp-tools/agent-tools.d.ts +0 -0
  1109. package/dist/src/mcp-tools/agent-tools.d.ts.map +0 -0
  1110. package/dist/src/mcp-tools/agent-tools.js +0 -0
  1111. package/dist/src/mcp-tools/agent-tools.js.map +0 -0
  1112. package/dist/src/mcp-tools/analyze-tools.d.ts +0 -0
  1113. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
  1114. package/dist/src/mcp-tools/analyze-tools.js +2 -25
  1115. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  1116. package/dist/src/mcp-tools/auto-install.d.ts +0 -0
  1117. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
  1118. package/dist/src/mcp-tools/auto-install.js +2 -1
  1119. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  1120. package/dist/src/mcp-tools/autopilot-tools.d.ts +0 -0
  1121. package/dist/src/mcp-tools/autopilot-tools.d.ts.map +0 -0
  1122. package/dist/src/mcp-tools/autopilot-tools.js +0 -0
  1123. package/dist/src/mcp-tools/autopilot-tools.js.map +0 -0
  1124. package/dist/src/mcp-tools/browser-tools.d.ts +0 -0
  1125. package/dist/src/mcp-tools/browser-tools.d.ts.map +0 -0
  1126. package/dist/src/mcp-tools/browser-tools.js +0 -0
  1127. package/dist/src/mcp-tools/browser-tools.js.map +0 -0
  1128. package/dist/src/mcp-tools/claims-tools.d.ts +0 -0
  1129. package/dist/src/mcp-tools/claims-tools.d.ts.map +0 -0
  1130. package/dist/src/mcp-tools/claims-tools.js +0 -0
  1131. package/dist/src/mcp-tools/claims-tools.js.map +0 -0
  1132. package/dist/src/mcp-tools/config-tools.d.ts +0 -0
  1133. package/dist/src/mcp-tools/config-tools.d.ts.map +0 -0
  1134. package/dist/src/mcp-tools/config-tools.js +0 -0
  1135. package/dist/src/mcp-tools/config-tools.js.map +0 -0
  1136. package/dist/src/mcp-tools/embeddings-tools.d.ts +0 -0
  1137. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +0 -0
  1138. package/dist/src/mcp-tools/embeddings-tools.js +0 -0
  1139. package/dist/src/mcp-tools/embeddings-tools.js.map +0 -0
  1140. package/dist/src/mcp-tools/github-tools.d.ts +0 -0
  1141. package/dist/src/mcp-tools/github-tools.d.ts.map +0 -0
  1142. package/dist/src/mcp-tools/github-tools.js +0 -0
  1143. package/dist/src/mcp-tools/github-tools.js.map +0 -0
  1144. package/dist/src/mcp-tools/graphify-tools.d.ts +0 -0
  1145. package/dist/src/mcp-tools/graphify-tools.d.ts.map +0 -0
  1146. package/dist/src/mcp-tools/graphify-tools.js +0 -0
  1147. package/dist/src/mcp-tools/graphify-tools.js.map +0 -0
  1148. package/dist/src/mcp-tools/guidance-tools.d.ts +0 -0
  1149. package/dist/src/mcp-tools/guidance-tools.d.ts.map +0 -0
  1150. package/dist/src/mcp-tools/guidance-tools.js +0 -0
  1151. package/dist/src/mcp-tools/guidance-tools.js.map +0 -0
  1152. package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -0
  1153. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +0 -0
  1154. package/dist/src/mcp-tools/hive-mind-tools.js +0 -0
  1155. package/dist/src/mcp-tools/hive-mind-tools.js.map +0 -0
  1156. package/dist/src/mcp-tools/hooks-embedding.d.ts +0 -0
  1157. package/dist/src/mcp-tools/hooks-embedding.d.ts.map +0 -0
  1158. package/dist/src/mcp-tools/hooks-embedding.js +0 -0
  1159. package/dist/src/mcp-tools/hooks-embedding.js.map +0 -0
  1160. package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -0
  1161. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +0 -0
  1162. package/dist/src/mcp-tools/hooks-intelligence.js +0 -0
  1163. package/dist/src/mcp-tools/hooks-intelligence.js.map +0 -0
  1164. package/dist/src/mcp-tools/hooks-routing.d.ts +0 -0
  1165. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  1166. package/dist/src/mcp-tools/hooks-routing.js +26 -0
  1167. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  1168. package/dist/src/mcp-tools/hooks-tools.d.ts +0 -0
  1169. package/dist/src/mcp-tools/hooks-tools.d.ts.map +0 -0
  1170. package/dist/src/mcp-tools/hooks-tools.js +0 -0
  1171. package/dist/src/mcp-tools/hooks-tools.js.map +0 -0
  1172. package/dist/src/mcp-tools/index.d.ts +0 -0
  1173. package/dist/src/mcp-tools/index.d.ts.map +0 -0
  1174. package/dist/src/mcp-tools/index.js +0 -0
  1175. package/dist/src/mcp-tools/index.js.map +0 -0
  1176. package/dist/src/mcp-tools/knowledge-tools.d.ts +0 -0
  1177. package/dist/src/mcp-tools/knowledge-tools.d.ts.map +0 -0
  1178. package/dist/src/mcp-tools/knowledge-tools.js +0 -0
  1179. package/dist/src/mcp-tools/knowledge-tools.js.map +0 -0
  1180. package/dist/src/mcp-tools/memory-tools.d.ts +0 -0
  1181. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  1182. package/dist/src/mcp-tools/memory-tools.js +2 -37
  1183. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  1184. package/dist/src/mcp-tools/monodesign-tools.d.ts +0 -0
  1185. package/dist/src/mcp-tools/monodesign-tools.d.ts.map +0 -0
  1186. package/dist/src/mcp-tools/monodesign-tools.js +0 -0
  1187. package/dist/src/mcp-tools/monodesign-tools.js.map +0 -0
  1188. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts +5 -0
  1189. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -0
  1190. package/dist/src/mcp-tools/monograph/agent-history-tools.js +177 -0
  1191. package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -0
  1192. package/dist/src/mcp-tools/monograph/build-tools.d.ts +9 -0
  1193. package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -0
  1194. package/dist/src/mcp-tools/monograph/build-tools.js +299 -0
  1195. package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -0
  1196. package/dist/src/mcp-tools/monograph/group-tools.d.ts +10 -0
  1197. package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -0
  1198. package/dist/src/mcp-tools/monograph/group-tools.js +225 -0
  1199. package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -0
  1200. package/dist/src/mcp-tools/monograph/health-tools.d.ts +6 -0
  1201. package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -0
  1202. package/dist/src/mcp-tools/monograph/health-tools.js +113 -0
  1203. package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -0
  1204. package/dist/src/mcp-tools/monograph/impact-tools.d.ts +9 -0
  1205. package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -0
  1206. package/dist/src/mcp-tools/monograph/impact-tools.js +532 -0
  1207. package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -0
  1208. package/dist/src/mcp-tools/monograph/index.d.ts +10 -0
  1209. package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -0
  1210. package/dist/src/mcp-tools/monograph/index.js +73 -0
  1211. package/dist/src/mcp-tools/monograph/index.js.map +1 -0
  1212. package/dist/src/mcp-tools/monograph/query-tools.d.ts +11 -0
  1213. package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -0
  1214. package/dist/src/mcp-tools/monograph/query-tools.js +500 -0
  1215. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -0
  1216. package/dist/src/mcp-tools/monograph/shared.d.ts +64 -0
  1217. package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -0
  1218. package/dist/src/mcp-tools/monograph/shared.js +215 -0
  1219. package/dist/src/mcp-tools/monograph/shared.js.map +1 -0
  1220. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts +10 -0
  1221. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -0
  1222. package/dist/src/mcp-tools/monograph/visualize-tools.js +382 -0
  1223. package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -0
  1224. package/dist/src/mcp-tools/monograph-compat.d.ts +0 -0
  1225. package/dist/src/mcp-tools/monograph-compat.d.ts.map +0 -0
  1226. package/dist/src/mcp-tools/monograph-compat.js +0 -0
  1227. package/dist/src/mcp-tools/monograph-compat.js.map +0 -0
  1228. package/dist/src/mcp-tools/monograph-tools.d.ts +4 -23
  1229. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  1230. package/dist/src/mcp-tools/monograph-tools.js +4 -2439
  1231. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  1232. package/dist/src/mcp-tools/monomind-tools.d.ts +8 -0
  1233. package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
  1234. package/dist/src/mcp-tools/monomind-tools.js +13 -1
  1235. package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
  1236. package/dist/src/mcp-tools/performance-tools.d.ts +0 -0
  1237. package/dist/src/mcp-tools/performance-tools.d.ts.map +0 -0
  1238. package/dist/src/mcp-tools/performance-tools.js +0 -0
  1239. package/dist/src/mcp-tools/performance-tools.js.map +0 -0
  1240. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts +0 -0
  1241. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts.map +0 -0
  1242. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +0 -0
  1243. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js.map +0 -0
  1244. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +0 -0
  1245. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
  1246. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +31 -2
  1247. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
  1248. package/dist/src/mcp-tools/quality-tools.d.ts +0 -0
  1249. package/dist/src/mcp-tools/quality-tools.d.ts.map +0 -0
  1250. package/dist/src/mcp-tools/quality-tools.js +0 -0
  1251. package/dist/src/mcp-tools/quality-tools.js.map +0 -0
  1252. package/dist/src/mcp-tools/request-tracker.d.ts +0 -0
  1253. package/dist/src/mcp-tools/request-tracker.d.ts.map +0 -0
  1254. package/dist/src/mcp-tools/request-tracker.js +0 -0
  1255. package/dist/src/mcp-tools/request-tracker.js.map +0 -0
  1256. package/dist/src/mcp-tools/security-tools.d.ts +0 -0
  1257. package/dist/src/mcp-tools/security-tools.d.ts.map +0 -0
  1258. package/dist/src/mcp-tools/security-tools.js +0 -0
  1259. package/dist/src/mcp-tools/security-tools.js.map +0 -0
  1260. package/dist/src/mcp-tools/session-tools.d.ts +0 -0
  1261. package/dist/src/mcp-tools/session-tools.d.ts.map +0 -0
  1262. package/dist/src/mcp-tools/session-tools.js +0 -0
  1263. package/dist/src/mcp-tools/session-tools.js.map +0 -0
  1264. package/dist/src/mcp-tools/swarm-tools.d.ts +0 -0
  1265. package/dist/src/mcp-tools/swarm-tools.d.ts.map +0 -0
  1266. package/dist/src/mcp-tools/swarm-tools.js +0 -0
  1267. package/dist/src/mcp-tools/swarm-tools.js.map +0 -0
  1268. package/dist/src/mcp-tools/system-tools.d.ts +0 -0
  1269. package/dist/src/mcp-tools/system-tools.d.ts.map +0 -0
  1270. package/dist/src/mcp-tools/system-tools.js +0 -0
  1271. package/dist/src/mcp-tools/system-tools.js.map +0 -0
  1272. package/dist/src/mcp-tools/task-tools.d.ts +0 -0
  1273. package/dist/src/mcp-tools/task-tools.d.ts.map +0 -0
  1274. package/dist/src/mcp-tools/task-tools.js +0 -0
  1275. package/dist/src/mcp-tools/task-tools.js.map +0 -0
  1276. package/dist/src/mcp-tools/terminal-tools.d.ts +0 -0
  1277. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  1278. package/dist/src/mcp-tools/terminal-tools.js +31 -1
  1279. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  1280. package/dist/src/mcp-tools/transfer-tools.d.ts +0 -0
  1281. package/dist/src/mcp-tools/transfer-tools.d.ts.map +0 -0
  1282. package/dist/src/mcp-tools/transfer-tools.js +0 -0
  1283. package/dist/src/mcp-tools/transfer-tools.js.map +0 -0
  1284. package/dist/src/mcp-tools/types.d.ts +8 -27
  1285. package/dist/src/mcp-tools/types.d.ts.map +1 -1
  1286. package/dist/src/mcp-tools/types.js +9 -91
  1287. package/dist/src/mcp-tools/types.js.map +1 -1
  1288. package/dist/src/memory/bm25-index.d.ts +0 -0
  1289. package/dist/src/memory/bm25-index.d.ts.map +0 -0
  1290. package/dist/src/memory/bm25-index.js +0 -0
  1291. package/dist/src/memory/bm25-index.js.map +0 -0
  1292. package/dist/src/memory/embedding-operations.d.ts +0 -0
  1293. package/dist/src/memory/embedding-operations.d.ts.map +0 -0
  1294. package/dist/src/memory/embedding-operations.js +0 -0
  1295. package/dist/src/memory/embedding-operations.js.map +0 -0
  1296. package/dist/src/memory/ewc-consolidation.d.ts +0 -0
  1297. package/dist/src/memory/ewc-consolidation.d.ts.map +0 -0
  1298. package/dist/src/memory/ewc-consolidation.js +0 -0
  1299. package/dist/src/memory/ewc-consolidation.js.map +0 -0
  1300. package/dist/src/memory/file-permissions.d.ts +15 -0
  1301. package/dist/src/memory/file-permissions.d.ts.map +1 -0
  1302. package/dist/src/memory/file-permissions.js +25 -0
  1303. package/dist/src/memory/file-permissions.js.map +1 -0
  1304. package/dist/src/memory/hnsw-operations.d.ts +0 -0
  1305. package/dist/src/memory/hnsw-operations.d.ts.map +0 -0
  1306. package/dist/src/memory/hnsw-operations.js +0 -0
  1307. package/dist/src/memory/hnsw-operations.js.map +0 -0
  1308. package/dist/src/memory/intelligence.d.ts +0 -0
  1309. package/dist/src/memory/intelligence.d.ts.map +0 -0
  1310. package/dist/src/memory/intelligence.js +0 -0
  1311. package/dist/src/memory/intelligence.js.map +0 -0
  1312. package/dist/src/memory/memory-bridge.d.ts +0 -0
  1313. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  1314. package/dist/src/memory/memory-bridge.js +94 -34
  1315. package/dist/src/memory/memory-bridge.js.map +1 -1
  1316. package/dist/src/memory/memory-crud.d.ts +0 -0
  1317. package/dist/src/memory/memory-crud.d.ts.map +1 -1
  1318. package/dist/src/memory/memory-crud.js +298 -275
  1319. package/dist/src/memory/memory-crud.js.map +1 -1
  1320. package/dist/src/memory/memory-initializer.d.ts +2 -4
  1321. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  1322. package/dist/src/memory/memory-initializer.js +53 -76
  1323. package/dist/src/memory/memory-initializer.js.map +1 -1
  1324. package/dist/src/memory/memory-kg.d.ts +0 -0
  1325. package/dist/src/memory/memory-kg.d.ts.map +0 -0
  1326. package/dist/src/memory/memory-kg.js +0 -0
  1327. package/dist/src/memory/memory-kg.js.map +0 -0
  1328. package/dist/src/memory/memory-migrations.d.ts +1 -14
  1329. package/dist/src/memory/memory-migrations.d.ts.map +1 -1
  1330. package/dist/src/memory/memory-migrations.js +52 -105
  1331. package/dist/src/memory/memory-migrations.js.map +1 -1
  1332. package/dist/src/memory/memory-read.d.ts +0 -0
  1333. package/dist/src/memory/memory-read.d.ts.map +0 -0
  1334. package/dist/src/memory/memory-read.js +0 -0
  1335. package/dist/src/memory/memory-read.js.map +0 -0
  1336. package/dist/src/memory/memory-schema.d.ts +0 -0
  1337. package/dist/src/memory/memory-schema.d.ts.map +0 -0
  1338. package/dist/src/memory/memory-schema.js +0 -0
  1339. package/dist/src/memory/memory-schema.js.map +0 -0
  1340. package/dist/src/memory/query-router.d.ts +0 -0
  1341. package/dist/src/memory/query-router.d.ts.map +0 -0
  1342. package/dist/src/memory/query-router.js +0 -0
  1343. package/dist/src/memory/query-router.js.map +0 -0
  1344. package/dist/src/memory/sona-optimizer.d.ts +1 -1
  1345. package/dist/src/memory/sona-optimizer.d.ts.map +0 -0
  1346. package/dist/src/memory/sona-optimizer.js +1 -1
  1347. package/dist/src/memory/sona-optimizer.js.map +0 -0
  1348. package/dist/src/memory/text-tokens.d.ts +0 -0
  1349. package/dist/src/memory/text-tokens.d.ts.map +0 -0
  1350. package/dist/src/memory/text-tokens.js +0 -0
  1351. package/dist/src/memory/text-tokens.js.map +0 -0
  1352. package/dist/src/monovector/command-outcomes.d.ts +0 -0
  1353. package/dist/src/monovector/command-outcomes.d.ts.map +0 -0
  1354. package/dist/src/monovector/command-outcomes.js +0 -0
  1355. package/dist/src/monovector/command-outcomes.js.map +0 -0
  1356. package/dist/src/monovector/coverage-router.d.ts +0 -0
  1357. package/dist/src/monovector/coverage-router.d.ts.map +0 -0
  1358. package/dist/src/monovector/coverage-router.js +0 -0
  1359. package/dist/src/monovector/coverage-router.js.map +0 -0
  1360. package/dist/src/monovector/coverage-tools.d.ts +0 -0
  1361. package/dist/src/monovector/coverage-tools.d.ts.map +0 -0
  1362. package/dist/src/monovector/coverage-tools.js +0 -0
  1363. package/dist/src/monovector/coverage-tools.js.map +0 -0
  1364. package/dist/src/monovector/diff-classifier.d.ts +0 -0
  1365. package/dist/src/monovector/diff-classifier.d.ts.map +0 -0
  1366. package/dist/src/monovector/diff-classifier.js +0 -0
  1367. package/dist/src/monovector/diff-classifier.js.map +0 -0
  1368. package/dist/src/monovector/index.d.ts +16 -19
  1369. package/dist/src/monovector/index.d.ts.map +1 -1
  1370. package/dist/src/monovector/index.js +50 -8
  1371. package/dist/src/monovector/index.js.map +1 -1
  1372. package/dist/src/monovector/init-state.d.ts +0 -0
  1373. package/dist/src/monovector/init-state.d.ts.map +0 -0
  1374. package/dist/src/monovector/init-state.js +0 -0
  1375. package/dist/src/monovector/init-state.js.map +0 -0
  1376. package/dist/src/monovector/route-outcomes.d.ts +0 -0
  1377. package/dist/src/monovector/route-outcomes.d.ts.map +0 -0
  1378. package/dist/src/monovector/route-outcomes.js +0 -0
  1379. package/dist/src/monovector/route-outcomes.js.map +0 -0
  1380. package/dist/src/observability/replay-reader.d.ts +0 -0
  1381. package/dist/src/observability/replay-reader.d.ts.map +0 -0
  1382. package/dist/src/observability/replay-reader.js +0 -0
  1383. package/dist/src/observability/replay-reader.js.map +0 -0
  1384. package/dist/src/orgrt/agent-runner.d.ts +0 -0
  1385. package/dist/src/orgrt/agent-runner.d.ts.map +0 -0
  1386. package/dist/src/orgrt/agent-runner.js +0 -0
  1387. package/dist/src/orgrt/agent-runner.js.map +0 -0
  1388. package/dist/src/orgrt/approvals.d.ts +16 -0
  1389. package/dist/src/orgrt/approvals.d.ts.map +1 -0
  1390. package/dist/src/orgrt/approvals.js +72 -0
  1391. package/dist/src/orgrt/approvals.js.map +1 -0
  1392. package/dist/src/orgrt/broker.d.ts +0 -0
  1393. package/dist/src/orgrt/broker.d.ts.map +0 -0
  1394. package/dist/src/orgrt/broker.js +0 -0
  1395. package/dist/src/orgrt/broker.js.map +0 -0
  1396. package/dist/src/orgrt/bus.d.ts +0 -0
  1397. package/dist/src/orgrt/bus.d.ts.map +1 -1
  1398. package/dist/src/orgrt/bus.js +21 -0
  1399. package/dist/src/orgrt/bus.js.map +1 -1
  1400. package/dist/src/orgrt/checkpoint-ops.d.ts +19 -0
  1401. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -0
  1402. package/dist/src/orgrt/checkpoint-ops.js +219 -0
  1403. package/dist/src/orgrt/checkpoint-ops.js.map +1 -0
  1404. package/dist/src/orgrt/checkpoint.d.ts +33 -1
  1405. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  1406. package/dist/src/orgrt/checkpoint.js +50 -6
  1407. package/dist/src/orgrt/checkpoint.js.map +1 -1
  1408. package/dist/src/orgrt/cross-org.d.ts +32 -0
  1409. package/dist/src/orgrt/cross-org.d.ts.map +1 -0
  1410. package/dist/src/orgrt/cross-org.js +256 -0
  1411. package/dist/src/orgrt/cross-org.js.map +1 -0
  1412. package/dist/src/orgrt/daemon.d.ts +131 -157
  1413. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  1414. package/dist/src/orgrt/daemon.js +356 -966
  1415. package/dist/src/orgrt/daemon.js.map +1 -1
  1416. package/dist/src/orgrt/decisions.d.ts +33 -0
  1417. package/dist/src/orgrt/decisions.d.ts.map +1 -0
  1418. package/dist/src/orgrt/decisions.js +169 -0
  1419. package/dist/src/orgrt/decisions.js.map +1 -0
  1420. package/dist/src/orgrt/forwarder.d.ts +0 -0
  1421. package/dist/src/orgrt/forwarder.d.ts.map +0 -0
  1422. package/dist/src/orgrt/forwarder.js +0 -0
  1423. package/dist/src/orgrt/forwarder.js.map +0 -0
  1424. package/dist/src/orgrt/inbox.d.ts +0 -0
  1425. package/dist/src/orgrt/inbox.d.ts.map +0 -0
  1426. package/dist/src/orgrt/inbox.js +0 -0
  1427. package/dist/src/orgrt/inbox.js.map +0 -0
  1428. package/dist/src/orgrt/kimicode-runner.d.ts +0 -0
  1429. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  1430. package/dist/src/orgrt/kimicode-runner.js +5 -1
  1431. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  1432. package/dist/src/orgrt/mailbox.d.ts +0 -0
  1433. package/dist/src/orgrt/mailbox.d.ts.map +0 -0
  1434. package/dist/src/orgrt/mailbox.js +0 -0
  1435. package/dist/src/orgrt/mailbox.js.map +0 -0
  1436. package/dist/src/orgrt/migrate.d.ts +0 -0
  1437. package/dist/src/orgrt/migrate.d.ts.map +0 -0
  1438. package/dist/src/orgrt/migrate.js +0 -0
  1439. package/dist/src/orgrt/migrate.js.map +0 -0
  1440. package/dist/src/orgrt/opencode-runner.d.ts +0 -0
  1441. package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
  1442. package/dist/src/orgrt/opencode-runner.js +10 -2
  1443. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  1444. package/dist/src/orgrt/org-memory.d.ts +45 -0
  1445. package/dist/src/orgrt/org-memory.d.ts.map +1 -0
  1446. package/dist/src/orgrt/org-memory.js +220 -0
  1447. package/dist/src/orgrt/org-memory.js.map +1 -0
  1448. package/dist/src/orgrt/policy.d.ts +4 -0
  1449. package/dist/src/orgrt/policy.d.ts.map +1 -1
  1450. package/dist/src/orgrt/policy.js +13 -1
  1451. package/dist/src/orgrt/policy.js.map +1 -1
  1452. package/dist/src/orgrt/prechecks.d.ts +15 -0
  1453. package/dist/src/orgrt/prechecks.d.ts.map +1 -0
  1454. package/dist/src/orgrt/prechecks.js +21 -0
  1455. package/dist/src/orgrt/prechecks.js.map +1 -0
  1456. package/dist/src/orgrt/provider.d.ts +0 -0
  1457. package/dist/src/orgrt/provider.d.ts.map +0 -0
  1458. package/dist/src/orgrt/provider.js +0 -0
  1459. package/dist/src/orgrt/provider.js.map +0 -0
  1460. package/dist/src/orgrt/questions.d.ts +39 -0
  1461. package/dist/src/orgrt/questions.d.ts.map +1 -0
  1462. package/dist/src/orgrt/questions.js +135 -0
  1463. package/dist/src/orgrt/questions.js.map +1 -0
  1464. package/dist/src/orgrt/remote.d.ts +25 -0
  1465. package/dist/src/orgrt/remote.d.ts.map +1 -0
  1466. package/dist/src/orgrt/remote.js +73 -0
  1467. package/dist/src/orgrt/remote.js.map +1 -0
  1468. package/dist/src/orgrt/reporting.d.ts +0 -0
  1469. package/dist/src/orgrt/reporting.d.ts.map +0 -0
  1470. package/dist/src/orgrt/reporting.js +0 -0
  1471. package/dist/src/orgrt/reporting.js.map +0 -0
  1472. package/dist/src/orgrt/scheduler-integration.d.ts +19 -0
  1473. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -0
  1474. package/dist/src/orgrt/scheduler-integration.js +90 -0
  1475. package/dist/src/orgrt/scheduler-integration.js.map +1 -0
  1476. package/dist/src/orgrt/scheduler.d.ts +0 -0
  1477. package/dist/src/orgrt/scheduler.d.ts.map +0 -0
  1478. package/dist/src/orgrt/scheduler.js +0 -0
  1479. package/dist/src/orgrt/scheduler.js.map +0 -0
  1480. package/dist/src/orgrt/server.d.ts +0 -0
  1481. package/dist/src/orgrt/server.d.ts.map +1 -1
  1482. package/dist/src/orgrt/server.js +70 -2
  1483. package/dist/src/orgrt/server.js.map +1 -1
  1484. package/dist/src/orgrt/session.d.ts +30 -1
  1485. package/dist/src/orgrt/session.d.ts.map +1 -1
  1486. package/dist/src/orgrt/session.js +184 -53
  1487. package/dist/src/orgrt/session.js.map +1 -1
  1488. package/dist/src/orgrt/state-detector.d.ts +19 -0
  1489. package/dist/src/orgrt/state-detector.d.ts.map +1 -0
  1490. package/dist/src/orgrt/state-detector.js +59 -0
  1491. package/dist/src/orgrt/state-detector.js.map +1 -0
  1492. package/dist/src/orgrt/task-dag.d.ts +27 -0
  1493. package/dist/src/orgrt/task-dag.d.ts.map +1 -0
  1494. package/dist/src/orgrt/task-dag.js +100 -0
  1495. package/dist/src/orgrt/task-dag.js.map +1 -0
  1496. package/dist/src/orgrt/templates.d.ts +0 -0
  1497. package/dist/src/orgrt/templates.d.ts.map +0 -0
  1498. package/dist/src/orgrt/templates.js +0 -0
  1499. package/dist/src/orgrt/templates.js.map +0 -0
  1500. package/dist/src/orgrt/test-loop.d.ts +0 -0
  1501. package/dist/src/orgrt/test-loop.d.ts.map +0 -0
  1502. package/dist/src/orgrt/test-loop.js +0 -0
  1503. package/dist/src/orgrt/test-loop.js.map +0 -0
  1504. package/dist/src/orgrt/tool-fence.d.ts +7 -4
  1505. package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
  1506. package/dist/src/orgrt/tool-fence.js +47 -6
  1507. package/dist/src/orgrt/tool-fence.js.map +1 -1
  1508. package/dist/src/orgrt/types.d.ts +57 -2
  1509. package/dist/src/orgrt/types.d.ts.map +1 -1
  1510. package/dist/src/orgrt/types.js +34 -3
  1511. package/dist/src/orgrt/types.js.map +1 -1
  1512. package/dist/src/orgrt/visualization.d.ts +0 -0
  1513. package/dist/src/orgrt/visualization.d.ts.map +0 -0
  1514. package/dist/src/orgrt/visualization.js +0 -0
  1515. package/dist/src/orgrt/visualization.js.map +0 -0
  1516. package/dist/src/output.d.ts +0 -0
  1517. package/dist/src/output.d.ts.map +0 -0
  1518. package/dist/src/output.js +0 -0
  1519. package/dist/src/output.js.map +0 -0
  1520. package/dist/src/parser.d.ts +0 -0
  1521. package/dist/src/parser.d.ts.map +0 -0
  1522. package/dist/src/parser.js +0 -0
  1523. package/dist/src/parser.js.map +0 -0
  1524. package/dist/src/pricing/model-pricing.d.ts +0 -0
  1525. package/dist/src/pricing/model-pricing.d.ts.map +0 -0
  1526. package/dist/src/pricing/model-pricing.js +0 -0
  1527. package/dist/src/pricing/model-pricing.js.map +0 -0
  1528. package/dist/src/prompt.d.ts +0 -0
  1529. package/dist/src/prompt.d.ts.map +0 -0
  1530. package/dist/src/prompt.js +0 -0
  1531. package/dist/src/prompt.js.map +0 -0
  1532. package/dist/src/routing/embed-worker.d.ts +0 -0
  1533. package/dist/src/routing/embed-worker.d.ts.map +0 -0
  1534. package/dist/src/routing/embed-worker.js +0 -0
  1535. package/dist/src/routing/embed-worker.js.map +0 -0
  1536. package/dist/src/routing/embedder.d.ts +0 -0
  1537. package/dist/src/routing/embedder.d.ts.map +0 -0
  1538. package/dist/src/routing/embedder.js +0 -0
  1539. package/dist/src/routing/embedder.js.map +0 -0
  1540. package/dist/src/routing/llm-caller.d.ts +0 -0
  1541. package/dist/src/routing/llm-caller.d.ts.map +0 -0
  1542. package/dist/src/routing/llm-caller.js +0 -0
  1543. package/dist/src/routing/llm-caller.js.map +0 -0
  1544. package/dist/src/routing/model-download.d.ts +49 -0
  1545. package/dist/src/routing/model-download.d.ts.map +1 -0
  1546. package/dist/src/routing/model-download.js +106 -0
  1547. package/dist/src/routing/model-download.js.map +1 -0
  1548. package/dist/src/routing/route-layer-factory.d.ts +0 -0
  1549. package/dist/src/routing/route-layer-factory.d.ts.map +0 -0
  1550. package/dist/src/routing/route-layer-factory.js +0 -0
  1551. package/dist/src/routing/route-layer-factory.js.map +0 -0
  1552. package/dist/src/services/config-file-manager.d.ts +0 -0
  1553. package/dist/src/services/config-file-manager.d.ts.map +0 -0
  1554. package/dist/src/services/config-file-manager.js +0 -0
  1555. package/dist/src/services/config-file-manager.js.map +0 -0
  1556. package/dist/src/services/crash-reporter.d.ts +5 -0
  1557. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  1558. package/dist/src/services/crash-reporter.js +49 -0
  1559. package/dist/src/services/crash-reporter.js.map +1 -1
  1560. package/dist/src/suggest.d.ts +0 -0
  1561. package/dist/src/suggest.d.ts.map +0 -0
  1562. package/dist/src/suggest.js +0 -0
  1563. package/dist/src/suggest.js.map +0 -0
  1564. package/dist/src/sync/checker.d.ts +0 -0
  1565. package/dist/src/sync/checker.d.ts.map +0 -0
  1566. package/dist/src/sync/checker.js +0 -0
  1567. package/dist/src/sync/checker.js.map +0 -0
  1568. package/dist/src/transfer/anonymization/index.d.ts +18 -15
  1569. package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
  1570. package/dist/src/transfer/anonymization/index.js +7 -119
  1571. package/dist/src/transfer/anonymization/index.js.map +1 -1
  1572. package/dist/src/types.d.ts +0 -0
  1573. package/dist/src/types.d.ts.map +0 -0
  1574. package/dist/src/types.js +0 -0
  1575. package/dist/src/types.js.map +0 -0
  1576. package/dist/src/ui/collector.mjs +0 -0
  1577. package/dist/src/ui/dashboard.html +606 -7
  1578. package/dist/src/ui/data/agent-avatars.html +0 -0
  1579. package/dist/src/ui/data/agent-avatars.json +0 -0
  1580. package/dist/src/ui/data/avatars/account-strategist.svg +0 -0
  1581. package/dist/src/ui/data/avatars/accounts-payable.svg +0 -0
  1582. package/dist/src/ui/data/avatars/adaptive-coordinator.svg +0 -0
  1583. package/dist/src/ui/data/avatars/adaptive-coordinator2.svg +0 -0
  1584. package/dist/src/ui/data/avatars/ai-citation.svg +0 -0
  1585. package/dist/src/ui/data/avatars/ai-engineer.svg +0 -0
  1586. package/dist/src/ui/data/avatars/analytics-reporter.svg +0 -0
  1587. package/dist/src/ui/data/avatars/api-tester.svg +0 -0
  1588. package/dist/src/ui/data/avatars/architecture.svg +0 -0
  1589. package/dist/src/ui/data/avatars/automation-governance.svg +0 -0
  1590. package/dist/src/ui/data/avatars/backend-dev.svg +0 -0
  1591. package/dist/src/ui/data/avatars/benchmarker.svg +0 -0
  1592. package/dist/src/ui/data/avatars/blockchain-auditor.svg +0 -0
  1593. package/dist/src/ui/data/avatars/byzantine-coord.svg +0 -0
  1594. package/dist/src/ui/data/avatars/case-analyst.svg +0 -0
  1595. package/dist/src/ui/data/avatars/cicd-engineer.svg +0 -0
  1596. package/dist/src/ui/data/avatars/cloud-architect.svg +0 -0
  1597. package/dist/src/ui/data/avatars/code-review-swarm.svg +0 -0
  1598. package/dist/src/ui/data/avatars/coder-v119.svg +0 -0
  1599. package/dist/src/ui/data/avatars/coder.svg +0 -0
  1600. package/dist/src/ui/data/avatars/collective-coord.svg +0 -0
  1601. package/dist/src/ui/data/avatars/compliance-auditor.svg +0 -0
  1602. package/dist/src/ui/data/avatars/consensus-coordinator.svg +0 -0
  1603. package/dist/src/ui/data/avatars/content-creator.svg +0 -0
  1604. package/dist/src/ui/data/avatars/crdt-synchronizer.svg +0 -0
  1605. package/dist/src/ui/data/avatars/cro-specialist.svg +0 -0
  1606. package/dist/src/ui/data/avatars/data-consolidator.svg +0 -0
  1607. package/dist/src/ui/data/avatars/data-engineer.svg +0 -0
  1608. package/dist/src/ui/data/avatars/database-optimizer.svg +0 -0
  1609. package/dist/src/ui/data/avatars/deal-strategist.svg +0 -0
  1610. package/dist/src/ui/data/avatars/defender.svg +0 -0
  1611. package/dist/src/ui/data/avatars/devops-automator.svg +0 -0
  1612. package/dist/src/ui/data/avatars/discovery-coach.svg +0 -0
  1613. package/dist/src/ui/data/avatars/email-marketing.svg +0 -0
  1614. package/dist/src/ui/data/avatars/embedded-firmware.svg +0 -0
  1615. package/dist/src/ui/data/avatars/evidence-collector.svg +0 -0
  1616. package/dist/src/ui/data/avatars/experiment-tracker.svg +0 -0
  1617. package/dist/src/ui/data/avatars/feedback-synthesizer.svg +0 -0
  1618. package/dist/src/ui/data/avatars/finance-tracker.svg +0 -0
  1619. package/dist/src/ui/data/avatars/frontend-developer.svg +0 -0
  1620. package/dist/src/ui/data/avatars/game-audio-engineer.svg +0 -0
  1621. package/dist/src/ui/data/avatars/game-designer.svg +0 -0
  1622. package/dist/src/ui/data/avatars/gossip-coordinator.svg +0 -0
  1623. package/dist/src/ui/data/avatars/hierarchical-coord.svg +0 -0
  1624. package/dist/src/ui/data/avatars/incident-commander.svg +0 -0
  1625. package/dist/src/ui/data/avatars/infrastructure.svg +0 -0
  1626. package/dist/src/ui/data/avatars/input-validator.svg +0 -0
  1627. package/dist/src/ui/data/avatars/ios-developer.svg +0 -0
  1628. package/dist/src/ui/data/avatars/issue-tracker.svg +0 -0
  1629. package/dist/src/ui/data/avatars/judge.svg +0 -0
  1630. package/dist/src/ui/data/avatars/launch-strategist.svg +0 -0
  1631. package/dist/src/ui/data/avatars/legal-compliance.svg +0 -0
  1632. package/dist/src/ui/data/avatars/level-designer.svg +0 -0
  1633. package/dist/src/ui/data/avatars/load-balancer.svg +0 -0
  1634. package/dist/src/ui/data/avatars/mcp-builder.svg +0 -0
  1635. package/dist/src/ui/data/avatars/memory-coordinator.svg +0 -0
  1636. package/dist/src/ui/data/avatars/mesh-coordinator.svg +0 -0
  1637. package/dist/src/ui/data/avatars/ml-developer.svg +0 -0
  1638. package/dist/src/ui/data/avatars/mobile-app-builder.svg +0 -0
  1639. package/dist/src/ui/data/avatars/mobile-dev.svg +0 -0
  1640. package/dist/src/ui/data/avatars/model-qa.svg +0 -0
  1641. package/dist/src/ui/data/avatars/narrative-designer.svg +0 -0
  1642. package/dist/src/ui/data/avatars/outbound-strategist.svg +0 -0
  1643. package/dist/src/ui/data/avatars/path-validator.svg +0 -0
  1644. package/dist/src/ui/data/avatars/payment-agent.svg +0 -0
  1645. package/dist/src/ui/data/avatars/perf-analyzer.svg +0 -0
  1646. package/dist/src/ui/data/avatars/pipeline-analyst.svg +0 -0
  1647. package/dist/src/ui/data/avatars/planner.svg +0 -0
  1648. package/dist/src/ui/data/avatars/pr-manager.svg +0 -0
  1649. package/dist/src/ui/data/avatars/pricing-strategist.svg +0 -0
  1650. package/dist/src/ui/data/avatars/product-manager.svg +0 -0
  1651. package/dist/src/ui/data/avatars/production-validator.svg +0 -0
  1652. package/dist/src/ui/data/avatars/project-shepherd.svg +0 -0
  1653. package/dist/src/ui/data/avatars/proposal-strategist.svg +0 -0
  1654. package/dist/src/ui/data/avatars/prosecutor.svg +0 -0
  1655. package/dist/src/ui/data/avatars/pseudocode.svg +0 -0
  1656. package/dist/src/ui/data/avatars/queen-coordinator.svg +0 -0
  1657. package/dist/src/ui/data/avatars/quorum-manager.svg +0 -0
  1658. package/dist/src/ui/data/avatars/raft-manager.svg +0 -0
  1659. package/dist/src/ui/data/avatars/reality-checker.svg +0 -0
  1660. package/dist/src/ui/data/avatars/recruitment.svg +0 -0
  1661. package/dist/src/ui/data/avatars/refinement.svg +0 -0
  1662. package/dist/src/ui/data/avatars/release-manager.svg +0 -0
  1663. package/dist/src/ui/data/avatars/repo-architect.svg +0 -0
  1664. package/dist/src/ui/data/avatars/researcher.svg +0 -0
  1665. package/dist/src/ui/data/avatars/resource-allocator.svg +0 -0
  1666. package/dist/src/ui/data/avatars/reviewer.svg +0 -0
  1667. package/dist/src/ui/data/avatars/safe-executor.svg +0 -0
  1668. package/dist/src/ui/data/avatars/sales-coach.svg +0 -0
  1669. package/dist/src/ui/data/avatars/sales-engineer.svg +0 -0
  1670. package/dist/src/ui/data/avatars/scout-explorer.svg +0 -0
  1671. package/dist/src/ui/data/avatars/security-architect.svg +0 -0
  1672. package/dist/src/ui/data/avatars/security-auditor.svg +0 -0
  1673. package/dist/src/ui/data/avatars/senior-developer.svg +0 -0
  1674. package/dist/src/ui/data/avatars/senior-pm.svg +0 -0
  1675. package/dist/src/ui/data/avatars/seo-specialist.svg +0 -0
  1676. package/dist/src/ui/data/avatars/social-media.svg +0 -0
  1677. package/dist/src/ui/data/avatars/solidity-engineer.svg +0 -0
  1678. package/dist/src/ui/data/avatars/sparc-coder.svg +0 -0
  1679. package/dist/src/ui/data/avatars/sparc-coord.svg +0 -0
  1680. package/dist/src/ui/data/avatars/specification.svg +0 -0
  1681. package/dist/src/ui/data/avatars/sprint-prioritizer.svg +0 -0
  1682. package/dist/src/ui/data/avatars/sre.svg +0 -0
  1683. package/dist/src/ui/data/avatars/studio-operations.svg +0 -0
  1684. package/dist/src/ui/data/avatars/studio-producer.svg +0 -0
  1685. package/dist/src/ui/data/avatars/support-responder.svg +0 -0
  1686. package/dist/src/ui/data/avatars/system-architect.svg +0 -0
  1687. package/dist/src/ui/data/avatars/task-orchestrator.svg +0 -0
  1688. package/dist/src/ui/data/avatars/technical-artist.svg +0 -0
  1689. package/dist/src/ui/data/avatars/technical-writer.svg +0 -0
  1690. package/dist/src/ui/data/avatars/tester.svg +0 -0
  1691. package/dist/src/ui/data/avatars/threat-detection.svg +0 -0
  1692. package/dist/src/ui/data/avatars/trend-researcher.svg +0 -0
  1693. package/dist/src/ui/data/avatars/trial-director.svg +0 -0
  1694. package/dist/src/ui/data/avatars/unity-architect.svg +0 -0
  1695. package/dist/src/ui/data/avatars/visionos-engineer.svg +0 -0
  1696. package/dist/src/ui/data/avatars/worker-specialist.svg +0 -0
  1697. package/dist/src/ui/data/avatars/workflow-architect.svg +0 -0
  1698. package/dist/src/ui/data/avatars/workflow-automation.svg +0 -0
  1699. package/dist/src/ui/data/avatars/zk-steward.svg +0 -0
  1700. package/dist/src/ui/data/mastermind-sessions.json +1 -0
  1701. package/dist/src/ui/mastermind-diagram-fallback.html +0 -0
  1702. package/dist/src/ui/orgs-files.js +0 -0
  1703. package/dist/src/ui/orgs.html +7 -1
  1704. package/dist/src/ui/routes-monograph.mjs +6 -0
  1705. package/dist/src/ui/routes-org.mjs +0 -0
  1706. package/dist/src/ui/server.mjs +327 -7
  1707. package/dist/src/ui/sse-manager.mjs +0 -0
  1708. package/dist/src/update/checker.d.ts +0 -0
  1709. package/dist/src/update/checker.d.ts.map +1 -1
  1710. package/dist/src/update/checker.js +2 -1
  1711. package/dist/src/update/checker.js.map +1 -1
  1712. package/dist/src/update/executor.d.ts +0 -0
  1713. package/dist/src/update/executor.d.ts.map +1 -1
  1714. package/dist/src/update/executor.js +7 -3
  1715. package/dist/src/update/executor.js.map +1 -1
  1716. package/dist/src/update/index.d.ts +0 -1
  1717. package/dist/src/update/index.d.ts.map +1 -1
  1718. package/dist/src/update/index.js +5 -24
  1719. package/dist/src/update/index.js.map +1 -1
  1720. package/dist/src/update/rate-limiter.d.ts +0 -0
  1721. package/dist/src/update/rate-limiter.d.ts.map +0 -0
  1722. package/dist/src/update/rate-limiter.js +0 -0
  1723. package/dist/src/update/rate-limiter.js.map +0 -0
  1724. package/dist/src/update/validator.d.ts +0 -0
  1725. package/dist/src/update/validator.d.ts.map +0 -0
  1726. package/dist/src/update/validator.js +0 -0
  1727. package/dist/src/update/validator.js.map +0 -0
  1728. package/dist/src/utils/cosine-similarity.d.ts +0 -0
  1729. package/dist/src/utils/cosine-similarity.d.ts.map +0 -0
  1730. package/dist/src/utils/cosine-similarity.js +0 -0
  1731. package/dist/src/utils/cosine-similarity.js.map +0 -0
  1732. package/dist/src/utils/db-mutex.d.ts +11 -0
  1733. package/dist/src/utils/db-mutex.d.ts.map +1 -0
  1734. package/dist/src/utils/db-mutex.js +23 -0
  1735. package/dist/src/utils/db-mutex.js.map +1 -0
  1736. package/dist/src/utils/input-guards.d.ts +23 -0
  1737. package/dist/src/utils/input-guards.d.ts.map +1 -1
  1738. package/dist/src/utils/input-guards.js +72 -0
  1739. package/dist/src/utils/input-guards.js.map +1 -1
  1740. package/dist/src/utils/json-file.d.ts +0 -0
  1741. package/dist/src/utils/json-file.d.ts.map +0 -0
  1742. package/dist/src/utils/json-file.js +0 -0
  1743. package/dist/src/utils/json-file.js.map +0 -0
  1744. package/dist/src/utils/npm-command.d.ts +10 -0
  1745. package/dist/src/utils/npm-command.d.ts.map +1 -0
  1746. package/dist/src/utils/npm-command.js +12 -0
  1747. package/dist/src/utils/npm-command.js.map +1 -0
  1748. package/dist/src/utils/parse-jsonl.d.ts +0 -0
  1749. package/dist/src/utils/parse-jsonl.d.ts.map +0 -0
  1750. package/dist/src/utils/parse-jsonl.js +0 -0
  1751. package/dist/src/utils/parse-jsonl.js.map +0 -0
  1752. package/dist/src/utils/paths.d.ts +28 -0
  1753. package/dist/src/utils/paths.d.ts.map +1 -0
  1754. package/dist/src/utils/paths.js +108 -0
  1755. package/dist/src/utils/paths.js.map +1 -0
  1756. package/dist/src/utils/resource-governor.d.ts +0 -0
  1757. package/dist/src/utils/resource-governor.d.ts.map +0 -0
  1758. package/dist/src/utils/resource-governor.js +0 -0
  1759. package/dist/src/utils/resource-governor.js.map +0 -0
  1760. package/dist/tsconfig.tsbuildinfo +1 -1
  1761. package/package.json +6 -5
  1762. package/scripts/deploy-ipfs-node.sh +0 -0
  1763. package/scripts/download-embedding-model.mjs +97 -0
  1764. package/scripts/publish.sh +18 -32
  1765. package/scripts/setup-ipfs-registry.md +0 -0
  1766. package/scripts/understand-analyze.mjs +0 -0
  1767. package/.claude/helpers/auto-memory-hook.mjs +0 -97
  1768. package/dist/src/production/circuit-breaker.d.ts +0 -121
  1769. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  1770. package/dist/src/production/circuit-breaker.js +0 -262
  1771. package/dist/src/production/circuit-breaker.js.map +0 -1
  1772. package/dist/src/production/error-handler.d.ts +0 -119
  1773. package/dist/src/production/error-handler.d.ts.map +0 -1
  1774. package/dist/src/production/error-handler.js +0 -324
  1775. package/dist/src/production/error-handler.js.map +0 -1
  1776. package/dist/src/production/index.d.ts +0 -6
  1777. package/dist/src/production/index.d.ts.map +0 -1
  1778. package/dist/src/production/index.js +0 -6
  1779. package/dist/src/production/index.js.map +0 -1
  1780. package/dist/src/production/monitoring.d.ts +0 -181
  1781. package/dist/src/production/monitoring.d.ts.map +0 -1
  1782. package/dist/src/production/monitoring.js +0 -375
  1783. package/dist/src/production/monitoring.js.map +0 -1
  1784. package/dist/src/production/rate-limiter.d.ts +0 -125
  1785. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  1786. package/dist/src/production/rate-limiter.js +0 -218
  1787. package/dist/src/production/rate-limiter.js.map +0 -1
  1788. package/dist/src/production/retry.d.ts +0 -48
  1789. package/dist/src/production/retry.d.ts.map +0 -1
  1790. package/dist/src/production/retry.js +0 -189
  1791. package/dist/src/production/retry.js.map +0 -1
  1792. package/dist/src/transfer/types.d.ts +0 -245
  1793. package/dist/src/transfer/types.d.ts.map +0 -1
  1794. package/dist/src/transfer/types.js +0 -6
  1795. package/dist/src/transfer/types.js.map +0 -1
@@ -1,21 +1,32 @@
1
1
  // packages/@monomind/cli/src/orgrt/daemon.ts
2
2
  // monolean: single-process inter-org — upgrade path = daemon-to-daemon HTTP when multi-host is real
3
- import { readFileSync, mkdirSync, writeFileSync, existsSync, renameSync, unlinkSync } from 'node:fs';
3
+ import { readFileSync, mkdirSync, existsSync, unlinkSync } from 'node:fs';
4
+ import { execSync } from 'node:child_process';
4
5
  import { join, isAbsolute } from 'node:path';
6
+ import { writeJsonFileAtomic } from '../utils/json-file.js';
5
7
  import { reapOrphanedSdkProcesses } from '../utils/resource-governor.js';
6
8
  import { OrgBus } from './bus.js';
7
9
  import { PolicyEngine } from './policy.js';
8
10
  import { Mailbox } from './mailbox.js';
9
11
  import { runAgentSession } from './session.js';
10
12
  import { attachForwarder } from './forwarder.js';
11
- import { BrokerLease, lookupOrg, normalizeCredential } from './broker.js';
12
- import { queueMessage, drainInbox } from './inbox.js';
13
+ import { BrokerLease, normalizeCredential } from './broker.js';
14
+ import { drainInbox } from './inbox.js';
13
15
  import { OrgDefSchema, ORG_DIR } from './types.js';
16
+ import { TaskDag } from './task-dag.js';
14
17
  import { summarizeRun, readRunEvents, readHistory, historyFile } from './reporting.js';
15
- import { checkResources, waitForCapacity, getResourceLimits, configureResourceLimits } from '../utils/resource-governor.js';
18
+ import { getResourceLimits, configureResourceLimits } from '../utils/resource-governor.js';
16
19
  import { OpencodeAgentRunner } from './opencode-runner.js';
17
20
  import { KimiCodeAgentRunner } from './kimicode-runner.js';
18
- import { captureCheckpoint, validateCheckpoint, isCheckpointExpired, restoreMailboxQueue } from './checkpoint.js';
21
+ import { captureCheckpoint } from './checkpoint.js';
22
+ // ── Extracted module imports ────────────────────────────────────────────
23
+ import * as approvalOps from './approvals.js';
24
+ import * as questionOps from './questions.js';
25
+ import * as decisionOps from './decisions.js';
26
+ import * as crossOrg from './cross-org.js';
27
+ import * as scheduler from './scheduler-integration.js';
28
+ import * as orgMemory from './org-memory.js';
29
+ import * as checkpointOps from './checkpoint-ops.js';
19
30
  /** OpenTelemetry tracing helper - creates spans for major operations */
20
31
  class OtelTracer {
21
32
  enabled = false;
@@ -46,35 +57,74 @@ class OtelTracer {
46
57
  * for a sibling mid-build or mid-test to finish and flush its work. A hard
47
58
  * stop keeps the short bound — see finishStop. */
48
59
  const COMPLETE_DRAIN_MS = 5 * 60_000;
49
- /** Bodies larger than this are digested to a .mail file (see mailBody). */
50
- const MAIL_BODY_MAX = 4096;
51
- /** How much of an oversized body stays inline in the digest. */
52
- const MAIL_DIGEST_CHARS = 1024;
60
+ /** Resolve which AgentRunner hosts an org's role sessions.
61
+ * Precedence: role `runtime` field > org def `runtime` field >
62
+ * MONOMIND_RUNTIME env > undefined (the default path, where session.ts
63
+ * falls back to ClaudeAgentRunner). Returning undefined for the default
64
+ * path keeps Claude/Antigravity orgs byte-for-byte unchanged. Callers
65
+ * pass `role.runtime ?? def.runtime` as `orgRuntime` (see resolveRoleRunner). */
66
+ export function resolveRunner(orgRuntime) {
67
+ const selected = orgRuntime ?? process.env.MONOMIND_RUNTIME;
68
+ if (selected === 'opencode')
69
+ return new OpencodeAgentRunner();
70
+ if (selected === 'kimicode')
71
+ return new KimiCodeAgentRunner();
72
+ return undefined;
73
+ }
74
+ /** Per-session variant: a role's own `runtime` field wins over the org-level
75
+ * one (and the env var) — including `role.runtime === 'claude'`, which forces
76
+ * the default Claude path even when the org/env select another runtime.
77
+ * Roles without a `runtime` inherit the org-level resolution unchanged. */
78
+ export function resolveRoleRunner(roleRuntime, orgRuntime) {
79
+ return resolveRunner(roleRuntime ?? orgRuntime);
80
+ }
81
+ /** Per-role token budget: a role's own `budget_tokens` wins; otherwise the
82
+ * even split of run_config.budget_tokens across all roles. */
83
+ export function roleTokenBudget(role, def) {
84
+ return role.budget_tokens ?? Math.floor((def.run_config.budget_tokens ?? 1_000_000) / def.roles.length);
85
+ }
86
+ /** Bounded ring buffer for agent terminal scrollback. */
87
+ export class ScrollbackBuffer {
88
+ maxLines;
89
+ lines = [];
90
+ constructor(maxLines = 500) {
91
+ this.maxLines = maxLines;
92
+ }
93
+ push(line) {
94
+ this.lines.push(line);
95
+ if (this.lines.length > this.maxLines)
96
+ this.lines.splice(0, this.lines.length - this.maxLines);
97
+ }
98
+ snapshot() { return [...this.lines]; }
99
+ clear() { this.lines.length = 0; }
100
+ }
53
101
  export class OrgDaemon {
54
102
  root;
55
103
  opts;
56
- orgs = new Map();
57
- waking = new Set();
58
- globalSubscribers = new Set();
59
- leases = new Map();
60
- forwarders = new Map();
61
- watchdogs = new Map();
62
- stopping = new Map();
63
- otel = new OtelTracer();
64
- approvals = new Map();
65
- // Roles currently spawning — prevents duplicate lazy spawns from concurrent messages
66
- spawning = new Map();
67
- // #4: bounded whole-org restarts after the boss terminally crashes. A monotonic
68
- // per-org counter so a crashing boss can never burn money in an infinite loop;
69
- // reset only by an explicit (non-restart) startOrg.
104
+ /** @internal */ orgs = new Map();
105
+ /** @internal */ waking = new Set();
106
+ /** @internal */ globalSubscribers = new Set();
107
+ /** @internal */ leases = new Map();
108
+ /** @internal */ forwarders = new Map();
109
+ /** @internal */ watchdogs = new Map();
110
+ /** @internal */ stopping = new Map();
111
+ /** @internal */ otel = new OtelTracer();
112
+ /** @internal */ approvals = new Map();
113
+ /** @internal */ approvalLocks = new Map();
114
+ /** @internal */ gatesLocks = new Map();
115
+ /** @internal */ questionsLocks = new Map();
116
+ /** @internal */ spawning = new Map();
70
117
  static MAX_BOSS_RESTARTS = 2;
71
118
  static BOSS_RESTART_BACKOFF_MS = [10_000, 30_000];
72
- bossRestartCounts = new Map();
73
- restarting = new Set();
119
+ /** @internal */ bossRestartCounts = new Map();
120
+ /** @internal */ restarting = new Set();
74
121
  // #3: recognizes provider context-window-overflow errors so the boss can be told
75
122
  // to chunk the work instead of re-dispatching the same oversized task verbatim.
76
123
  static CONTEXT_LIMIT_RE = /context[- ]?(window|length|size|limit)|maximum context|exceeds?.{0,12}(context|token)|too many tokens|prompt is too long/i;
77
- constructor(root, opts = {}) {
124
+ /** @internal */ recallUsage = new Map();
125
+ /** @internal */ orgLearnedRuns = new Set();
126
+ /** @internal */ abandoned = new Map();
127
+ constructor(/** @internal */ root, /** @internal */ opts = {}) {
78
128
  this.root = root;
79
129
  this.opts = opts;
80
130
  }
@@ -91,16 +141,84 @@ export class OrgDaemon {
91
141
  }
92
142
  listOrgs() { return [...this.orgs.values()]; }
93
143
  getOrg(name) { return this.orgs.get(name); }
144
+ /** Hot-reload an org definition from disk without stopping running sessions.
145
+ * Applies: goal, run_config, schedule. New roles are added as pending (lazy-spawnable).
146
+ * Removed roles are NOT killed — they finish their current work and won't be re-spawned.
147
+ * Returns a summary of what changed. */
148
+ reloadOrgDef(name) {
149
+ const running = this.orgs.get(name);
150
+ if (!running)
151
+ throw new Error(`org ${name} is not running`);
152
+ const defPath = join(this.root, ORG_DIR, `${name}.json`);
153
+ const newDef = OrgDefSchema.parse(JSON.parse(readFileSync(defPath, 'utf8')));
154
+ const changed = [];
155
+ const newRoles = [];
156
+ const removedRoles = [];
157
+ if (newDef.goal !== running.def.goal) {
158
+ running.def.goal = newDef.goal;
159
+ changed.push('goal');
160
+ }
161
+ const oldRc = running.def.run_config;
162
+ const newRc = newDef.run_config;
163
+ for (const key of new Set([...Object.keys(oldRc), ...Object.keys(newRc)])) {
164
+ if (JSON.stringify(oldRc[key]) !== JSON.stringify(newRc[key])) {
165
+ oldRc[key] = newRc[key];
166
+ changed.push(`run_config.${key}`);
167
+ }
168
+ }
169
+ const existingRoleIds = new Set(running.def.roles.map(r => r.id));
170
+ const newRoleIds = new Set(newDef.roles.map(r => r.id));
171
+ for (const role of newDef.roles) {
172
+ if (!existingRoleIds.has(role.id)) {
173
+ running.def.roles.push(role);
174
+ if (!running.pendingRoles)
175
+ running.pendingRoles = new Map();
176
+ running.pendingRoles.set(role.id, role);
177
+ newRoles.push(role.id);
178
+ }
179
+ }
180
+ for (const id of existingRoleIds) {
181
+ if (!newRoleIds.has(id))
182
+ removedRoles.push(id);
183
+ }
184
+ running.bus.emit({ type: 'audit', reason: 'hot-reload',
185
+ msg: `org def reloaded: ${changed.length} fields changed, ${newRoles.length} new roles, ${removedRoles.length} removed roles`,
186
+ data: { changed, newRoles, removedRoles } });
187
+ return { changed, newRoles, removedRoles };
188
+ }
94
189
  /** Names of the orgs this daemon currently has running. Snapshot — safe to
95
190
  * iterate while stopOrg() mutates the underlying map. */
96
191
  listRunning() { return [...this.orgs.keys()]; }
192
+ /** Hook for the SSE server — registers a listener for all bus events across all orgs. */
193
+ onBusEvent = (fn) => { this.subscribe(fn); };
194
+ /** Snapshot of all running orgs for dashboard initial load. */
195
+ getStatusSnapshot = () => {
196
+ const orgs = [];
197
+ for (const [name, running] of this.orgs) {
198
+ const roles = [];
199
+ for (const [roleId, agent] of running.agents) {
200
+ roles.push({
201
+ id: roleId, status: agent.status,
202
+ worktree: agent.worktreePath ?? null,
203
+ metrics: agent.metrics,
204
+ });
205
+ }
206
+ orgs.push({
207
+ name, run: running.run,
208
+ roles,
209
+ pendingRoles: running.pendingRoles ? [...running.pendingRoles.keys()] : [],
210
+ tasks: running.taskDag?.all() ?? [],
211
+ });
212
+ }
213
+ return { orgs };
214
+ };
97
215
  /** Resolve run_config.workspace to 'repo' | 'isolated' | an absolute path.
98
216
  * A relative path is resolved against the project root rather than the
99
217
  * daemon's cwd, which is not the same directory when `org serve` is started
100
218
  * from a subdirectory. */
101
219
  workspaceSetting(def) {
102
220
  const ws = def.run_config.workspace ?? 'repo';
103
- if (ws === 'repo' || ws === 'isolated' || ws === 'worktree')
221
+ if (ws === 'repo' || ws === 'isolated' || ws === 'worktree' || ws === 'worktree-per-role')
104
222
  return ws;
105
223
  return isAbsolute(ws) ? ws : join(this.root, ws);
106
224
  }
@@ -137,11 +255,13 @@ export class OrgDaemon {
137
255
  try {
138
256
  // Remove stale worktree from a previous run
139
257
  if (existsSync(worktreePath)) {
140
- execSync(`git worktree remove --force "${worktreePath}"`, { cwd: this.root, stdio: 'ignore' });
258
+ // R4: bound the call — a wedged git hook (git-lfs, gc lock, gpg sign
259
+ // prompt) would otherwise hang the whole daemon indefinitely.
260
+ execSync(`git worktree remove --force "${worktreePath}"`, { cwd: this.root, stdio: 'ignore', timeout: 30_000 });
141
261
  }
142
262
  }
143
263
  catch { /* best-effort cleanup */ }
144
- execSync(`git worktree add "${worktreePath}" HEAD --detach`, { cwd: this.root, stdio: 'ignore' });
264
+ execSync(`git worktree add "${worktreePath}" HEAD --detach`, { cwd: this.root, stdio: 'ignore', timeout: 30_000 });
145
265
  cwd = worktreePath;
146
266
  }
147
267
  else {
@@ -159,6 +279,19 @@ export class OrgDaemon {
159
279
  if (!process.env.MONOMIND_MAX_SDK_PROCS && getResourceLimits().maxSdkProcesses < def.roles.length) {
160
280
  configureResourceLimits({ maxSdkProcesses: def.roles.length });
161
281
  }
282
+ // Validate per-role providers before spawning anything (fail-fast: a
283
+ // missing env var discovered 10 minutes into a run wastes the entire run).
284
+ const { resolveProviderEnv: validateProvider } = await import('./provider.js');
285
+ for (const role of def.roles) {
286
+ if (role.provider) {
287
+ try {
288
+ validateProvider(role.provider);
289
+ }
290
+ catch (err) {
291
+ throw new Error(`org ${name}: role "${role.id}" provider validation failed — ${err instanceof Error ? err.message : err}`);
292
+ }
293
+ }
294
+ }
162
295
  const bus = new OrgBus(name, run, dir);
163
296
  // Lightweight in-memory tail for busEvents() (test-loop, /api/history).
164
297
  // Full events (including Write content snapshots) live on disk in bus.jsonl;
@@ -220,6 +353,7 @@ export class OrgDaemon {
220
353
  this.forwarders.set(name, attachForwarder(bus, this.opts.controlJson ?? join(this.root, '.monomind/control.json')));
221
354
  const running = { def, run, bus, agents: new Map(), busEvents: () => [...collected], workdir: cwd };
222
355
  this.orgs.set(name, running);
356
+ // Even-split budget; a role's own budget_tokens overrides it (roleTokenBudget).
223
357
  const perRoleBudget = Math.floor((def.run_config.budget_tokens ?? 1_000_000) / def.roles.length);
224
358
  // Single boss-selection rule for kickoff AND org_complete gating — the
225
359
  // session layer previously keyed the tool on reports_to===null while the
@@ -250,21 +384,53 @@ export class OrgDaemon {
250
384
  // scheduleDeferredSpawn() once resources free up, without re-running the
251
385
  // gate logic or duplicating the session-wiring below.
252
386
  const spawnRole = (role) => {
387
+ let roleCwd = cwd;
388
+ if (ws === 'worktree-per-role' && role.id !== bossRole.id) {
389
+ const wtPath = join(this.root, ORG_DIR, name, `worktree-${role.id}`);
390
+ try {
391
+ // Q7: top-level `import { execSync }` replaces the inlined
392
+ // `require('node:child_process')` that broke ESM at runtime —
393
+ // vitest's CJS shim masked it in tests but the built package
394
+ // threw "require is not defined" in real Node ESM execution.
395
+ if (existsSync(wtPath)) {
396
+ try {
397
+ execSync(`git worktree remove --force "${wtPath}"`, { cwd: this.root, stdio: 'ignore', timeout: 30_000 });
398
+ }
399
+ catch { /* best-effort */ }
400
+ }
401
+ execSync(`git worktree add "${wtPath}" HEAD --detach`, { cwd: this.root, stdio: 'ignore', timeout: 30_000 });
402
+ roleCwd = wtPath;
403
+ }
404
+ catch { /* fallback to shared cwd if git worktree fails */ }
405
+ }
253
406
  const mailbox = new Mailbox();
254
- const policy = new PolicyEngine(role.id, { maxTokens: perRoleBudget, ...(role.policy ?? {}) }, bus, cwd);
255
- const runtime = { mailbox, policy, status: 'running', done: Promise.resolve(), metrics: { tokens: 0, costUsd: 0 } };
407
+ const policy = new PolicyEngine(role.id, { maxTokens: role.budget_tokens ?? perRoleBudget, ...(role.policy ?? {}) }, bus, roleCwd);
408
+ const runtime = { mailbox, policy, status: 'running', done: Promise.resolve(), metrics: { tokens: 0, costUsd: 0 }, worktreePath: roleCwd !== cwd ? roleCwd : undefined, scrollback: new ScrollbackBuffer() };
256
409
  const sessionOpts = {
257
- org: name, role, bus, policy, mailbox, cwd, def,
410
+ org: name, role, bus, policy, mailbox, cwd: roleCwd, def,
258
411
  maxTurns: role.max_turns_per_message ?? def.run_config.max_turns_per_message,
259
412
  lastMessageId: () => runtime.lastMessageId,
413
+ onOutput: (line) => runtime.scrollback.push(line),
260
414
  deliver: (from, to, subject, body) => this.deliver(name, from, to, subject, body),
261
415
  askHuman: (r, question) => this.askHuman(name, r, question),
416
+ onGate: (r, gateName, gateDesc) => this.createGate(name, r, gateName, gateDesc),
417
+ circuitBreaker: (() => {
418
+ const cb = def.run_config.circuit_breaker;
419
+ if (!cb)
420
+ return undefined;
421
+ return { threshold: cb.failure_threshold ?? 5, state: { failures: 0, tripped: false } };
422
+ })(),
262
423
  beforeTool: (r, toolName) => this.checkApproval(name, r, toolName),
263
424
  onComplete: role.id === bossRole.id
264
425
  ? (r, outcome, summary) => {
265
426
  bus.emit({ type: 'status', from: r, reason: 'org-complete', msg: `run outcome: ${outcome}`, data: { outcome, summary } });
266
427
  }
267
428
  : undefined,
429
+ // #11: a boss that overflows its context window isn't a crash (it keeps
430
+ // returning +0-token errors forever), so without this the idle watchdog
431
+ // just nudges it for ~30 min before idle-stopping. Restart the whole org
432
+ // with fresh sessions instead — bounded by MAX_BOSS_RESTARTS.
433
+ onContextLimit: role.id === bossRole.id ? () => this.scheduleBossRestart(name) : undefined,
268
434
  recall: async (r, q) => {
269
435
  const answer = await this.recallOrgMemory(name, def, q, r);
270
436
  bus.emit({ type: 'status', from: r, reason: 'org-recall', msg: `recall: ${q.slice(0, 80)}`, data: { hits: answer.hits } });
@@ -289,15 +455,24 @@ export class OrgDaemon {
289
455
  });
290
456
  return text;
291
457
  },
458
+ createTask: (r, title, assignee, deps) => {
459
+ return this.dagCreateTask(name, r, title, assignee, deps);
460
+ },
461
+ completeTask: (r, taskId, result) => {
462
+ return this.dagCompleteTask(name, r, taskId, result);
463
+ },
464
+ listTasks: () => {
465
+ const running = this.orgs.get(name);
466
+ return JSON.stringify(running?.taskDag?.all() ?? [], null, 2);
467
+ },
292
468
  queryFn: this.opts.queryFn,
293
- // Runner resolution: explicit > opencode/kimicode (when MONOMIND_RUNTIME
294
- // selects them) > undefined (session.ts falls back to ClaudeAgentRunner
295
- // via queryFn). Leaving it undefined for the default path is what keeps
296
- // Claude/Antigravity orgs byte-for-byte unchanged.
297
- runner: this.opts.runner
298
- ?? (process.env.MONOMIND_RUNTIME === 'opencode' ? new OpencodeAgentRunner()
299
- : process.env.MONOMIND_RUNTIME === 'kimicode' ? new KimiCodeAgentRunner()
300
- : undefined),
469
+ // Runner resolution: explicit opts.runner > role `runtime` field >
470
+ // org def `runtime` field > MONOMIND_RUNTIME env (opencode/kimicode) >
471
+ // undefined (session.ts falls back to ClaudeAgentRunner via queryFn).
472
+ // Leaving it undefined for the default path is what keeps
473
+ // Claude/Antigravity orgs byte-for-byte unchanged. Session opts are
474
+ // built per role here in spawnRole, so each role gets its own runner.
475
+ runner: this.opts.runner ?? resolveRoleRunner(role.runtime, def.runtime),
301
476
  };
302
477
  // Supervised session: transient crashes (provider blips, network) restart
303
478
  // with backoff; a crash with the mailbox already closed, or one that
@@ -413,6 +588,7 @@ export class OrgDaemon {
413
588
  }
414
589
  running.pendingRoles = pendingRoles;
415
590
  running.spawnRole = spawnRole;
591
+ running.taskDag = new TaskDag();
416
592
  if (worktreePath)
417
593
  running.worktreePath = worktreePath;
418
594
  // Crash cleanup: reap SDK children if this process exits abnormally.
@@ -429,6 +605,25 @@ export class OrgDaemon {
429
605
  };
430
606
  process.on('exit', crashCleanup);
431
607
  running._crashCleanup = crashCleanup;
608
+ // Stale-base drift detection: if the working tree is too many commits behind
609
+ // its tracking branch, warn or refuse to start. Best-effort — git may not be
610
+ // available, or the repo may have no tracking branch.
611
+ const staleThreshold = def.run_config.stale_base_threshold;
612
+ if (staleThreshold && staleThreshold > 0 && cwd === this.root) {
613
+ try {
614
+ const { execSync } = await import('node:child_process');
615
+ const behind = execSync('git rev-list --count HEAD..@{upstream} 2>/dev/null', { cwd, encoding: 'utf8', timeout: 10_000 }).trim();
616
+ const count = parseInt(behind, 10);
617
+ if (!isNaN(count) && count > staleThreshold) {
618
+ bus.emit({
619
+ type: 'audit', reason: 'stale-base',
620
+ msg: `working tree is ${count} commits behind upstream (threshold: ${staleThreshold}) — consider pulling before running`,
621
+ data: { behind: count, threshold: staleThreshold },
622
+ });
623
+ }
624
+ }
625
+ catch { /* no upstream tracking or git unavailable — skip silently */ }
626
+ }
432
627
  const boss = bossRole;
433
628
  // Cross-run memory: brief the coordinator on the previous run so scheduled
434
629
  // orgs accumulate instead of starting cold every interval.
@@ -462,6 +657,10 @@ export class OrgDaemon {
462
657
  const wd = setInterval(() => {
463
658
  if (this.restarting.has(name))
464
659
  return; // boss auto-restart in flight — don't nudge or stop
660
+ // A pending gate means the org is legitimately waiting for human input
661
+ const pendingGates = this.readGates(name).gates.filter(g => g.status === 'pending');
662
+ if (pendingGates.length > 0)
663
+ return;
465
664
  const idleFor = Date.now() - lastActivity;
466
665
  if (idleFor < idleMs) {
467
666
  nudgedAt = 0;
@@ -518,540 +717,12 @@ export class OrgDaemon {
518
717
  bus.emit({ type: 'status', msg: `drained ${queued.length} queued message(s) from inbox` });
519
718
  return running;
520
719
  }
521
- /** A role that failed its resource gate at boot isn't abandoned — keep polling
522
- * for capacity in the background (bounded) and spawn it the moment resources
523
- * free up, instead of silently running the org shorthanded for its whole life.
524
- * Bails quietly if the org is stopped (or restarted under the same name)
525
- * before capacity returns; `running` is compared by identity, not `name`,
526
- * so a stale retry can never spawn into a different run. */
527
- scheduleDeferredSpawn(name, running, role, spawnRole) {
528
- const MAX_ATTEMPTS = 6; // ~30 min of retrying before giving up loudly
529
- (async () => {
530
- for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
531
- const waited = await waitForCapacity(5 * 60_000);
532
- if (this.orgs.get(name) !== running)
533
- return; // org stopped/restarted — abandon quietly
534
- if (waited.ok) {
535
- running.bus.emit({ type: 'audit', from: role.id, reason: 'resource-recovered',
536
- msg: `resources recovered after ${attempt} retr${attempt === 1 ? 'y' : 'ies'} — spawning deferred role "${role.id}"` });
537
- // Drain messages queued while the role was deferred BEFORE spawning
538
- // to prevent race condition where messages arrive during spawn window
539
- const queued = drainInbox(this.root, name);
540
- spawnRole(role);
541
- for (const msg of queued) {
542
- const agent = running.agents.get(msg.toRole);
543
- if (agent && !agent.mailbox.isClosed) {
544
- running.bus.emit({ type: 'xorg', from: msg.fromQualified, to: `${name}:${msg.toRole}`, subject: msg.subject, msg: msg.body });
545
- agent.mailbox.push(this.mailBody(name, running, `[message from ${msg.fromQualified}] subject: ${msg.subject}`, msg.body, `inbox-${msg.ts}-${Math.random().toString(36).slice(2, 8)}`));
546
- }
547
- }
548
- return;
549
- }
550
- running.bus.emit({ type: 'audit', from: role.id, reason: 'resource-pressure',
551
- msg: `still under pressure (attempt ${attempt}/${MAX_ATTEMPTS}) — retrying "${role.id}" spawn: ${waited.reason}` });
552
- }
553
- const missing = this.abandoned.get(name) ?? new Set();
554
- missing.add(role.id);
555
- this.abandoned.set(name, missing);
556
- this.persistState(name, 'running', running.run);
557
- running.bus.emit({ type: 'audit', from: role.id, reason: 'resource-abandoned',
558
- msg: `giving up spawning "${role.id}" after ${MAX_ATTEMPTS} retries — org will run without this role until manually restarted` });
559
- })().catch(err => console.error(`org ${name}: deferred spawn of "${role.id}" failed:`, err instanceof Error ? err.message : err));
560
- }
561
- /**
562
- * Resolves an org_send `to` address ("role" for same-org, "org:role" for
563
- * cross-org) into its parts. Centralizes the one addressing rule that
564
- * matters (an "own-org:role" self-prefix is intra-org, not cross-org) so
565
- * deliver()/deliverRemote() don't each re-derive it — the qualified `to`
566
- * string returned is always the canonical display form for that address.
567
- */
568
- resolveAddress(fromOrg, to) {
569
- const cross = to.includes(':');
570
- if (!cross)
571
- return { cross: false, orgName: fromOrg, role: to, qualified: to };
572
- const [orgName, role] = to.split(':', 2);
573
- if (orgName === fromOrg)
574
- return { cross: false, orgName, role, qualified: role }; // self-prefixed — still intra-org
575
- return { cross: true, orgName, role, qualified: to };
576
- }
577
- /** Mailbox bodies are unbounded — a pasted 20KB file would persist in the
578
- * recipient's context for the whole run. Bodies over MAIL_BODY_MAX are
579
- * written to <org workdir>/.mail/<message-id>.md and replaced with a ~1KB
580
- * digest plus a pointer; smaller messages stay byte-identical. */
581
- mailBody(orgName, org, header, body, id) {
582
- if (body.length <= MAIL_BODY_MAX)
583
- return `${header}\n\n${body}`;
584
- const mailDir = join(org?.workdir ?? join(this.root, ORG_DIR, orgName), '.mail');
585
- const file = join(mailDir, `${id.replace(/[^a-zA-Z0-9_-]/g, '_')}.md`);
586
- try {
587
- mkdirSync(mailDir, { recursive: true });
588
- writeFileSync(file, body);
589
- return `${header}\n\n${body.slice(0, MAIL_DIGEST_CHARS)}\n\n[... truncated — full text at ${file} — Read it if needed]`;
590
- }
591
- catch {
592
- return `${header}\n\n${body}`; // digest write failed — deliver in full rather than lose content
593
- }
594
- }
595
- /** Route a message. to = "role" (same org) or "org:role" (cross-org). Returns a receipt string. */
596
- async deliver(fromOrg, fromRole, to, subject, body) {
597
- const { cross, orgName: targetOrgName, role: targetRole, qualified: toQualified } = this.resolveAddress(fromOrg, to);
598
- const targetOrg = this.orgs.get(targetOrgName);
599
- const src = this.orgs.get(fromOrg);
600
- // Lazy spawn: if the role is pending (not yet spawned), spawn it now.
601
- // ATOMIC GUARD: Check spawning Set to prevent duplicate spawns from concurrent messages
602
- const spawning = this.spawning.get(targetOrgName) ?? new Set();
603
- this.spawning.set(targetOrgName, spawning);
604
- if (targetOrg && !targetOrg.agents.has(targetRole) && targetOrg.pendingRoles?.has(targetRole) && !spawning.has(targetRole)) {
605
- const role = targetOrg.pendingRoles.get(targetRole);
606
- targetOrg.pendingRoles.delete(targetRole);
607
- spawning.add(targetRole); // Mark as spawning before async work
608
- const check = checkResources();
609
- if (!check.ok) {
610
- const waited = await waitForCapacity(60_000);
611
- spawning.delete(targetRole); // Clear spawning flag after check
612
- if (!waited.ok) {
613
- targetOrg.bus.emit({ type: 'audit', from: targetRole, reason: 'resource-skip',
614
- msg: `deferring lazy spawn of "${targetRole}": ${waited.reason}` });
615
- // Queue the triggering message so it survives the deferred spawn — without
616
- // this the sender got "queued" but the message was silently lost.
617
- // B5 FIX: Queue FIRST, then schedule spawn only if queue succeeds.
618
- // If queueing fails, we return the error without modifying spawn state.
619
- const queued = queueMessage(this.root, targetOrgName, {
620
- fromQualified: cross ? `${fromOrg}:${fromRole}` : fromRole,
621
- toRole: targetRole, subject, body, ts: Date.now(),
622
- });
623
- if (!queued) {
624
- src?.bus.emit({ type: 'audit', from: fromRole, to: toQualified, msg: `queue failed: ${subject}`, reason: 'queue-failed' });
625
- return `ERROR: could not queue message for ${toQualified} (disk full or permissions)`;
626
- }
627
- this.scheduleDeferredSpawn(targetOrgName, targetOrg, role, targetOrg.spawnRole);
628
- return `queued for ${toQualified} (role starting — waiting for resources)`;
629
- }
630
- }
631
- targetOrg.spawnRole(role);
632
- spawning.delete(targetRole); // Clear spawning flag after spawn completes
633
- targetOrg.bus.emit({ type: 'status', from: targetRole, msg: `lazy-spawned on first message from ${fromRole}` });
634
- }
635
- if (!targetOrg || !targetOrg.agents.has(targetRole)) {
636
- if (cross && this.opts.crossProcess)
637
- return this.deliverRemote(fromOrg, fromRole, targetOrgName, targetRole, toQualified, subject, body, src);
638
- // Queue + auto-wake: if the org definition exists locally but isn't running, spool the message and start it
639
- if (cross && this.hasOrgDef(targetOrgName)) {
640
- const queued = queueMessage(this.root, targetOrgName, { fromQualified: `${fromOrg}:${fromRole}`, toRole: targetRole, subject, body, ts: Date.now() });
641
- if (!queued) {
642
- src?.bus.emit({ type: 'audit', from: fromRole, to: toQualified, msg: `queue failed: ${subject}`, reason: 'queue-failed' });
643
- return `ERROR: could not queue message for ${toQualified} (disk full or permissions)`;
644
- }
645
- src?.bus.emit({ type: 'xorg', from: `${fromOrg}:${fromRole}`, to: toQualified, subject, msg: body, data: { queued: true } });
646
- this.autoWake(targetOrgName);
647
- return `queued for ${toQualified} (org starting)`;
648
- }
649
- src?.bus.emit({ type: 'audit', from: fromRole, to: toQualified, msg: `undeliverable: ${subject}`, reason: 'unknown recipient' });
650
- return `ERROR: unknown recipient "${toQualified}" (known: ${[...(targetOrg?.agents.keys() ?? this.orgs.keys())].join(', ')})`;
651
- }
652
- const targetAgent = targetOrg.agents.get(targetRole);
653
- if (targetAgent.status === 'crashed') {
654
- src?.bus.emit({ type: 'audit', from: fromRole, to: toQualified, msg: `undeliverable: ${subject}`, reason: 'recipient crashed (retry budget exhausted)' });
655
- return `ERROR: recipient "${toQualified}" crashed and will not recover this run — message not delivered (${targetAgent.error ?? 'unknown error'})`;
656
- }
657
- if (targetAgent.mailbox.isClosed) {
658
- // Distinguish two cases that used to share one drop:
659
- // - org mid-shutdown: nothing will ever read the queue again — the
660
- // message genuinely can't be delivered, so report the real outcome.
661
- // - agent session ended but the org is alive (budget exhaustion,
662
- // turn limit, crash-restart in flight): the result is still
663
- // valuable, so persist it to the inbox. The boss-restart/next-run
664
- // drainInbox will deliver it instead of the work vanishing.
665
- if (this.stopping.has(targetOrgName)) {
666
- src?.bus.emit({ type: 'audit', from: fromRole, to: toQualified, msg: `undeliverable: ${subject}`, reason: 'target mailbox closed (org shutting down)' });
667
- return `ERROR: recipient "${toQualified}" is shutting down — message not delivered`;
668
- }
669
- const q = queueMessage(this.root, targetOrgName, { fromQualified: `${fromOrg}:${fromRole}`, toRole: targetRole, subject, body, ts: Date.now() });
670
- src?.bus.emit({ type: 'audit', from: fromRole, to: toQualified, msg: `recipient session closed — queued to inbox: ${subject}`, data: { queued: q } });
671
- return `queued to inbox for ${toQualified} (recipient session closed; will be delivered on restart)`;
672
- }
673
- // Track message chain: link this message to the target's last message (the one being responded to)
674
- const targetAgentSrc = targetOrg === src ? src?.agents.get(targetRole) : undefined;
675
- const parentId = targetAgentSrc?.lastMessageId;
676
- const evt = { from: cross ? `${fromOrg}:${fromRole}` : fromRole, to: toQualified, subject, msg: body, parentId };
677
- const emitted = src?.bus.emit({ type: cross ? 'xorg' : 'message', ...evt });
678
- if (cross && targetOrg !== src)
679
- targetOrg.bus.emit({ type: 'xorg', ...evt });
680
- // Store message ID for the target (so responses can link to it)
681
- if (targetAgentSrc && emitted)
682
- targetAgentSrc.lastMessageId = emitted.id;
683
- // Also track the source agent's last sent message for cross-org visibility
684
- const srcAgent = src?.agents.get(fromRole);
685
- if (srcAgent && emitted)
686
- srcAgent.lastMessageId = emitted.id;
687
- targetAgent.mailbox.push(this.mailBody(targetOrgName, targetOrg, `[message from ${evt.from}] subject: ${subject}`, body, emitted?.id ?? `mail-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`));
688
- return `delivered to ${toQualified}`;
689
- }
690
- /** Cross-process leg of deliver(): ask the machine-local broker who hosts targetOrgName, then POST over HTTP.
691
- * `to` here is always the fully-qualified "org:role" display form (resolveAddress already normalized it). */
692
- async deliverRemote(fromOrg, fromRole, targetOrgName, targetRole, to, subject, body, src) {
693
- const remote = lookupOrg(targetOrgName, this.opts.brokerDir);
694
- if (!remote) {
695
- // No remote host either — queue + auto-wake if the org def exists locally
696
- if (this.hasOrgDef(targetOrgName)) {
697
- const queued = queueMessage(this.root, targetOrgName, { fromQualified: `${fromOrg}:${fromRole}`, toRole: targetRole, subject, body, ts: Date.now() });
698
- if (!queued) {
699
- src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `queue failed: ${subject}`, reason: 'queue-failed' });
700
- return `ERROR: could not queue message for ${to} (disk full or permissions)`;
701
- }
702
- src?.bus.emit({ type: 'xorg', from: `${fromOrg}:${fromRole}`, to, subject, msg: body, data: { queued: true } });
703
- this.autoWake(targetOrgName);
704
- return `queued for ${to} (org starting)`;
705
- }
706
- src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `undeliverable: ${subject}`, reason: 'unknown recipient' });
707
- return `ERROR: unknown recipient "${to}" (no local org, and no process on this machine has org "${targetOrgName}" registered)`;
708
- }
709
- try {
710
- const res = await fetch(`${remote.url}/api/xdeliver`, {
711
- method: 'POST',
712
- headers: {
713
- 'Content-Type': 'application/json',
714
- ...(remote.credential ? { 'x-monomind-cred': remote.credential } : {}),
715
- },
716
- body: JSON.stringify({ fromOrg, fromRole, toOrg: targetOrgName, toRole: targetRole, subject, body }),
717
- signal: AbortSignal.timeout(10_000),
718
- });
719
- const data = await res.json().catch(() => ({}));
720
- if (res.ok && data.ok) {
721
- src?.bus.emit({ type: 'xorg', from: `${fromOrg}:${fromRole}`, to, subject, msg: body });
722
- return data.receipt ?? `delivered to ${to} (remote)`;
723
- }
724
- src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `remote delivery rejected: ${data.error ?? res.status}`, reason: 'remote-delivery-rejected' });
725
- return `ERROR: remote org "${to}" rejected delivery: ${data.error ?? res.status}`;
726
- }
727
- catch (err) {
728
- const message = err instanceof Error ? err.message : String(err);
729
- src?.bus.emit({ type: 'audit', from: fromRole, to, msg: `remote delivery failed: ${message}`, reason: 'remote-delivery-failed' });
730
- return `ERROR: remote org "${targetOrgName}" unreachable: ${message}`;
731
- }
732
- }
733
- /** Inbound handler for cross-process delivery — called by the server's POST /api/xdeliver route
734
- * when ANOTHER process's deliverRemote() reaches this daemon. Pushes straight into the target
735
- * agent's mailbox; the agent picks it up on its own next turn (see Mailbox — never interrupts). */
736
- receiveRemote(toOrg, toRole, fromQualified, subject, body) {
737
- const org = this.orgs.get(toOrg);
738
- if (!org) {
739
- // Org not running — queue the message and auto-wake if the def exists
740
- if (this.hasOrgDef(toOrg)) {
741
- const queued = queueMessage(this.root, toOrg, { fromQualified, toRole, subject, body, ts: Date.now() });
742
- if (!queued) {
743
- return { ok: false, error: `could not queue message for ${toOrg}:${toRole} (disk full or permissions)` };
744
- }
745
- this.autoWake(toOrg);
746
- return { ok: true, receipt: `queued for ${toOrg}:${toRole} (org waking)` };
747
- }
748
- return { ok: false, error: `org "${toOrg}" not hosted here` };
749
- }
750
- // Lazy-spawn pending roles on cross-process delivery (matches deliver/answerQuestion)
751
- // ATOMIC GUARD: Check spawning Set to prevent duplicate spawns from concurrent messages
752
- const spawning = this.spawning.get(toOrg) ?? new Set();
753
- this.spawning.set(toOrg, spawning);
754
- if (!org.agents.has(toRole) && org.pendingRoles?.has(toRole) && !spawning.has(toRole)) {
755
- const role = org.pendingRoles.get(toRole);
756
- org.pendingRoles.delete(toRole);
757
- spawning.add(toRole); // Mark as spawning before async work
758
- // Resource gate check before spawning (prevents bypass in cross-process delivery)
759
- const check = checkResources();
760
- if (!check.ok) {
761
- spawning.delete(toRole); // Clear spawning flag after check
762
- org.bus.emit({ type: 'audit', from: toRole, reason: 'resource-pressure',
763
- msg: `cross-process lazy spawn deferred: ${check.reason}` });
764
- // B4 FIX: Queue the triggering message FIRST, then schedule spawn only if queue succeeds.
765
- // This matches the pattern in deliver() and prevents message loss if queue fails.
766
- const queued = queueMessage(this.root, toOrg, { fromQualified, toRole, subject, body, ts: Date.now() });
767
- if (!queued) {
768
- return { ok: false, error: `could not queue message for ${toOrg}:${toRole} (disk full or permissions)` };
769
- }
770
- this.scheduleDeferredSpawn(toOrg, org, role, org.spawnRole);
771
- return { ok: true, receipt: `queued for ${toOrg}:${toRole} (role starting — waiting for resources)` };
772
- }
773
- org.spawnRole?.(role);
774
- spawning.delete(toRole); // Clear spawning flag after spawn completes
775
- org.bus.emit({ type: 'status', from: toRole, msg: `lazy-spawned on remote delivery from ${fromQualified}` });
776
- }
777
- const agent = org.agents.get(toRole);
778
- if (!agent)
779
- return { ok: false, error: `role "${toRole}" not found in org "${toOrg}"` };
780
- if (agent.status === 'crashed')
781
- return { ok: false, error: `role "${toRole}" in org "${toOrg}" crashed and will not recover this run` };
782
- if (agent.mailbox.isClosed)
783
- return { ok: false, error: `role "${toRole}" in org "${toOrg}" is shutting down` };
784
- const messageEvent = org.bus.emit({ type: 'xorg', from: fromQualified, to: `${toOrg}:${toRole}`, subject, msg: body });
785
- agent.lastMessageId = messageEvent.id; // Track last message ID for response threading
786
- agent.mailbox.push(this.mailBody(toOrg, org, `[message from ${fromQualified}] subject: ${subject}`, body, messageEvent.id));
787
- return { ok: true, receipt: `delivered to ${toOrg}:${toRole} (remote)` };
788
- }
720
+ /** @internal */
789
721
  hasOrgDef(name) {
790
722
  if (!/^[a-z0-9][a-z0-9_-]{0,63}$/i.test(name))
791
723
  return false;
792
724
  return existsSync(join(this.root, ORG_DIR, `${name}.json`));
793
725
  }
794
- questionsPath(org) {
795
- return join(this.root, ORG_DIR, org, 'questions.json');
796
- }
797
- readQuestions(org) {
798
- try {
799
- return JSON.parse(readFileSync(this.questionsPath(org), 'utf8'));
800
- }
801
- catch {
802
- return { questions: [] };
803
- }
804
- }
805
- writeQuestions(org, data) {
806
- const dest = this.questionsPath(org);
807
- mkdirSync(join(this.root, ORG_DIR, org), { recursive: true });
808
- const tmp = `${dest}.${process.pid}.tmp`;
809
- writeFileSync(tmp, JSON.stringify(data, null, 2));
810
- renameSync(tmp, dest);
811
- }
812
- /** Check if an action requires human approval (beforeTool hook for guardrails). Returns
813
- * the approval decision: true = approved, false = denied, null = pending (requires human input). */
814
- async checkApproval(org, role, action) {
815
- const approvalKey = `${org}:${role}:${action}`;
816
- const pending = this.approvals.get(org) ?? [];
817
- const existing = pending.find(a => a.roleId === role && a.action === action);
818
- // If already approved/denied, return that decision
819
- if (existing && existing.approved !== null)
820
- return existing.approved;
821
- // Require human approval for sensitive actions
822
- const sensitiveActions = ['Bash', 'WebFetch', 'WebSearch', 'org_complete'];
823
- if (sensitiveActions.includes(action)) {
824
- // Queue for approval
825
- if (!existing) {
826
- pending.push({ roleId: role, action, question: `Approve ${action} tool call?`, ts: Date.now(), approved: null });
827
- this.approvals.set(org, pending);
828
- }
829
- // Persist to approvals.json
830
- const approvalsPath = join(this.root, ORG_DIR, org, 'approvals.json');
831
- mkdirSync(join(this.root, ORG_DIR, org), { recursive: true });
832
- writeFileSync(approvalsPath, JSON.stringify({ approvals: pending }, null, 2));
833
- // Emit a question event for the dashboard
834
- const running = this.orgs.get(org);
835
- running?.bus.emit({ type: 'question', from: role, data: { question: `Approval required for ${action}`, action } });
836
- return null; // Pending human approval
837
- }
838
- return true; // Auto-approved for non-sensitive actions
839
- }
840
- /** Approve or deny a pending action (called by dashboard or CLI). */
841
- async setApproval(org, role, action, approved) {
842
- const pending = this.approvals.get(org) ?? [];
843
- const item = pending.find(a => a.roleId === role && a.action === action);
844
- if (!item)
845
- return { ok: false, error: `No pending approval found for ${role} action ${action}` };
846
- item.approved = approved;
847
- item.ts = Date.now();
848
- // Persist updated approval state
849
- const approvalsPath = join(this.root, ORG_DIR, org, 'approvals.json');
850
- writeFileSync(approvalsPath, JSON.stringify({ approvals: pending }, null, 2));
851
- // Notify the waiting agent via its mailbox
852
- const running = this.orgs.get(org);
853
- const agent = running?.agents.get(role);
854
- if (agent && !agent.mailbox.isClosed) {
855
- agent.mailbox.push(`[approval] ${action}: ${approved ? 'APPROVED' : 'DENIED'}`);
856
- }
857
- running?.bus.emit({ type: 'status', from: role, msg: `Approval ${approved ? 'granted' : 'denied'} for ${action}` });
858
- return { ok: true };
859
- }
860
- /** Time-travel debugging: replay from a specific checkpoint by run ID.
861
- * Creates a fresh daemon instance and replays events from the target run's bus.jsonl. */
862
- async replayFrom(name, run) {
863
- const runDir = join(this.root, ORG_DIR, name, run);
864
- if (!existsSync(runDir))
865
- return null;
866
- const busFile = join(runDir, 'bus.jsonl');
867
- if (!existsSync(busFile))
868
- return null;
869
- // Create a replay org with a fresh run ID
870
- const replayRun = `replay-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14)}-${Math.random().toString(36).slice(2, 6)}`;
871
- const replayDir = join(this.root, ORG_DIR, name, replayRun);
872
- mkdirSync(replayDir, { recursive: true });
873
- // Read original events
874
- const events = readFileSync(busFile, 'utf8').split('\n').filter(Boolean)
875
- .map(l => { try {
876
- return JSON.parse(l);
877
- }
878
- catch {
879
- return null;
880
- } })
881
- .filter((e) => e !== null);
882
- if (!events.length)
883
- return null;
884
- // Load org definition
885
- const defPath = join(this.root, ORG_DIR, `${name}.json`);
886
- if (!existsSync(defPath))
887
- return null;
888
- const def = OrgDefSchema.parse(JSON.parse(readFileSync(defPath, 'utf8')));
889
- // Create replay bus
890
- const bus = new OrgBus(name, replayRun, replayDir);
891
- const MAX_COLLECTED = 1000;
892
- const collected = [];
893
- bus.subscribe(e => {
894
- const slim = e.data?.content != null
895
- ? { ...e, data: { ...e.data, content: undefined } }
896
- : e;
897
- collected.push(slim);
898
- if (collected.length > MAX_COLLECTED)
899
- collected.splice(0, collected.length - MAX_COLLECTED);
900
- for (const fn of this.globalSubscribers)
901
- fn(e);
902
- });
903
- const running = { def, run: replayRun, bus, agents: new Map(), busEvents: () => [...collected] };
904
- // Reemit events into the replay bus with updated timestamps
905
- const startTime = Date.now();
906
- for (const e of events) {
907
- const replayEvent = { ...e, org: name, run: replayRun, ts: startTime };
908
- bus.emit(replayEvent);
909
- }
910
- this.orgs.set(name, running);
911
- bus.emit({ type: 'status', msg: `replay started from ${run} (${events.length} events replayed)` });
912
- this.persistState(name, 'running', replayRun);
913
- return running;
914
- }
915
- /** Agent-initiated human question (ask_human tool). Persists to questions.json (survives
916
- * process/dashboard restarts) and emits a 'question' BusEvent so the dashboard's SSE
917
- * stream and global inbox pick it up in real time. Returns a receipt string for the tool call. */
918
- async askHuman(org, role, question) {
919
- const running = this.orgs.get(org);
920
- const questionId = `q-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
921
- const data = this.readQuestions(org);
922
- data.questions.push({ questionId, role, question, ts: Date.now(), answer: null, answeredAt: null });
923
- this.writeQuestions(org, data);
924
- running?.bus.emit({ type: 'question', from: role, data: { questionId, question } });
925
- return `Question recorded (id ${questionId}) — a human will answer it; you'll receive the answer as a new message.`;
926
- }
927
- /** Delivers a human's answer to a pending ask_human question. If the org is still
928
- * running, pushes straight into the role's live mailbox (picked up on its very next
929
- * generator tick — see Mailbox.stream()). If the org has since stopped, queues the
930
- * answer via the same offline fallback deliver()/receiveRemote() already use
931
- * (inbox.ts + autoWake) and it's delivered when the org next starts.
932
- *
933
- * PERSIST-AFTER-DELIVERY: questions.json is only marked answered once delivery has
934
- * actually happened (mailbox push, or the message landing in inbox.jsonl). Marking it
935
- * first meant a rejected delivery — unknown role, mailbox closed mid-shutdown, a
936
- * queueMessage that threw on a full/read-only disk — left the question recorded as
937
- * answered while nobody ever received the answer, and the `already answered` guard
938
- * then refused every retry. The answer was simply gone. The inverse failure (crash
939
- * between delivery and the write) merely re-shows the question as pending, which a
940
- * human can act on; a silently swallowed answer is not recoverable. */
941
- async answerQuestion(org, role, questionId, answer) {
942
- const data = this.readQuestions(org);
943
- const idx = data.questions.findIndex(q => q.questionId === questionId);
944
- if (idx === -1)
945
- return { ok: false, error: `question "${questionId}" not found for org "${org}"` };
946
- if (data.questions[idx].answer !== null)
947
- return { ok: false, error: `question "${questionId}" already answered` };
948
- const question = data.questions[idx].question;
949
- // Applied to questions.json ONLY after the delivery below succeeds.
950
- const markAnswered = () => {
951
- // Re-read so a question the daemon appended (or answered) meanwhile isn't
952
- // clobbered by this stale snapshot — merge by questionId, never replace.
953
- const fresh = this.readQuestions(org);
954
- const fIdx = fresh.questions.findIndex(q => q.questionId === questionId);
955
- if (fIdx === -1)
956
- fresh.questions.push({ ...data.questions[idx], answer, answeredAt: Date.now() });
957
- else
958
- fresh.questions[fIdx] = { ...fresh.questions[fIdx], answer, answeredAt: Date.now() };
959
- this.writeQuestions(org, fresh);
960
- };
961
- const running = this.orgs.get(org);
962
- if (running) {
963
- // Org IS running — deliver or report a real error, but never fall through to the
964
- // offline queue+autoWake path below: autoWake() no-ops when this.orgs already has
965
- // the org (see its own guard), so a role-specific delivery failure here (mailbox
966
- // closed, role unknown) would otherwise queue the answer forever with no real error
967
- // and no delivery. Mirrors deliver()'s existing "shutting down" error for the same
968
- // mid-shutdown-mailbox-closed race.
969
- // Spawn a lazily-deferred role before giving up on it. Roles are no longer
970
- // all spawned at boot, so `agents` legitimately lacks a role that simply
971
- // has not been needed yet — and rejecting on that dropped the human's
972
- // answer with "role not found" for a role that exists and is about to
973
- // run. deliver() does the same lookup; a human answer must not be the one
974
- // delivery path that cannot wake a role.
975
- if (!running.agents.has(role) && running.pendingRoles?.has(role)) {
976
- const pending = running.pendingRoles.get(role);
977
- running.pendingRoles.delete(role);
978
- running.spawnRole?.(pending);
979
- }
980
- const agent = running.agents.get(role);
981
- if (!agent)
982
- return { ok: false, error: `role "${role}" not found in org "${org}"` };
983
- if (agent.mailbox.isClosed)
984
- return { ok: false, error: `role "${role}" in org "${org}" is shutting down — answer not delivered` };
985
- try {
986
- agent.mailbox.push(`[answer from human] question: ${question}\n\nanswer: ${answer}`);
987
- }
988
- catch (err) {
989
- return { ok: false, error: `delivery to "${role}" in org "${org}" failed — answer not recorded (${err instanceof Error ? err.message : String(err)})` };
990
- }
991
- markAnswered();
992
- running.bus.emit({ type: 'status', from: role, msg: 'question answered', data: { questionId } });
993
- return { ok: true };
994
- }
995
- // Org not running at all — queue for delivery on next start, matching deliver()'s
996
- // existing offline fallback exactly (inbox.ts + autoWake).
997
- if (!this.hasOrgDef(org))
998
- return { ok: false, error: `org "${org}" not found (no saved definition)` };
999
- const queued = queueMessage(this.root, org, {
1000
- fromQualified: 'human', toRole: role,
1001
- subject: `answer:${questionId}`,
1002
- body: `question: ${question}\n\nanswer: ${answer}`,
1003
- ts: Date.now(),
1004
- });
1005
- if (!queued) {
1006
- return { ok: false, error: `could not queue answer for org "${org}" — answer not recorded (disk full or permissions)` };
1007
- }
1008
- markAnswered();
1009
- this.autoWake(org);
1010
- return { ok: true };
1011
- }
1012
- /** Start an offline org in the background so queued messages get drained.
1013
- * Fire-and-forget — errors are logged but don't propagate to the sender. */
1014
- autoWake(name) {
1015
- if (this.orgs.has(name) || this.waking.has(name))
1016
- return;
1017
- this.waking.add(name);
1018
- this.startOrg(name)
1019
- .catch(err => { console.error(`auto-wake org "${name}" failed:`, err instanceof Error ? err.message : err); })
1020
- .finally(() => { this.waking.delete(name); });
1021
- }
1022
- /** #4: bounded whole-org restart after the boss terminally crashes. Stops the
1023
- * dead run and re-launches it with fresh sessions (shedding any bloated
1024
- * context). Capped at MAX_BOSS_RESTARTS per explicit start so a crashing boss
1025
- * can't loop forever; beyond the cap it gives up and lets the idle watchdog
1026
- * shut the run down for a human. */
1027
- scheduleBossRestart(name) {
1028
- if (this.stopping.has(name) || this.restarting.has(name))
1029
- return;
1030
- const count = this.bossRestartCounts.get(name) ?? 0;
1031
- const bus = this.orgs.get(name)?.bus;
1032
- if (count >= OrgDaemon.MAX_BOSS_RESTARTS) {
1033
- bus?.emit({ type: 'audit', reason: 'boss-restart-exhausted',
1034
- msg: `boss crashed again after ${count} auto-restart(s) — giving up; manual restart required` });
1035
- return;
1036
- }
1037
- const backoffSchedule = this.opts.bossRestartBackoffMs ?? OrgDaemon.BOSS_RESTART_BACKOFF_MS;
1038
- const backoff = backoffSchedule[Math.min(count, backoffSchedule.length - 1)];
1039
- this.bossRestartCounts.set(name, count + 1);
1040
- this.restarting.add(name);
1041
- bus?.emit({ type: 'audit', reason: 'boss-restart',
1042
- msg: `boss crashed — auto-restarting org with fresh sessions in ${Math.round(backoff / 1000)}s (attempt ${count + 1}/${OrgDaemon.MAX_BOSS_RESTARTS})` });
1043
- const t = setTimeout(() => {
1044
- if (this.stopping.has(name)) {
1045
- this.restarting.delete(name);
1046
- return;
1047
- } // a manual stop won
1048
- this.stopOrg(name)
1049
- .then(() => (this.stopping.has(name) ? null : this.startOrg(name)))
1050
- .then(() => { this.restarting.delete(name); })
1051
- .catch(err => { this.restarting.delete(name); console.error(`org ${name}: boss auto-restart failed:`, err instanceof Error ? err.message : err); });
1052
- }, backoff);
1053
- t.unref?.();
1054
- }
1055
726
  /** @param opts.drainMs how long to let in-flight agent sessions finish before
1056
727
  * reaping. Defaults to the short abort bound; the planned-completion path
1057
728
  * passes a far longer window (see COMPLETE_DRAIN_MS). */
@@ -1175,406 +846,33 @@ export class OrgDaemon {
1175
846
  // Pass the org directly since we already removed it from the map.
1176
847
  if (!this.orgs.has(name))
1177
848
  this.persistState(name, 'stopped', org.run, org, stopCheckpoint);
1178
- // Clean up git worktree if one was created for this run.
1179
- if (org.worktreePath) {
1180
- try {
1181
- const { execSync } = await import('node:child_process');
1182
- execSync(`git worktree remove --force "${org.worktreePath}"`, { cwd: this.root, stdio: 'ignore' });
1183
- }
1184
- catch { /* best-effort — stale worktree can be cleaned up manually */ }
1185
- }
1186
- }
1187
- async stopAll() {
1188
- await Promise.all([
1189
- ...[...this.orgs.keys()].map(n => this.stopOrg(n)),
1190
- ...this.stopping.values(), // detached self-stops still flushing
1191
- ]);
1192
- }
1193
- orgMemoryNamespace(name, def) {
1194
- return def.run_config.memory_namespace ?? `org:${name}`;
1195
- }
1196
- /** Store dir for org cross-run memory — inside the org root so the bridge's
1197
- * path guard accepts it when the daemon runs from the project (the normal
1198
- * case) and test roots stay isolated. */
1199
- orgMemoryDbPath() {
1200
- return join(this.root, '.monomind', 'org-memory');
1201
- }
1202
- /** The memory bridge's traversal guard silently redirects out-of-tree paths
1203
- * to the per-project default store. For an org rooted outside cwd (tests,
1204
- * unusual daemon setups) that redirect would write into the WRONG project's
1205
- * memory — verify the guard kept our path, and skip org memory otherwise. */
1206
- async orgMemoryUsable() {
849
+ // Clean up git worktrees — shared (workspace: 'worktree') and per-role.
1207
850
  try {
1208
- const { bridgeGetDbPath } = await import('../memory/memory-bridge.js');
1209
- const want = this.orgMemoryDbPath();
1210
- const got = bridgeGetDbPath(want);
1211
- const { realpathSync } = await import('node:fs');
1212
- const real = (p) => { try {
1213
- return realpathSync(p);
1214
- }
1215
- catch {
1216
- return p;
1217
- } };
1218
- return real(got) === real(want);
1219
- }
1220
- catch {
1221
- return false;
1222
- }
1223
- }
1224
- /** Namespace for a role's PRIVATE memories, inside the org memory DB. */
1225
- agentMemoryNamespace(name, def, role) {
1226
- return `agent:${this.orgMemoryNamespace(name, def)}:${role}`;
1227
- }
1228
- /** org_remember implementation: a deliberate write to org-shared or
1229
- * role-private memory (both in the org memory DB, split by namespace). */
1230
- async rememberOrgMemory(name, def, role, content, scope, run) {
1231
- try {
1232
- if (!(await this.orgMemoryUsable()))
1233
- return 'org memory is not available in this environment.';
1234
- const { bridgeStoreEntry } = await import('../memory/memory-bridge.js');
1235
- const namespace = scope === 'agent' ? this.agentMemoryNamespace(name, def, role) : this.orgMemoryNamespace(name, def);
1236
- const res = await bridgeStoreEntry({
1237
- key: `mem-${run}-${Date.now().toString(36)}`,
1238
- value: content.slice(0, 20_000),
1239
- namespace,
1240
- dbPath: this.orgMemoryDbPath(),
1241
- tags: [scope, role],
1242
- metadata: { origin_refs: [`run:${run}`], by: role },
1243
- });
1244
- if (res?.duplicate)
1245
- return `Already remembered (near-duplicate exists) — reinforced instead.`;
1246
- return res?.success ? `Remembered (${scope} scope).` : `Could not store memory${res?.error ? `: ${res.error}` : ''}.`;
1247
- }
1248
- catch (err) {
1249
- return `org_remember failed (${err instanceof Error ? err.message : 'error'})`;
1250
- }
1251
- }
1252
- /** Entry IDs served by org_recall during the current run, per org. This is
1253
- * the usage record the run-outcome auto-rating consumes (cognee's
1254
- * used_graph_element_ids pattern) — recall renders text to the agent, so
1255
- * the IDs must be captured here or they're gone. */
1256
- recallUsage = new Map();
1257
- /** org_recall implementation: search the org's memory namespace via the
1258
- * memory bridge (semantic when the local model is available, tokenized
1259
- * keyword otherwise). Failures return a message, never throw into the tool. */
1260
- async recallOrgMemory(name, def, query, role) {
1261
- try {
1262
- if (!(await this.orgMemoryUsable()))
1263
- return { text: 'org memory is not available in this environment.', hits: 0 };
1264
- const bridge = await import('../memory/memory-bridge.js');
1265
- // Shared org memory plus the caller's private agent scope, merged by score.
1266
- const [shared, priv] = await Promise.all([
1267
- bridge.bridgeSearchEntries({
1268
- query, namespace: this.orgMemoryNamespace(name, def), limit: 5, dbPath: this.orgMemoryDbPath(),
1269
- }),
1270
- role ? bridge.bridgeSearchEntries({
1271
- query, namespace: this.agentMemoryNamespace(name, def, role), limit: 3, dbPath: this.orgMemoryDbPath(),
1272
- }) : null,
1273
- ]);
1274
- const results = [
1275
- ...(shared?.results ?? []),
1276
- ...(priv?.results ?? []).map(r => ({ ...r, key: `${r.key} (private)` })),
1277
- ].sort((a, b) => b.score - a.score).slice(0, 6);
1278
- if (!results.length)
1279
- return { text: 'No matching org memory found — this may be the first run covering this topic.', hits: 0 };
1280
- const ids = results.map(r => r.id).filter(Boolean);
1281
- let used = this.recallUsage.get(name);
1282
- if (!used) {
1283
- used = new Set();
1284
- this.recallUsage.set(name, used);
1285
- }
1286
- for (const id of ids)
1287
- used.add(id);
1288
- // Frequency reinforcement is immediate; the feedback rating waits for the
1289
- // run outcome (positive-only — see storeRunMemory).
1290
- bridge.bridgeRecordUsage({ entryIds: ids, dbPath: this.orgMemoryDbPath() }).catch(() => { });
1291
- let text = results.map((r, i) => `${i + 1}. [${r.key}] ${r.content.slice(0, 500)}`).join('\n\n');
1292
- // Structured knowledge: relationship triplets from the org KG, when any.
1293
- try {
1294
- const kg = await import('../memory/memory-kg.js');
1295
- const graph = await kg.kgSearch({ query, dbPath: this.orgMemoryDbPath(), limit: 5 });
1296
- if (graph.context)
1297
- text += `\n\nKnowledge graph:\n${graph.context.slice(0, 1024)}`;
1298
- }
1299
- catch { /* best effort */ }
1300
- return { text, hits: results.length };
1301
- }
1302
- catch (err) {
1303
- return { text: `org memory unavailable (${err instanceof Error ? err.message : 'error'})`, hits: 0 };
1304
- }
1305
- }
1306
- /** knowledge_search implementation for org agents: the user's Second Brain
1307
- * (this project's documents + the personal global brain), merged with the
1308
- * same project-first ranking every other surface uses. Failures return a
1309
- * message, never throw into the tool call. */
1310
- async searchProjectKnowledge(query) {
1311
- try {
1312
- const { searchKnowledge } = await import('../knowledge/document-pipeline.js');
1313
- const excerpts = await searchKnowledge(query, { rootDir: this.root, limit: 3, store: 'all' });
1314
- if (!excerpts.length)
1315
- return { text: 'No matching documents in the Second Brain for that query.', hits: 0 };
1316
- const text = excerpts.map((e, i) => `${i + 1}. [${e.filePath || 'unknown'}${e.scope === 'global' ? ' · global' : ''}] (${e.similarity.toFixed(2)})\n${e.text.slice(0, 400)}`).join('\n\n');
1317
- return { text, hits: excerpts.length };
1318
- }
1319
- catch (err) {
1320
- return { text: `knowledge search unavailable (${err instanceof Error ? err.message : 'error'})`, hits: 0 };
1321
- }
1322
- }
1323
- /** org_learn implementation: merge coordinator-extracted entities/relations/
1324
- * rules into the org's knowledge graph (LLM extraction happens inside the
1325
- * agent's own subscription-auth SDK session — no separate LLM call here). */
1326
- orgLearnedRuns = new Set();
1327
- async learnOrgKnowledge(name, run, payload) {
1328
- try {
1329
- if (!(await this.orgMemoryUsable()))
1330
- return 'org memory is not available in this environment.';
1331
- const kg = await import('../memory/memory-kg.js');
1332
- const dbPath = this.orgMemoryDbPath();
1333
- const originRef = `run:${run}`;
1334
- const graph = await kg.kgIngest({
1335
- nodes: (payload.nodes ?? []),
1336
- edges: (payload.edges ?? []),
1337
- originRef, dbPath,
1338
- });
1339
- const rules = Array.isArray(payload.rules) && payload.rules.length
1340
- ? await kg.kgIngestRules({ rules: payload.rules, originRef, dbPath })
1341
- : null;
1342
- this.orgLearnedRuns.add(`${name}:${run}`);
1343
- const parts = [
1344
- `entities: +${graph.nodesAdded} new, ${graph.nodesMerged} merged`,
1345
- `relations: +${graph.edgesAdded} new, ${graph.edgesMerged} merged`,
1346
- ];
1347
- if (rules)
1348
- parts.push(`rules: ${rules.accepted} accepted, ${rules.verdicts.filter(v => v.verdict === 'already_known').length} already known`);
1349
- return `Recorded in org knowledge graph — ${parts.join('; ')}. Rollback ref: ${originRef}.`;
1350
- }
1351
- catch (err) {
1352
- return `org_learn failed (${err instanceof Error ? err.message : 'error'})`;
1353
- }
1354
- }
1355
- /** Persist the run's outcome into cross-run org memory so org_recall (and
1356
- * future runs) can find it by meaning, not just recency. Best-effort. */
1357
- async storeRunMemory(name, def, run, summary) {
1358
- try {
1359
- if (!(await this.orgMemoryUsable()))
1360
- return;
1361
- const { bridgeStoreEntry } = await import('../memory/memory-bridge.js');
1362
- const when = summary.endedAt ? new Date(summary.endedAt).toISOString().slice(0, 10) : '';
1363
- const lines = [
1364
- `Org run ${run}${when ? ` (${when})` : ''} — goal: ${def.goal}`,
1365
- summary.outcome
1366
- ? `Outcome: ${summary.outcome.status} — ${summary.outcome.summary}`
1367
- : `Outcome: not recorded (${summary.messages} messages exchanged)`,
1368
- summary.assets.length ? `Assets produced: ${summary.assets.slice(0, 10).join(', ')}` : '',
1369
- summary.crashes.length ? `Crashed agents: ${summary.crashes.join(', ')}` : '',
1370
- ].filter(Boolean);
1371
- await bridgeStoreEntry({
1372
- key: `run-${run}`,
1373
- value: lines.join('\n'),
1374
- namespace: this.orgMemoryNamespace(name, def),
1375
- dbPath: this.orgMemoryDbPath(),
1376
- upsert: true,
1377
- });
1378
- // Heuristic KG fallback: if the coordinator never called org_learn this
1379
- // run, extract lower-trust entities from the outcome summary so the
1380
- // graph still accumulates something. LLM-quality extraction only comes
1381
- // from org_learn (the agent's own session).
1382
- if (!this.orgLearnedRuns.delete(`${name}:${run}`)) {
851
+ const { execSync } = await import('node:child_process');
852
+ if (org.worktreePath) {
1383
853
  try {
1384
- const kg = await import('../memory/memory-kg.js');
1385
- const extracted = kg.heuristicExtract(lines.join('\n'), { sourceName: `run:${run}` });
1386
- if (extracted.nodes.length) {
1387
- await kg.kgIngest({ ...extracted, originRef: `run:${run}`, dbPath: this.orgMemoryDbPath() });
1388
- }
854
+ execSync(`git worktree remove --force "${org.worktreePath}"`, { cwd: this.root, stdio: 'ignore', timeout: 30_000 });
1389
855
  }
1390
- catch { /* best effort */ }
1391
- }
1392
- // Auto-rate the memories this run recalled — POSITIVE-ONLY: a failed run
1393
- // proves nothing about the recalled memories (the failure may be entirely
1394
- // unrelated), so failure never rates them down. Idempotent per run via
1395
- // the feedback ledger, so a retried stopOrg can't double-apply.
1396
- const used = this.recallUsage.get(name);
1397
- this.recallUsage.delete(name);
1398
- if (used?.size && summary.outcome?.status === 'achieved') {
1399
- const { bridgeApplyFeedback } = await import('../memory/memory-bridge.js');
1400
- await bridgeApplyFeedback({
1401
- entryIds: [...used],
1402
- score: 0.9,
1403
- ledgerKey: `org-${name}-${run}`,
1404
- dbPath: this.orgMemoryDbPath(),
1405
- }).catch(() => { });
856
+ catch { /* best-effort */ }
1406
857
  }
1407
- }
1408
- catch (err) {
1409
- if (process.env.DEBUG || process.env.MONOMIND_DEBUG)
1410
- console.error(`org ${name}: run memory store failed:`, err instanceof Error ? err.message : err);
1411
- }
1412
- }
1413
- /** Resume a previous run from its checkpoint (runtime.json state). Reconstructs
1414
- * the org's agents and mailboxes from the persisted state, enabling time-travel
1415
- * debugging and run recovery after crashes. Returns the resumed RunningOrg or null.
1416
- * Pattern 3: Full state restoration including mailbox queues, policy counters,
1417
- * and session state with TTL and validation. */
1418
- async resumeOrg(name) {
1419
- const rtPath = join(this.root, ORG_DIR, name, 'runtime.json');
1420
- if (!existsSync(rtPath)) {
1421
- console.error('resumeOrg failed: runtime.json missing for', name);
1422
- return null;
1423
- }
1424
- let rt;
1425
- try {
1426
- rt = JSON.parse(readFileSync(rtPath, 'utf8'));
1427
- }
1428
- catch (err) {
1429
- console.error('resumeOrg failed: invalid JSON in runtime.json for', name, err instanceof Error ? err.message : err);
1430
- return null;
1431
- }
1432
- // Allow resume from 'stopped' orgs - the checkpoint contains the running state to restore
1433
- if (!rt?.run || !rt?.checkpoint) {
1434
- console.error('resumeOrg failed: invalid runtime state for', name, 'status:', rt?.status, 'run:', rt?.run, 'checkpoint:', !!rt?.checkpoint);
1435
- return null;
1436
- }
1437
- // Pattern 3: Checkpoint TTL validation - expire stale checkpoints
1438
- if (rt.checkpoint && isCheckpointExpired(rt.checkpoint)) {
1439
- console.error('resumeOrg failed: checkpoint expired for', name, 'updated:', rt.checkpoint.updated);
1440
- return null;
1441
- }
1442
- // Pattern 3: Checksum validation - detect corrupted state
1443
- if (rt.checkpoint && !validateCheckpoint(rt.checkpoint)) {
1444
- console.error('resumeOrg failed: checkpoint validation failed for', name);
1445
- return null;
1446
- }
1447
- // Load the org definition
1448
- const defPath = join(this.root, ORG_DIR, `${name}.json`);
1449
- if (!existsSync(defPath)) {
1450
- console.error('resumeOrg failed: org definition missing for', name);
1451
- return null;
1452
- }
1453
- const def = OrgDefSchema.parse(JSON.parse(readFileSync(defPath, 'utf8')));
1454
- const dir = join(this.root, ORG_DIR, name, rt.run);
1455
- // Check if run directory exists
1456
- if (!existsSync(dir)) {
1457
- console.error('resumeOrg failed: run directory missing', dir);
1458
- return null;
1459
- }
1460
- // Reconstruct the bus from history
1461
- const bus = new OrgBus(name, rt.run, dir);
1462
- const MAX_COLLECTED = 1000;
1463
- const collected = [];
1464
- bus.subscribe(e => {
1465
- const slim = e.data?.content != null
1466
- ? { ...e, data: { ...e.data, content: undefined } }
1467
- : e;
1468
- collected.push(slim);
1469
- if (collected.length > MAX_COLLECTED)
1470
- collected.splice(0, collected.length - MAX_COLLECTED);
1471
- for (const fn of this.globalSubscribers)
1472
- fn(e);
1473
- });
1474
- const running = { def, run: rt.run, bus, agents: new Map(), busEvents: () => [...collected] };
1475
- // Pattern 3: Full checkpoint restoration - reconstruct agents with complete state
1476
- if (rt.checkpoint) {
1477
- const checkpoint = rt.checkpoint;
1478
- // Reconstruct each role from checkpoint state
1479
- for (const [roleId, roleState] of Object.entries(checkpoint.roleState)) {
1480
- const role = def.roles.find(r => r.id === roleId);
1481
- if (!role)
1482
- continue; // Role no longer exists in org definition
1483
- const mailbox = new Mailbox();
1484
- const perRoleBudget = Math.floor((def.run_config.budget_tokens ?? 1_000_000) / def.roles.length);
1485
- const policy = new PolicyEngine(roleId, { maxTokens: perRoleBudget, ...(role.policy ?? {}) }, bus, this.root);
1486
- const runtime = {
1487
- mailbox,
1488
- policy,
1489
- status: roleState.status,
1490
- done: Promise.resolve(),
1491
- metrics: { tokens: roleState.tokensUsed, costUsd: roleState.costUsd },
1492
- lastMessageId: roleState.lastMessageId,
1493
- error: roleState.error,
1494
- };
1495
- // Pattern 3: Restore mailbox queue content (not just closed state)
1496
- if (roleState.mailboxQueue.length > 0) {
1497
- restoreMailboxQueue(runtime, roleState.mailboxQueue);
1498
- }
1499
- // Pattern 3: Restore mailbox closed state
1500
- if (roleState.mailboxClosed) {
1501
- mailbox.close();
1502
- }
1503
- // Pattern 3: Restore policy usage counters
1504
- if (roleState.tokensUsed > 0) {
1505
- policy.setUsage(roleState.tokensUsed);
1506
- }
1507
- running.agents.set(roleId, runtime);
1508
- }
1509
- // Set up pending roles for lazy spawn (roles not in checkpoint)
1510
- const reconstructedRoles = new Set(Object.keys(checkpoint.roleState));
1511
- const pendingRoles = new Map();
1512
- for (const role of def.roles) {
1513
- if (!reconstructedRoles.has(role.id)) {
1514
- pendingRoles.set(role.id, role);
858
+ for (const agent of org.agents.values()) {
859
+ if (agent.worktreePath) {
860
+ try {
861
+ execSync(`git worktree remove --force "${agent.worktreePath}"`, { cwd: this.root, stdio: 'ignore', timeout: 30_000 });
862
+ }
863
+ catch { /* best-effort */ }
1515
864
  }
1516
865
  }
1517
- if (pendingRoles.size > 0) {
1518
- running.pendingRoles = pendingRoles;
1519
- }
1520
866
  }
1521
- // Restore abandoned roles tracking
1522
- if (rt.abandonedRoles) {
1523
- this.abandoned.set(name, new Set(rt.abandonedRoles));
1524
- }
1525
- this.orgs.set(name, running);
1526
- bus.emit({ type: 'status', msg: `org resumed from checkpoint (${rt.run})` });
1527
- this.persistState(name, 'running', rt.run);
1528
- return running;
867
+ catch { /* node:child_process unavailable — skip */ }
1529
868
  }
1530
- /** Create a branch from a checkpoint for "what-if" experiments */
1531
- branchCheckpoint(name, run, branchName) {
1532
- const runDir = join(this.root, ORG_DIR, name, run);
1533
- if (!existsSync(runDir)) {
1534
- return { ok: false, error: `run ${run} not found for org ${name}` };
1535
- }
1536
- const branchRun = `branch-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14)}-${Math.random().toString(36).slice(2, 6)}`;
1537
- const branchDir = join(this.root, ORG_DIR, name, branchRun);
1538
- try {
1539
- mkdirSync(branchDir, { recursive: true });
1540
- // Copy bus.jsonl to branch
1541
- const busFile = join(runDir, 'bus.jsonl');
1542
- if (existsSync(busFile)) {
1543
- const busContent = readFileSync(busFile, 'utf8');
1544
- writeFileSync(join(branchDir, 'bus.jsonl'), busContent);
1545
- }
1546
- // Create branch marker file
1547
- writeFileSync(join(branchDir, '.branch-source'), JSON.stringify({ from: run, branchedAt: new Date().toISOString() }));
1548
- return { ok: true, branchRun };
1549
- }
1550
- catch (err) {
1551
- return { ok: false, error: `failed to create branch: ${err instanceof Error ? err.message : String(err)}` };
1552
- }
1553
- }
1554
- /** Record a structured decision trace for Rifft-style debugging */
1555
- recordDecision(org, role, decision) {
1556
- const running = this.orgs.get(org);
1557
- if (!running)
1558
- return;
1559
- running.bus.emit({
1560
- type: 'audit',
1561
- from: role,
1562
- reason: 'decision-trace',
1563
- data: {
1564
- decisionType: decision.type,
1565
- context: decision.context,
1566
- reasoning: decision.reasoning,
1567
- alternatives: decision.alternatives,
1568
- outcome: decision.outcome,
1569
- ts: new Date().toISOString()
1570
- },
1571
- });
869
+ async stopAll() {
870
+ await Promise.all([
871
+ ...[...this.orgs.keys()].map(n => this.stopOrg(n)),
872
+ ...this.stopping.values(), // detached self-stops still flushing
873
+ ]);
1572
874
  }
1573
- /** Roles that never spawned, per org. An org missing a role is still reported
1574
- * `running` by every status path, so the absence was visible only as one
1575
- * audit line in the log — a run went 40 minutes with no tester and nothing
1576
- * said so. Persisted to runtime.json so `org status` can say it out loud. */
1577
- abandoned = new Map();
875
+ /** @internal */
1578
876
  persistState(name, status, run, org, checkpointOverride) {
1579
877
  const p = join(this.root, ORG_DIR, name, 'runtime.json');
1580
878
  const missing = [...(this.abandoned.get(name) ?? [])];
@@ -1586,11 +884,15 @@ export class OrgDaemon {
1586
884
  if (running) {
1587
885
  checkpoint = captureCheckpoint(running);
1588
886
  }
1589
- writeFileSync(p, JSON.stringify({
887
+ // C4: writeJsonFileAtomic (tmp + rename) — a direct writeFileSync here
888
+ // could leave runtime.json truncated on Ctrl-C during `org stop`, which
889
+ // would brick every subsequent `org status` / isOrgRunning / scheduler
890
+ // call. The state files in 6 other daemon paths already use this helper.
891
+ writeJsonFileAtomic(p, {
1590
892
  status, run, pid: process.pid, updated: new Date().toISOString(),
1591
893
  ...(missing.length ? { abandonedRoles: missing } : {}),
1592
894
  ...(checkpoint ? { checkpoint } : {}),
1593
- }, null, 2));
895
+ });
1594
896
  }
1595
897
  /** Mark every currently-running org as crashed in runtime.json.
1596
898
  * Called from process-level crash handlers — must be synchronous and best-effort. */
@@ -1598,10 +900,12 @@ export class OrgDaemon {
1598
900
  for (const [name, org] of this.orgs) {
1599
901
  try {
1600
902
  const p = join(this.root, ORG_DIR, name, 'runtime.json');
1601
- writeFileSync(p, JSON.stringify({
903
+ // C4: atomic write — crash handler is the most likely place to hit
904
+ // a partial write since the process is mid-teardown.
905
+ writeJsonFileAtomic(p, {
1602
906
  status: 'crashed', run: org.run, pid: process.pid,
1603
907
  updated: new Date().toISOString(), closedBy: 'crash-handler',
1604
- }, null, 2));
908
+ });
1605
909
  }
1606
910
  catch { /* best effort — filesystem may be unavailable */ }
1607
911
  }
@@ -1615,10 +919,12 @@ export class OrgDaemon {
1615
919
  try {
1616
920
  const p = this.heartbeatPath();
1617
921
  mkdirSync(join(this.root, '.monomind'), { recursive: true });
1618
- writeFileSync(p, JSON.stringify({
922
+ // C4: atomic write — heartbeat corruption is how `org status` reports
923
+ // a phantom daemon after a crash.
924
+ writeJsonFileAtomic(p, {
1619
925
  pid: process.pid, updatedAt: new Date().toISOString(),
1620
926
  running: this.listRunning(),
1621
- }, null, 2));
927
+ });
1622
928
  }
1623
929
  catch { /* best effort */ }
1624
930
  }
@@ -1628,5 +934,89 @@ export class OrgDaemon {
1628
934
  }
1629
935
  catch { /* already gone or never written */ }
1630
936
  }
937
+ // ── Delegated methods — extracted to focused modules ──────────────────
938
+ // approvals.ts
939
+ checkApproval(org, role, action) {
940
+ return approvalOps.checkApproval(this, org, role, action);
941
+ }
942
+ async setApproval(org, role, action, approved) {
943
+ return approvalOps.setApproval(this, org, role, action, approved);
944
+ }
945
+ // questions.ts
946
+ async askHuman(org, role, question) {
947
+ return questionOps.askHuman(this, org, role, question);
948
+ }
949
+ async answerQuestion(org, role, questionId, answer) {
950
+ return questionOps.answerQuestion(this, org, role, questionId, answer);
951
+ }
952
+ // decisions.ts
953
+ readGates(org) {
954
+ return decisionOps.readGates(this.root, org);
955
+ }
956
+ async createGate(org, role, name, description) {
957
+ return decisionOps.createGate(this, org, role, name, description);
958
+ }
959
+ async resolveGate(org, gateId, approved, resolution, resolvedBy) {
960
+ return decisionOps.resolveGate(this, org, gateId, approved, resolution, resolvedBy);
961
+ }
962
+ listGates(org, status) {
963
+ return decisionOps.listGates(this, org, status);
964
+ }
965
+ dagCreateTask(org, role, title, assignee, deps) {
966
+ return decisionOps.dagCreateTask(this, org, role, title, assignee, deps);
967
+ }
968
+ dagCompleteTask(org, role, taskId, result) {
969
+ return decisionOps.dagCompleteTask(this, org, role, taskId, result);
970
+ }
971
+ recordDecision(org, role, decision) {
972
+ decisionOps.recordDecision(this, org, role, decision);
973
+ }
974
+ // cross-org.ts
975
+ async deliver(fromOrg, fromRole, to, subject, body) {
976
+ return crossOrg.deliver(this, fromOrg, fromRole, to, subject, body);
977
+ }
978
+ receiveRemote(toOrg, toRole, fromQualified, subject, body) {
979
+ return crossOrg.receiveRemote(this, toOrg, toRole, fromQualified, subject, body);
980
+ }
981
+ mailBody(orgName, org, header, body, id) {
982
+ return crossOrg.mailBody(this.root, orgName, org, header, body, id);
983
+ }
984
+ // scheduler-integration.ts
985
+ /** @internal */
986
+ autoWake(name) { scheduler.autoWake(this, name); }
987
+ scheduleBossRestart(name) { scheduler.scheduleBossRestart(this, name); }
988
+ /** @internal */
989
+ scheduleDeferredSpawn(name, running, role, spawnRole) {
990
+ scheduler.scheduleDeferredSpawn(this, name, running, role, spawnRole);
991
+ }
992
+ // org-memory.ts
993
+ orgMemoryNamespace(name, def) { return orgMemory.orgMemoryNamespace(name, def); }
994
+ orgMemoryDbPath() { return orgMemory.orgMemoryDbPath(this.root); }
995
+ orgMemoryUsable() { return orgMemory.orgMemoryUsable(this.root); }
996
+ async rememberOrgMemory(name, def, role, content, scope, run) {
997
+ return orgMemory.rememberOrgMemory(this.root, name, def, role, content, scope, run);
998
+ }
999
+ async recallOrgMemory(name, def, query, role) {
1000
+ return orgMemory.recallOrgMemory(this, name, def, query, role);
1001
+ }
1002
+ async searchProjectKnowledge(query) {
1003
+ return orgMemory.searchProjectKnowledge(this.root, query);
1004
+ }
1005
+ async learnOrgKnowledge(name, run, payload) {
1006
+ return orgMemory.learnOrgKnowledge(this, name, run, payload);
1007
+ }
1008
+ async storeRunMemory(name, def, run, summary) {
1009
+ return orgMemory.storeRunMemory(this, name, def, run, summary);
1010
+ }
1011
+ // checkpoint-ops.ts
1012
+ async replayFrom(name, run) {
1013
+ return checkpointOps.replayFrom(this, name, run);
1014
+ }
1015
+ async resumeOrg(name) {
1016
+ return checkpointOps.resumeOrg(this, name);
1017
+ }
1018
+ branchCheckpoint(name, run, branchName) {
1019
+ return checkpointOps.branchCheckpoint(this, name, run, branchName);
1020
+ }
1631
1021
  }
1632
1022
  //# sourceMappingURL=daemon.js.map