@monoes/monomindcli 2.9.22 → 2.9.24
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/agents/registry-builder.d.ts.map +1 -1
- package/dist/src/agents/registry-builder.js +8 -9
- package/dist/src/agents/registry-builder.js.map +1 -1
- 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 +6 -21
- package/dist/src/autopilot-state.js.map +1 -1
- package/dist/src/browser/action-builder/analyzer.d.ts.map +1 -1
- package/dist/src/browser/action-builder/analyzer.js +6 -6
- package/dist/src/browser/action-builder/analyzer.js.map +1 -1
- package/dist/src/browser/action-builder/types.d.ts.map +1 -1
- package/dist/src/browser/adapters/gemini.d.ts.map +1 -1
- package/dist/src/browser/adapters/index.d.ts.map +1 -1
- package/dist/src/browser/adapters/index.js +2 -2
- package/dist/src/browser/adapters/index.js.map +1 -1
- package/dist/src/browser/adapters/instagram.d.ts.map +1 -1
- package/dist/src/browser/adapters/linkedin.d.ts.map +1 -1
- package/dist/src/browser/adapters/linkedin.js +9 -1
- package/dist/src/browser/adapters/linkedin.js.map +1 -1
- package/dist/src/browser/adapters/x.d.ts.map +1 -1
- package/dist/src/browser/adapters/x.js +14 -2
- package/dist/src/browser/adapters/x.js.map +1 -1
- package/dist/src/browser/dashboard/server.d.ts.map +1 -1
- package/dist/src/browser/dashboard/server.js +23 -13
- package/dist/src/browser/dashboard/server.js.map +1 -1
- package/dist/src/browser/dashboard/ui.html +5 -5
- package/dist/src/browser/workflow/engine.d.ts +1 -1
- package/dist/src/browser/workflow/engine.d.ts.map +1 -1
- package/dist/src/browser/workflow/engine.js +74 -25
- package/dist/src/browser/workflow/engine.js.map +1 -1
- package/dist/src/browser/workflow/store.d.ts +1 -1
- package/dist/src/browser/workflow/store.d.ts.map +1 -1
- package/dist/src/browser/workflow/store.js +54 -26
- package/dist/src/browser/workflow/store.js.map +1 -1
- package/dist/src/browser/workflow/types.d.ts.map +1 -1
- package/dist/src/capabilities/cap-code.d.ts.map +1 -1
- package/dist/src/capabilities/cap-code.js.map +1 -1
- package/dist/src/capabilities/cap-data.d.ts.map +1 -1
- package/dist/src/capabilities/cap-data.js +28 -8
- package/dist/src/capabilities/cap-data.js.map +1 -1
- package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
- package/dist/src/capabilities/cap-documents.js +136 -54
- package/dist/src/capabilities/cap-documents.js.map +1 -1
- package/dist/src/capabilities/cap-graph.d.ts.map +1 -1
- package/dist/src/capabilities/cap-graph.js +3 -3
- package/dist/src/capabilities/cap-graph.js.map +1 -1
- package/dist/src/capabilities/cap-media.d.ts.map +1 -1
- package/dist/src/capabilities/cap-media.js +1 -1
- package/dist/src/capabilities/cap-media.js.map +1 -1
- package/dist/src/capabilities/cap-timeline.d.ts.map +1 -1
- package/dist/src/capabilities/cap-timeline.js +33 -7
- package/dist/src/capabilities/cap-timeline.js.map +1 -1
- package/dist/src/capabilities/index.d.ts +5 -5
- package/dist/src/capabilities/index.d.ts.map +1 -1
- package/dist/src/capabilities/index.js +5 -5
- package/dist/src/capabilities/index.js.map +1 -1
- package/dist/src/capabilities/manager.d.ts.map +1 -1
- package/dist/src/capabilities/manager.js +6 -6
- package/dist/src/capabilities/manager.js.map +1 -1
- package/dist/src/capabilities/scanner.d.ts.map +1 -1
- package/dist/src/capabilities/scanner.js +103 -14
- package/dist/src/capabilities/scanner.js.map +1 -1
- package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
- package/dist/src/commands/agent-lifecycle.js +120 -41
- 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 +107 -41
- package/dist/src/commands/agent-ops.js.map +1 -1
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +11 -3
- package/dist/src/commands/agent.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 +47 -41
- package/dist/src/commands/analyze-ast.js.map +1 -1
- package/dist/src/commands/analyze-diff.d.ts.map +1 -1
- package/dist/src/commands/analyze-diff.js +147 -35
- package/dist/src/commands/analyze-diff.js.map +1 -1
- package/dist/src/commands/analyze-imports.d.ts.map +1 -1
- package/dist/src/commands/analyze-imports.js +74 -30
- 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 +55 -41
- 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 +90 -28
- 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 +5 -90
- package/dist/src/commands/autopilot.js.map +1 -1
- package/dist/src/commands/browse-action.d.ts.map +1 -1
- package/dist/src/commands/browse-action.js +65 -17
- package/dist/src/commands/browse-action.js.map +1 -1
- package/dist/src/commands/browse-platform.d.ts.map +1 -1
- package/dist/src/commands/browse-platform.js +13 -10
- package/dist/src/commands/browse-platform.js.map +1 -1
- package/dist/src/commands/browse-workflow.d.ts.map +1 -1
- package/dist/src/commands/browse-workflow.js +54 -20
- package/dist/src/commands/browse-workflow.js.map +1 -1
- package/dist/src/commands/browse.d.ts +1 -1
- package/dist/src/commands/browse.js +2 -2
- package/dist/src/commands/browse.js.map +1 -1
- package/dist/src/commands/cleanup.d.ts.map +1 -1
- package/dist/src/commands/cleanup.js +115 -49
- 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 +34 -21
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +95 -54
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/crash-reporting.d.ts.map +1 -1
- package/dist/src/commands/crash-reporting.js +10 -4
- package/dist/src/commands/crash-reporting.js.map +1 -1
- package/dist/src/commands/design-detect.d.ts.map +1 -1
- package/dist/src/commands/design-detect.js +33 -12
- package/dist/src/commands/design-detect.js.map +1 -1
- package/dist/src/commands/design-palette.d.ts.map +1 -1
- package/dist/src/commands/design-palette.js +770 -380
- package/dist/src/commands/design-palette.js.map +1 -1
- package/dist/src/commands/doc.d.ts.map +1 -1
- package/dist/src/commands/doc.js +272 -60
- package/dist/src/commands/doc.js.map +1 -1
- package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-env-checks.js +130 -31
- package/dist/src/commands/doctor-env-checks.js.map +1 -1
- package/dist/src/commands/doctor-monoes-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-monoes-checks.js +20 -7
- package/dist/src/commands/doctor-monoes-checks.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 +476 -114
- 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 +139 -60
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/download-embeddings.d.ts.map +1 -1
- package/dist/src/commands/download-embeddings.js +1 -1
- package/dist/src/commands/download-embeddings.js.map +1 -1
- package/dist/src/commands/events.d.ts.map +1 -1
- package/dist/src/commands/events.js +5 -2
- package/dist/src/commands/events.js.map +1 -1
- package/dist/src/commands/guidance.d.ts.map +1 -1
- package/dist/src/commands/guidance.js +38 -14
- package/dist/src/commands/guidance.js.map +1 -1
- package/dist/src/commands/hooks-core-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-core-commands.js +71 -44
- package/dist/src/commands/hooks-core-commands.js.map +1 -1
- package/dist/src/commands/hooks-coverage-commands.d.ts +1 -2
- package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-commands.js +140 -58
- package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
- package/dist/src/commands/hooks-coverage-gaps.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-gaps.js +74 -36
- package/dist/src/commands/hooks-coverage-gaps.js.map +1 -1
- package/dist/src/commands/hooks-coverage-routing.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-routing.js +139 -66
- package/dist/src/commands/hooks-coverage-routing.js.map +1 -1
- package/dist/src/commands/hooks-coverage-utils.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-utils.js +27 -8
- package/dist/src/commands/hooks-coverage-utils.js.map +1 -1
- package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-extended-commands.js +86 -21
- package/dist/src/commands/hooks-extended-commands.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 +175 -183
- 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 +111 -128
- 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 +9 -12
- 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 +16 -5
- package/dist/src/commands/init-subcommands.js.map +1 -1
- package/dist/src/commands/init-upgrade.d.ts.map +1 -1
- package/dist/src/commands/init-upgrade.js +46 -23
- package/dist/src/commands/init-upgrade.js.map +1 -1
- package/dist/src/commands/init-wizard.d.ts.map +1 -1
- package/dist/src/commands/init-wizard.js +161 -44
- 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 +179 -64
- 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 +229 -134
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory-admin.d.ts.map +1 -1
- package/dist/src/commands/memory-admin.js +67 -48
- package/dist/src/commands/memory-admin.js.map +1 -1
- package/dist/src/commands/memory-crud.d.ts.map +1 -1
- package/dist/src/commands/memory-crud.js +97 -60
- package/dist/src/commands/memory-crud.js.map +1 -1
- package/dist/src/commands/memory-list.d.ts.map +1 -1
- package/dist/src/commands/memory-list.js +6 -6
- package/dist/src/commands/memory-list.js.map +1 -1
- package/dist/src/commands/memory-transfer.d.ts.map +1 -1
- package/dist/src/commands/memory-transfer.js +46 -23
- package/dist/src/commands/memory-transfer.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +63 -35
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/monograph.d.ts.map +1 -1
- package/dist/src/commands/monograph.js +170 -57
- package/dist/src/commands/monograph.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} +93 -315
- 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 +123 -32
- 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 +95 -130
- 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 +70 -181
- 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 +308 -131
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org-visualize.d.ts.map +1 -1
- package/dist/src/commands/org-visualize.js +10 -5
- package/dist/src/commands/org-visualize.js.map +1 -1
- package/dist/src/commands/org.d.ts +15 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +663 -193
- 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 +232 -79
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/platforms.d.ts +1 -1
- package/dist/src/commands/platforms.d.ts.map +1 -1
- package/dist/src/commands/platforms.js +89 -49
- package/dist/src/commands/platforms.js.map +1 -1
- package/dist/src/commands/providers.d.ts.map +1 -1
- package/dist/src/commands/providers.js +31 -18
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/report-crash.d.ts.map +1 -1
- package/dist/src/commands/report-crash.js +17 -5
- package/dist/src/commands/report-crash.js.map +1 -1
- package/dist/src/commands/route.d.ts.map +1 -1
- package/dist/src/commands/route.js +123 -41
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/search-universal.d.ts +1 -1
- package/dist/src/commands/search-universal.d.ts.map +1 -1
- package/dist/src/commands/search-universal.js +29 -14
- package/dist/src/commands/search-universal.js.map +1 -1
- package/dist/src/commands/security-cve.d.ts.map +1 -1
- package/dist/src/commands/security-cve.js +75 -34
- package/dist/src/commands/security-cve.js.map +1 -1
- package/dist/src/commands/security-misc.d.ts.map +1 -1
- package/dist/src/commands/security-misc.js +362 -102
- 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 +222 -57
- package/dist/src/commands/security-scan.js.map +1 -1
- package/dist/src/commands/security.d.ts.map +1 -1
- package/dist/src/commands/security.js +10 -3
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.d.ts.map +1 -1
- package/dist/src/commands/session.js +81 -75
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +59 -129
- 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 +151 -130
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/task.d.ts.map +1 -1
- package/dist/src/commands/task.js +115 -84
- package/dist/src/commands/task.js.map +1 -1
- package/dist/src/commands/tokens.d.ts.map +1 -1
- package/dist/src/commands/tokens.js +67 -32
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +3 -5
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/consensus/audit-writer.d.ts +7 -2
- package/dist/src/consensus/audit-writer.d.ts.map +1 -1
- package/dist/src/consensus/audit-writer.js +19 -11
- package/dist/src/consensus/audit-writer.js.map +1 -1
- package/dist/src/consensus/tally.d.ts.map +1 -1
- package/dist/src/consensus/tally.js +2 -2
- package/dist/src/consensus/tally.js.map +1 -1
- package/dist/src/index.d.ts +7 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +51 -43
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +52 -36
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/codex-generator.d.ts +16 -0
- package/dist/src/init/codex-generator.d.ts.map +1 -0
- package/dist/src/init/codex-generator.js +180 -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 +17 -20
- package/dist/src/init/copy-assets.js.map +1 -1
- package/dist/src/init/executor.d.ts +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +56 -29
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/geminimd-generator.d.ts +1 -1
- package/dist/src/init/geminimd-generator.d.ts.map +1 -1
- package/dist/src/init/geminimd-generator.js +2 -2
- package/dist/src/init/geminimd-generator.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +7 -7
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/index.d.ts +8 -7
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +9 -8
- package/dist/src/init/index.js.map +1 -1
- package/dist/src/init/kimi-generator.d.ts +1 -1
- package/dist/src/init/kimi-generator.d.ts.map +1 -1
- package/dist/src/init/kimi-generator.js +34 -28
- package/dist/src/init/kimi-generator.js.map +1 -1
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +3 -11
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/opencode-generator.d.ts.map +1 -1
- package/dist/src/init/opencode-generator.js +35 -22
- 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 +3 -7
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared-instructions-generator.d.ts.map +1 -1
- package/dist/src/init/shared-instructions-generator.js +124 -76
- package/dist/src/init/shared-instructions-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts.map +1 -1
- package/dist/src/init/shared.js +26 -25
- 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 +10 -8
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/init/upgrade.d.ts.map +1 -1
- package/dist/src/init/upgrade.js +24 -22
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-antigravity.d.ts.map +1 -1
- package/dist/src/init/write-antigravity.js +15 -7
- package/dist/src/init/write-antigravity.js.map +1 -1
- package/dist/src/init/write-capabilities.d.ts.map +1 -1
- package/dist/src/init/write-capabilities.js +39 -52
- package/dist/src/init/write-capabilities.js.map +1 -1
- package/dist/src/init/write-claude.d.ts.map +1 -1
- package/dist/src/init/write-claude.js +19 -15
- 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 +122 -0
- package/dist/src/init/write-codex.js.map +1 -0
- package/dist/src/init/write-kimicode.d.ts.map +1 -1
- package/dist/src/init/write-kimicode.js +10 -6
- package/dist/src/init/write-kimicode.js.map +1 -1
- package/dist/src/init/write-opencode.d.ts.map +1 -1
- package/dist/src/init/write-opencode.js +4 -4
- package/dist/src/init/write-opencode.js.map +1 -1
- package/dist/src/init/write-runtime-config.d.ts.map +1 -1
- package/dist/src/init/write-runtime-config.js +24 -24
- package/dist/src/init/write-runtime-config.js.map +1 -1
- package/dist/src/init/write-sample-org.js +1 -1
- package/dist/src/init/write-sample-org.js.map +1 -1
- package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
- package/dist/src/knowledge/document-pipeline.js +144 -48
- package/dist/src/knowledge/document-pipeline.js.map +1 -1
- package/dist/src/knowledge/eval/corpus.d.ts.map +1 -1
- package/dist/src/knowledge/eval/corpus.js +18 -9
- package/dist/src/knowledge/eval/corpus.js.map +1 -1
- package/dist/src/knowledge/eval/golden-set.d.ts.map +1 -1
- package/dist/src/knowledge/eval/golden-set.js +4286 -136
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/knowledge/eval/harness.d.ts +2 -2
- package/dist/src/knowledge/eval/harness.d.ts.map +1 -1
- package/dist/src/knowledge/eval/harness.js +163 -70
- package/dist/src/knowledge/eval/harness.js.map +1 -1
- package/dist/src/knowledge/eval/metrics.d.ts.map +1 -1
- package/dist/src/knowledge/eval/metrics.js +25 -18
- package/dist/src/knowledge/eval/metrics.js.map +1 -1
- package/dist/src/knowledge/eval/model-presence.d.ts.map +1 -1
- package/dist/src/knowledge/eval/model-presence.js +40 -14
- package/dist/src/knowledge/eval/model-presence.js.map +1 -1
- package/dist/src/knowledge/eval/network-guard.d.ts.map +1 -1
- package/dist/src/knowledge/eval/network-guard.js +22 -10
- package/dist/src/knowledge/eval/network-guard.js.map +1 -1
- package/dist/src/knowledge/eval/retrievers.d.ts.map +1 -1
- package/dist/src/knowledge/eval/retrievers.js +14 -10
- package/dist/src/knowledge/eval/retrievers.js.map +1 -1
- package/dist/src/knowledge/eval/signals.d.ts.map +1 -1
- package/dist/src/knowledge/eval/signals.js +54 -18
- package/dist/src/knowledge/eval/signals.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +70 -35
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts +1 -9
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +20 -43
- 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 +87 -52
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +34 -17
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
- package/dist/src/mcp-tools/auto-install.js +3 -3
- package/dist/src/mcp-tools/auto-install.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 +32 -70
- package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +119 -37
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +100 -44
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +36 -15
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +34 -23
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +200 -43
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/graphify-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/graphify-tools.js +2 -2
- package/dist/src/mcp-tools/graphify-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 +461 -115
- package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.d.ts +0 -6
- package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.js +170 -59
- package/dist/src/mcp-tools/hooks-embedding.js.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -9
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.js +64 -119
- 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 +92 -165
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts +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 +18 -19
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +18 -19
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.js +88 -28
- package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +157 -40
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monodesign-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monodesign-tools.js +63 -22
- package/dist/src/mcp-tools/monodesign-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/agent-history-tools.js +22 -9
- package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/build-tools.js +37 -16
- package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/group-tools.js +57 -20
- package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.js +13 -7
- package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/impact-tools.js +6 -6
- package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/index.js +8 -8
- package/dist/src/mcp-tools/monograph/index.js.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.js +140 -65
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.js +42 -22
- package/dist/src/mcp-tools/monograph/shared.js.map +1 -1
- package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/visualize-tools.js +87 -36
- package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph-compat.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-compat.js +25 -14
- package/dist/src/mcp-tools/monograph-compat.js.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +1 -1
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.js +1 -1
- package/dist/src/mcp-tools/monomind-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 +1289 -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 +305 -101
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +9 -4
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +36 -14
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
- package/dist/src/mcp-tools/quality-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality-tools.js.map +1 -1
- package/dist/src/mcp-tools/request-tracker.d.ts.map +1 -1
- package/dist/src/mcp-tools/request-tracker.js +2 -1
- package/dist/src/mcp-tools/request-tracker.js.map +1 -1
- package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/security-tools.js +117 -53
- package/dist/src/mcp-tools/security-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +22 -13
- package/dist/src/mcp-tools/session-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 +37 -20
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +59 -22
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +43 -16
- package/dist/src/mcp-tools/terminal-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 +11 -14
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/types.d.ts +1 -1
- package/dist/src/mcp-tools/types.d.ts.map +1 -1
- package/dist/src/mcp-tools/types.js +1 -1
- package/dist/src/mcp-tools/types.js.map +1 -1
- package/dist/src/memory/bm25-index.d.ts.map +1 -1
- package/dist/src/memory/bm25-index.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts.map +1 -1
- package/dist/src/memory/embedding-operations.js +23 -56
- package/dist/src/memory/embedding-operations.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +31 -27
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +15 -75
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
- package/dist/src/memory/hnsw-operations.js +27 -268
- 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 +130 -91
- 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 +40 -41
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts +1 -1
- package/dist/src/memory/memory-crud.d.ts.map +1 -1
- package/dist/src/memory/memory-crud.js +82 -67
- package/dist/src/memory/memory-crud.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +7 -8
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +38 -35
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-kg.d.ts.map +1 -1
- package/dist/src/memory/memory-kg.js +173 -41
- package/dist/src/memory/memory-kg.js.map +1 -1
- package/dist/src/memory/memory-migrations.d.ts.map +1 -1
- package/dist/src/memory/memory-migrations.js +11 -7
- package/dist/src/memory/memory-migrations.js.map +1 -1
- package/dist/src/memory/memory-read.d.ts.map +1 -1
- package/dist/src/memory/memory-read.js +50 -35
- package/dist/src/memory/memory-read.js.map +1 -1
- package/dist/src/memory/query-router.d.ts.map +1 -1
- package/dist/src/memory/query-router.js +29 -12
- package/dist/src/memory/query-router.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +1 -1
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +164 -42
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/memory/text-tokens.d.ts.map +1 -1
- package/dist/src/memory/text-tokens.js +78 -8
- package/dist/src/memory/text-tokens.js.map +1 -1
- package/dist/src/monovector/command-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/command-outcomes.js +23 -8
- package/dist/src/monovector/command-outcomes.js.map +1 -1
- package/dist/src/monovector/coverage-router.d.ts.map +1 -1
- package/dist/src/monovector/coverage-router.js +29 -14
- package/dist/src/monovector/coverage-router.js.map +1 -1
- package/dist/src/monovector/coverage-tools.d.ts.map +1 -1
- package/dist/src/monovector/coverage-tools.js +21 -6
- package/dist/src/monovector/coverage-tools.js.map +1 -1
- package/dist/src/monovector/diff-classifier.d.ts +1 -1
- package/dist/src/monovector/diff-classifier.d.ts.map +1 -1
- package/dist/src/monovector/diff-classifier.js +100 -45
- package/dist/src/monovector/diff-classifier.js.map +1 -1
- package/dist/src/monovector/index.d.ts +3 -4
- package/dist/src/monovector/index.d.ts.map +1 -1
- package/dist/src/monovector/index.js +18 -6
- package/dist/src/monovector/index.js.map +1 -1
- package/dist/src/monovector/init-state.d.ts.map +1 -1
- package/dist/src/monovector/init-state.js +15 -5
- package/dist/src/monovector/init-state.js.map +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/monovector/route-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/route-outcomes.js +40 -21
- package/dist/src/monovector/route-outcomes.js.map +1 -1
- package/dist/src/observability/replay-reader.d.ts.map +1 -1
- package/dist/src/observability/replay-reader.js +6 -8
- package/dist/src/observability/replay-reader.js.map +1 -1
- package/dist/src/orgrt/agent-runner.d.ts +9 -3
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js +1 -1
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts +26 -3
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +295 -125
- 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 +32 -8
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/broker.d.ts.map +1 -1
- package/dist/src/orgrt/broker.js +11 -4
- package/dist/src/orgrt/broker.js.map +1 -1
- package/dist/src/orgrt/bus.d.ts.map +1 -1
- package/dist/src/orgrt/bus.js +28 -15
- package/dist/src/orgrt/bus.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 +47 -36
- 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 +22 -4
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts +27 -3
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +387 -129
- package/dist/src/orgrt/codex-runner.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
- package/dist/src/orgrt/copilot-runner.js +60 -18
- 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 +224 -41
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts +5 -2
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +93 -47
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +42 -30
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +199 -69
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +3 -2
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +101 -32
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/fence.d.ts +2 -2
- package/dist/src/orgrt/fence.d.ts.map +1 -1
- package/dist/src/orgrt/fence.js +13 -5
- package/dist/src/orgrt/fence.js.map +1 -1
- package/dist/src/orgrt/forwarder.js +1 -1
- package/dist/src/orgrt/forwarder.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts +1 -1
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
- package/dist/src/orgrt/grok-runner.js +75 -30
- package/dist/src/orgrt/grok-runner.js.map +1 -1
- package/dist/src/orgrt/inbox.d.ts.map +1 -1
- package/dist/src/orgrt/inbox.js +5 -3
- package/dist/src/orgrt/inbox.js.map +1 -1
- package/dist/src/orgrt/kimicode-runner.d.ts +54 -8
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +278 -151
- 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 +88 -6
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/migrate.d.ts.map +1 -1
- package/dist/src/orgrt/migrate.js +38 -25
- package/dist/src/orgrt/migrate.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +16 -5
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/org-memory.d.ts +2 -2
- package/dist/src/orgrt/org-memory.d.ts.map +1 -1
- package/dist/src/orgrt/org-memory.js +66 -26
- package/dist/src/orgrt/org-memory.js.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +134 -114
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/pi-runner.d.ts +1 -1
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-runner.js +35 -16
- package/dist/src/orgrt/pi-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 +86 -18
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/prechecks.d.ts.map +1 -1
- package/dist/src/orgrt/prechecks.js +9 -4
- package/dist/src/orgrt/prechecks.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/questions.d.ts.map +1 -1
- package/dist/src/orgrt/questions.js +34 -10
- package/dist/src/orgrt/questions.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 +381 -0
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -0
- package/dist/src/orgrt/qwen-runner.d.ts +1 -1
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-runner.js +42 -23
- package/dist/src/orgrt/qwen-runner.js.map +1 -1
- package/dist/src/orgrt/remote.js +1 -1
- package/dist/src/orgrt/remote.js.map +1 -1
- package/dist/src/orgrt/reporting.d.ts.map +1 -1
- package/dist/src/orgrt/reporting.js +61 -27
- package/dist/src/orgrt/reporting.js.map +1 -1
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler-integration.js +63 -19
- package/dist/src/orgrt/scheduler-integration.js.map +1 -1
- package/dist/src/orgrt/scheduler.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler.js +7 -3
- package/dist/src/orgrt/scheduler.js.map +1 -1
- package/dist/src/orgrt/server.js +1 -1
- package/dist/src/orgrt/server.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +32 -4
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +242 -74
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/state-detector.d.ts.map +1 -1
- package/dist/src/orgrt/state-detector.js +6 -2
- package/dist/src/orgrt/state-detector.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 +76 -12
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/templates.d.ts.map +1 -1
- package/dist/src/orgrt/templates.js +198 -36
- package/dist/src/orgrt/templates.js.map +1 -1
- package/dist/src/orgrt/test-loop.d.ts.map +1 -1
- package/dist/src/orgrt/test-loop.js +139 -35
- 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 +21 -3
- 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 +192 -39
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/usage-proxy.d.ts +20 -0
- package/dist/src/orgrt/usage-proxy.d.ts.map +1 -1
- package/dist/src/orgrt/usage-proxy.js +25 -15
- package/dist/src/orgrt/usage-proxy.js.map +1 -1
- package/dist/src/orgrt/vercel-providers.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-providers.js +11 -1
- package/dist/src/orgrt/vercel-providers.js.map +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-runner.js +3 -5
- package/dist/src/orgrt/vercel-runner.js.map +1 -1
- package/dist/src/orgrt/vercel-session-store.d.ts +14 -0
- package/dist/src/orgrt/vercel-session-store.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-session-store.js +3 -3
- package/dist/src/orgrt/vercel-session-store.js.map +1 -1
- package/dist/src/orgrt/visualization.js +3 -4
- package/dist/src/orgrt/visualization.js.map +1 -1
- package/dist/src/output.d.ts +1 -1
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +68 -39
- package/dist/src/output.js.map +1 -1
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +35 -24
- package/dist/src/parser.js.map +1 -1
- package/dist/src/pricing/model-pricing.d.ts.map +1 -1
- package/dist/src/pricing/model-pricing.js +3 -7
- package/dist/src/pricing/model-pricing.js.map +1 -1
- package/dist/src/prompt.d.ts +2 -2
- package/dist/src/prompt.d.ts.map +1 -1
- package/dist/src/prompt.js +49 -41
- package/dist/src/prompt.js.map +1 -1
- package/dist/src/routing/embedder.d.ts.map +1 -1
- package/dist/src/routing/embedder.js +0 -0
- package/dist/src/routing/embedder.js.map +1 -1
- package/dist/src/routing/llm-caller.d.ts.map +1 -1
- package/dist/src/routing/llm-caller.js +27 -8
- package/dist/src/routing/llm-caller.js.map +1 -1
- package/dist/src/routing/model-download.d.ts.map +1 -1
- package/dist/src/routing/model-download.js +3 -3
- package/dist/src/routing/model-download.js.map +1 -1
- package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
- package/dist/src/routing/route-layer-factory.js +22 -14
- package/dist/src/routing/route-layer-factory.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 +88 -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 +44 -20
- package/dist/src/services/config-file-manager.js.map +1 -1
- package/dist/src/services/crash-reporter.d.ts.map +1 -1
- package/dist/src/services/crash-reporter.js +44 -16
- package/dist/src/services/crash-reporter.js.map +1 -1
- package/dist/src/suggest.d.ts +1 -1
- package/dist/src/suggest.d.ts.map +1 -1
- package/dist/src/suggest.js +57 -57
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/sync/checker.d.ts.map +1 -1
- package/dist/src/sync/checker.js +7 -8
- package/dist/src/sync/checker.js.map +1 -1
- package/dist/src/transfer/anonymization/index.d.ts +1 -1
- package/dist/src/transfer/anonymization/index.js +3 -3
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/types.d.ts +4 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui/collector.mjs +275 -159
- package/dist/src/ui/dashboard.html +761 -742
- package/dist/src/ui/data/agent-avatars.html +3 -15
- package/dist/src/ui/data/agent-avatars.json +11 -27
- package/dist/src/ui/markdown.js +243 -62
- package/dist/src/ui/mastermind-diagram-fallback.html +29 -29
- package/dist/src/ui/orgs-files.js +99 -46
- package/dist/src/ui/orgs.html +54 -54
- package/dist/src/ui/routes-monograph.mjs +918 -246
- package/dist/src/ui/routes-org.mjs +4234 -2369
- package/dist/src/ui/server.mjs +142 -106
- package/dist/src/update/checker.d.ts.map +1 -1
- package/dist/src/update/checker.js +17 -12
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts +2 -2
- package/dist/src/update/executor.d.ts.map +1 -1
- package/dist/src/update/executor.js +21 -11
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.d.ts +6 -6
- package/dist/src/update/index.d.ts.map +1 -1
- package/dist/src/update/index.js +9 -9
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/update/rate-limiter.d.ts.map +1 -1
- package/dist/src/update/rate-limiter.js +11 -7
- package/dist/src/update/rate-limiter.js.map +1 -1
- package/dist/src/update/validator.d.ts.map +1 -1
- package/dist/src/update/validator.js +8 -12
- package/dist/src/update/validator.js.map +1 -1
- package/dist/src/utils/cosine-similarity.d.ts.map +1 -1
- package/dist/src/utils/cosine-similarity.js.map +1 -1
- package/dist/src/utils/input-guards.d.ts +1 -1
- package/dist/src/utils/input-guards.d.ts.map +1 -1
- package/dist/src/utils/input-guards.js +24 -9
- package/dist/src/utils/input-guards.js.map +1 -1
- 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 +14 -3
- package/dist/src/utils/json-file.js.map +1 -1
- package/dist/src/utils/parse-jsonl.d.ts.map +1 -1
- package/dist/src/utils/parse-jsonl.js +1 -3
- package/dist/src/utils/parse-jsonl.js.map +1 -1
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +2 -2
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/redaction.d.ts.map +1 -1
- package/dist/src/utils/redaction.js +1 -1
- package/dist/src/utils/redaction.js.map +1 -1
- package/dist/src/utils/resource-governor.d.ts.map +1 -1
- package/dist/src/utils/resource-governor.js +38 -14
- package/dist/src/utils/resource-governor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- 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,15 +1,19 @@
|
|
|
1
1
|
// packages/@monomind/cli/src/commands/org-observe.ts
|
|
2
2
|
// Read-side org subcommands (logs / report) + template scaffolding (create).
|
|
3
3
|
// Kept out of org.ts to respect the 500-line file ceiling.
|
|
4
|
-
import { existsSync,
|
|
4
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import {
|
|
7
|
-
import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
|
|
8
|
-
import { formatEvent, listRunDirs, readHistory, readRunEvents, summarizeRun } from '../orgrt/reporting.js';
|
|
9
|
-
import { ORG_TEMPLATES, buildFromTemplate } from '../orgrt/templates.js';
|
|
6
|
+
import { branchCheckpoint } from '../orgrt/checkpoint-ops.js';
|
|
10
7
|
import { checkOrgStructure } from '../orgrt/migrate.js';
|
|
8
|
+
import { formatEvent, listRunDirs, readHistory, readRunEvents, summarizeRun, } from '../orgrt/reporting.js';
|
|
9
|
+
import { resolveModel } from '../orgrt/session.js';
|
|
10
|
+
import { buildFromTemplate, ORG_TEMPLATES } from '../orgrt/templates.js';
|
|
11
|
+
import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
|
|
12
|
+
import { output } from '../output.js';
|
|
11
13
|
import { listOrgConfigFiles, validateOrgName } from './org.js';
|
|
12
|
-
const log = (text) => {
|
|
14
|
+
const log = (text) => {
|
|
15
|
+
console.log(text);
|
|
16
|
+
};
|
|
13
17
|
/** Validate org config(s) against OrgDefSchema — the exact parse `org run`/`org serve`
|
|
14
18
|
* perform — plus the structural invariants the runtime assumes but the schema can't
|
|
15
19
|
* express (single root role, resolvable reports_to, unique ids, parseable schedule). */
|
|
@@ -24,7 +28,10 @@ export const validateAction = async (ctx) => {
|
|
|
24
28
|
}
|
|
25
29
|
else {
|
|
26
30
|
if (!existsSync(orgsDir))
|
|
27
|
-
return {
|
|
31
|
+
return {
|
|
32
|
+
success: false,
|
|
33
|
+
message: 'no orgs directory — create an org first with /mastermind:createorg',
|
|
34
|
+
};
|
|
28
35
|
files = listOrgConfigFiles(orgsDir);
|
|
29
36
|
if (!files.length)
|
|
30
37
|
return { success: false, message: 'no org configs found' };
|
|
@@ -75,11 +82,14 @@ const resolveRun = (cwd, name, runFlag) => {
|
|
|
75
82
|
};
|
|
76
83
|
/** `org logs <name> [--run id] [--role r] [--filter-tool t] [--filter-role r] [--tools-only] [--audit-filter allow|deny] [--follow]` — formatted bus.jsonl tail. */
|
|
77
84
|
export const logsAction = async (ctx, name) => {
|
|
78
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
85
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
79
86
|
if (!run)
|
|
80
|
-
return {
|
|
87
|
+
return {
|
|
88
|
+
success: false,
|
|
89
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
90
|
+
};
|
|
81
91
|
const file = join(ctx.cwd, ORG_DIR, name, run, 'bus.jsonl');
|
|
82
|
-
const roleFilter = typeof ctx.flags
|
|
92
|
+
const roleFilter = typeof ctx.flags.role === 'string' ? ctx.flags.role : null;
|
|
83
93
|
const filterTool = typeof ctx.flags['filter-tool'] === 'string' ? ctx.flags['filter-tool'] : null;
|
|
84
94
|
const filterRole = typeof ctx.flags['filter-role'] === 'string' ? ctx.flags['filter-role'] : null;
|
|
85
95
|
const auditFilter = typeof ctx.flags['audit-filter'] === 'string' ? ctx.flags['audit-filter'] : null;
|
|
@@ -119,13 +129,19 @@ export const logsAction = async (ctx, name) => {
|
|
|
119
129
|
}
|
|
120
130
|
};
|
|
121
131
|
drain();
|
|
122
|
-
if (ctx.flags
|
|
132
|
+
if (ctx.flags.follow !== true)
|
|
123
133
|
return { success: true };
|
|
124
134
|
log(output.info('following — Ctrl-C to stop'));
|
|
125
|
-
await new Promise(resolve => {
|
|
135
|
+
await new Promise((resolve) => {
|
|
126
136
|
const iv = setInterval(drain, 500);
|
|
127
|
-
process.once('SIGINT', () => {
|
|
128
|
-
|
|
137
|
+
process.once('SIGINT', () => {
|
|
138
|
+
clearInterval(iv);
|
|
139
|
+
resolve();
|
|
140
|
+
});
|
|
141
|
+
process.once('SIGTERM', () => {
|
|
142
|
+
clearInterval(iv);
|
|
143
|
+
resolve();
|
|
144
|
+
});
|
|
129
145
|
});
|
|
130
146
|
return { success: true };
|
|
131
147
|
};
|
|
@@ -153,19 +169,22 @@ export const watchAction = async (ctx, name) => {
|
|
|
153
169
|
const role = ctx.args[1];
|
|
154
170
|
if (!role)
|
|
155
171
|
return { success: false, message: 'usage: monomind org watch <org> <role>' };
|
|
156
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
172
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
157
173
|
if (!run)
|
|
158
|
-
return {
|
|
174
|
+
return {
|
|
175
|
+
success: false,
|
|
176
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
177
|
+
};
|
|
159
178
|
const file = join(ctx.cwd, ORG_DIR, name, run, 'bus.jsonl');
|
|
160
|
-
const verbose = ctx.flags
|
|
161
|
-
const stats = ctx.flags
|
|
179
|
+
const verbose = ctx.flags.verbose === true;
|
|
180
|
+
const stats = ctx.flags.stats === true;
|
|
162
181
|
let totalTokens = 0;
|
|
163
182
|
let totalCostUsd = 0;
|
|
164
183
|
const show = (e) => {
|
|
165
184
|
if (e.from !== role)
|
|
166
185
|
return;
|
|
167
186
|
if (e.type === 'chat') {
|
|
168
|
-
log(`${output.info(role
|
|
187
|
+
log(`${output.info(`${role}:`)} ${e.msg ?? ''}`);
|
|
169
188
|
return;
|
|
170
189
|
}
|
|
171
190
|
if (verbose && e.type === 'status') {
|
|
@@ -199,30 +218,38 @@ export const watchAction = async (ctx, name) => {
|
|
|
199
218
|
}
|
|
200
219
|
};
|
|
201
220
|
drain();
|
|
202
|
-
if (ctx.flags
|
|
221
|
+
if (ctx.flags.follow === false)
|
|
203
222
|
return { success: true }; // --follow=false opts out of the default live tail
|
|
204
|
-
await new Promise(resolve => {
|
|
223
|
+
await new Promise((resolve) => {
|
|
205
224
|
const iv = setInterval(drain, 500);
|
|
206
|
-
process.once('SIGINT', () => {
|
|
207
|
-
|
|
225
|
+
process.once('SIGINT', () => {
|
|
226
|
+
clearInterval(iv);
|
|
227
|
+
resolve();
|
|
228
|
+
});
|
|
229
|
+
process.once('SIGTERM', () => {
|
|
230
|
+
clearInterval(iv);
|
|
231
|
+
resolve();
|
|
232
|
+
});
|
|
208
233
|
});
|
|
209
234
|
return { success: true };
|
|
210
235
|
};
|
|
211
236
|
/** `org report <name> [--run id] [--all] [--by-role] [--format mermaid]` — summarize a run (or list run history). */
|
|
212
237
|
export const reportAction = async (ctx, name) => {
|
|
213
|
-
if (ctx.flags
|
|
238
|
+
if (ctx.flags.all === true) {
|
|
214
239
|
const history = readHistory(ctx.cwd, name);
|
|
215
240
|
if (!history.length)
|
|
216
241
|
return { success: false, message: `no run history for org ${name}` };
|
|
217
242
|
log(output.info(`org ${name} — ${history.length} recorded run(s):`));
|
|
218
243
|
for (const h of history) {
|
|
219
244
|
const dur = h.durationMs != null ? `${Math.round(h.durationMs / 1000)}s` : '?';
|
|
220
|
-
const outcome = h.outcome
|
|
245
|
+
const outcome = h.outcome
|
|
246
|
+
? `${h.outcome.status}: ${h.outcome.summary.slice(0, 60)}`
|
|
247
|
+
: 'no outcome recorded';
|
|
221
248
|
log(output.info(` • ${h.run} ${dur} ${h.totalTokens} tokens ${h.messages} msgs — ${outcome}`));
|
|
222
249
|
}
|
|
223
250
|
return { success: true };
|
|
224
251
|
}
|
|
225
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
252
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
226
253
|
if (!run)
|
|
227
254
|
return { success: false, message: `no runs found for org ${name}` };
|
|
228
255
|
const events = readRunEvents(ctx.cwd, name, run);
|
|
@@ -230,9 +257,9 @@ export const reportAction = async (ctx, name) => {
|
|
|
230
257
|
return { success: false, message: `run ${run} has no recorded events` };
|
|
231
258
|
const s = summarizeRun(events);
|
|
232
259
|
// Mermaid flowchart (--format mermaid flag)
|
|
233
|
-
if (ctx.flags
|
|
260
|
+
if (ctx.flags.format === 'mermaid') {
|
|
234
261
|
// Extract message flow from events
|
|
235
|
-
const messageEvents = events.filter(e => e.type === 'message' || e.type === 'xorg');
|
|
262
|
+
const messageEvents = events.filter((e) => e.type === 'message' || e.type === 'xorg');
|
|
236
263
|
const roleSet = new Set();
|
|
237
264
|
const edges = new Set();
|
|
238
265
|
for (const e of messageEvents) {
|
|
@@ -267,15 +294,15 @@ export const reportAction = async (ctx, name) => {
|
|
|
267
294
|
return { success: true, message: `Mermaid flowchart exported for ${name} / ${run}` };
|
|
268
295
|
}
|
|
269
296
|
// Tool audit filter (--audit flag) - show only tool decision events
|
|
270
|
-
if (ctx.flags
|
|
271
|
-
let toolEvents = events.filter(e => e.type === 'tool');
|
|
297
|
+
if (ctx.flags.audit === true) {
|
|
298
|
+
let toolEvents = events.filter((e) => e.type === 'tool');
|
|
272
299
|
// Optional --tool flag filters to a specific tool name
|
|
273
|
-
if (typeof ctx.flags
|
|
274
|
-
const toolName = ctx.flags
|
|
275
|
-
toolEvents = toolEvents.filter(e => e.tool === toolName);
|
|
300
|
+
if (typeof ctx.flags.tool === 'string' && ctx.flags.tool) {
|
|
301
|
+
const toolName = ctx.flags.tool;
|
|
302
|
+
toolEvents = toolEvents.filter((e) => e.tool === toolName);
|
|
276
303
|
}
|
|
277
304
|
if (!toolEvents.length) {
|
|
278
|
-
const toolFilter = typeof ctx.flags
|
|
305
|
+
const toolFilter = typeof ctx.flags.tool === 'string' ? ` for tool "${ctx.flags.tool}"` : '';
|
|
279
306
|
log(output.info(`No tool events found${toolFilter} in ${run}`));
|
|
280
307
|
return { success: true };
|
|
281
308
|
}
|
|
@@ -325,7 +352,9 @@ export const reportAction = async (ctx, name) => {
|
|
|
325
352
|
roleCeiling.set(r.id, max ?? r.budget_tokens ?? perRoleBudget);
|
|
326
353
|
}
|
|
327
354
|
}
|
|
328
|
-
catch {
|
|
355
|
+
catch {
|
|
356
|
+
/* config gone or invalid — report without budget context */
|
|
357
|
+
}
|
|
329
358
|
const budgetNote = (id, tokens) => {
|
|
330
359
|
const cap = roleCeiling.get(id);
|
|
331
360
|
if (!cap)
|
|
@@ -394,9 +423,11 @@ export const questionsAction = async (ctx, name) => {
|
|
|
394
423
|
log(output.error(`Cannot read questions for org ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
395
424
|
return { success: false, message: 'questions.json unreadable' };
|
|
396
425
|
}
|
|
397
|
-
const shown = ctx.flags
|
|
426
|
+
const shown = ctx.flags.all === true ? all : all.filter((q) => q.answer === null);
|
|
398
427
|
if (!shown.length) {
|
|
399
|
-
log(output.info(all.length
|
|
428
|
+
log(output.info(all.length
|
|
429
|
+
? `No pending questions for org ${name} (${all.length} answered — use --all).`
|
|
430
|
+
: `No questions recorded for org ${name}.`));
|
|
400
431
|
return { success: true };
|
|
401
432
|
}
|
|
402
433
|
for (const q of shown) {
|
|
@@ -405,7 +436,7 @@ export const questionsAction = async (ctx, name) => {
|
|
|
405
436
|
if (q.answer !== null)
|
|
406
437
|
log(output.info(` ↳ ${q.answer}`));
|
|
407
438
|
}
|
|
408
|
-
if (shown.some(q => q.answer === null))
|
|
439
|
+
if (shown.some((q) => q.answer === null))
|
|
409
440
|
log(output.info(`\nAnswer with: monomind org answer ${name} <question-id> "your answer"`));
|
|
410
441
|
return { success: true };
|
|
411
442
|
};
|
|
@@ -416,7 +447,10 @@ export const answerAction = async (ctx, name) => {
|
|
|
416
447
|
const questionId = ctx.args[1];
|
|
417
448
|
const answer = ctx.args.slice(2).join(' ').trim();
|
|
418
449
|
if (!questionId || !answer)
|
|
419
|
-
return {
|
|
450
|
+
return {
|
|
451
|
+
success: false,
|
|
452
|
+
message: `usage: monomind org answer ${name} <question-id> "answer text"`,
|
|
453
|
+
};
|
|
420
454
|
let questions;
|
|
421
455
|
try {
|
|
422
456
|
questions = readQuestions(ctx.cwd, name);
|
|
@@ -425,7 +459,7 @@ export const answerAction = async (ctx, name) => {
|
|
|
425
459
|
log(output.error(`Cannot read questions for org ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
426
460
|
return { success: false, message: 'questions.json unreadable — answer not recorded' };
|
|
427
461
|
}
|
|
428
|
-
const q = questions.find(x => x.questionId === questionId);
|
|
462
|
+
const q = questions.find((x) => x.questionId === questionId);
|
|
429
463
|
if (!q) {
|
|
430
464
|
log(output.error(`Question "${questionId}" not found for org ${name} — list with: monomind org questions ${name}`));
|
|
431
465
|
return { success: false, message: 'question not found' };
|
|
@@ -439,11 +473,15 @@ export const answerAction = async (ctx, name) => {
|
|
|
439
473
|
const cred = normalizeCredential(remote.credential);
|
|
440
474
|
try {
|
|
441
475
|
const res = await fetch(`${remote.url}/api/answer-question`, {
|
|
442
|
-
method: 'POST',
|
|
476
|
+
method: 'POST',
|
|
477
|
+
headers: {
|
|
478
|
+
'Content-Type': 'application/json',
|
|
479
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
480
|
+
},
|
|
443
481
|
body: JSON.stringify({ org: name, role: q.role, questionId, answer }),
|
|
444
482
|
signal: AbortSignal.timeout(10_000),
|
|
445
483
|
});
|
|
446
|
-
const data = await res.json().catch(() => ({}));
|
|
484
|
+
const data = (await res.json().catch(() => ({})));
|
|
447
485
|
if (res.ok && data.ok) {
|
|
448
486
|
log(output.success(`Answer delivered to ${name}:${q.role} (live).`));
|
|
449
487
|
return { success: true };
|
|
@@ -470,9 +508,12 @@ export const answerAction = async (ctx, name) => {
|
|
|
470
508
|
log(output.warning(`The answer was NOT recorded. Fix or restore ${join(ctx.cwd, ORG_DIR, name, 'questions.json')}, then retry.`));
|
|
471
509
|
return { success: false, message: 'questions.json unreadable — answer not recorded' };
|
|
472
510
|
}
|
|
473
|
-
const freshQ = fresh.find(x => x.questionId === questionId);
|
|
511
|
+
const freshQ = fresh.find((x) => x.questionId === questionId);
|
|
474
512
|
if (freshQ && freshQ.answer !== null) {
|
|
475
|
-
return {
|
|
513
|
+
return {
|
|
514
|
+
success: false,
|
|
515
|
+
message: `question "${questionId}" was answered while this command was running`,
|
|
516
|
+
};
|
|
476
517
|
}
|
|
477
518
|
// Queue BEFORE marking answered (same rule as daemon.answerQuestion): if the
|
|
478
519
|
// append fails, the question must stay pending and answerable. Marking first meant
|
|
@@ -481,7 +522,8 @@ export const answerAction = async (ctx, name) => {
|
|
|
481
522
|
const { queueMessage } = await import('../orgrt/inbox.js');
|
|
482
523
|
try {
|
|
483
524
|
queueMessage(ctx.cwd, name, {
|
|
484
|
-
fromQualified: 'human',
|
|
525
|
+
fromQualified: 'human',
|
|
526
|
+
toRole: q.role,
|
|
485
527
|
subject: `answer:${questionId}`,
|
|
486
528
|
body: `question: ${q.question}\n\nanswer: ${answer}`,
|
|
487
529
|
ts: Date.now(),
|
|
@@ -491,8 +533,8 @@ export const answerAction = async (ctx, name) => {
|
|
|
491
533
|
log(output.error(`Could not queue the answer for ${name}:${q.role} (${err instanceof Error ? err.message : String(err)}) — answer NOT recorded, retry it.`));
|
|
492
534
|
return { success: false, message: 'queueing failed — answer not recorded' };
|
|
493
535
|
}
|
|
494
|
-
const merged = fresh.some(x => x.questionId === questionId)
|
|
495
|
-
? fresh.map(x => x.questionId === questionId ? { ...x, answer, answeredAt: Date.now() } : x)
|
|
536
|
+
const merged = fresh.some((x) => x.questionId === questionId)
|
|
537
|
+
? fresh.map((x) => (x.questionId === questionId ? { ...x, answer, answeredAt: Date.now() } : x))
|
|
496
538
|
: [...fresh, { ...q, answer, answeredAt: Date.now() }];
|
|
497
539
|
const dest = join(ctx.cwd, ORG_DIR, name, 'questions.json');
|
|
498
540
|
const tmp = `${dest}.${process.pid}.tmp`;
|
|
@@ -511,7 +553,7 @@ export const answerAction = async (ctx, name) => {
|
|
|
511
553
|
* semantics as a queued human answer. */
|
|
512
554
|
export const inboxAction = async (ctx, name) => {
|
|
513
555
|
let payload = {};
|
|
514
|
-
const rawJson = ctx.flags
|
|
556
|
+
const rawJson = ctx.flags.json;
|
|
515
557
|
if (typeof rawJson === 'string') {
|
|
516
558
|
try {
|
|
517
559
|
payload = JSON.parse(rawJson);
|
|
@@ -521,7 +563,7 @@ export const inboxAction = async (ctx, name) => {
|
|
|
521
563
|
}
|
|
522
564
|
}
|
|
523
565
|
else {
|
|
524
|
-
payload = { from: ctx.flags
|
|
566
|
+
payload = { from: ctx.flags.from, subject: ctx.flags.subject, body: ctx.flags.body };
|
|
525
567
|
}
|
|
526
568
|
const from = typeof payload.from === 'string' ? payload.from.trim() : '';
|
|
527
569
|
const subject = typeof payload.subject === 'string' ? payload.subject : '';
|
|
@@ -532,7 +574,7 @@ export const inboxAction = async (ctx, name) => {
|
|
|
532
574
|
}
|
|
533
575
|
// Target role: explicit --to, else the org's coordinator (reports_to == null),
|
|
534
576
|
// else the first role — matching where a role-less cross-org message should land.
|
|
535
|
-
let toRole = typeof ctx.flags
|
|
577
|
+
let toRole = typeof ctx.flags.to === 'string' ? ctx.flags.to : '';
|
|
536
578
|
if (toRole && !/^[a-z0-9][a-z0-9_-]*$/i.test(toRole)) {
|
|
537
579
|
log(output.error(`Invalid role id: ${toRole}`));
|
|
538
580
|
return { success: false, message: 'invalid role id' };
|
|
@@ -546,7 +588,7 @@ export const inboxAction = async (ctx, name) => {
|
|
|
546
588
|
try {
|
|
547
589
|
const def = JSON.parse(readFileSync(defPath, 'utf8'));
|
|
548
590
|
const roles = Array.isArray(def.roles) ? def.roles : [];
|
|
549
|
-
toRole = roles.find(r => r.reports_to == null)?.id ?? roles[0]?.id ?? '';
|
|
591
|
+
toRole = roles.find((r) => r.reports_to == null)?.id ?? roles[0]?.id ?? '';
|
|
550
592
|
}
|
|
551
593
|
catch (err) {
|
|
552
594
|
log(output.error(`Could not read org config for ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
@@ -566,11 +608,14 @@ export const inboxAction = async (ctx, name) => {
|
|
|
566
608
|
try {
|
|
567
609
|
const res = await fetch(`${remote.url}/api/xdeliver`, {
|
|
568
610
|
method: 'POST',
|
|
569
|
-
headers: {
|
|
611
|
+
headers: {
|
|
612
|
+
'Content-Type': 'application/json',
|
|
613
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
614
|
+
},
|
|
570
615
|
body: JSON.stringify({ fromOrg, fromRole, toOrg: name, toRole, subject, body }),
|
|
571
616
|
signal: AbortSignal.timeout(10_000),
|
|
572
617
|
});
|
|
573
|
-
const data = await res.json().catch(() => ({}));
|
|
618
|
+
const data = (await res.json().catch(() => ({})));
|
|
574
619
|
if (res.ok && data.ok) {
|
|
575
620
|
log(output.success(data.receipt ?? `delivered to ${name}:${toRole}`));
|
|
576
621
|
return { success: true, message: data.receipt ?? 'delivered' };
|
|
@@ -583,7 +628,13 @@ export const inboxAction = async (ctx, name) => {
|
|
|
583
628
|
}
|
|
584
629
|
// Offline path: spool; drained into the role's mailbox when the org next starts.
|
|
585
630
|
const { queueMessage } = await import('../orgrt/inbox.js');
|
|
586
|
-
const queued = queueMessage(ctx.cwd, name, {
|
|
631
|
+
const queued = queueMessage(ctx.cwd, name, {
|
|
632
|
+
fromQualified: from,
|
|
633
|
+
toRole,
|
|
634
|
+
subject,
|
|
635
|
+
body,
|
|
636
|
+
ts: Date.now(),
|
|
637
|
+
});
|
|
587
638
|
if (!queued) {
|
|
588
639
|
log(output.error(`Could not queue the message for ${name}:${toRole} (disk full or permissions).`));
|
|
589
640
|
return { success: false, message: 'queueing failed' };
|
|
@@ -594,37 +645,72 @@ export const inboxAction = async (ctx, name) => {
|
|
|
594
645
|
};
|
|
595
646
|
/** `org create <name> --template <t> [--goal g] [--schedule s]` — scaffold a config from a template. */
|
|
596
647
|
export const createAction = async (ctx, name) => {
|
|
597
|
-
const templateName = typeof ctx.flags
|
|
648
|
+
const templateName = typeof ctx.flags.template === 'string' ? ctx.flags.template : '';
|
|
598
649
|
if (!templateName) {
|
|
599
650
|
log(output.info(`Available templates: ${Object.keys(ORG_TEMPLATES).join(', ')}`));
|
|
600
|
-
return {
|
|
651
|
+
return {
|
|
652
|
+
success: false,
|
|
653
|
+
message: 'usage: monomind org create <name> --template <template> [--goal "..."] [--schedule 30m]',
|
|
654
|
+
};
|
|
601
655
|
}
|
|
602
|
-
const def = buildFromTemplate(templateName, name, typeof ctx.flags
|
|
656
|
+
const def = buildFromTemplate(templateName, name, typeof ctx.flags.goal === 'string' ? ctx.flags.goal : undefined);
|
|
603
657
|
if (!def) {
|
|
604
658
|
log(output.error(`Unknown template "${templateName}" — available: ${Object.keys(ORG_TEMPLATES).join(', ')}`));
|
|
605
659
|
return { success: false, message: 'unknown template' };
|
|
606
660
|
}
|
|
607
|
-
if (typeof ctx.flags
|
|
608
|
-
def.schedule = ctx.flags
|
|
661
|
+
if (typeof ctx.flags.schedule === 'string')
|
|
662
|
+
def.schedule = ctx.flags.schedule;
|
|
609
663
|
const file = join(ctx.cwd, ORG_DIR, `${name}.json`);
|
|
610
|
-
if (existsSync(file) && ctx.flags
|
|
664
|
+
if (existsSync(file) && ctx.flags.force !== true) {
|
|
611
665
|
log(output.error(`Org "${name}" already exists — pass --force to overwrite.`));
|
|
612
666
|
return { success: false, message: 'org exists' };
|
|
613
667
|
}
|
|
614
668
|
OrgDefSchema.parse(def); // templates must always produce a runnable config
|
|
669
|
+
// Per-role model — the single most consequential setting the template picked on
|
|
670
|
+
// the user's behalf. Mirror resolveModel() (same helper `org run`'s cost estimate
|
|
671
|
+
// uses) so a role relying on its runtime/vendor default isn't mislabeled here.
|
|
672
|
+
const modelRows = def.roles.map((r) => {
|
|
673
|
+
const explicit = r.adapter_config?.model;
|
|
674
|
+
return {
|
|
675
|
+
id: r.id,
|
|
676
|
+
model: String(explicit ?? resolveModel(r, r.runtime ?? def.runtime, r.provider?.vendor)),
|
|
677
|
+
explicit: !!explicit,
|
|
678
|
+
};
|
|
679
|
+
});
|
|
680
|
+
const printModels = () => {
|
|
681
|
+
log(output.bold(' Models:'));
|
|
682
|
+
for (const r of modelRows) {
|
|
683
|
+
log(` ${r.id.padEnd(20)} ${r.model}${r.explicit ? '' : ' (default)'}`);
|
|
684
|
+
}
|
|
685
|
+
};
|
|
686
|
+
if (ctx.interactive && ctx.flags.yes !== true) {
|
|
687
|
+
log(output.bold(`\nAbout to create org "${name}" from template "${templateName}" (${def.roles.length} roles):`));
|
|
688
|
+
printModels();
|
|
689
|
+
const { confirm } = await import('../prompt.js');
|
|
690
|
+
const proceed = await confirm({ message: 'Create this org?', default: true });
|
|
691
|
+
if (!proceed) {
|
|
692
|
+
log(output.info('Cancelled — no file written. Adjust --template/--goal, or edit the template, then retry (pass --yes to skip this prompt).'));
|
|
693
|
+
return { success: false, message: 'cancelled by user' };
|
|
694
|
+
}
|
|
695
|
+
}
|
|
615
696
|
const { mkdirSync } = await import('node:fs');
|
|
616
697
|
mkdirSync(join(ctx.cwd, ORG_DIR), { recursive: true });
|
|
617
|
-
writeFileSync(file, JSON.stringify(def, null, 2)
|
|
698
|
+
writeFileSync(file, `${JSON.stringify(def, null, 2)}\n`, 'utf8');
|
|
618
699
|
log(output.success(`Org "${name}" created from template "${templateName}" (${def.roles.length} roles).`));
|
|
619
700
|
log(output.info(` Budget: ${def.run_config.budget_tokens} tokens · Turn limit: ${def.run_config.max_turns_per_message} per message (effectively unlimited by default — set run_config.max_turns_per_message, or a role's own max_turns_per_message, to cap it).`));
|
|
701
|
+
if (!ctx.interactive || ctx.flags.yes === true)
|
|
702
|
+
printModels();
|
|
620
703
|
log(output.info(` Edit the goal/roles in ${file}, then: monomind org run ${name}`));
|
|
621
704
|
return { success: true };
|
|
622
705
|
};
|
|
623
706
|
/** `org costs <name> [--run id]` — show per-role cost tracking from runtime.json */
|
|
624
707
|
export const costsAction = async (ctx, name) => {
|
|
625
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
708
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
626
709
|
if (!run)
|
|
627
|
-
return {
|
|
710
|
+
return {
|
|
711
|
+
success: false,
|
|
712
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
713
|
+
};
|
|
628
714
|
// Read runtime.json for the per-role metrics
|
|
629
715
|
const rtPath = join(ctx.cwd, ORG_DIR, name, 'runtime.json');
|
|
630
716
|
if (!existsSync(rtPath)) {
|
|
@@ -653,7 +739,7 @@ export const costsAction = async (ctx, name) => {
|
|
|
653
739
|
roleData.set(roleId, {
|
|
654
740
|
tokens: metrics.tokens,
|
|
655
741
|
costUsd: metrics.costUsd,
|
|
656
|
-
messages: 0
|
|
742
|
+
messages: 0,
|
|
657
743
|
});
|
|
658
744
|
}
|
|
659
745
|
}
|
|
@@ -664,7 +750,7 @@ export const costsAction = async (ctx, name) => {
|
|
|
664
750
|
roleData.set(roleId, {
|
|
665
751
|
tokens: existing.tokens || roleStats.tokens,
|
|
666
752
|
costUsd: existing.costUsd || roleStats.costUsd,
|
|
667
|
-
messages: roleStats.messagesSent
|
|
753
|
+
messages: roleStats.messagesSent,
|
|
668
754
|
});
|
|
669
755
|
}
|
|
670
756
|
}
|
|
@@ -691,14 +777,17 @@ export const costsAction = async (ctx, name) => {
|
|
|
691
777
|
};
|
|
692
778
|
/** `org flow <name> [--run id]` — export org flow as Mermaid diagram */
|
|
693
779
|
export const flowAction = async (ctx, name) => {
|
|
694
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
780
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
695
781
|
if (!run)
|
|
696
|
-
return {
|
|
782
|
+
return {
|
|
783
|
+
success: false,
|
|
784
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
785
|
+
};
|
|
697
786
|
const events = readRunEvents(ctx.cwd, name, run);
|
|
698
787
|
if (!events.length)
|
|
699
788
|
return { success: false, message: `run ${run} has no recorded events` };
|
|
700
789
|
// Extract message flow from events
|
|
701
|
-
const messageEvents = events.filter(e => e.type === 'message' || e.type === 'xorg');
|
|
790
|
+
const messageEvents = events.filter((e) => e.type === 'message' || e.type === 'xorg');
|
|
702
791
|
const roleSet = new Set();
|
|
703
792
|
const edges = new Set();
|
|
704
793
|
for (const e of messageEvents) {
|
|
@@ -745,13 +834,19 @@ async function resolveApproval(ctx, name, role, action, approved) {
|
|
|
745
834
|
const cred = normalizeCredential(remote.credential);
|
|
746
835
|
try {
|
|
747
836
|
const res = await fetch(`${remote.url}/api/set-approval`, {
|
|
748
|
-
method: 'POST',
|
|
837
|
+
method: 'POST',
|
|
838
|
+
headers: {
|
|
839
|
+
'Content-Type': 'application/json',
|
|
840
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
841
|
+
},
|
|
749
842
|
body: JSON.stringify({ org: name, role, action, approved }),
|
|
750
843
|
signal: AbortSignal.timeout(10_000),
|
|
751
844
|
});
|
|
752
|
-
const data = await res.json().catch(() => ({}));
|
|
845
|
+
const data = (await res.json().catch(() => ({})));
|
|
753
846
|
if (res.ok && data.ok) {
|
|
754
|
-
log(approved
|
|
847
|
+
log(approved
|
|
848
|
+
? output.success(`Approved: ${role} may execute ${action} (live).`)
|
|
849
|
+
: output.info(`Denied: ${role} may NOT execute ${action} (live).`));
|
|
755
850
|
return { success: true, message: `${verb} ${action} for ${role}` };
|
|
756
851
|
}
|
|
757
852
|
log(output.warning(`Live delivery rejected (${data.error ?? res.status}) — falling back to offline queue.`));
|
|
@@ -769,12 +864,17 @@ async function resolveApproval(ctx, name, role, action, approved) {
|
|
|
769
864
|
const pending = data.approvals ?? [];
|
|
770
865
|
const item = pending.find((a) => a.roleId === role && a.action === action);
|
|
771
866
|
if (!item) {
|
|
772
|
-
return {
|
|
867
|
+
return {
|
|
868
|
+
success: false,
|
|
869
|
+
message: `no pending approval found for role ${role} action ${action}`,
|
|
870
|
+
};
|
|
773
871
|
}
|
|
774
872
|
item.approved = approved;
|
|
775
873
|
item.ts = Date.now();
|
|
776
874
|
writeFileSync(approvalsPath, JSON.stringify({ approvals: pending }, null, 2));
|
|
777
|
-
log(approved
|
|
875
|
+
log(approved
|
|
876
|
+
? output.success(`Approved: ${role} may execute ${action}`)
|
|
877
|
+
: output.info(`Denied: ${role} may NOT execute ${action}`));
|
|
778
878
|
return { success: true, message: `${verb} ${action} for ${role}` };
|
|
779
879
|
}
|
|
780
880
|
/** `org approve <org> <role> <action>` — approve a pending tool/action approval */
|
|
@@ -795,7 +895,10 @@ export const denyAction = async (ctx, name) => {
|
|
|
795
895
|
}
|
|
796
896
|
return resolveApproval(ctx, name, role, action, false);
|
|
797
897
|
};
|
|
798
|
-
/** `org replay <org> <run-id>` — time-travel debugging:
|
|
898
|
+
/** `org replay <org> <run-id>` — time-travel debugging: re-emit a past run's bus
|
|
899
|
+
* events into a fresh replay run for inspection. This is event-log replay only —
|
|
900
|
+
* it does not restart agent execution or restore live sessions. To actually
|
|
901
|
+
* resume an org's execution from where it left off, use `org run --resume`. */
|
|
799
902
|
export const replayAction = async (ctx, name) => {
|
|
800
903
|
const run = ctx.args[1];
|
|
801
904
|
if (!run) {
|
|
@@ -809,65 +912,62 @@ export const replayAction = async (ctx, name) => {
|
|
|
809
912
|
if (!existsSync(busFile)) {
|
|
810
913
|
return { success: false, message: `no bus events found for run ${run}` };
|
|
811
914
|
}
|
|
812
|
-
log(output.info(`
|
|
813
|
-
// Create daemon and
|
|
915
|
+
log(output.info(`Replaying org ${name} events from checkpoint ${run}...`));
|
|
916
|
+
// Create daemon and replay the bus events for debugging/inspection
|
|
814
917
|
const { OrgDaemon } = await import('../orgrt/daemon.js');
|
|
815
918
|
const daemon = new OrgDaemon(ctx.cwd, { forward: false });
|
|
816
919
|
const resumed = await daemon.replayFrom(name, run);
|
|
817
920
|
if (!resumed) {
|
|
818
|
-
return {
|
|
921
|
+
return {
|
|
922
|
+
success: false,
|
|
923
|
+
message: `replay failed - check bus.jsonl and org config for ${name} are valid`,
|
|
924
|
+
};
|
|
819
925
|
}
|
|
820
|
-
log(output.success(`Org ${name}
|
|
926
|
+
log(output.success(`Org ${name} events replayed from ${run} as run ${resumed.run}`));
|
|
821
927
|
log(output.info(`Use: monomind org logs ${name} --run ${resumed.run} to inspect events.`));
|
|
822
|
-
log(output.info(`
|
|
823
|
-
return { success: true, message: `
|
|
928
|
+
log(output.info(`This is debug replay only — it does not restart agent execution. To resume live execution, use: monomind org run ${name} --resume`));
|
|
929
|
+
return { success: true, message: `replayed events from checkpoint ${run} as ${resumed.run}` };
|
|
824
930
|
};
|
|
825
|
-
/** `org resume-from <org
|
|
931
|
+
/** `org resume-from <org>` — resume live execution from the org's persisted
|
|
932
|
+
* checkpoint (runtime.json): restores mailbox queues, policy/token counters,
|
|
933
|
+
* and session state, subject to checkpoint TTL and checksum validation. Unlike
|
|
934
|
+
* `replay`, this restarts real agent execution via `startOrg(..., { resume: true })`. */
|
|
826
935
|
export const resumeFromAction = async (ctx, name) => {
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
936
|
+
log(output.info(`Resuming org ${name} from checkpoint...`));
|
|
937
|
+
const { OrgDaemon } = await import('../orgrt/daemon.js');
|
|
938
|
+
const daemon = new OrgDaemon(ctx.cwd, { forward: false });
|
|
939
|
+
const resumed = await daemon.resumeOrg(name);
|
|
940
|
+
if (!resumed) {
|
|
941
|
+
return {
|
|
942
|
+
success: false,
|
|
943
|
+
message: `resume failed for ${name} - check runtime.json checkpoint is present, unexpired, and valid`,
|
|
944
|
+
};
|
|
830
945
|
}
|
|
831
|
-
|
|
832
|
-
|
|
946
|
+
log(output.success(`Org ${name} resumed - ${resumed.agents.size} role(s) restored`));
|
|
947
|
+
log(output.info(`Stop with: monomind org stop ${name}`));
|
|
948
|
+
return { success: true, message: `resumed ${name} - ${resumed.agents.size} role(s) restored` };
|
|
833
949
|
};
|
|
834
|
-
/** `org branch <org> <run-id> <branch-name>` —
|
|
950
|
+
/** `org branch <org> <run-id> <branch-name>` — snapshot a run's event log for replay.
|
|
951
|
+
* This is NOT an executable what-if scenario: it copies bus.jsonl into a new
|
|
952
|
+
* run directory tagged with a `.branch-source` marker so it can be inspected
|
|
953
|
+
* or replayed later; it does not fork or re-run agent execution.
|
|
954
|
+
* Delegates to the shared, atomic (tmp+rename) implementation in checkpoint-ops.ts. */
|
|
835
955
|
export const branchAction = async (ctx, name) => {
|
|
836
956
|
const run = ctx.args[1];
|
|
837
957
|
const branchName = ctx.args[2];
|
|
838
958
|
if (!run || !branchName) {
|
|
839
959
|
return { success: false, message: 'usage: org branch <org> <run-id> <branch-name>' };
|
|
840
960
|
}
|
|
841
|
-
const
|
|
842
|
-
if (!
|
|
843
|
-
return { success: false, message:
|
|
844
|
-
}
|
|
845
|
-
const branchRun = `branch-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14)}-${Math.random().toString(36).slice(2, 6)}`;
|
|
846
|
-
const branchDir = join(ctx.cwd, ORG_DIR, name, branchRun);
|
|
847
|
-
try {
|
|
848
|
-
mkdirSync(branchDir, { recursive: true });
|
|
849
|
-
// Copy bus.jsonl to branch
|
|
850
|
-
const busFile = join(runDir, 'bus.jsonl');
|
|
851
|
-
if (existsSync(busFile)) {
|
|
852
|
-
const busContent = readFileSync(busFile, 'utf8');
|
|
853
|
-
writeFileSync(join(branchDir, 'bus.jsonl'), busContent);
|
|
854
|
-
}
|
|
855
|
-
// Create branch marker file
|
|
856
|
-
writeFileSync(join(branchDir, '.branch-source'), JSON.stringify({
|
|
857
|
-
from: run,
|
|
858
|
-
branchedAt: new Date().toISOString(),
|
|
859
|
-
name: branchName
|
|
860
|
-
}, null, 2));
|
|
861
|
-
log(output.success(`Created branch "${branchName}" from ${run} as ${branchRun}`));
|
|
862
|
-
return { success: true, message: `branch ${branchName} created as ${branchRun}` };
|
|
863
|
-
}
|
|
864
|
-
catch (err) {
|
|
865
|
-
return { success: false, message: `failed to create branch: ${err instanceof Error ? err.message : String(err)}` };
|
|
961
|
+
const result = branchCheckpoint(ctx.cwd, name, run, branchName);
|
|
962
|
+
if (!result.ok) {
|
|
963
|
+
return { success: false, message: result.error };
|
|
866
964
|
}
|
|
965
|
+
log(output.success(`Created branch "${branchName}" from ${run} as ${result.branchRun}`));
|
|
966
|
+
return { success: true, message: `branch ${branchName} created as ${result.branchRun}` };
|
|
867
967
|
};
|
|
868
968
|
/** `org decisions <org> [--run id]` — show Rifft-style decision traces */
|
|
869
969
|
export const decisionsAction = async (ctx, name) => {
|
|
870
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
970
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
871
971
|
if (!run) {
|
|
872
972
|
return { success: false, message: `no runs found for org ${name}` };
|
|
873
973
|
}
|
|
@@ -876,10 +976,7 @@ export const decisionsAction = async (ctx, name) => {
|
|
|
876
976
|
return { success: false, message: `run ${run} has no recorded events` };
|
|
877
977
|
}
|
|
878
978
|
// Filter decision trace events
|
|
879
|
-
const decisionEvents = events.filter(e => e.type === 'audit' &&
|
|
880
|
-
e.reason === 'decision-trace' &&
|
|
881
|
-
e.data &&
|
|
882
|
-
typeof e.data === 'object');
|
|
979
|
+
const decisionEvents = events.filter((e) => e.type === 'audit' && e.reason === 'decision-trace' && e.data && typeof e.data === 'object');
|
|
883
980
|
if (!decisionEvents.length) {
|
|
884
981
|
log(output.info(`No decision traces found in ${run}`));
|
|
885
982
|
return { success: true };
|
|
@@ -906,17 +1003,52 @@ function readGatesFile(cwd, org) {
|
|
|
906
1003
|
return { gates: [] };
|
|
907
1004
|
}
|
|
908
1005
|
}
|
|
1006
|
+
/** Read gates.json for a write path. A MISSING file legitimately means "no gates" → [].
|
|
1007
|
+
* Any other failure (unreadable, malformed — e.g. a partial daemon write) THROWS:
|
|
1008
|
+
* gateResolveAction rewrites this file from what this returns, so silently coercing a
|
|
1009
|
+
* failed read to [] would surface a real I/O error as "gate not found" and a
|
|
1010
|
+
* subsequent write would replace every recorded gate with just this one. */
|
|
1011
|
+
function readGatesFileStrict(cwd, org) {
|
|
1012
|
+
const path = join(cwd, ORG_DIR, org, 'gates.json');
|
|
1013
|
+
let raw;
|
|
1014
|
+
try {
|
|
1015
|
+
raw = readFileSync(path, 'utf8');
|
|
1016
|
+
}
|
|
1017
|
+
catch (err) {
|
|
1018
|
+
if (err.code === 'ENOENT')
|
|
1019
|
+
return { gates: [] };
|
|
1020
|
+
throw new Error(`cannot read ${path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
1021
|
+
}
|
|
1022
|
+
let parsed;
|
|
1023
|
+
try {
|
|
1024
|
+
parsed = JSON.parse(raw);
|
|
1025
|
+
}
|
|
1026
|
+
catch (err) {
|
|
1027
|
+
throw new Error(`${path} is not valid JSON (${err instanceof Error ? err.message : String(err)})`);
|
|
1028
|
+
}
|
|
1029
|
+
if (parsed?.gates === undefined || parsed.gates === null)
|
|
1030
|
+
return { gates: [] };
|
|
1031
|
+
if (!Array.isArray(parsed.gates))
|
|
1032
|
+
throw new Error(`${path}: "gates" is not an array`);
|
|
1033
|
+
return { gates: parsed.gates };
|
|
1034
|
+
}
|
|
909
1035
|
export const gatesAction = async (ctx, name) => {
|
|
910
1036
|
const data = readGatesFile(ctx.cwd, name);
|
|
911
|
-
const showAll = ctx.flags
|
|
912
|
-
const gates = showAll ? data.gates : data.gates.filter(g => g.status === 'pending');
|
|
1037
|
+
const showAll = ctx.flags.all === true;
|
|
1038
|
+
const gates = showAll ? data.gates : data.gates.filter((g) => g.status === 'pending');
|
|
913
1039
|
if (!gates.length) {
|
|
914
|
-
log(output.info(showAll
|
|
1040
|
+
log(output.info(showAll
|
|
1041
|
+
? `No gates for org "${name}"`
|
|
1042
|
+
: `No pending gates for org "${name}" (use --all to include resolved)`));
|
|
915
1043
|
return { success: true };
|
|
916
1044
|
}
|
|
917
1045
|
log(output.info(`${showAll ? 'All' : 'Pending'} gates for org "${name}" (${gates.length}):\n`));
|
|
918
1046
|
for (const g of gates) {
|
|
919
|
-
const status = g.status === 'pending'
|
|
1047
|
+
const status = g.status === 'pending'
|
|
1048
|
+
? '⏳ pending'
|
|
1049
|
+
: g.status === 'approved'
|
|
1050
|
+
? '✅ approved'
|
|
1051
|
+
: '❌ rejected';
|
|
920
1052
|
log(output.info(` ${g.id} ${status} role:${g.roleId}`));
|
|
921
1053
|
log(output.info(` name: ${g.name}`));
|
|
922
1054
|
log(output.info(` desc: ${g.description}`));
|
|
@@ -930,9 +1062,19 @@ export const gateResolveAction = async (ctx, name, approved) => {
|
|
|
930
1062
|
const gateId = ctx.args[1];
|
|
931
1063
|
const resolution = ctx.args.slice(2).join(' ') || undefined;
|
|
932
1064
|
if (!gateId)
|
|
933
|
-
return {
|
|
934
|
-
|
|
935
|
-
|
|
1065
|
+
return {
|
|
1066
|
+
success: false,
|
|
1067
|
+
message: `usage: monomind org gate-${approved ? 'approve' : 'reject'} ${name} <gate-id> [resolution]`,
|
|
1068
|
+
};
|
|
1069
|
+
let data;
|
|
1070
|
+
try {
|
|
1071
|
+
data = readGatesFileStrict(ctx.cwd, name);
|
|
1072
|
+
}
|
|
1073
|
+
catch (err) {
|
|
1074
|
+
log(output.error(`Cannot read gates for org ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
1075
|
+
return { success: false, message: 'gates.json unreadable — gate not resolved' };
|
|
1076
|
+
}
|
|
1077
|
+
const gate = data.gates.find((g) => g.id === gateId);
|
|
936
1078
|
if (!gate)
|
|
937
1079
|
return { success: false, message: `gate "${gateId}" not found for org "${name}"` };
|
|
938
1080
|
if (gate.status !== 'pending')
|
|
@@ -943,23 +1085,58 @@ export const gateResolveAction = async (ctx, name, approved) => {
|
|
|
943
1085
|
const cred = normalizeCredential(remote.credential);
|
|
944
1086
|
try {
|
|
945
1087
|
const res = await fetch(`${remote.url}/api/resolve-gate`, {
|
|
946
|
-
method: 'POST',
|
|
1088
|
+
method: 'POST',
|
|
1089
|
+
headers: {
|
|
1090
|
+
'Content-Type': 'application/json',
|
|
1091
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
1092
|
+
},
|
|
947
1093
|
body: JSON.stringify({ org: name, gateId, approved, resolution }),
|
|
948
1094
|
signal: AbortSignal.timeout(10_000),
|
|
949
1095
|
});
|
|
950
|
-
const d = await res.json().catch(() => ({}));
|
|
1096
|
+
const d = (await res.json().catch(() => ({})));
|
|
951
1097
|
if (res.ok && d.ok) {
|
|
952
1098
|
log(output.success(`Gate ${gateId} ${approved ? 'approved' : 'rejected'} (live).`));
|
|
953
1099
|
return { success: true, message: `gate ${approved ? 'approved' : 'rejected'}` };
|
|
954
1100
|
}
|
|
955
|
-
log(output.
|
|
956
|
-
return { success: false, message: d.error ?? `HTTP ${res.status}` };
|
|
1101
|
+
log(output.warning(`Live resolution rejected (${d.error ?? res.status}) — falling back to offline queue.`));
|
|
957
1102
|
}
|
|
958
1103
|
catch (err) {
|
|
959
|
-
log(output.
|
|
960
|
-
return { success: false, message: 'daemon unreachable — gate can only be resolved while the org is running' };
|
|
1104
|
+
log(output.warning(`Hosting daemon unreachable (${err instanceof Error ? err.message : 'error'}) — falling back to offline queue.`));
|
|
961
1105
|
}
|
|
962
1106
|
}
|
|
963
|
-
|
|
1107
|
+
// Offline path: no live daemon hosts this org (or the live call failed) —
|
|
1108
|
+
// resolve gates.json directly, same as resolveApproval's offline branch.
|
|
1109
|
+
// Re-read fresh (mirrors answerAction/resolveApproval) in case a live
|
|
1110
|
+
// daemon resolved this gate concurrently while the live call above was
|
|
1111
|
+
// in flight or timing out.
|
|
1112
|
+
const { writeGates } = await import('../orgrt/decisions.js');
|
|
1113
|
+
let fresh;
|
|
1114
|
+
try {
|
|
1115
|
+
fresh = readGatesFileStrict(ctx.cwd, name);
|
|
1116
|
+
}
|
|
1117
|
+
catch (err) {
|
|
1118
|
+
log(output.error(`Refusing to rewrite gates.json — ${err instanceof Error ? err.message : String(err)}`));
|
|
1119
|
+
log(output.warning(`The gate was NOT resolved. Fix or restore ${join(ctx.cwd, ORG_DIR, name, 'gates.json')}, then retry.`));
|
|
1120
|
+
return { success: false, message: 'gates.json unreadable — gate not resolved' };
|
|
1121
|
+
}
|
|
1122
|
+
const idx = fresh.gates.findIndex((g) => g.id === gateId);
|
|
1123
|
+
if (idx === -1)
|
|
1124
|
+
return { success: false, message: `gate "${gateId}" not found for org "${name}"` };
|
|
1125
|
+
if (fresh.gates[idx].status !== 'pending') {
|
|
1126
|
+
return {
|
|
1127
|
+
success: false,
|
|
1128
|
+
message: `gate "${gateId}" already resolved (${fresh.gates[idx].status})`,
|
|
1129
|
+
};
|
|
1130
|
+
}
|
|
1131
|
+
fresh.gates[idx] = {
|
|
1132
|
+
...fresh.gates[idx],
|
|
1133
|
+
status: approved ? 'approved' : 'rejected',
|
|
1134
|
+
resolvedAt: Date.now(),
|
|
1135
|
+
resolvedBy: 'human',
|
|
1136
|
+
resolution,
|
|
1137
|
+
};
|
|
1138
|
+
writeGates(ctx.cwd, name, fresh);
|
|
1139
|
+
log(output.success(`Gate ${gateId} ${approved ? 'approved' : 'rejected'} — ${name} picks it up on its next cycle.`));
|
|
1140
|
+
return { success: true, message: `gate ${approved ? 'approved' : 'rejected'} (queued)` };
|
|
964
1141
|
};
|
|
965
1142
|
//# sourceMappingURL=org-observe.js.map
|