@monoes/monomindcli 2.9.22 → 2.9.23
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.
- package/.claude/agents/consensus/quorum-manager.md +35 -54
- package/.claude/agents/core/coordinator.md +14 -18
- package/.claude/agents/core/researcher.md +1 -1
- package/.claude/agents/github/issue-tracker.md +3 -3
- package/.claude/agents/github/{code-review-swarm.md → monoswarm-code-review.md} +1 -1
- package/.claude/agents/github/{swarm-issue.md → monoswarm-issue.md} +1 -1
- package/.claude/agents/github/{multi-repo-swarm.md → monoswarm-multi-repo.md} +1 -1
- package/.claude/agents/github/{swarm-pr.md → monoswarm-pr.md} +1 -1
- package/.claude/agents/github/pr-manager.md +1 -1
- package/.claude/agents/github/release-manager.md +1 -1
- package/.claude/agents/github/repo-architect.md +1 -1
- package/.claude/agents/github/sync-coordinator.md +4 -4
- package/.claude/agents/{hive-mind → monoswarm}/collective-intelligence-coordinator.md +9 -16
- package/.claude/agents/{swarm → monoswarm}/mesh-coordinator.md +19 -24
- package/.claude/agents/{hive-mind/swarm-memory-manager.md → monoswarm/monoswarm-memory-manager.md} +1 -1
- package/.claude/agents/templates/{coordinator-swarm-init.md → coordinator-monoswarm-init.md} +1 -1
- package/.claude/agents/testing/{tdd-london-swarm.md → tdd-london-monoswarm.md} +2 -2
- package/.claude/commands/agents/agent-coordination.md +3 -3
- package/.claude/commands/agents/agent-types.md +1 -1
- package/.claude/commands/automation/self-healing.md +1 -1
- package/.claude/commands/automation/smart-spawn.md +1 -1
- package/.claude/commands/coordination/README.md +1 -1
- package/.claude/commands/coordination/{swarm-init.md → monoswarm-init.md} +2 -2
- package/.claude/commands/coordination/task-orchestrate.md +4 -4
- package/.claude/commands/github/README.md +1 -1
- package/.claude/commands/github/issue-tracker.md +2 -2
- package/.claude/commands/github/pr-manager.md +1 -1
- package/.claude/commands/github/release-manager.md +1 -1
- package/.claude/commands/github/repo-architect.md +1 -1
- package/.claude/commands/github/sync-coordinator.md +2 -2
- package/.claude/commands/hooks/README.md +1 -2
- package/.claude/commands/hooks/overview.md +1 -2
- package/.claude/commands/hooks/setup.md +0 -3
- package/.claude/commands/mastermind/createtask.md +2 -2
- package/.claude/commands/mastermind/do.md +3 -3
- package/.claude/commands/mastermind/help.md +2 -2
- package/.claude/commands/mastermind/ideate.md +1 -1
- package/.claude/commands/mastermind/improve.md +1 -1
- package/.claude/commands/mastermind/memory.md +2 -2
- package/.claude/commands/mastermind/{swarm.md → monoswarm.md} +13 -26
- package/.claude/commands/mastermind/topology.md +1 -1
- package/.claude/commands/memory/README.md +2 -2
- package/.claude/commands/memory/memory-search.md +1 -1
- package/.claude/commands/monoswarm/README.md +59 -0
- package/.claude/commands/monoswarm/consensus.md +61 -0
- package/.claude/commands/monoswarm/init.md +68 -0
- package/.claude/commands/monoswarm/memory.md +55 -0
- package/.claude/commands/monoswarm/monoswarm.md +139 -0
- package/.claude/commands/{swarm → monoswarm}/research.md +2 -2
- package/.claude/commands/monoswarm/spawn.md +49 -0
- package/.claude/commands/monoswarm/status.md +48 -0
- package/.claude/commands/monoswarm/stop.md +46 -0
- package/.claude/commands/optimization/auto-topology.md +9 -9
- package/.claude/commands/stream-chain/run.md +1 -1
- package/.claude/commands/workflows/development.md +1 -1
- package/.claude/commands/workflows/research.md +2 -2
- package/.claude/helpers/audit-log-writer.cjs +72 -0
- package/.claude/helpers/control-start.cjs +84 -26
- package/.claude/helpers/handlers/agent-start-handler.cjs +5 -5
- package/.claude/helpers/handlers/gates-handler.cjs +31 -10
- package/.claude/helpers/handlers/session-restore-handler.cjs +1 -1
- package/.claude/helpers/handlers/task-handler.cjs +4 -4
- package/.claude/helpers/skill-registry.json +4718 -3669
- package/.claude/helpers/statusline.cjs +21 -21
- package/.claude/helpers/token-tracker.cjs +0 -6
- package/.claude/settings.json +2 -3
- package/.claude/skills/hooks-automation/SKILL.md +5 -5
- package/.claude/skills/mastermind-protocol/SKILL.md +3 -3
- package/.claude/skills/memory-toolkit/SKILL.md +2 -2
- package/.claude/skills/{swarm-orchestration → monoswarm}/SKILL.md +106 -42
- package/.claude/skills/specialagent/SKILL.md +1 -1
- package/README.md +31 -12
- package/dist/src/autopilot-state.d.ts +0 -16
- package/dist/src/autopilot-state.d.ts.map +1 -1
- package/dist/src/autopilot-state.js +0 -15
- package/dist/src/autopilot-state.js.map +1 -1
- package/dist/src/browser/dashboard/server.js +3 -3
- package/dist/src/browser/dashboard/server.js.map +1 -1
- package/dist/src/browser/dashboard/ui.html +2 -2
- package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
- package/dist/src/capabilities/cap-documents.js +49 -38
- package/dist/src/capabilities/cap-documents.js.map +1 -1
- package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
- package/dist/src/commands/agent-lifecycle.js +4 -9
- package/dist/src/commands/agent-lifecycle.js.map +1 -1
- package/dist/src/commands/agent-ops.d.ts.map +1 -1
- package/dist/src/commands/agent-ops.js +37 -24
- package/dist/src/commands/agent-ops.js.map +1 -1
- package/dist/src/commands/analyze-ast.d.ts +1 -1
- package/dist/src/commands/analyze-ast.d.ts.map +1 -1
- package/dist/src/commands/analyze-ast.js +8 -27
- package/dist/src/commands/analyze-ast.js.map +1 -1
- package/dist/src/commands/analyze-imports.d.ts.map +1 -1
- package/dist/src/commands/analyze-imports.js +18 -17
- package/dist/src/commands/analyze-imports.js.map +1 -1
- package/dist/src/commands/analyze-symbols.d.ts.map +1 -1
- package/dist/src/commands/analyze-symbols.js +10 -24
- package/dist/src/commands/analyze-symbols.js.map +1 -1
- package/dist/src/commands/analyze.d.ts +19 -6
- package/dist/src/commands/analyze.d.ts.map +1 -1
- package/dist/src/commands/analyze.js +61 -15
- package/dist/src/commands/analyze.js.map +1 -1
- package/dist/src/commands/autopilot.d.ts.map +1 -1
- package/dist/src/commands/autopilot.js +4 -89
- package/dist/src/commands/autopilot.js.map +1 -1
- package/dist/src/commands/browse.d.ts +1 -1
- package/dist/src/commands/cleanup.d.ts.map +1 -1
- package/dist/src/commands/cleanup.js +4 -2
- package/dist/src/commands/cleanup.js.map +1 -1
- package/dist/src/commands/completions.d.ts.map +1 -1
- package/dist/src/commands/completions.js +0 -1
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.js +7 -7
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts +7 -0
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +37 -5
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +9 -3
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/hooks-routing-commands.d.ts +1 -2
- package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-routing-commands.js +1 -101
- package/dist/src/commands/hooks-routing-commands.js.map +1 -1
- package/dist/src/commands/hooks-workers.d.ts.map +1 -1
- package/dist/src/commands/hooks-workers.js +19 -71
- package/dist/src/commands/hooks-workers.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +4 -7
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +1 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +2 -2
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init-subcommands.d.ts.map +1 -1
- package/dist/src/commands/init-subcommands.js +4 -0
- package/dist/src/commands/init-subcommands.js.map +1 -1
- package/dist/src/commands/init-wizard.d.ts.map +1 -1
- package/dist/src/commands/init-wizard.js +0 -8
- package/dist/src/commands/init-wizard.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +53 -23
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts +1 -0
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +111 -60
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory-crud.d.ts.map +1 -1
- package/dist/src/commands/memory-crud.js +33 -20
- package/dist/src/commands/memory-crud.js.map +1 -1
- package/dist/src/commands/monoswarm.d.ts +8 -0
- package/dist/src/commands/monoswarm.d.ts.map +1 -0
- package/dist/src/commands/{swarm.js → monoswarm.js} +83 -297
- package/dist/src/commands/monoswarm.js.map +1 -0
- package/dist/src/commands/neural-core.d.ts.map +1 -1
- package/dist/src/commands/neural-core.js +9 -1
- package/dist/src/commands/neural-core.js.map +1 -1
- package/dist/src/commands/neural-optimize.d.ts.map +1 -1
- package/dist/src/commands/neural-optimize.js +30 -110
- package/dist/src/commands/neural-optimize.js.map +1 -1
- package/dist/src/commands/neural-registry.d.ts +1 -2
- package/dist/src/commands/neural-registry.d.ts.map +1 -1
- package/dist/src/commands/neural-registry.js +21 -168
- package/dist/src/commands/neural-registry.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts +13 -3
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +134 -45
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts +14 -0
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +98 -20
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/performance.d.ts.map +1 -1
- package/dist/src/commands/performance.js +38 -31
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/security-misc.d.ts.map +1 -1
- package/dist/src/commands/security-misc.js +220 -90
- package/dist/src/commands/security-misc.js.map +1 -1
- package/dist/src/commands/security-scan.d.ts +13 -0
- package/dist/src/commands/security-scan.d.ts.map +1 -1
- package/dist/src/commands/security-scan.js +96 -27
- package/dist/src/commands/security-scan.js.map +1 -1
- package/dist/src/commands/security.js +1 -1
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +17 -96
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +72 -64
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/tokens.d.ts.map +1 -1
- package/dist/src/commands/tokens.js +4 -5
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/consensus/audit-writer.d.ts +2 -2
- package/dist/src/consensus/audit-writer.d.ts.map +1 -1
- package/dist/src/consensus/audit-writer.js +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +32 -31
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/codex-generator.d.ts +10 -0
- package/dist/src/init/codex-generator.d.ts.map +1 -0
- package/dist/src/init/codex-generator.js +67 -0
- package/dist/src/init/codex-generator.js.map +1 -0
- package/dist/src/init/copy-assets.d.ts.map +1 -1
- package/dist/src/init/copy-assets.js +4 -8
- package/dist/src/init/copy-assets.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +9 -2
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.js +1 -1
- package/dist/src/init/index.d.ts +1 -0
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +1 -0
- package/dist/src/init/index.js.map +1 -1
- package/dist/src/init/opencode-generator.js +2 -2
- package/dist/src/init/opencode-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +1 -2
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts.map +1 -1
- package/dist/src/init/shared.js +3 -7
- package/dist/src/init/shared.js.map +1 -1
- package/dist/src/init/statusline-generator.js +19 -19
- package/dist/src/init/types.d.ts +9 -10
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +8 -6
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/init/upgrade.js +5 -5
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-capabilities.d.ts.map +1 -1
- package/dist/src/init/write-capabilities.js +36 -49
- package/dist/src/init/write-capabilities.js.map +1 -1
- package/dist/src/init/write-claude.js +1 -1
- package/dist/src/init/write-claude.js.map +1 -1
- package/dist/src/init/write-codex.d.ts +4 -0
- package/dist/src/init/write-codex.d.ts.map +1 -0
- package/dist/src/init/write-codex.js +57 -0
- package/dist/src/init/write-codex.js.map +1 -0
- package/dist/src/init/write-runtime-config.d.ts.map +1 -1
- package/dist/src/init/write-runtime-config.js +4 -5
- package/dist/src/init/write-runtime-config.js.map +1 -1
- package/dist/src/knowledge/eval/golden-set.js +15 -15
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +1 -2
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.js +1 -1
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +3 -3
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.d.ts +1 -1
- package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.js +4 -62
- package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.js +21 -31
- package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.js +56 -103
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts +1 -2
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +78 -152
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2 -4
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +1 -2
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +1 -2
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +10 -10
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.js +9 -9
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
- package/dist/src/mcp-tools/monoswarm-tools.d.ts +17 -0
- package/dist/src/mcp-tools/monoswarm-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monoswarm-tools.js +1153 -0
- package/dist/src/mcp-tools/monoswarm-tools.js.map +1 -0
- package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +32 -25
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +30 -13
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.d.ts +8 -12
- package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +9 -13
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts.map +1 -1
- package/dist/src/memory/embedding-operations.js +0 -37
- package/dist/src/memory/embedding-operations.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +14 -74
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
- package/dist/src/memory/hnsw-operations.js +22 -262
- package/dist/src/memory/hnsw-operations.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +2 -2
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +8 -7
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +24 -24
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +33 -34
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts.map +1 -1
- package/dist/src/memory/memory-crud.js +0 -20
- package/dist/src/memory/memory-crud.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +2 -3
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +2 -3
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-read.d.ts.map +1 -1
- package/dist/src/memory/memory-read.js +5 -14
- package/dist/src/memory/memory-read.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +1 -1
- package/dist/src/memory/sona-optimizer.js +1 -1
- package/dist/src/monovector/model-outcomes.d.ts +25 -0
- package/dist/src/monovector/model-outcomes.d.ts.map +1 -0
- package/dist/src/monovector/model-outcomes.js +113 -0
- package/dist/src/monovector/model-outcomes.js.map +1 -0
- package/dist/src/orgrt/agent-runner.d.ts +8 -2
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts +25 -2
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +265 -124
- package/dist/src/orgrt/antigravity-runner.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts.map +1 -1
- package/dist/src/orgrt/approvals.js +8 -0
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts +10 -16
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +12 -18
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts +12 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +19 -3
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts +26 -2
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +359 -128
- package/dist/src/orgrt/codex-runner.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
- package/dist/src/orgrt/copilot-runner.js +12 -2
- package/dist/src/orgrt/copilot-runner.js.map +1 -1
- package/dist/src/orgrt/cross-org.d.ts.map +1 -1
- package/dist/src/orgrt/cross-org.js +11 -0
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts +4 -1
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +42 -30
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +38 -25
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +150 -28
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +1 -0
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +20 -0
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
- package/dist/src/orgrt/grok-runner.js +39 -14
- package/dist/src/orgrt/grok-runner.js.map +1 -1
- package/dist/src/orgrt/kimicode-runner.d.ts +53 -7
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +246 -144
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/mailbox.d.ts +26 -1
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +74 -2
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +76 -91
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts +11 -0
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +25 -2
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/provider.d.ts +29 -1
- package/dist/src/orgrt/provider.d.ts.map +1 -1
- package/dist/src/orgrt/provider.js +62 -2
- package/dist/src/orgrt/provider.js.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts +56 -0
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -0
- package/dist/src/orgrt/qwen-rpc-runner.js +346 -0
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -0
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-runner.js +11 -8
- package/dist/src/orgrt/qwen-runner.js.map +1 -1
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler-integration.js +7 -0
- package/dist/src/orgrt/scheduler-integration.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +29 -1
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +87 -18
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts +29 -1
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +54 -0
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/test-loop.d.ts.map +1 -1
- package/dist/src/orgrt/test-loop.js +86 -9
- package/dist/src/orgrt/test-loop.js.map +1 -1
- package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
- package/dist/src/orgrt/tool-fence.js +15 -0
- package/dist/src/orgrt/tool-fence.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +32 -1
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +47 -4
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/pricing/model-pricing.d.ts.map +1 -1
- package/dist/src/pricing/model-pricing.js +0 -4
- package/dist/src/pricing/model-pricing.js.map +1 -1
- package/dist/src/security/audit-log.d.ts +47 -0
- package/dist/src/security/audit-log.d.ts.map +1 -0
- package/dist/src/security/audit-log.js +84 -0
- package/dist/src/security/audit-log.js.map +1 -0
- package/dist/src/services/config-file-manager.d.ts +2 -2
- package/dist/src/services/config-file-manager.d.ts.map +1 -1
- package/dist/src/services/config-file-manager.js +6 -7
- package/dist/src/services/config-file-manager.js.map +1 -1
- package/dist/src/suggest.d.ts.map +1 -1
- package/dist/src/suggest.js +4 -5
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/transfer/anonymization/index.d.ts +1 -1
- package/dist/src/transfer/anonymization/index.js +1 -1
- package/dist/src/types.d.ts +3 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui/collector.mjs +9 -13
- package/dist/src/ui/dashboard.html +30 -10
- package/dist/src/ui/data/agent-avatars.html +0 -12
- package/dist/src/ui/data/agent-avatars.json +10 -26
- package/dist/src/ui/routes-org.mjs +59 -16
- package/dist/src/ui/server.mjs +50 -23
- package/dist/src/utils/json-file.d.ts +12 -0
- package/dist/src/utils/json-file.d.ts.map +1 -1
- package/dist/src/utils/json-file.js +11 -0
- package/dist/src/utils/json-file.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
- package/.claude/commands/hive-mind/README.md +0 -42
- package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
- package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
- package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
- package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
- package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
- package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
- package/.claude/commands/hive-mind/hive-mind.md +0 -87
- package/.claude/commands/swarm/README.md +0 -40
- package/.claude/commands/swarm/swarm.md +0 -79
- package/.claude/skills/hive-mind-advanced/SKILL.md +0 -347
- package/.claude/skills/swarm-advanced/SKILL.md +0 -936
- package/dist/src/commands/swarm.d.ts +0 -8
- package/dist/src/commands/swarm.d.ts.map +0 -1
- package/dist/src/commands/swarm.js.map +0 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -17
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +0 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +0 -1239
- package/dist/src/mcp-tools/hive-mind-tools.js.map +0 -1
- package/dist/src/mcp-tools/swarm-tools.d.ts +0 -9
- package/dist/src/mcp-tools/swarm-tools.d.ts.map +0 -1
- package/dist/src/mcp-tools/swarm-tools.js +0 -411
- package/dist/src/mcp-tools/swarm-tools.js.map +0 -1
- package/dist/src/ui/data/avatars/crdt-synchronizer.svg +0 -53
- package/dist/src/ui/data/avatars/gossip-coordinator.svg +0 -54
- package/scripts/deploy-ipfs-node.sh +0 -153
- package/scripts/setup-ipfs-registry.md +0 -365
- /package/.claude/agents/{hive-mind → monoswarm}/scout-explorer.md +0 -0
- /package/.claude/agents/{hive-mind → monoswarm}/worker-specialist.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/analysis.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/development.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/examples.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/maintenance.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/optimization.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/testing.md +0 -0
- /package/dist/src/ui/data/avatars/{code-review-swarm.svg → monoswarm-code-review.svg} +0 -0
|
@@ -1,36 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CLI
|
|
3
|
-
*
|
|
2
|
+
* CLI Monoswarm Command
|
|
3
|
+
* Monoswarm coordination and management commands
|
|
4
4
|
*/
|
|
5
5
|
import { output } from '../output.js';
|
|
6
6
|
import { select, confirm } from '../prompt.js';
|
|
7
7
|
import { callMCPTool, MCPClientError } from '../mcp-client.js';
|
|
8
8
|
import * as fs from 'fs';
|
|
9
9
|
import * as path from 'path';
|
|
10
|
-
import { writeJsonFileAtomic } from '../utils/json-file.js';
|
|
11
10
|
import { getMonomindDataRoot, getProjectCwd, migrateLegacyStoreFile } from '../utils/paths.js';
|
|
12
11
|
// Canonical paths — resolved through getMonomindDataRoot() so the CLI and the MCP
|
|
13
|
-
// tools (agent-tools.ts /
|
|
14
|
-
// physical files.
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const SWARM_STATE_SUBDIR = 'swarm';
|
|
20
|
-
const SWARM_STATE_FILE = 'swarm-state.json';
|
|
12
|
+
// tools (agent-tools.ts / monoswarm-tools.ts / task-tools.ts) read and write the
|
|
13
|
+
// SAME physical files: `.monomind/monoswarm/state.json`. This is a clean break from
|
|
14
|
+
// the pre-rename `.monomind/swarm/swarm-state.json` layout — no migration from that
|
|
15
|
+
// legacy path is performed.
|
|
16
|
+
const SWARM_STATE_SUBDIR = 'monoswarm';
|
|
17
|
+
const SWARM_STATE_FILE = 'state.json';
|
|
21
18
|
const AGENT_STORE_SUBDIR = 'agents';
|
|
22
19
|
const AGENT_STORE_FILE = 'store.json';
|
|
23
20
|
function getSwarmDir() {
|
|
24
21
|
return path.join(getMonomindDataRoot(), SWARM_STATE_SUBDIR);
|
|
25
22
|
}
|
|
26
|
-
// Canonical
|
|
27
|
-
//
|
|
28
|
-
// the canonical file exists or when the two paths coincide) so state written by an
|
|
29
|
-
// older CLI isn't silently orphaned — same helper the MCP tools use.
|
|
23
|
+
// Canonical state.json path — `.monomind/monoswarm/state.json`, shared with the
|
|
24
|
+
// MCP tools.
|
|
30
25
|
function getSwarmStateFile() {
|
|
31
|
-
|
|
32
|
-
migrateLegacyStoreFile(file, path.join(SWARM_STATE_SUBDIR, SWARM_STATE_FILE));
|
|
33
|
-
return file;
|
|
26
|
+
return path.join(getSwarmDir(), SWARM_STATE_FILE);
|
|
34
27
|
}
|
|
35
28
|
function getAgentStoreFile() {
|
|
36
29
|
const file = path.join(getMonomindDataRoot(), AGENT_STORE_SUBDIR, AGENT_STORE_FILE);
|
|
@@ -52,25 +45,12 @@ function getSwarmStatus(swarmId) {
|
|
|
52
45
|
try {
|
|
53
46
|
const swarmStatSz = fs.statSync(swarmStateFile).size;
|
|
54
47
|
if (swarmStatSz <= 10_485_760) {
|
|
55
|
-
const
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// Find latest non-terminated swarm
|
|
64
|
-
const running = Object.values(swarms)
|
|
65
|
-
.filter((s) => s.status !== 'terminated')
|
|
66
|
-
.sort((a, b) => String(b.updatedAt || '').localeCompare(String(a.updatedAt || '')));
|
|
67
|
-
if (running.length > 0)
|
|
68
|
-
swarmState = running[0];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else if (store?.id || store?.swarmId) {
|
|
72
|
-
// Legacy CLI-written format { id, topology, ... }
|
|
73
|
-
swarmState = store;
|
|
48
|
+
const state = JSON.parse(fs.readFileSync(swarmStateFile, 'utf-8'));
|
|
49
|
+
// monoswarm-tools.ts writes a single flat MonoswarmState object — there
|
|
50
|
+
// is only one monoswarm per project, so there is no per-id map to look
|
|
51
|
+
// up (a `swarmId` argument is accepted purely as a display override).
|
|
52
|
+
if (state?.initialized) {
|
|
53
|
+
swarmState = state;
|
|
74
54
|
}
|
|
75
55
|
}
|
|
76
56
|
}
|
|
@@ -181,20 +161,25 @@ function getSwarmStatus(swarmId) {
|
|
|
181
161
|
else if (swarmState) {
|
|
182
162
|
status = 'ready';
|
|
183
163
|
}
|
|
164
|
+
const swarmConfig = swarmState?.config;
|
|
184
165
|
return {
|
|
185
166
|
id: swarmId ||
|
|
186
|
-
swarmState?.
|
|
187
|
-
swarmState?.id ||
|
|
167
|
+
swarmState?.monoswarmId ||
|
|
188
168
|
'no-active-swarm',
|
|
189
169
|
topology: swarmState?.topology || 'none',
|
|
190
170
|
status,
|
|
191
|
-
|
|
192
|
-
|
|
171
|
+
// Not tracked in the merged monoswarm state — the state file records
|
|
172
|
+
// topology/strategy/votes, not a free-text objective.
|
|
173
|
+
objective: 'No active objective',
|
|
174
|
+
strategy: swarmConfig?.strategy || 'none',
|
|
193
175
|
agents: {
|
|
194
176
|
total: totalAgents,
|
|
195
177
|
active: activeAgents,
|
|
196
178
|
idle: Math.max(0, totalAgents - activeAgents),
|
|
197
|
-
completed
|
|
179
|
+
// Not tracked anywhere — nothing distinguishes a "completed" agent
|
|
180
|
+
// from an active/idle one in the agent store. '--' rather than a
|
|
181
|
+
// fake 0.
|
|
182
|
+
completed: '--',
|
|
198
183
|
},
|
|
199
184
|
progress,
|
|
200
185
|
tasks: {
|
|
@@ -204,16 +189,12 @@ function getSwarmStatus(swarmId) {
|
|
|
204
189
|
pending: pendingTasks,
|
|
205
190
|
},
|
|
206
191
|
metrics: {
|
|
207
|
-
|
|
192
|
+
// Token usage isn't tracked here — '--' rather than a fake 0.
|
|
193
|
+
tokensUsed: '--',
|
|
208
194
|
avgResponseTime: '--',
|
|
209
195
|
successRate: totalTasks > 0 ? `${Math.round((completedTasks / totalTasks) * 100)}%` : '--',
|
|
210
196
|
elapsedTime: '--',
|
|
211
197
|
},
|
|
212
|
-
coordination: {
|
|
213
|
-
consensusRounds: 0,
|
|
214
|
-
messagesSent: 0,
|
|
215
|
-
conflictsResolved: 0,
|
|
216
|
-
},
|
|
217
198
|
hasActiveSwarm: !!swarmState || totalAgents > 0,
|
|
218
199
|
};
|
|
219
200
|
}
|
|
@@ -254,7 +235,7 @@ const initCommand = {
|
|
|
254
235
|
{
|
|
255
236
|
name: 'topology',
|
|
256
237
|
short: 't',
|
|
257
|
-
description: '
|
|
238
|
+
description: 'Monoswarm topology',
|
|
258
239
|
type: 'string',
|
|
259
240
|
choices: TOPOLOGIES.map((t) => t.value),
|
|
260
241
|
default: 'hierarchical',
|
|
@@ -266,12 +247,6 @@ const initCommand = {
|
|
|
266
247
|
type: 'number',
|
|
267
248
|
default: 15,
|
|
268
249
|
},
|
|
269
|
-
{
|
|
270
|
-
name: 'auto-scale',
|
|
271
|
-
description: 'Enable automatic scaling',
|
|
272
|
-
type: 'boolean',
|
|
273
|
-
default: true,
|
|
274
|
-
},
|
|
275
250
|
{
|
|
276
251
|
name: 'strategy',
|
|
277
252
|
short: 's',
|
|
@@ -307,15 +282,12 @@ const initCommand = {
|
|
|
307
282
|
output.printInfo('Initializing swarm...');
|
|
308
283
|
try {
|
|
309
284
|
// Call MCP tool to initialize swarm
|
|
310
|
-
const result = await callMCPTool('
|
|
285
|
+
const result = await callMCPTool('monoswarm_init', {
|
|
311
286
|
topology: topology,
|
|
312
287
|
maxAgents,
|
|
313
288
|
config: {
|
|
314
|
-
communicationProtocol: 'message-bus',
|
|
315
|
-
consensusMechanism: 'majority',
|
|
316
289
|
failureHandling: 'retry',
|
|
317
290
|
loadBalancing: true,
|
|
318
|
-
autoScaling: ctx.flags['auto-scale'] ?? true,
|
|
319
291
|
},
|
|
320
292
|
metadata: {
|
|
321
293
|
v1Mode,
|
|
@@ -323,7 +295,7 @@ const initCommand = {
|
|
|
323
295
|
},
|
|
324
296
|
});
|
|
325
297
|
// Display initialization progress
|
|
326
|
-
output.writeln(output.dim(` Wrote swarm config: ${result.
|
|
298
|
+
output.writeln(output.dim(` Wrote swarm config: ${result.monoswarmId}`));
|
|
327
299
|
if (v1Mode) {
|
|
328
300
|
output.writeln(output.dim(' (v1-mode: topology renamed to hierarchical-mesh; no ANN or keyword routing is performed during init)'));
|
|
329
301
|
}
|
|
@@ -334,55 +306,18 @@ const initCommand = {
|
|
|
334
306
|
{ key: 'value', header: 'Value', width: 35 },
|
|
335
307
|
],
|
|
336
308
|
data: [
|
|
337
|
-
{ property: '
|
|
309
|
+
{ property: 'Monoswarm ID', value: result.monoswarmId },
|
|
338
310
|
{ property: 'Topology', value: result.topology },
|
|
339
311
|
{ property: 'Max Agents', value: result.config.maxAgents },
|
|
340
|
-
{ property: 'Auto Scale', value: result.config.autoScaling ? 'Enabled' : 'Disabled' },
|
|
341
|
-
{ property: 'Protocol', value: result.config.communicationProtocol || 'N/A' },
|
|
342
312
|
{ property: 'v1 Mode', value: v1Mode ? 'Enabled' : 'Disabled' },
|
|
343
313
|
],
|
|
344
314
|
});
|
|
345
315
|
output.writeln();
|
|
346
|
-
output.printSuccess('
|
|
347
|
-
//
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
fs.mkdirSync(swarmDir2, { recursive: true });
|
|
352
|
-
}
|
|
353
|
-
// Read existing store to preserve other swarms
|
|
354
|
-
const stateFile = path.join(swarmDir2, SWARM_STATE_FILE);
|
|
355
|
-
let store = { swarms: {}, version: '3.0.0' };
|
|
356
|
-
if (fs.existsSync(stateFile)) {
|
|
357
|
-
try {
|
|
358
|
-
store = JSON.parse(fs.readFileSync(stateFile, 'utf-8'));
|
|
359
|
-
}
|
|
360
|
-
catch {
|
|
361
|
-
/* use default */
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
if (!store.swarms || typeof store.swarms !== 'object')
|
|
365
|
-
store.swarms = {};
|
|
366
|
-
store.swarms[result.swarmId] = {
|
|
367
|
-
swarmId: result.swarmId,
|
|
368
|
-
topology: result.topology,
|
|
369
|
-
maxAgents: result.config.maxAgents,
|
|
370
|
-
// P0-4: no agents are actually running yet at init time — the
|
|
371
|
-
// printed message says so; the persisted state must agree, or
|
|
372
|
-
// `swarm status --format json` contradicts the human-readable output.
|
|
373
|
-
status: 'configured',
|
|
374
|
-
agents: [],
|
|
375
|
-
tasks: [],
|
|
376
|
-
config: { strategy: ctx.flags.strategy || 'development', v1Mode },
|
|
377
|
-
createdAt: result.initializedAt || new Date().toISOString(),
|
|
378
|
-
updatedAt: new Date().toISOString(),
|
|
379
|
-
};
|
|
380
|
-
writeJsonFileAtomic(stateFile, store);
|
|
381
|
-
}
|
|
382
|
-
catch (e) {
|
|
383
|
-
if (process.env.DEBUG || process.env.MONOMIND_DEBUG)
|
|
384
|
-
console.error('[swarm-init] failed to persist swarm state file:', e);
|
|
385
|
-
}
|
|
316
|
+
output.printSuccess('Monoswarm initialized successfully');
|
|
317
|
+
// No further write here: monoswarm_init already persisted the canonical
|
|
318
|
+
// state to `.monomind/monoswarm/state.json` (a single flat record — the
|
|
319
|
+
// CLI and the MCP tools share exactly that one file, so writing a second,
|
|
320
|
+
// differently-shaped copy would overwrite the tool's own record).
|
|
386
321
|
if (ctx.flags.format === 'json') {
|
|
387
322
|
output.printJson(result);
|
|
388
323
|
}
|
|
@@ -407,7 +342,7 @@ const startCommand = {
|
|
|
407
342
|
{
|
|
408
343
|
name: 'objective',
|
|
409
344
|
short: 'o',
|
|
410
|
-
description: '
|
|
345
|
+
description: 'Monoswarm objective/task',
|
|
411
346
|
type: 'string',
|
|
412
347
|
required: true,
|
|
413
348
|
},
|
|
@@ -425,20 +360,14 @@ const startCommand = {
|
|
|
425
360
|
type: 'boolean',
|
|
426
361
|
default: true,
|
|
427
362
|
},
|
|
428
|
-
{
|
|
429
|
-
name: 'monitor',
|
|
430
|
-
description: 'Enable real-time monitoring',
|
|
431
|
-
type: 'boolean',
|
|
432
|
-
default: true,
|
|
433
|
-
},
|
|
434
363
|
],
|
|
435
364
|
examples: [
|
|
436
365
|
{
|
|
437
|
-
command: 'monomind
|
|
366
|
+
command: 'monomind monoswarm start -o "Build REST API" -s development',
|
|
438
367
|
description: 'Start development swarm',
|
|
439
368
|
},
|
|
440
369
|
{
|
|
441
|
-
command: 'monomind
|
|
370
|
+
command: 'monomind monoswarm start -o "Analyze codebase" --parallel',
|
|
442
371
|
description: 'Parallel analysis',
|
|
443
372
|
},
|
|
444
373
|
],
|
|
@@ -480,7 +409,7 @@ const startCommand = {
|
|
|
480
409
|
default: true,
|
|
481
410
|
});
|
|
482
411
|
if (!confirmed) {
|
|
483
|
-
output.printInfo('
|
|
412
|
+
output.printInfo('Monoswarm execution cancelled');
|
|
484
413
|
return { success: true };
|
|
485
414
|
}
|
|
486
415
|
}
|
|
@@ -496,58 +425,32 @@ const startCommand = {
|
|
|
496
425
|
let resolvedSwarmId = swarmId;
|
|
497
426
|
try {
|
|
498
427
|
// Actually call MCP to initialize the swarm
|
|
499
|
-
const initResult = await callMCPTool('
|
|
428
|
+
const initResult = await callMCPTool('monoswarm_init', {
|
|
500
429
|
topology: 'hierarchical',
|
|
501
430
|
maxAgents: totalAgents,
|
|
502
431
|
strategy: strategy === 'development' ? 'specialized' : strategy,
|
|
503
432
|
});
|
|
504
433
|
const mcpData = typeof initResult === 'string' ? JSON.parse(initResult) : initResult;
|
|
505
|
-
// Prefer the canonical ID assigned by the MCP
|
|
506
|
-
resolvedSwarmId = mcpData?.
|
|
507
|
-
spinner.succeed('
|
|
434
|
+
// Prefer the canonical ID assigned by the MCP tool over the locally generated one
|
|
435
|
+
resolvedSwarmId = mcpData?.monoswarmId ?? swarmId;
|
|
436
|
+
spinner.succeed('Monoswarm initialized via MCP');
|
|
508
437
|
}
|
|
509
438
|
catch (err) {
|
|
510
|
-
//
|
|
439
|
+
// monoswarm_init runs in-process via the local MCP tool registry — there is no
|
|
511
440
|
// separate MCP server to "start" here. A failure means the handler itself
|
|
512
441
|
// threw (bad input, filesystem/config issue, etc.), not that a server is down.
|
|
513
|
-
spinner.fail('
|
|
442
|
+
spinner.fail('monoswarm_init failed — monoswarm metadata saved locally only');
|
|
514
443
|
output.writeln(output.dim(` Error: ${err instanceof Error ? err.message : String(err)}`));
|
|
515
444
|
output.writeln(output.dim(' Run with -v/--verbose for more detail, or `monomind doctor` to check config/permission issues.'));
|
|
516
445
|
}
|
|
517
|
-
//
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
//
|
|
522
|
-
const stateFile2 = path.join(swarmDir, SWARM_STATE_FILE);
|
|
523
|
-
let startStore = { swarms: {}, version: '3.0.0' };
|
|
524
|
-
if (fs.existsSync(stateFile2)) {
|
|
525
|
-
try {
|
|
526
|
-
startStore = JSON.parse(fs.readFileSync(stateFile2, 'utf-8'));
|
|
527
|
-
}
|
|
528
|
-
catch {
|
|
529
|
-
/* use default */
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
if (!startStore.swarms || typeof startStore.swarms !== 'object')
|
|
533
|
-
startStore.swarms = {};
|
|
534
|
-
startStore.swarms[resolvedSwarmId] = {
|
|
535
|
-
swarmId: resolvedSwarmId,
|
|
536
|
-
topology: 'hierarchical',
|
|
537
|
-
maxAgents: totalAgents,
|
|
538
|
-
// P0-4: same fix as swarm init — persisted status must match the
|
|
539
|
-
// "No agents are running" message below, not claim 'running'.
|
|
540
|
-
status: 'configured',
|
|
541
|
-
agents: [],
|
|
542
|
-
tasks: [],
|
|
543
|
-
config: { strategy, objective, agentPlan, parallel: ctx.flags.parallel ?? true },
|
|
544
|
-
createdAt: new Date().toISOString(),
|
|
545
|
-
updatedAt: new Date().toISOString(),
|
|
546
|
-
};
|
|
547
|
-
writeJsonFileAtomic(stateFile2, startStore);
|
|
446
|
+
// No further write here: monoswarm_init (called above) already persisted
|
|
447
|
+
// the canonical state to `.monomind/monoswarm/state.json` — a single flat
|
|
448
|
+
// record shared with the MCP tools, not a per-id map. `objective` and
|
|
449
|
+
// `agentPlan` are display-only for this command; they are not tracked in
|
|
450
|
+
// the merged monoswarm state (see getSwarmStatus()'s objective field).
|
|
548
451
|
output.writeln();
|
|
549
|
-
output.printSuccess(`
|
|
550
|
-
output.writeln(output.dim(` Monitor: monomind
|
|
452
|
+
output.printSuccess(`Monoswarm ${resolvedSwarmId} config written (${totalAgents} agent slots reserved). No agents are running — use 'agent spawn' to dispatch Task-tool agents.`);
|
|
453
|
+
output.writeln(output.dim(` Monitor: monomind monoswarm status ${resolvedSwarmId}`));
|
|
551
454
|
return {
|
|
552
455
|
success: true,
|
|
553
456
|
data: { swarmId: resolvedSwarmId, objective, strategy, agents: totalAgents },
|
|
@@ -572,12 +475,12 @@ const statusCommand = {
|
|
|
572
475
|
output.writeln(output.warning('No active swarm'));
|
|
573
476
|
output.writeln();
|
|
574
477
|
output.writeln(output.dim('Start a swarm with:'));
|
|
575
|
-
output.writeln(output.dim(' npx monomind@latest
|
|
576
|
-
output.writeln(output.dim(' npx monomind@latest
|
|
478
|
+
output.writeln(output.dim(' npx monomind@latest monoswarm init'));
|
|
479
|
+
output.writeln(output.dim(' npx monomind@latest monoswarm start'));
|
|
577
480
|
output.writeln();
|
|
578
481
|
return { success: true, data: status };
|
|
579
482
|
}
|
|
580
|
-
output.writeln(output.bold(`
|
|
483
|
+
output.writeln(output.bold(`Monoswarm Status: ${status.id}`));
|
|
581
484
|
output.writeln();
|
|
582
485
|
// Progress bar
|
|
583
486
|
output.writeln(`Overall Progress: ${output.progressBar(status.progress, 100, 40)}`);
|
|
@@ -615,19 +518,11 @@ const statusCommand = {
|
|
|
615
518
|
// Metrics
|
|
616
519
|
output.writeln(output.bold('Performance Metrics'));
|
|
617
520
|
output.printList([
|
|
618
|
-
`Tokens Used: ${status.metrics.tokensUsed
|
|
521
|
+
`Tokens Used: ${status.metrics.tokensUsed}`,
|
|
619
522
|
`Avg Response Time: ${status.metrics.avgResponseTime}`,
|
|
620
523
|
`Success Rate: ${status.metrics.successRate}`,
|
|
621
524
|
`Elapsed Time: ${status.metrics.elapsedTime}`,
|
|
622
525
|
]);
|
|
623
|
-
output.writeln();
|
|
624
|
-
// Coordination stats
|
|
625
|
-
output.writeln(output.bold('Coordination'));
|
|
626
|
-
output.printList([
|
|
627
|
-
`Consensus Rounds: ${status.coordination.consensusRounds}`,
|
|
628
|
-
`Messages Sent: ${status.coordination.messagesSent}`,
|
|
629
|
-
`Conflicts Resolved: ${status.coordination.conflictsResolved}`,
|
|
630
|
-
]);
|
|
631
526
|
return { success: true, data: status };
|
|
632
527
|
},
|
|
633
528
|
};
|
|
@@ -654,7 +549,7 @@ const stopCommand = {
|
|
|
654
549
|
const swarmId = ctx.args[0];
|
|
655
550
|
const force = ctx.flags.force;
|
|
656
551
|
if (!swarmId) {
|
|
657
|
-
output.printError('
|
|
552
|
+
output.printError('Monoswarm ID is required');
|
|
658
553
|
return { success: false, exitCode: 1 };
|
|
659
554
|
}
|
|
660
555
|
if (ctx.interactive && !force) {
|
|
@@ -668,45 +563,17 @@ const stopCommand = {
|
|
|
668
563
|
}
|
|
669
564
|
}
|
|
670
565
|
output.printInfo(`Stopping swarm ${swarmId}...`);
|
|
671
|
-
//
|
|
672
|
-
|
|
566
|
+
// monoswarm_shutdown marks the canonical state file terminated and clears
|
|
567
|
+
// the roster itself — no further local write is needed here.
|
|
673
568
|
try {
|
|
674
|
-
await callMCPTool('
|
|
675
|
-
output.writeln(output.dim('
|
|
676
|
-
mcpStopped = true;
|
|
569
|
+
await callMCPTool('monoswarm_shutdown', { swarmId, force });
|
|
570
|
+
output.writeln(output.dim(' Monoswarm state updated'));
|
|
677
571
|
}
|
|
678
572
|
catch (err) {
|
|
679
573
|
output.printWarning(`MCP stop failed: ${String(err)}`);
|
|
680
574
|
return { success: false, message: `MCP stop failed: ${String(err)}`, exitCode: 1 };
|
|
681
575
|
}
|
|
682
|
-
|
|
683
|
-
if (mcpStopped) {
|
|
684
|
-
const stopStateFile = getSwarmStateFile();
|
|
685
|
-
if (fs.existsSync(stopStateFile)) {
|
|
686
|
-
try {
|
|
687
|
-
const stopStatSz = fs.statSync(stopStateFile).size;
|
|
688
|
-
if (stopStatSz > 10_485_760)
|
|
689
|
-
throw new Error('swarm state file too large');
|
|
690
|
-
const store = JSON.parse(fs.readFileSync(stopStateFile, 'utf-8'));
|
|
691
|
-
// Update the specific swarm in the MCP store format
|
|
692
|
-
if (store?.swarms?.[swarmId]) {
|
|
693
|
-
store.swarms[swarmId].status = 'terminated';
|
|
694
|
-
store.swarms[swarmId].updatedAt = new Date().toISOString();
|
|
695
|
-
}
|
|
696
|
-
else if (store?.id || store?.swarmId) {
|
|
697
|
-
// Legacy format
|
|
698
|
-
store.status = 'stopped';
|
|
699
|
-
store.stoppedAt = new Date().toISOString();
|
|
700
|
-
}
|
|
701
|
-
writeJsonFileAtomic(stopStateFile, store);
|
|
702
|
-
output.writeln(output.dim(' Swarm state updated'));
|
|
703
|
-
}
|
|
704
|
-
catch {
|
|
705
|
-
output.writeln(output.dim(' Could not update swarm state file'));
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
output.printSuccess(`Swarm ${swarmId} stopped`);
|
|
576
|
+
output.printSuccess(`Monoswarm ${swarmId} stopped`);
|
|
710
577
|
return { success: true, data: { swarmId, stopped: true, force } };
|
|
711
578
|
},
|
|
712
579
|
};
|
|
@@ -734,7 +601,7 @@ const scaleCommand = {
|
|
|
734
601
|
const targetAgents = ctx.flags.agents;
|
|
735
602
|
const agentType = ctx.flags.type;
|
|
736
603
|
if (!swarmId) {
|
|
737
|
-
output.printError('
|
|
604
|
+
output.printError('Monoswarm ID is required');
|
|
738
605
|
return { success: false, exitCode: 1 };
|
|
739
606
|
}
|
|
740
607
|
// 0 is a valid target (scale a swarm down to no agents) — check for
|
|
@@ -745,13 +612,13 @@ const scaleCommand = {
|
|
|
745
612
|
}
|
|
746
613
|
output.printInfo(`Scaling swarm ${swarmId} to ${targetAgents} agents...`);
|
|
747
614
|
try {
|
|
748
|
-
const result = await callMCPTool('
|
|
615
|
+
const result = await callMCPTool('monoswarm_scale', { swarmId, targetAgents, agentType });
|
|
749
616
|
if (!result.success) {
|
|
750
617
|
output.printError(result.error || 'Failed to scale swarm');
|
|
751
618
|
return { success: false, exitCode: 1 };
|
|
752
619
|
}
|
|
753
620
|
if (result.spawned.length === 0 && result.terminated.length === 0) {
|
|
754
|
-
output.printInfo('
|
|
621
|
+
output.printInfo('Monoswarm already at target size');
|
|
755
622
|
return { success: true, data: result };
|
|
756
623
|
}
|
|
757
624
|
if (result.spawned.length > 0) {
|
|
@@ -769,119 +636,38 @@ const scaleCommand = {
|
|
|
769
636
|
}
|
|
770
637
|
},
|
|
771
638
|
};
|
|
772
|
-
// Coordinate command (v1 specific)
|
|
773
|
-
const coordinateCommand = {
|
|
774
|
-
name: 'coordinate',
|
|
775
|
-
description: 'Execute v1 15-agent hierarchical mesh coordination',
|
|
776
|
-
options: [
|
|
777
|
-
{
|
|
778
|
-
name: 'agents',
|
|
779
|
-
description: 'Number of agents',
|
|
780
|
-
type: 'number',
|
|
781
|
-
default: 15,
|
|
782
|
-
},
|
|
783
|
-
{
|
|
784
|
-
name: 'domains',
|
|
785
|
-
description: 'Domains to activate',
|
|
786
|
-
type: 'array',
|
|
787
|
-
},
|
|
788
|
-
],
|
|
789
|
-
action: async (ctx) => {
|
|
790
|
-
const agentCount = ctx.flags.agents || 15;
|
|
791
|
-
output.writeln();
|
|
792
|
-
output.writeln(output.bold('v1 15-Agent Hierarchical Mesh Coordination'));
|
|
793
|
-
output.writeln();
|
|
794
|
-
// agent structure
|
|
795
|
-
const v1Agents = [
|
|
796
|
-
{ id: 1, role: 'Queen Coordinator', domain: 'Orchestration', status: 'primary' },
|
|
797
|
-
{ id: 2, role: 'Security Architect', domain: 'Security', status: 'active' },
|
|
798
|
-
{ id: 3, role: 'Security Auditor', domain: 'Security', status: 'active' },
|
|
799
|
-
{ id: 4, role: 'Test Architect', domain: 'Security', status: 'active' },
|
|
800
|
-
{ id: 5, role: 'Core Architect', domain: 'Core', status: 'active' },
|
|
801
|
-
{ id: 6, role: 'Memory Specialist', domain: 'Core', status: 'active' },
|
|
802
|
-
{ id: 7, role: 'Swarm Specialist', domain: 'Core', status: 'active' },
|
|
803
|
-
{ id: 8, role: 'Integration Architect', domain: 'Integration', status: 'active' },
|
|
804
|
-
{ id: 9, role: 'Performance Engineer', domain: 'Integration', status: 'active' },
|
|
805
|
-
{ id: 10, role: 'CLI Developer', domain: 'Integration', status: 'active' },
|
|
806
|
-
{ id: 11, role: 'Hooks Developer', domain: 'Integration', status: 'active' },
|
|
807
|
-
{ id: 12, role: 'MCP Specialist', domain: 'Integration', status: 'active' },
|
|
808
|
-
{ id: 13, role: 'Project Coordinator', domain: 'Management', status: 'active' },
|
|
809
|
-
{ id: 14, role: 'Documentation Lead', domain: 'Management', status: 'standby' },
|
|
810
|
-
{ id: 15, role: 'DevOps Engineer', domain: 'Management', status: 'standby' },
|
|
811
|
-
].slice(0, agentCount);
|
|
812
|
-
output.printTable({
|
|
813
|
-
columns: [
|
|
814
|
-
{ key: 'id', header: '#', width: 3, align: 'right' },
|
|
815
|
-
{ key: 'role', header: 'Role', width: 22 },
|
|
816
|
-
{ key: 'domain', header: 'Domain', width: 15 },
|
|
817
|
-
{
|
|
818
|
-
key: 'status',
|
|
819
|
-
header: 'Status',
|
|
820
|
-
width: 10,
|
|
821
|
-
format: (v) => {
|
|
822
|
-
if (v === 'primary')
|
|
823
|
-
return output.highlight(String(v));
|
|
824
|
-
if (v === 'active')
|
|
825
|
-
return output.success(String(v));
|
|
826
|
-
return output.dim(String(v));
|
|
827
|
-
},
|
|
828
|
-
},
|
|
829
|
-
],
|
|
830
|
-
data: v1Agents,
|
|
831
|
-
});
|
|
832
|
-
// Actually initialize via MCP instead of just displaying (#1423)
|
|
833
|
-
output.writeln();
|
|
834
|
-
try {
|
|
835
|
-
await callMCPTool('swarm_init', {
|
|
836
|
-
topology: 'hierarchical-mesh',
|
|
837
|
-
maxAgents: agentCount,
|
|
838
|
-
strategy: 'specialized',
|
|
839
|
-
});
|
|
840
|
-
output.printSuccess(`Swarm coordination config written (${agentCount} agent slots reserved) via MCP. No agents are running.`);
|
|
841
|
-
}
|
|
842
|
-
catch {
|
|
843
|
-
output.printWarning('MCP unavailable — showing agent plan only (no swarm state written)');
|
|
844
|
-
}
|
|
845
|
-
output.writeln();
|
|
846
|
-
output.writeln(output.dim('Use Claude Code Task tool or hive-mind spawn --claude to drive actual agent execution.'));
|
|
847
|
-
return { success: true, data: { agents: v1Agents, count: agentCount } };
|
|
848
|
-
},
|
|
849
|
-
};
|
|
850
639
|
// Main swarm command
|
|
851
|
-
export const
|
|
852
|
-
name: '
|
|
853
|
-
description: '
|
|
640
|
+
export const monoswarmCommand = {
|
|
641
|
+
name: 'monoswarm',
|
|
642
|
+
description: 'Monoswarm coordination commands',
|
|
854
643
|
subcommands: [
|
|
855
644
|
initCommand,
|
|
856
645
|
startCommand,
|
|
857
646
|
statusCommand,
|
|
858
647
|
stopCommand,
|
|
859
648
|
scaleCommand,
|
|
860
|
-
coordinateCommand,
|
|
861
649
|
],
|
|
862
650
|
options: [],
|
|
863
651
|
examples: [
|
|
864
|
-
{ command: 'monomind
|
|
652
|
+
{ command: 'monomind monoswarm init --v1-mode', description: 'Initialize monoswarm' },
|
|
865
653
|
{
|
|
866
|
-
command: 'monomind
|
|
867
|
-
description: 'Start development
|
|
654
|
+
command: 'monomind monoswarm start -o "Build API" -s development',
|
|
655
|
+
description: 'Start development monoswarm',
|
|
868
656
|
},
|
|
869
|
-
{ command: 'monomind swarm coordinate --agents 15', description: 'v1 coordination' },
|
|
870
657
|
],
|
|
871
658
|
action: async (ctx) => {
|
|
872
659
|
output.writeln();
|
|
873
|
-
output.writeln(output.bold('
|
|
660
|
+
output.writeln(output.bold('Monoswarm Coordination Commands'));
|
|
874
661
|
output.writeln();
|
|
875
|
-
output.writeln('Usage: monomind
|
|
662
|
+
output.writeln('Usage: monomind monoswarm <subcommand> [options]');
|
|
876
663
|
output.writeln();
|
|
877
664
|
output.writeln('Subcommands:');
|
|
878
665
|
output.printList([
|
|
879
|
-
`${output.highlight('init')} - Initialize a new
|
|
880
|
-
`${output.highlight('start')} - Start
|
|
881
|
-
`${output.highlight('status')} - Show
|
|
882
|
-
`${output.highlight('stop')} - Stop
|
|
883
|
-
`${output.highlight('scale')} - Scale
|
|
884
|
-
`${output.highlight('coordinate')} - 15-agent coordination`,
|
|
666
|
+
`${output.highlight('init')} - Initialize a new monoswarm`,
|
|
667
|
+
`${output.highlight('start')} - Start monoswarm execution`,
|
|
668
|
+
`${output.highlight('status')} - Show monoswarm status`,
|
|
669
|
+
`${output.highlight('stop')} - Stop monoswarm execution`,
|
|
670
|
+
`${output.highlight('scale')} - Scale monoswarm agent count`,
|
|
885
671
|
]);
|
|
886
672
|
return { success: true };
|
|
887
673
|
},
|
|
@@ -948,5 +734,5 @@ function getAgentPlan(strategy) {
|
|
|
948
734
|
};
|
|
949
735
|
return plans[strategy] || plans.development;
|
|
950
736
|
}
|
|
951
|
-
export default
|
|
952
|
-
//# sourceMappingURL=
|
|
737
|
+
export default monoswarmCommand;
|
|
738
|
+
//# sourceMappingURL=monoswarm.js.map
|