@monoes/monomindcli 2.9.21 → 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-createorg/SKILL.md +26 -3
- 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/events.d.ts +9 -0
- package/dist/src/commands/events.d.ts.map +1 -0
- package/dist/src/commands/events.js +89 -0
- package/dist/src/commands/events.js.map +1 -0
- 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 +2 -2
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +4 -3
- 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 +34 -3
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +213 -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 +118 -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 +16 -1
- package/dist/src/orgrt/approvals.d.ts.map +1 -1
- package/dist/src/orgrt/approvals.js +47 -2
- 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 +14 -0
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -0
- package/dist/src/orgrt/copilot-runner.js +260 -0
- package/dist/src/orgrt/copilot-runner.js.map +1 -0
- 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 +27 -0
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -0
- package/dist/src/orgrt/crush-runner.js +263 -0
- package/dist/src/orgrt/crush-runner.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +68 -16
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +212 -29
- 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 +18 -0
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -0
- package/dist/src/orgrt/grok-runner.js +348 -0
- package/dist/src/orgrt/grok-runner.js.map +1 -0
- 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 +68 -0
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -0
- package/dist/src/orgrt/pi-rpc-runner.js +385 -0
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -0
- package/dist/src/orgrt/pi-runner.d.ts +16 -0
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -0
- package/dist/src/orgrt/pi-runner.js +264 -0
- package/dist/src/orgrt/pi-runner.js.map +1 -0
- 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 +18 -0
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -0
- package/dist/src/orgrt/qwen-runner.js +270 -0
- package/dist/src/orgrt/qwen-runner.js.map +1 -0
- 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 +50 -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/orgrt/usage-proxy.d.ts +32 -0
- package/dist/src/orgrt/usage-proxy.d.ts.map +1 -0
- package/dist/src/orgrt/usage-proxy.js +226 -0
- package/dist/src/orgrt/usage-proxy.js.map +1 -0
- 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 +93 -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/orgs.html +8 -1
- package/dist/src/ui/routes-org.mjs +85 -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 +5 -5
- 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
|
@@ -2098,6 +2098,9 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
|
|
|
2098
2098
|
<button class="odt-btn secondary" data-tab="costs" onclick="v2SwitchOrgTab('costs')">Costs</button>
|
|
2099
2099
|
<button class="odt-btn secondary" data-tab="config" onclick="v2SwitchOrgTab('config')">Config</button>
|
|
2100
2100
|
<button class="odt-btn secondary" data-tab="files" onclick="v2SwitchOrgTab('files')">Files</button>
|
|
2101
|
+
<button class="odt-btn secondary" data-tab="approvals" onclick="v2SwitchOrgTab('approvals')">Approvals</button>
|
|
2102
|
+
<button class="odt-btn secondary" data-tab="budgets" onclick="v2SwitchOrgTab('budgets')">Budgets</button>
|
|
2103
|
+
<button class="odt-btn secondary" data-tab="decisions" onclick="v2SwitchOrgTab('decisions')">Decisions</button>
|
|
2101
2104
|
</div>
|
|
2102
2105
|
<div id="org-detail-body">
|
|
2103
2106
|
<div class="odt-pane active" id="odt-chart"></div>
|
|
@@ -2108,6 +2111,9 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
|
|
|
2108
2111
|
<div class="odt-pane" id="odt-costs"></div>
|
|
2109
2112
|
<div class="odt-pane" id="odt-config" style="overflow-y:auto"></div>
|
|
2110
2113
|
<div class="odt-pane" id="odt-files" style="overflow-y:auto"></div>
|
|
2114
|
+
<div class="odt-pane" id="odt-approvals"></div>
|
|
2115
|
+
<div class="odt-pane" id="odt-budgets"></div>
|
|
2116
|
+
<div class="odt-pane" id="odt-decisions"></div>
|
|
2111
2117
|
</div>
|
|
2112
2118
|
</div>
|
|
2113
2119
|
<div id="org-copy-dialog" style="display:none;position:absolute;inset:0;background:rgba(0,0,0,0.72);z-index:90;align-items:center;justify-content:center">
|
|
@@ -2604,6 +2610,9 @@ function refreshCurrent() {
|
|
|
2604
2610
|
renderView(currentView);
|
|
2605
2611
|
}
|
|
2606
2612
|
|
|
2613
|
+
// Project paths may be Windows ('\') or POSIX ('/') — split on either.
|
|
2614
|
+
function baseName(p) { return String(p || '').split(/[\\/]/).filter(Boolean).pop() || ''; }
|
|
2615
|
+
|
|
2607
2616
|
// ── init ───────────────────────────────────────────────────
|
|
2608
2617
|
async function init() {
|
|
2609
2618
|
try {
|
|
@@ -2613,7 +2622,9 @@ async function init() {
|
|
|
2613
2622
|
gitUser = gu;
|
|
2614
2623
|
document.getElementById('sb-user').textContent = gu.name || gu.email || '—';
|
|
2615
2624
|
document.getElementById('sb-path').textContent = DIR;
|
|
2616
|
-
document.getElementById('sb-proj')
|
|
2625
|
+
const sbProjEl = document.getElementById('sb-proj');
|
|
2626
|
+
sbProjEl.textContent = baseName(DIR) || '—';
|
|
2627
|
+
sbProjEl.title = DIR;
|
|
2617
2628
|
_showNavProjectCtx(DIR);
|
|
2618
2629
|
} catch (_) {}
|
|
2619
2630
|
// deep-link: ?sess=<id>&proj=<path>
|
|
@@ -2644,7 +2655,9 @@ async function init() {
|
|
|
2644
2655
|
}
|
|
2645
2656
|
} catch (_) {}
|
|
2646
2657
|
DIR = projParam;
|
|
2647
|
-
document.getElementById('sb-proj')
|
|
2658
|
+
const sbProjEl2 = document.getElementById('sb-proj');
|
|
2659
|
+
sbProjEl2.textContent = baseName(DIR) || '—';
|
|
2660
|
+
sbProjEl2.title = DIR;
|
|
2648
2661
|
document.getElementById('sb-path').textContent = DIR;
|
|
2649
2662
|
_showNavProjectCtx(DIR);
|
|
2650
2663
|
}
|
|
@@ -2702,11 +2715,13 @@ async function apiFetch(url, timeout = 15000) {
|
|
|
2702
2715
|
|
|
2703
2716
|
// ── project switching ──────────────────────────────────────
|
|
2704
2717
|
function _showNavProjectCtx(path) {
|
|
2705
|
-
const projName = (path
|
|
2718
|
+
const projName = baseName(path);
|
|
2706
2719
|
const ctx = document.getElementById('nav-project-ctx');
|
|
2707
2720
|
const hint = document.getElementById('nav-no-proj-hint');
|
|
2708
2721
|
if (projName) {
|
|
2709
|
-
document.getElementById('nav-proj-name')
|
|
2722
|
+
const nameEl = document.getElementById('nav-proj-name');
|
|
2723
|
+
nameEl.textContent = projName;
|
|
2724
|
+
nameEl.title = path;
|
|
2710
2725
|
ctx.classList.add('visible');
|
|
2711
2726
|
hint.style.display = 'none';
|
|
2712
2727
|
} else {
|
|
@@ -2728,7 +2743,9 @@ function switchProject(path) {
|
|
|
2728
2743
|
_mgLoaded = false;
|
|
2729
2744
|
_mgGraph = null;
|
|
2730
2745
|
window._mgRealTotals = null;
|
|
2731
|
-
document.getElementById('sb-proj')
|
|
2746
|
+
const sbProjEl3 = document.getElementById('sb-proj');
|
|
2747
|
+
sbProjEl3.textContent = baseName(path) || '—';
|
|
2748
|
+
sbProjEl3.title = path;
|
|
2732
2749
|
document.getElementById('sb-path').textContent = path;
|
|
2733
2750
|
_showNavProjectCtx(path);
|
|
2734
2751
|
viewRendered = {};
|
|
@@ -5863,6 +5880,7 @@ function v2RenderOrgTab(tab) {
|
|
|
5863
5880
|
else if (tab === 'routines') v2RenderOrgRoutines();
|
|
5864
5881
|
else if (tab === 'myissues') v2RenderOrgMyIssues();
|
|
5865
5882
|
else if (tab === 'budgets') v2RenderOrgBudgets();
|
|
5883
|
+
else if (tab === 'decisions') v2RenderOrgDecisions();
|
|
5866
5884
|
else if (tab === 'plugins') v2RenderOrgPlugins();
|
|
5867
5885
|
else if (tab === 'charts') v2RenderOrgCharts();
|
|
5868
5886
|
else if (tab === 'projects') v2RenderOrgProjects();
|
|
@@ -5975,13 +5993,22 @@ function v2RenderOrgChart() {
|
|
|
5975
5993
|
const colorOf = (role, idx) => COLORS[_v2OrgIsLeader(role) ? 0 : (idx % (COLORS.length - 1)) + 1];
|
|
5976
5994
|
|
|
5977
5995
|
// ── auto-generate edges ───────────────────────────────
|
|
5996
|
+
// Prefer each role's actual reports_to over a flat leader fan-out — a
|
|
5997
|
+
// multi-level org (specialist -> team lead -> director) should connect to
|
|
5998
|
+
// its real manager, not skip straight to the top boss.
|
|
5978
5999
|
let comms = Array.isArray(d.communication) ? [...d.communication] : [];
|
|
5979
6000
|
if (!comms.length && roles.length > 1) {
|
|
5980
6001
|
const _lr0 = roles.find(_v2OrgIsLeader) || roles[0];
|
|
5981
|
-
|
|
5982
|
-
|
|
5983
|
-
|
|
5984
|
-
|
|
6002
|
+
const _roleIds = new Set(roles.map(r => r.id));
|
|
6003
|
+
comms = roles.filter(r => r.id !== _lr0.id).flatMap(r => {
|
|
6004
|
+
const parentId = (r.reports_to && r.reports_to !== r.id && _roleIds.has(r.reports_to))
|
|
6005
|
+
? r.reports_to
|
|
6006
|
+
: _lr0.id;
|
|
6007
|
+
return [
|
|
6008
|
+
{ from: parentId, to: r.id, type: 'command' },
|
|
6009
|
+
{ from: r.id, to: parentId, type: 'report' },
|
|
6010
|
+
];
|
|
6011
|
+
});
|
|
5985
6012
|
}
|
|
5986
6013
|
|
|
5987
6014
|
// ── layout positions ──────────────────────────────────
|
|
@@ -6518,7 +6545,7 @@ const _v2AvatarKnown = new Set([
|
|
|
6518
6545
|
'security-architect','security-auditor','threat-detection','input-validator',
|
|
6519
6546
|
'path-validator','safe-executor','hierarchical-coord','mesh-coordinator',
|
|
6520
6547
|
'adaptive-coordinator','collective-coord','queen-coordinator','worker-specialist',
|
|
6521
|
-
'byzantine-coord','raft-manager',
|
|
6548
|
+
'byzantine-coord','raft-manager',
|
|
6522
6549
|
'quorum-manager','consensus-coordinator','perf-analyzer','benchmarker',
|
|
6523
6550
|
'task-orchestrator','memory-coordinator','load-balancer','resource-allocator',
|
|
6524
6551
|
'pr-manager','code-review-swarm','issue-tracker','release-manager','repo-architect',
|
|
@@ -7171,6 +7198,62 @@ async function orgApprovalAction(id, action) {
|
|
|
7171
7198
|
} catch (e) { showToast('Error', e.message, 'err'); }
|
|
7172
7199
|
}
|
|
7173
7200
|
|
|
7201
|
+
// ── DECISIONS ──────────────────────────────────────────────
|
|
7202
|
+
let _v2DecisionsCache = [];
|
|
7203
|
+
let _v2DecisionsStatusFilter = 'all';
|
|
7204
|
+
let _v2DecisionsRoleFilter = 'all';
|
|
7205
|
+
|
|
7206
|
+
async function v2RenderOrgDecisions() {
|
|
7207
|
+
const el = document.getElementById('odt-decisions');
|
|
7208
|
+
if (!el || !_v2SelOrg) return;
|
|
7209
|
+
const _rendOrg = _v2SelOrg;
|
|
7210
|
+
el.innerHTML = '<div class="loading-txt">Loading…</div>';
|
|
7211
|
+
try {
|
|
7212
|
+
const _enc = encodeURIComponent(_rendOrg);
|
|
7213
|
+
const data = await fetch(`/api/org/${_enc}/gates${DIR ? '?dir=' + encodeURIComponent(DIR) : ''}`).then(r => r.ok ? r.json() : { gates: [] }).catch(() => ({ gates: [] }));
|
|
7214
|
+
if (_v2SelOrg !== _rendOrg) return;
|
|
7215
|
+
_v2DecisionsCache = Array.isArray(data) ? data : (data.gates || []);
|
|
7216
|
+
_v2DecisionsStatusFilter = 'all';
|
|
7217
|
+
_v2DecisionsRoleFilter = 'all';
|
|
7218
|
+
v2RenderDecisionsTable();
|
|
7219
|
+
} catch (e) { el.innerHTML = '<div class="empty">Failed: ' + esc(e.message) + '</div>'; }
|
|
7220
|
+
}
|
|
7221
|
+
|
|
7222
|
+
function v2RenderDecisionsTable() {
|
|
7223
|
+
const el = document.getElementById('odt-decisions');
|
|
7224
|
+
if (!el) return;
|
|
7225
|
+
const gates = _v2DecisionsCache;
|
|
7226
|
+
const roles = [...new Set(gates.map(g => g.roleId || '—'))].sort();
|
|
7227
|
+
const filtered = gates.filter(g =>
|
|
7228
|
+
(_v2DecisionsStatusFilter === 'all' || (g.status || 'pending') === _v2DecisionsStatusFilter) &&
|
|
7229
|
+
(_v2DecisionsRoleFilter === 'all' || (g.roleId || '—') === _v2DecisionsRoleFilter)
|
|
7230
|
+
);
|
|
7231
|
+
const filterBar = `<div style="display:flex;gap:10px;margin-bottom:10px">
|
|
7232
|
+
<select class="filter-input" style="width:auto" onchange="_v2DecisionsStatusFilter=this.value;v2RenderDecisionsTable()">
|
|
7233
|
+
${['all', 'pending', 'approved', 'rejected'].map(s => `<option value="${s}" ${_v2DecisionsStatusFilter===s?'selected':''}>${s === 'all' ? 'All statuses' : s}</option>`).join('')}
|
|
7234
|
+
</select>
|
|
7235
|
+
<select class="filter-input" style="width:auto" onchange="_v2DecisionsRoleFilter=this.value;v2RenderDecisionsTable()">
|
|
7236
|
+
<option value="all" ${_v2DecisionsRoleFilter==='all'?'selected':''}>All roles</option>
|
|
7237
|
+
${roles.map(r => `<option value="${esc(r)}" ${_v2DecisionsRoleFilter===r?'selected':''}>${esc(r)}</option>`).join('')}
|
|
7238
|
+
</select>
|
|
7239
|
+
</div>`;
|
|
7240
|
+
if (!filtered.length) { el.innerHTML = filterBar + '<div class="empty">No decision gates match</div>'; return; }
|
|
7241
|
+
el.innerHTML = filterBar + `<table style="width:100%;border-collapse:collapse;font-size:12px">
|
|
7242
|
+
<thead><tr style="color:var(--text-xs);text-align:left">
|
|
7243
|
+
<th style="padding:6px 8px">Role</th><th>Gate</th><th>Status</th><th>Resolution</th><th>Date</th>
|
|
7244
|
+
</tr></thead><tbody>` +
|
|
7245
|
+
filtered.slice(0, 100).map(g => {
|
|
7246
|
+
const cls = g.status === 'approved' ? 'on' : g.status === 'rejected' ? 'warn' : '';
|
|
7247
|
+
return `<tr style="border-top:1px solid var(--border)">
|
|
7248
|
+
<td style="padding:6px 8px;color:var(--text-hi)">${esc(g.roleId || '—')}</td>
|
|
7249
|
+
<td style="padding:6px 8px;color:var(--text-lo);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap" title="${esc(g.description || '')}">${esc(g.name || '—')}</td>
|
|
7250
|
+
<td style="padding:6px 8px"><span class="ss-pill ${cls}">${esc(g.status || 'pending')}</span></td>
|
|
7251
|
+
<td style="padding:6px 8px;color:var(--text-lo);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">${esc(g.resolution || '—')}</td>
|
|
7252
|
+
<td style="padding:6px 8px;color:var(--text-xs);font-size:11px;font-family:var(--mono)">${relTime(g.resolvedAt || g.createdAt)}</td>
|
|
7253
|
+
</tr>`;
|
|
7254
|
+
}).join('') + '</tbody></table>';
|
|
7255
|
+
}
|
|
7256
|
+
|
|
7174
7257
|
// ── SECRETS ────────────────────────────────────────────────
|
|
7175
7258
|
async function v2RenderOrgSecrets() {
|
|
7176
7259
|
const el = document.getElementById('odt-secrets');
|
|
@@ -144,18 +144,6 @@
|
|
|
144
144
|
<span>Raft Manager</span>
|
|
145
145
|
<span class="cat-badge">consensus</span>
|
|
146
146
|
</div>
|
|
147
|
-
<div class="card" data-label="gossip coordinator" data-cat="consensus"
|
|
148
|
-
onclick="copy('gossip-coordinator')">
|
|
149
|
-
<img src="avatars/gossip-coordinator.svg" alt="Gossip Coordinator" loading="lazy"/>
|
|
150
|
-
<span>Gossip Coordinator</span>
|
|
151
|
-
<span class="cat-badge">consensus</span>
|
|
152
|
-
</div>
|
|
153
|
-
<div class="card" data-label="crdt synchronizer" data-cat="consensus"
|
|
154
|
-
onclick="copy('crdt-synchronizer')">
|
|
155
|
-
<img src="avatars/crdt-synchronizer.svg" alt="CRDT Synchronizer" loading="lazy"/>
|
|
156
|
-
<span>CRDT Synchronizer</span>
|
|
157
|
-
<span class="cat-badge">consensus</span>
|
|
158
|
-
</div>
|
|
159
147
|
<div class="card" data-label="quorum manager" data-cat="consensus"
|
|
160
148
|
onclick="copy('quorum-manager')">
|
|
161
149
|
<img src="avatars/quorum-manager.svg" alt="Quorum Manager" loading="lazy"/>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
{
|
|
102
102
|
"id": "hierarchical-coord",
|
|
103
103
|
"label": "Hierarchical Coord.",
|
|
104
|
-
"category": "
|
|
104
|
+
"category": "monoswarm",
|
|
105
105
|
"icon": "🏛️",
|
|
106
106
|
"file": "avatars/hierarchical-coord.svg",
|
|
107
107
|
"index": 12
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
{
|
|
110
110
|
"id": "mesh-coordinator",
|
|
111
111
|
"label": "Mesh Coordinator",
|
|
112
|
-
"category": "
|
|
112
|
+
"category": "monoswarm",
|
|
113
113
|
"icon": "🕸️",
|
|
114
114
|
"file": "avatars/mesh-coordinator.svg",
|
|
115
115
|
"index": 13
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
{
|
|
118
118
|
"id": "adaptive-coordinator",
|
|
119
119
|
"label": "Adaptive Coordinator",
|
|
120
|
-
"category": "
|
|
120
|
+
"category": "monoswarm",
|
|
121
121
|
"icon": "🔄",
|
|
122
122
|
"file": "avatars/adaptive-coordinator.svg",
|
|
123
123
|
"index": 14
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
{
|
|
126
126
|
"id": "collective-coord",
|
|
127
127
|
"label": "Collective Intel.",
|
|
128
|
-
"category": "
|
|
128
|
+
"category": "monoswarm",
|
|
129
129
|
"icon": "🧠",
|
|
130
130
|
"file": "avatars/collective-coord.svg",
|
|
131
131
|
"index": 15
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
{
|
|
134
134
|
"id": "queen-coordinator",
|
|
135
135
|
"label": "Queen Coordinator",
|
|
136
|
-
"category": "
|
|
136
|
+
"category": "monoswarm",
|
|
137
137
|
"icon": "👑",
|
|
138
138
|
"file": "avatars/queen-coordinator.svg",
|
|
139
139
|
"index": 16
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
{
|
|
142
142
|
"id": "worker-specialist",
|
|
143
143
|
"label": "Worker Specialist",
|
|
144
|
-
"category": "
|
|
144
|
+
"category": "monoswarm",
|
|
145
145
|
"icon": "⚙️",
|
|
146
146
|
"file": "avatars/worker-specialist.svg",
|
|
147
147
|
"index": 17
|
|
@@ -162,22 +162,6 @@
|
|
|
162
162
|
"file": "avatars/raft-manager.svg",
|
|
163
163
|
"index": 19
|
|
164
164
|
},
|
|
165
|
-
{
|
|
166
|
-
"id": "gossip-coordinator",
|
|
167
|
-
"label": "Gossip Coordinator",
|
|
168
|
-
"category": "consensus",
|
|
169
|
-
"icon": "💬",
|
|
170
|
-
"file": "avatars/gossip-coordinator.svg",
|
|
171
|
-
"index": 20
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
"id": "crdt-synchronizer",
|
|
175
|
-
"label": "CRDT Synchronizer",
|
|
176
|
-
"category": "consensus",
|
|
177
|
-
"icon": "🔗",
|
|
178
|
-
"file": "avatars/crdt-synchronizer.svg",
|
|
179
|
-
"index": 21
|
|
180
|
-
},
|
|
181
165
|
{
|
|
182
166
|
"id": "quorum-manager",
|
|
183
167
|
"label": "Quorum Manager",
|
|
@@ -251,11 +235,11 @@
|
|
|
251
235
|
"index": 30
|
|
252
236
|
},
|
|
253
237
|
{
|
|
254
|
-
"id": "code-review
|
|
255
|
-
"label": "Code Review
|
|
238
|
+
"id": "monoswarm-code-review",
|
|
239
|
+
"label": "Monoswarm Code Review",
|
|
256
240
|
"category": "github",
|
|
257
241
|
"icon": "👁️",
|
|
258
|
-
"file": "avatars/code-review
|
|
242
|
+
"file": "avatars/monoswarm-code-review.svg",
|
|
259
243
|
"index": 31
|
|
260
244
|
},
|
|
261
245
|
{
|
|
@@ -949,7 +933,7 @@
|
|
|
949
933
|
{
|
|
950
934
|
"id": "scout-explorer",
|
|
951
935
|
"label": "Scout Explorer",
|
|
952
|
-
"category": "
|
|
936
|
+
"category": "monoswarm",
|
|
953
937
|
"icon": "🧭",
|
|
954
938
|
"file": "avatars/scout-explorer.svg",
|
|
955
939
|
"index": 118
|
package/dist/src/ui/orgs.html
CHANGED
|
@@ -1406,7 +1406,14 @@ function renderTab(tab) {
|
|
|
1406
1406
|
function renderChart() {
|
|
1407
1407
|
const d = orgDetailData;
|
|
1408
1408
|
const roles = Array.isArray(d.roles) ? d.roles : [];
|
|
1409
|
-
|
|
1409
|
+
// Structural report lines come straight from each role's reports_to (the
|
|
1410
|
+
// authoritative chain also shown in the Roles tab) — declared communication
|
|
1411
|
+
// edges (command/feedback/handoff busses) don't reflect who actually reports
|
|
1412
|
+
// to whom, e.g. a hierarchical topology's queen commanding every worker directly.
|
|
1413
|
+
const reportEdges = roles
|
|
1414
|
+
.filter(r => r.reports_to && r.reports_to !== r.id)
|
|
1415
|
+
.map(r => ({ from: r.id, to: r.reports_to, type: 'report' }));
|
|
1416
|
+
const comms = reportEdges.concat(Array.isArray(d.communication) ? d.communication : []);
|
|
1410
1417
|
const running = !!(allOrgs.find(o => o.name === selectedOrg) || {}).running;
|
|
1411
1418
|
|
|
1412
1419
|
// Meta bar
|
|
@@ -230,8 +230,11 @@ if (req.method === 'GET' && /^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/activity$/i.
|
|
|
230
230
|
if (cfg) {
|
|
231
231
|
const createdMs = cfg.created_at ? Date.parse(cfg.created_at) : null;
|
|
232
232
|
if (createdMs) events.push({ type: 'org:create', ts: createdMs, msg: String(cfg.goal || 'Org created').slice(0, 80) });
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
// Roles are defined atomically at org creation — there is no per-role
|
|
234
|
+
// timestamp in the config, so every role:defined event uses the org's
|
|
235
|
+
// real created_at instead of a fabricated per-index offset.
|
|
236
|
+
(cfg.roles || []).forEach((r) => {
|
|
237
|
+
events.push({ type: 'role:defined', ts: createdMs, role: r.title || r.id, msg: r.agent_type || '' });
|
|
235
238
|
});
|
|
236
239
|
}
|
|
237
240
|
const goals = readJ(path.join(orgsDir, `${orgName}-goals.json`));
|
|
@@ -308,10 +311,30 @@ if (req.method === 'GET' && /^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/adapters$/i.
|
|
|
308
311
|
let defaultAdapter = 'claude-sonnet-4-6';
|
|
309
312
|
try { defaultAdapter = JSON.parse(fs.readFileSync(orgFile, 'utf8'))?.run_config?.ceo_adapter || defaultAdapter; } catch(_) {}
|
|
310
313
|
res.writeHead(200, { 'Content-Type': 'application/json', ...(corsOrigin ? { 'Access-Control-Allow-Origin': corsOrigin } : {}) });
|
|
314
|
+
// This list mirrors the runtimes orgrt/daemon.ts actually registers
|
|
315
|
+
// (resolveRunner()'s if-chain + the ClaudeAgentRunner default it falls
|
|
316
|
+
// through to) rather than an independent, hand-maintained catalog — a
|
|
317
|
+
// standalone 'gemini-local' entry used to be advertised here even
|
|
318
|
+
// though no runner is ever registered for it (autoRuntimeFromProvider
|
|
319
|
+
// has no 'gemini' case, so a role requesting it silently falls back to
|
|
320
|
+
// Claude — see daemon.ts#startOrg's fail-fast warning). Gemini is only
|
|
321
|
+
// actually reachable via the 'vercel' runtime (vendor: 'google') or via
|
|
322
|
+
// 'antigravity' (Google-account CLI), both listed below. 'http' maps to
|
|
323
|
+
// provider.kind === 'base-url' (ANTHROPIC_BASE_URL + optional auth
|
|
324
|
+
// token) — a real, usable path, not disabled.
|
|
311
325
|
res.end(JSON.stringify({ default_adapter: defaultAdapter, adapters: [
|
|
312
326
|
{ type: 'claude-local', label: 'Claude (local CLI)', source: 'built-in', disabled: false, modelsCount: 3 },
|
|
313
|
-
{ type: '
|
|
314
|
-
{ type: '
|
|
327
|
+
{ type: 'codex-local', label: 'Codex CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
328
|
+
{ type: 'antigravity', label: 'Antigravity (Google CLI)', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
329
|
+
{ type: 'grok', label: 'Grok CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
330
|
+
{ type: 'qwen', label: 'Qwen CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
331
|
+
{ type: 'crush', label: 'Crush CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
332
|
+
{ type: 'copilot', label: 'GitHub Copilot CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
333
|
+
{ type: 'pi', label: 'Pi CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
334
|
+
{ type: 'opencode', label: 'OpenCode CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
335
|
+
{ type: 'kimicode', label: 'KimiCode CLI', source: 'built-in', disabled: false, modelsCount: 1 },
|
|
336
|
+
{ type: 'vercel', label: 'Vercel AI SDK (multi-vendor, incl. Gemini/OpenAI)', source: 'built-in', disabled: false, modelsCount: 14 },
|
|
337
|
+
{ type: 'http', label: 'Custom HTTP (base-url provider)', source: 'built-in', disabled: false, modelsCount: 0 },
|
|
315
338
|
]}));
|
|
316
339
|
return true;
|
|
317
340
|
}
|
|
@@ -878,6 +901,32 @@ if (req.method === 'GET' && url.match(/^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/ap
|
|
|
878
901
|
return true;
|
|
879
902
|
}
|
|
880
903
|
|
|
904
|
+
// GET /api/org/:name/gates — decision gate log (read-only explorer; resolving stays
|
|
905
|
+
// CLI-only via `org gate-approve`/`gate-reject`, which needs the daemon's
|
|
906
|
+
// x-monomind-cred auth header for live delivery — out of scope for a read-only view)
|
|
907
|
+
if (req.method === 'GET' && url.match(/^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/gates(\?.*)?$/i)) {
|
|
908
|
+
try {
|
|
909
|
+
const orgName = decodeURIComponent(url.split('/')[3].split('?')[0]);
|
|
910
|
+
if (orgName.length > 64 || !/^[a-z0-9][a-z0-9_-]*$/i.test(orgName)) { res.writeHead(400); res.end('Invalid org name'); return true; }
|
|
911
|
+
const _gatesQs = new URL(req.url, 'http://localhost').searchParams;
|
|
912
|
+
const base = path.join(path.resolve(_gatesQs.get('dir') || ctx.projectDir || process.cwd()), '.monomind', 'orgs');
|
|
913
|
+
const readJsonSafe = (f) => { try { return JSON.parse(fs.readFileSync(f, 'utf8')); } catch(_) { return null; } };
|
|
914
|
+
const data = readJsonSafe(path.join(base, orgName, 'gates.json')) || { gates: [] };
|
|
915
|
+
const gates = (data.gates || [])
|
|
916
|
+
.sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0))
|
|
917
|
+
.map(g => ({
|
|
918
|
+
id: g.id, name: g.name, description: g.description, roleId: g.roleId,
|
|
919
|
+
status: g.status || 'pending', createdAt: g.createdAt || null,
|
|
920
|
+
resolvedBy: g.resolvedBy || null, resolvedAt: g.resolvedAt || null,
|
|
921
|
+
resolution: g.resolution || null,
|
|
922
|
+
}));
|
|
923
|
+
const pending = gates.filter(g => g.status === 'pending').length;
|
|
924
|
+
res.writeHead(200, { 'Content-Type': 'application/json', ...(corsOrigin ? { 'Access-Control-Allow-Origin': corsOrigin } : {}) });
|
|
925
|
+
res.end(JSON.stringify({ gates, pending }));
|
|
926
|
+
} catch(_) { res.writeHead(500); res.end('{"gates":[],"pending":0}'); }
|
|
927
|
+
return true;
|
|
928
|
+
}
|
|
929
|
+
|
|
881
930
|
// GET /api/questions?dir=<ctx.projectDir> — list ask_human questions (pending and
|
|
882
931
|
// answered) for every org in one project. Mirrors the existing -approvals.json
|
|
883
932
|
// sidecar convention, but reads this feature's .monomind/orgs/<org>/questions.json
|
|
@@ -1109,13 +1158,29 @@ if (req.method === 'GET' && url.match(/^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/bu
|
|
|
1109
1158
|
total_cost_usd: s.total_cost_usd || 0,
|
|
1110
1159
|
}));
|
|
1111
1160
|
} catch(_) {}
|
|
1112
|
-
// Scan org run jsonl files for
|
|
1161
|
+
// Scan org run jsonl files for usage events (fallback when state.json has no token data).
|
|
1162
|
+
// Two event-type variants show up here in practice and must BOTH be matched, each with its
|
|
1163
|
+
// own field mapping — matching only one silently drops real v2 cost data from the UI:
|
|
1164
|
+
// - 'agent:usage': flattened { role, tokens_in, tokens_out, cost_usd } (legacy/direct writers).
|
|
1165
|
+
// - 'org:usage': orgrt's actual forwarded shape (attachForwarder's translate() default case
|
|
1166
|
+
// for a raw OrgBus 'usage' event) — { from, data: { tokens, cost_usd } }. orgrt never emits
|
|
1167
|
+
// 'agent:usage' itself, so scanning for that alone means this fallback never fires for real runs.
|
|
1113
1168
|
const _hasTokenData = agents.some(a => a.tokens_in > 0 || a.tokens_out > 0 || a.total_cost_usd > 0);
|
|
1114
1169
|
if (!_hasTokenData) {
|
|
1115
1170
|
try {
|
|
1116
1171
|
const _runsDir = path.join(base, orgName, 'runs');
|
|
1117
1172
|
if (fs.existsSync(_runsDir)) {
|
|
1118
1173
|
const _usageByRole = {};
|
|
1174
|
+
const _bump = (role, tokensIn, tokensOut, tokensTotal, costUsd) => {
|
|
1175
|
+
if (!role) return;
|
|
1176
|
+
role = String(role).trim();
|
|
1177
|
+
if (!role) return;
|
|
1178
|
+
if (!_usageByRole[role]) _usageByRole[role] = { tokens_in: 0, tokens_out: 0, tokens_used: 0, total_cost_usd: 0 };
|
|
1179
|
+
_usageByRole[role].tokens_in += tokensIn;
|
|
1180
|
+
_usageByRole[role].tokens_out += tokensOut;
|
|
1181
|
+
_usageByRole[role].tokens_used += tokensIn + tokensOut + tokensTotal;
|
|
1182
|
+
_usageByRole[role].total_cost_usd += costUsd;
|
|
1183
|
+
};
|
|
1119
1184
|
for (const f of fs.readdirSync(_runsDir)) {
|
|
1120
1185
|
if (!f.endsWith('.jsonl') || f.startsWith('._')) continue;
|
|
1121
1186
|
const lines = fs.readFileSync(path.join(_runsDir, f), 'utf8').split('\n').filter(Boolean);
|
|
@@ -1123,11 +1188,9 @@ if (req.method === 'GET' && url.match(/^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/bu
|
|
|
1123
1188
|
try {
|
|
1124
1189
|
const ev = JSON.parse(l);
|
|
1125
1190
|
if (ev.type === 'agent:usage' && ev.role) {
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
_usageByRole[role].tokens_out += Number(ev.tokens_out) || 0;
|
|
1130
|
-
_usageByRole[role].total_cost_usd += Number(ev.cost_usd) || 0;
|
|
1191
|
+
_bump(ev.role, Number(ev.tokens_in) || 0, Number(ev.tokens_out) || 0, 0, Number(ev.cost_usd) || 0);
|
|
1192
|
+
} else if (ev.type === 'org:usage' && ev.from) {
|
|
1193
|
+
_bump(ev.from, 0, 0, Number(ev.data?.tokens) || 0, Number(ev.data?.cost_usd) || 0);
|
|
1131
1194
|
}
|
|
1132
1195
|
} catch(_) {}
|
|
1133
1196
|
}
|
|
@@ -1136,7 +1199,13 @@ if (req.method === 'GET' && url.match(/^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/bu
|
|
|
1136
1199
|
// Merge usage into agents list; preserve role titles
|
|
1137
1200
|
agents = agents.map(a => {
|
|
1138
1201
|
const u = _usageByRole[a.id] || {};
|
|
1139
|
-
return {
|
|
1202
|
+
return {
|
|
1203
|
+
...a,
|
|
1204
|
+
tokens_in: u.tokens_in || 0,
|
|
1205
|
+
tokens_out: u.tokens_out || 0,
|
|
1206
|
+
tokens_used: u.tokens_used || ((u.tokens_in || 0) + (u.tokens_out || 0)),
|
|
1207
|
+
total_cost_usd: u.total_cost_usd || 0,
|
|
1208
|
+
};
|
|
1140
1209
|
});
|
|
1141
1210
|
// Add any roles that appeared in events but aren't in config
|
|
1142
1211
|
for (const [role, u] of Object.entries(_usageByRole)) {
|
|
@@ -2172,21 +2241,21 @@ if (req.method === 'POST' && url === '/api/knowledge/search') {
|
|
|
2172
2241
|
return true;
|
|
2173
2242
|
}
|
|
2174
2243
|
|
|
2175
|
-
// GET /api/mastermind/metrics — aggregate system metrics from token-summary and
|
|
2244
|
+
// GET /api/mastermind/metrics — aggregate system metrics from token-summary and monoswarm-activity
|
|
2176
2245
|
if (req.method === 'GET' && url === '/api/mastermind/metrics') {
|
|
2177
2246
|
try {
|
|
2178
2247
|
const base = path.join(ctx.projectDir || process.cwd(), '.monomind', 'metrics');
|
|
2179
|
-
let tokens = {},
|
|
2248
|
+
let tokens = {}, monoswarm = {}, events = [];
|
|
2180
2249
|
try { tokens = JSON.parse(fs.readFileSync(path.join(base, 'token-summary.json'), 'utf8')); } catch(_) {}
|
|
2181
|
-
try {
|
|
2250
|
+
try { monoswarm = JSON.parse(fs.readFileSync(path.join(base, 'monoswarm-activity.json'), 'utf8')); } catch(_) {}
|
|
2182
2251
|
try {
|
|
2183
2252
|
const evPath = path.join(ctx.projectDir || process.cwd(), 'data', 'mastermind-events.jsonl');
|
|
2184
2253
|
const lines = fs.readFileSync(evPath, 'utf8').split('\n').filter(l => l.trim()).slice(-20);
|
|
2185
2254
|
events = lines.map(l => { try { return JSON.parse(l); } catch(_) { return null; } }).filter(Boolean);
|
|
2186
2255
|
} catch(_) {}
|
|
2187
2256
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
2188
|
-
res.end(JSON.stringify({ tokens,
|
|
2189
|
-
} catch(_) { res.writeHead(500); res.end('{"tokens":{},"
|
|
2257
|
+
res.end(JSON.stringify({ tokens, monoswarm, recentEvents: events }));
|
|
2258
|
+
} catch(_) { res.writeHead(500); res.end('{"tokens":{},"monoswarm":{},"recentEvents":[]}'); }
|
|
2190
2259
|
return true;
|
|
2191
2260
|
}
|
|
2192
2261
|
|