@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
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* Doctor — project/monomind health checks
|
|
3
3
|
* Config, memory, API keys, MCP, monograph, helpers, routing, gates, gitignore, worker metrics
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { MAX_DOCTOR_PKG_BYTES, MAX_DOCTOR_CONFIG_BYTES, MAX_DOCTOR_GITIGNORE_BYTES, MAX_DOCTOR_HELPER_BYTES, } from './doctor-env-checks.js';
|
|
5
|
+
import { execSync } from 'node:child_process';
|
|
6
|
+
import { appendFileSync, copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync, } from 'node:fs';
|
|
7
|
+
import { homedir } from 'node:os';
|
|
8
|
+
import { dirname, join } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
11
10
|
import { DOCTOR_TRACKED_HELPERS } from '../init/helpers-generator.js';
|
|
11
|
+
import { MAX_DOCTOR_CONFIG_BYTES, MAX_DOCTOR_GITIGNORE_BYTES, MAX_DOCTOR_HELPER_BYTES, MAX_DOCTOR_PKG_BYTES, } from './doctor-env-checks.js';
|
|
12
12
|
export async function checkConfigFile() {
|
|
13
13
|
const jsonPaths = ['.monomind/config.json', 'monomind.config.json', '.monomind.json'];
|
|
14
14
|
for (const configPath of jsonPaths) {
|
|
@@ -18,7 +18,12 @@ export async function checkConfigFile() {
|
|
|
18
18
|
return { name: 'Config File', status: 'pass', message: `Found: ${configPath}` };
|
|
19
19
|
}
|
|
20
20
|
catch {
|
|
21
|
-
return {
|
|
21
|
+
return {
|
|
22
|
+
name: 'Config File',
|
|
23
|
+
status: 'fail',
|
|
24
|
+
message: `Invalid JSON: ${configPath}`,
|
|
25
|
+
fix: 'Fix JSON syntax in config file',
|
|
26
|
+
};
|
|
22
27
|
}
|
|
23
28
|
}
|
|
24
29
|
}
|
|
@@ -27,7 +32,12 @@ export async function checkConfigFile() {
|
|
|
27
32
|
if (existsSync(configPath))
|
|
28
33
|
return { name: 'Config File', status: 'pass', message: `Found: ${configPath}` };
|
|
29
34
|
}
|
|
30
|
-
return {
|
|
35
|
+
return {
|
|
36
|
+
name: 'Config File',
|
|
37
|
+
status: 'warn',
|
|
38
|
+
message: 'No config file (using defaults)',
|
|
39
|
+
fix: 'monomind config init',
|
|
40
|
+
};
|
|
31
41
|
}
|
|
32
42
|
export async function checkMemoryDatabase() {
|
|
33
43
|
const dbPaths = ['.monomind/memory.db', '.swarm/memory.db', 'data/memory.db'];
|
|
@@ -42,7 +52,12 @@ export async function checkMemoryDatabase() {
|
|
|
42
52
|
}
|
|
43
53
|
}
|
|
44
54
|
}
|
|
45
|
-
return {
|
|
55
|
+
return {
|
|
56
|
+
name: 'Memory Database',
|
|
57
|
+
status: 'warn',
|
|
58
|
+
message: 'Not initialized',
|
|
59
|
+
fix: 'monomind memory configure --backend hybrid',
|
|
60
|
+
};
|
|
46
61
|
}
|
|
47
62
|
/** Memory knowledge graph (cognee port): entities/relations/rules distilled
|
|
48
63
|
* from sessions and org runs. Informational — an empty graph on a fresh
|
|
@@ -55,16 +70,31 @@ export async function checkMemoryKnowledgeGraph() {
|
|
|
55
70
|
const project = await kg.kgStats();
|
|
56
71
|
const orgDb = join(process.cwd(), '.monomind', 'org-memory');
|
|
57
72
|
const org = existsSync(orgDb) ? await kg.kgStats({ dbPath: orgDb }) : null;
|
|
58
|
-
await bridge.shutdownBridge().catch(() => {
|
|
73
|
+
await bridge.shutdownBridge().catch(() => {
|
|
74
|
+
/* best effort */
|
|
75
|
+
});
|
|
59
76
|
const total = project.nodes + (org?.nodes ?? 0);
|
|
60
77
|
const fmt = (s) => `${s.nodes}n/${s.edges}e/${s.rules}r`;
|
|
61
78
|
if (total === 0) {
|
|
62
|
-
return {
|
|
79
|
+
return {
|
|
80
|
+
name,
|
|
81
|
+
status: 'warn',
|
|
82
|
+
message: 'Empty — sessions/org runs have not distilled knowledge yet',
|
|
83
|
+
fix: 'org runs call org_learn automatically; sessions use memory_kg_ingest',
|
|
84
|
+
};
|
|
63
85
|
}
|
|
64
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
name,
|
|
88
|
+
status: 'pass',
|
|
89
|
+
message: `project ${fmt(project)}${org ? ` · org ${fmt(org)}` : ''}`,
|
|
90
|
+
};
|
|
65
91
|
}
|
|
66
92
|
catch (err) {
|
|
67
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
name,
|
|
95
|
+
status: 'warn',
|
|
96
|
+
message: `Check failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
97
|
+
};
|
|
68
98
|
}
|
|
69
99
|
}
|
|
70
100
|
/** Count live (non-tombstoned) ingested documents under a brain root, without
|
|
@@ -102,7 +132,9 @@ export async function checkSecondBrainModel() {
|
|
|
102
132
|
projectDocs ? `${projectDocs} project doc${projectDocs === 1 ? '' : 's'}` : null,
|
|
103
133
|
globalDocs ? `${globalDocs} global doc${globalDocs === 1 ? '' : 's'}` : null,
|
|
104
134
|
!projectDocs && !globalDocs ? 'monograph god-nodes' : null,
|
|
105
|
-
]
|
|
135
|
+
]
|
|
136
|
+
.filter(Boolean)
|
|
137
|
+
.join(' · ');
|
|
106
138
|
let entryPath = null;
|
|
107
139
|
try {
|
|
108
140
|
// exports map blocks package.json — resolve the entry file, then walk UP
|
|
@@ -113,14 +145,21 @@ export async function checkSecondBrainModel() {
|
|
|
113
145
|
if (viaEsm)
|
|
114
146
|
entryPath = fileURLToPath(await viaEsm);
|
|
115
147
|
}
|
|
116
|
-
catch {
|
|
148
|
+
catch {
|
|
149
|
+
/* try CJS below */
|
|
150
|
+
}
|
|
117
151
|
if (!entryPath) {
|
|
118
152
|
try {
|
|
119
153
|
const { createRequire } = await import('node:module');
|
|
120
154
|
entryPath = createRequire(import.meta.url).resolve('@huggingface/transformers');
|
|
121
155
|
}
|
|
122
156
|
catch {
|
|
123
|
-
return {
|
|
157
|
+
return {
|
|
158
|
+
name,
|
|
159
|
+
status: 'warn',
|
|
160
|
+
message: '@huggingface/transformers not installed — semantic search degraded to keyword matching',
|
|
161
|
+
fix: 'reinstall monomind (the model dependency is optional and may have failed to build)',
|
|
162
|
+
};
|
|
124
163
|
}
|
|
125
164
|
}
|
|
126
165
|
// Walk up from the entry file to the package root (the dir named 'transformers').
|
|
@@ -129,31 +168,62 @@ export async function checkSecondBrainModel() {
|
|
|
129
168
|
pkgDir = dirname(pkgDir);
|
|
130
169
|
const modelCache = join(pkgDir, '.cache', 'Xenova');
|
|
131
170
|
if (pkgDir.endsWith('transformers') && existsSync(modelCache)) {
|
|
132
|
-
return {
|
|
171
|
+
return {
|
|
172
|
+
name,
|
|
173
|
+
status: 'pass',
|
|
174
|
+
message: `Local embedding model cached — semantic search active (${indexed})`,
|
|
175
|
+
};
|
|
133
176
|
}
|
|
134
|
-
return {
|
|
177
|
+
return {
|
|
178
|
+
name,
|
|
179
|
+
status: 'warn',
|
|
180
|
+
message: 'Embedding model not downloaded yet — searches use keyword matching until it is',
|
|
181
|
+
fix: 'run once while online: monomind doc search -q "warmup" (downloads ~90MB locally, one time)',
|
|
182
|
+
};
|
|
135
183
|
}
|
|
136
184
|
export async function checkApiKeys() {
|
|
137
185
|
const keys = ['ANTHROPIC_API_KEY', 'CLAUDE_API_KEY', 'OPENAI_API_KEY'];
|
|
138
|
-
const found = keys.filter(k => process.env[k]);
|
|
139
|
-
const inClaudeCode = !!(process.env.CLAUDE_CODE ||
|
|
186
|
+
const found = keys.filter((k) => process.env[k]);
|
|
187
|
+
const inClaudeCode = !!(process.env.CLAUDE_CODE ||
|
|
188
|
+
process.env.CLAUDE_PROJECT_DIR ||
|
|
189
|
+
process.env.MCP_SESSION_ID);
|
|
140
190
|
let claudeCliAvailable = false;
|
|
141
191
|
try {
|
|
142
|
-
execSync('claude --version', {
|
|
192
|
+
execSync('claude --version', {
|
|
193
|
+
encoding: 'utf-8',
|
|
194
|
+
stdio: 'pipe',
|
|
195
|
+
timeout: 5000,
|
|
196
|
+
windowsHide: true,
|
|
197
|
+
});
|
|
143
198
|
claudeCliAvailable = true;
|
|
144
199
|
}
|
|
145
|
-
catch {
|
|
200
|
+
catch {
|
|
201
|
+
/* not on PATH */
|
|
202
|
+
}
|
|
146
203
|
if (found.includes('ANTHROPIC_API_KEY') || found.includes('CLAUDE_API_KEY')) {
|
|
147
204
|
return { name: 'API Keys', status: 'pass', message: `Found: ${found.join(', ')}` };
|
|
148
205
|
}
|
|
149
206
|
else if (inClaudeCode) {
|
|
150
|
-
return {
|
|
207
|
+
return {
|
|
208
|
+
name: 'API Keys',
|
|
209
|
+
status: 'pass',
|
|
210
|
+
message: 'Claude Code manages auth (no direct API key needed)',
|
|
211
|
+
};
|
|
151
212
|
}
|
|
152
213
|
else if (claudeCliAvailable) {
|
|
153
|
-
return {
|
|
214
|
+
return {
|
|
215
|
+
name: 'API Keys',
|
|
216
|
+
status: 'pass',
|
|
217
|
+
message: 'Using Claude Code CLI auth (no direct API key needed)',
|
|
218
|
+
};
|
|
154
219
|
}
|
|
155
220
|
else if (found.length > 0) {
|
|
156
|
-
return {
|
|
221
|
+
return {
|
|
222
|
+
name: 'API Keys',
|
|
223
|
+
status: 'warn',
|
|
224
|
+
message: `Found: ${found.join(', ')} (no Claude key)`,
|
|
225
|
+
fix: 'export ANTHROPIC_API_KEY=your_key',
|
|
226
|
+
};
|
|
157
227
|
}
|
|
158
228
|
return {
|
|
159
229
|
name: 'API Keys',
|
|
@@ -179,13 +249,29 @@ export async function checkMcpServers() {
|
|
|
179
249
|
const count = Object.keys(servers).length;
|
|
180
250
|
const hasMonomind = 'monomind' in servers || 'monomind_alpha' in servers;
|
|
181
251
|
if (hasMonomind)
|
|
182
|
-
return {
|
|
183
|
-
|
|
252
|
+
return {
|
|
253
|
+
name: 'MCP Servers',
|
|
254
|
+
status: 'pass',
|
|
255
|
+
message: `${count} servers (monomind configured)`,
|
|
256
|
+
};
|
|
257
|
+
return {
|
|
258
|
+
name: 'MCP Servers',
|
|
259
|
+
status: 'warn',
|
|
260
|
+
message: `${count} servers (monomind not found)`,
|
|
261
|
+
fix: 'claude mcp add monomind -- npx -y monomind@latest mcp start',
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
/* try next */
|
|
184
266
|
}
|
|
185
|
-
catch { /* try next */ }
|
|
186
267
|
}
|
|
187
268
|
}
|
|
188
|
-
return {
|
|
269
|
+
return {
|
|
270
|
+
name: 'MCP Servers',
|
|
271
|
+
status: 'warn',
|
|
272
|
+
message: 'No MCP config found',
|
|
273
|
+
fix: 'claude mcp add monomind -- npx -y monomind@latest mcp start',
|
|
274
|
+
};
|
|
189
275
|
}
|
|
190
276
|
export async function checkMonograph() {
|
|
191
277
|
try {
|
|
@@ -195,31 +281,49 @@ export async function checkMonograph() {
|
|
|
195
281
|
try {
|
|
196
282
|
_globalRoot = execSync('npm root -g', { encoding: 'utf8', timeout: 3000 }).trim();
|
|
197
283
|
}
|
|
198
|
-
catch {
|
|
284
|
+
catch {
|
|
285
|
+
/* no npm */
|
|
286
|
+
}
|
|
199
287
|
const candidates = [
|
|
200
288
|
join(_base, '..', '..', 'node_modules', '@monomind', 'monograph', 'package.json'),
|
|
201
289
|
join(_base, '..', '..', '..', '..', 'node_modules', '@monomind', 'monograph', 'package.json'),
|
|
202
290
|
join(_base, '..', '..', 'node_modules', '@monoes', 'monograph', 'package.json'),
|
|
203
291
|
join(_base, '..', '..', '..', '..', 'node_modules', '@monoes', 'monograph', 'package.json'),
|
|
204
|
-
...(_globalRoot
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
292
|
+
...(_globalRoot
|
|
293
|
+
? [
|
|
294
|
+
join(_globalRoot, '@monomind', 'monograph', 'package.json'),
|
|
295
|
+
join(_globalRoot, '@monoes', 'monograph', 'package.json'),
|
|
296
|
+
]
|
|
297
|
+
: []),
|
|
208
298
|
];
|
|
209
|
-
const found = candidates.find(p => existsSync(p) && statSync(p).size <= MAX_DOCTOR_PKG_BYTES);
|
|
299
|
+
const found = candidates.find((p) => existsSync(p) && statSync(p).size <= MAX_DOCTOR_PKG_BYTES);
|
|
210
300
|
if (found) {
|
|
211
301
|
try {
|
|
212
302
|
const pkg = JSON.parse(readFileSync(found, 'utf-8'));
|
|
213
|
-
return {
|
|
303
|
+
return {
|
|
304
|
+
name: 'Monograph',
|
|
305
|
+
status: 'pass',
|
|
306
|
+
message: `v${pkg.version || '?'} available (knowledge graph engine)`,
|
|
307
|
+
};
|
|
214
308
|
}
|
|
215
309
|
catch {
|
|
216
310
|
return { name: 'Monograph', status: 'pass', message: 'available (knowledge graph engine)' };
|
|
217
311
|
}
|
|
218
312
|
}
|
|
219
|
-
return {
|
|
313
|
+
return {
|
|
314
|
+
name: 'Monograph',
|
|
315
|
+
status: 'warn',
|
|
316
|
+
message: 'Package not found (knowledge graph disabled)',
|
|
317
|
+
fix: 'npm install -g monomind@latest',
|
|
318
|
+
};
|
|
220
319
|
}
|
|
221
320
|
catch {
|
|
222
|
-
return {
|
|
321
|
+
return {
|
|
322
|
+
name: 'Monograph',
|
|
323
|
+
status: 'warn',
|
|
324
|
+
message: 'Package check failed',
|
|
325
|
+
fix: 'npm install -g monomind@latest',
|
|
326
|
+
};
|
|
223
327
|
}
|
|
224
328
|
}
|
|
225
329
|
export async function checkMonographFreshness() {
|
|
@@ -230,39 +334,74 @@ export async function checkMonographFreshness() {
|
|
|
230
334
|
const statsPath = join(cwd, '.monomind', 'graph', 'stats.json');
|
|
231
335
|
const hasDb = existsSync(dbPath);
|
|
232
336
|
if (!hasDb && !existsSync(statsPath)) {
|
|
233
|
-
return {
|
|
337
|
+
return {
|
|
338
|
+
name: 'Graph freshness',
|
|
339
|
+
status: 'warn',
|
|
340
|
+
message: 'No monograph graph built yet',
|
|
341
|
+
fix: 'mcp__monomind__monograph_build codeOnly:true',
|
|
342
|
+
};
|
|
234
343
|
}
|
|
235
344
|
let buildMs = 0;
|
|
236
345
|
if (hasDb) {
|
|
237
346
|
try {
|
|
238
347
|
buildMs = Math.max(buildMs, statSync(dbPath).mtimeMs);
|
|
239
348
|
}
|
|
240
|
-
catch {
|
|
349
|
+
catch {
|
|
350
|
+
/* ignore */
|
|
351
|
+
}
|
|
241
352
|
}
|
|
242
353
|
try {
|
|
243
354
|
buildMs = Math.max(buildMs, statSync(lockPath).mtimeMs);
|
|
244
355
|
}
|
|
245
|
-
catch {
|
|
356
|
+
catch {
|
|
357
|
+
/* ignore */
|
|
358
|
+
}
|
|
246
359
|
try {
|
|
247
360
|
buildMs = Math.max(buildMs, statSync(statsPath).mtimeMs);
|
|
248
361
|
}
|
|
249
|
-
catch {
|
|
362
|
+
catch {
|
|
363
|
+
/* ignore */
|
|
364
|
+
}
|
|
250
365
|
if (buildMs === 0)
|
|
251
|
-
return {
|
|
366
|
+
return {
|
|
367
|
+
name: 'Graph freshness',
|
|
368
|
+
status: 'warn',
|
|
369
|
+
message: 'Graph exists but build time unknown',
|
|
370
|
+
};
|
|
252
371
|
const buildIso = new Date(buildMs).toISOString();
|
|
253
372
|
let commitsBehind = 0;
|
|
254
373
|
try {
|
|
255
|
-
const out = execSync(`git rev-list --count --since='${buildIso}' HEAD 2>/dev/null`, {
|
|
374
|
+
const out = execSync(`git rev-list --count --since='${buildIso}' HEAD 2>/dev/null`, {
|
|
375
|
+
encoding: 'utf8',
|
|
376
|
+
timeout: 2000,
|
|
377
|
+
cwd,
|
|
378
|
+
}).trim();
|
|
256
379
|
commitsBehind = parseInt(out, 10) || 0;
|
|
257
380
|
}
|
|
258
|
-
catch {
|
|
381
|
+
catch {
|
|
382
|
+
/* git unavailable */
|
|
383
|
+
}
|
|
259
384
|
const ageMinutes = Math.floor((Date.now() - buildMs) / 60000);
|
|
260
385
|
const ageStr = ageMinutes < 60 ? `${ageMinutes}m ago` : `${Math.floor(ageMinutes / 60)}h ago`;
|
|
261
386
|
if (commitsBehind === 0)
|
|
262
|
-
return {
|
|
387
|
+
return {
|
|
388
|
+
name: 'Graph freshness',
|
|
389
|
+
status: 'pass',
|
|
390
|
+
message: `FRESH — built ${ageStr}, 0 commits behind`,
|
|
391
|
+
};
|
|
263
392
|
if (commitsBehind <= 5)
|
|
264
|
-
return {
|
|
265
|
-
|
|
393
|
+
return {
|
|
394
|
+
name: 'Graph freshness',
|
|
395
|
+
status: 'warn',
|
|
396
|
+
message: `${commitsBehind} commit(s) behind — built ${ageStr}`,
|
|
397
|
+
fix: 'mcp__monomind__monograph_build codeOnly:true',
|
|
398
|
+
};
|
|
399
|
+
return {
|
|
400
|
+
name: 'Graph freshness',
|
|
401
|
+
status: 'fail',
|
|
402
|
+
message: `STALE — ${commitsBehind} commits behind (built ${ageStr})`,
|
|
403
|
+
fix: 'mcp__monomind__monograph_build codeOnly:true',
|
|
404
|
+
};
|
|
266
405
|
}
|
|
267
406
|
catch {
|
|
268
407
|
return { name: 'Graph freshness', status: 'warn', message: 'Could not check graph freshness' };
|
|
@@ -276,23 +415,38 @@ export async function checkMonoesMemory() {
|
|
|
276
415
|
try {
|
|
277
416
|
_globalRoot = execSync('npm root -g', { encoding: 'utf8', timeout: 3000 }).trim();
|
|
278
417
|
}
|
|
279
|
-
catch {
|
|
418
|
+
catch {
|
|
419
|
+
/* no npm */
|
|
420
|
+
}
|
|
280
421
|
const candidates = [
|
|
281
422
|
join(_base, '..', '..', 'node_modules', '@monoes', 'memory', 'package.json'),
|
|
282
423
|
join(_base, '..', '..', '..', '..', 'node_modules', '@monoes', 'memory', 'package.json'),
|
|
283
424
|
...(_globalRoot ? [join(_globalRoot, '@monoes', 'memory', 'package.json')] : []),
|
|
284
425
|
];
|
|
285
|
-
const found = candidates.find(p => existsSync(p) && statSync(p).size <= MAX_DOCTOR_PKG_BYTES);
|
|
426
|
+
const found = candidates.find((p) => existsSync(p) && statSync(p).size <= MAX_DOCTOR_PKG_BYTES);
|
|
286
427
|
if (found) {
|
|
287
428
|
try {
|
|
288
429
|
const pkg = JSON.parse(readFileSync(found, 'utf-8'));
|
|
289
|
-
return {
|
|
430
|
+
return {
|
|
431
|
+
name: 'Vector Memory',
|
|
432
|
+
status: 'pass',
|
|
433
|
+
message: `@monoes/memory v${pkg.version || '?'} (HNSW search enabled)`,
|
|
434
|
+
};
|
|
290
435
|
}
|
|
291
436
|
catch {
|
|
292
|
-
return {
|
|
437
|
+
return {
|
|
438
|
+
name: 'Vector Memory',
|
|
439
|
+
status: 'pass',
|
|
440
|
+
message: '@monoes/memory available (HNSW search enabled)',
|
|
441
|
+
};
|
|
293
442
|
}
|
|
294
443
|
}
|
|
295
|
-
return {
|
|
444
|
+
return {
|
|
445
|
+
name: 'Vector Memory',
|
|
446
|
+
status: 'warn',
|
|
447
|
+
message: '@monoes/memory not installed (vector search disabled)',
|
|
448
|
+
fix: 'npm install @monoes/memory',
|
|
449
|
+
};
|
|
296
450
|
}
|
|
297
451
|
catch {
|
|
298
452
|
return { name: 'Vector Memory', status: 'warn', message: 'Vector memory check failed' };
|
|
@@ -307,12 +461,16 @@ function _resolveBundledHelper(relativePath) {
|
|
|
307
461
|
if (existsSync(candidate) && statSync(candidate).size <= MAX_DOCTOR_PKG_BYTES) {
|
|
308
462
|
try {
|
|
309
463
|
const pkg = JSON.parse(readFileSync(candidate, 'utf8'));
|
|
310
|
-
if (pkg.name === '@monomind/cli' ||
|
|
464
|
+
if (pkg.name === '@monomind/cli' ||
|
|
465
|
+
pkg.name === 'monomind' ||
|
|
466
|
+
pkg.name === '@monoes/monomindcli') {
|
|
311
467
|
const helperPath = join(dir, relativePath);
|
|
312
468
|
return existsSync(helperPath) ? helperPath : null;
|
|
313
469
|
}
|
|
314
470
|
}
|
|
315
|
-
catch {
|
|
471
|
+
catch {
|
|
472
|
+
/* keep walking */
|
|
473
|
+
}
|
|
316
474
|
}
|
|
317
475
|
const parent = dirname(dir);
|
|
318
476
|
if (parent === dir)
|
|
@@ -344,7 +502,9 @@ function _allTrackedHelperNames() {
|
|
|
344
502
|
names.push(join(sub, f));
|
|
345
503
|
}
|
|
346
504
|
}
|
|
347
|
-
catch {
|
|
505
|
+
catch {
|
|
506
|
+
/* skip */
|
|
507
|
+
}
|
|
348
508
|
}
|
|
349
509
|
return names;
|
|
350
510
|
}
|
|
@@ -375,7 +535,9 @@ async function _detectStaleHelpers() {
|
|
|
375
535
|
if (hashLocal !== hashBundled)
|
|
376
536
|
stale.push(name);
|
|
377
537
|
}
|
|
378
|
-
catch {
|
|
538
|
+
catch {
|
|
539
|
+
/* skip */
|
|
540
|
+
}
|
|
379
541
|
}
|
|
380
542
|
return { stale, missing };
|
|
381
543
|
}
|
|
@@ -403,15 +565,33 @@ export async function checkHelpersFresh() {
|
|
|
403
565
|
try {
|
|
404
566
|
const { stale, missing } = await _detectStaleHelpers();
|
|
405
567
|
if (stale.length === 0 && missing.length === 0) {
|
|
406
|
-
return {
|
|
568
|
+
return {
|
|
569
|
+
name: 'Helper Files',
|
|
570
|
+
status: 'pass',
|
|
571
|
+
message: 'Project helpers match bundled version',
|
|
572
|
+
};
|
|
407
573
|
}
|
|
408
574
|
if (stale.length > 0) {
|
|
409
|
-
return {
|
|
575
|
+
return {
|
|
576
|
+
name: 'Helper Files',
|
|
577
|
+
status: 'warn',
|
|
578
|
+
message: `${stale.length} stale helper(s): ${stale.join(', ')}`,
|
|
579
|
+
fix: 'monomind init upgrade',
|
|
580
|
+
};
|
|
410
581
|
}
|
|
411
|
-
return {
|
|
582
|
+
return {
|
|
583
|
+
name: 'Helper Files',
|
|
584
|
+
status: 'warn',
|
|
585
|
+
message: `Could not locate bundled copies of: ${missing.join(', ')}`,
|
|
586
|
+
fix: 'Reinstall monomind or run `monomind init upgrade`',
|
|
587
|
+
};
|
|
412
588
|
}
|
|
413
589
|
catch (e) {
|
|
414
|
-
return {
|
|
590
|
+
return {
|
|
591
|
+
name: 'Helper Files',
|
|
592
|
+
status: 'warn',
|
|
593
|
+
message: `check failed: ${e instanceof Error ? e.message : 'unknown'}`,
|
|
594
|
+
};
|
|
415
595
|
}
|
|
416
596
|
}
|
|
417
597
|
function fmtPct(v) {
|
|
@@ -426,7 +606,9 @@ async function routingAccuracyLine() {
|
|
|
426
606
|
const adhStr = ` | adherence ${fmtPct(adh.adherence)} (n=${adh.sample})`;
|
|
427
607
|
if (acc.accuracy === null)
|
|
428
608
|
return `routing accuracy (last 100): no outcome data yet${adhStr}`;
|
|
429
|
-
const trend = acc.recentVsPrior === null
|
|
609
|
+
const trend = acc.recentVsPrior === null
|
|
610
|
+
? ''
|
|
611
|
+
: ` trend ${acc.recentVsPrior >= 0 ? '+' : ''}${Math.round(acc.recentVsPrior * 100)}%`;
|
|
430
612
|
return `routing accuracy (last ${acc.window}): ${fmtPct(acc.accuracy)} [native ${fmtPct(acc.byMode.native)} / js ${fmtPct(acc.byMode.js)}]${trend}${adhStr}`;
|
|
431
613
|
}
|
|
432
614
|
catch (e) {
|
|
@@ -441,32 +623,49 @@ function routingFeedbackFallback() {
|
|
|
441
623
|
const p = join(process.cwd(), '.monomind', 'routing-feedback.jsonl');
|
|
442
624
|
if (!existsSync(p) || statSync(p).size > 512 * 1024)
|
|
443
625
|
return null;
|
|
444
|
-
const records = readFileSync(p, 'utf-8')
|
|
626
|
+
const records = readFileSync(p, 'utf-8')
|
|
627
|
+
.trim()
|
|
628
|
+
.split('\n')
|
|
629
|
+
.filter(Boolean)
|
|
630
|
+
.map((l) => {
|
|
445
631
|
try {
|
|
446
632
|
return JSON.parse(l);
|
|
447
633
|
}
|
|
448
634
|
catch {
|
|
449
635
|
return null;
|
|
450
636
|
}
|
|
451
|
-
})
|
|
637
|
+
})
|
|
638
|
+
.filter((r) => r !== null);
|
|
452
639
|
if (records.length === 0)
|
|
453
640
|
return null;
|
|
454
|
-
const sessions = new Set(records.map(r => r.sessionId).filter(Boolean));
|
|
641
|
+
const sessions = new Set(records.map((r) => r.sessionId).filter(Boolean));
|
|
455
642
|
const byAgent = new Map();
|
|
456
643
|
for (const r of records) {
|
|
457
644
|
const a = typeof r.suggestedAgent === 'string' ? r.suggestedAgent : 'unknown';
|
|
458
645
|
byAgent.set(a, (byAgent.get(a) ?? 0) + 1);
|
|
459
646
|
}
|
|
460
|
-
const top = [...byAgent.entries()]
|
|
461
|
-
|
|
647
|
+
const top = [...byAgent.entries()]
|
|
648
|
+
.sort((a, b) => b[1] - a[1])
|
|
649
|
+
.slice(0, 3)
|
|
650
|
+
.map(([a, n]) => `${a}=${n}`)
|
|
651
|
+
.join(', ');
|
|
652
|
+
const flags = records
|
|
653
|
+
.map((r) => r.intelligenceFeedback)
|
|
654
|
+
.filter((v) => typeof v === 'boolean');
|
|
462
655
|
const trueCount = flags.filter(Boolean).length;
|
|
463
656
|
const base = `routing feedback (fallback): ${records.length} decisions across ${sessions.size} sessions; top agents: ${top}`;
|
|
464
657
|
if (flags.length > 0 && trueCount === flags.length) {
|
|
465
|
-
return {
|
|
658
|
+
return {
|
|
659
|
+
message: `${base}; success flag is degenerate (100% true — sessionSuccess heuristic never records failure)`,
|
|
660
|
+
degenerate: true,
|
|
661
|
+
};
|
|
466
662
|
}
|
|
467
663
|
if (flags.length === 0)
|
|
468
664
|
return { message: `${base}; no evidence-based success flags yet`, degenerate: true };
|
|
469
|
-
return {
|
|
665
|
+
return {
|
|
666
|
+
message: `${base}; success rate ${Math.round((trueCount / flags.length) * 100)}% (n=${flags.length})`,
|
|
667
|
+
degenerate: false,
|
|
668
|
+
};
|
|
470
669
|
}
|
|
471
670
|
catch (e) {
|
|
472
671
|
if (process.env.DEBUG || process.env.MONOMIND_DEBUG)
|
|
@@ -480,12 +679,20 @@ export async function checkMonoesIntegration() {
|
|
|
480
679
|
if (line.startsWith('routing accuracy (last 100): no outcome data yet')) {
|
|
481
680
|
const fb = routingFeedbackFallback();
|
|
482
681
|
if (fb)
|
|
483
|
-
return {
|
|
682
|
+
return {
|
|
683
|
+
name: 'Routing Learning',
|
|
684
|
+
status: fb.degenerate ? 'warn' : 'pass',
|
|
685
|
+
message: fb.message,
|
|
686
|
+
};
|
|
484
687
|
}
|
|
485
688
|
return { name: 'Routing Learning', status: 'pass', message: line };
|
|
486
689
|
}
|
|
487
690
|
catch (err) {
|
|
488
|
-
return {
|
|
691
|
+
return {
|
|
692
|
+
name: 'Routing Learning',
|
|
693
|
+
status: 'warn',
|
|
694
|
+
message: `Could not compute routing accuracy: ${err instanceof Error ? err.message : String(err)}`,
|
|
695
|
+
};
|
|
489
696
|
}
|
|
490
697
|
}
|
|
491
698
|
const REQUIRED_GITIGNORE_PATTERNS = [
|
|
@@ -501,14 +708,16 @@ const REQUIRED_GITIGNORE_PATTERNS = [
|
|
|
501
708
|
{ pattern: 'data/mastermind-*.json', reason: 'mastermind session data' },
|
|
502
709
|
{ pattern: 'data/mastermind-*.jsonl', reason: 'mastermind event logs' },
|
|
503
710
|
{ pattern: '**/.claude-flow/', reason: 'claude-flow runtime data with paths' },
|
|
504
|
-
{ pattern: '.
|
|
505
|
-
{ pattern: '.swarm/', reason: 'swarm state files' },
|
|
711
|
+
{ pattern: '.monomind/monoswarm/', reason: 'monoswarm state files' },
|
|
506
712
|
];
|
|
507
713
|
/** Strip the parts that don't change what a pattern matches, so `**/.monomind/`,
|
|
508
714
|
* `.monomind/` and `.monomind` all compare equal. A gitignore pattern with no
|
|
509
715
|
* leading slash already matches at every depth, so `**/` is redundant. */
|
|
510
716
|
function normalizeGitignorePattern(p) {
|
|
511
|
-
return p
|
|
717
|
+
return p
|
|
718
|
+
.replace(/^\/+/, '')
|
|
719
|
+
.replace(/^\*\*\//, '')
|
|
720
|
+
.replace(/\/+$/, '');
|
|
512
721
|
}
|
|
513
722
|
/** True when ignoring `line` already protects everything `required` covers.
|
|
514
723
|
* Beyond exact matches this understands directory containment: a repo with a
|
|
@@ -533,17 +742,34 @@ export async function checkGitignoreCoverage() {
|
|
|
533
742
|
// writes a literal backslash-n (sh/bash echo does not interpret escapes
|
|
534
743
|
// without -e) — one junk line matching nothing. `--fix` now writes the file
|
|
535
744
|
// directly, so point at that rather than at a command to copy-paste.
|
|
536
|
-
return {
|
|
745
|
+
return {
|
|
746
|
+
name: 'Gitignore Coverage',
|
|
747
|
+
status: 'warn',
|
|
748
|
+
message: 'No .gitignore found — all monomind runtime paths are unprotected',
|
|
749
|
+
fix: 'monomind doctor --fix (creates .gitignore covering .monomind/ and secrets)',
|
|
750
|
+
};
|
|
537
751
|
}
|
|
538
752
|
if (statSync(gitignorePath).size > MAX_DOCTOR_GITIGNORE_BYTES) {
|
|
539
753
|
return { name: 'Gitignore Coverage', status: 'warn', message: '.gitignore too large to parse' };
|
|
540
754
|
}
|
|
541
|
-
const lines = readFileSync(gitignorePath, 'utf-8')
|
|
542
|
-
|
|
755
|
+
const lines = readFileSync(gitignorePath, 'utf-8')
|
|
756
|
+
.split('\n')
|
|
757
|
+
.map((l) => l.trim())
|
|
758
|
+
.filter((l) => l && !l.startsWith('#'));
|
|
759
|
+
const missing = REQUIRED_GITIGNORE_PATTERNS.filter(({ pattern }) => !lines.some((l) => gitignoreLineCovers(l, pattern)));
|
|
543
760
|
if (missing.length === 0)
|
|
544
|
-
return {
|
|
545
|
-
|
|
546
|
-
|
|
761
|
+
return {
|
|
762
|
+
name: 'Gitignore Coverage',
|
|
763
|
+
status: 'pass',
|
|
764
|
+
message: 'All monomind runtime paths are gitignored',
|
|
765
|
+
};
|
|
766
|
+
const missingList = missing.map((m) => m.pattern).join(', ');
|
|
767
|
+
return {
|
|
768
|
+
name: 'Gitignore Coverage',
|
|
769
|
+
status: 'warn',
|
|
770
|
+
message: `${missing.length} runtime path(s) not in .gitignore: ${missingList}`,
|
|
771
|
+
fix: 'monomind doctor --fix (appends the missing entries)',
|
|
772
|
+
};
|
|
547
773
|
}
|
|
548
774
|
/** Patterns written by `doctor --fix` when there is no .gitignore at all.
|
|
549
775
|
* Covers monomind runtime state plus the standard secrets files, since a repo
|
|
@@ -552,8 +778,7 @@ const GITIGNORE_FIX_PATTERNS = [
|
|
|
552
778
|
'# monomind runtime state',
|
|
553
779
|
'.monomind/',
|
|
554
780
|
'**/.monomind/',
|
|
555
|
-
'.
|
|
556
|
-
'.swarm/',
|
|
781
|
+
'.monomind/monoswarm/',
|
|
557
782
|
'**/.claude-flow/',
|
|
558
783
|
'data/sessions/',
|
|
559
784
|
'data/mastermind-*.json',
|
|
@@ -576,16 +801,17 @@ export async function fixGitignoreCoverage() {
|
|
|
576
801
|
const gitignorePath = join(process.cwd(), '.gitignore');
|
|
577
802
|
try {
|
|
578
803
|
if (!existsSync(gitignorePath)) {
|
|
579
|
-
writeFileSync(gitignorePath, GITIGNORE_FIX_PATTERNS.join('\n')
|
|
804
|
+
writeFileSync(gitignorePath, `${GITIGNORE_FIX_PATTERNS.join('\n')}\n`, 'utf-8');
|
|
580
805
|
return true;
|
|
581
806
|
}
|
|
582
807
|
if (statSync(gitignorePath).size > MAX_DOCTOR_GITIGNORE_BYTES)
|
|
583
808
|
return false;
|
|
584
809
|
const existing = readFileSync(gitignorePath, 'utf-8');
|
|
585
|
-
const lines = existing
|
|
586
|
-
|
|
587
|
-
.map(
|
|
588
|
-
.filter(
|
|
810
|
+
const lines = existing
|
|
811
|
+
.split('\n')
|
|
812
|
+
.map((l) => l.trim())
|
|
813
|
+
.filter((l) => l && !l.startsWith('#'));
|
|
814
|
+
const missing = REQUIRED_GITIGNORE_PATTERNS.map((m) => m.pattern).filter((pattern) => !lines.some((l) => gitignoreLineCovers(l, pattern)));
|
|
589
815
|
if (missing.length === 0)
|
|
590
816
|
return false;
|
|
591
817
|
const prefix = existing.endsWith('\n') || existing === '' ? '' : '\n';
|
|
@@ -609,7 +835,12 @@ export async function checkAgentRegistry() {
|
|
|
609
835
|
const registry = buildUnifiedRegistry(roots, join(outDir, 'registry.json'));
|
|
610
836
|
const entries = registry.agents;
|
|
611
837
|
if (entries.length === 0) {
|
|
612
|
-
return {
|
|
838
|
+
return {
|
|
839
|
+
name: 'Agent Registry',
|
|
840
|
+
status: 'warn',
|
|
841
|
+
message: 'No agents found under .claude/agents',
|
|
842
|
+
fix: 'monomind init (installs agent definitions)',
|
|
843
|
+
};
|
|
613
844
|
}
|
|
614
845
|
let missingSlug = 0, missingName = 0, missingDescription = 0;
|
|
615
846
|
for (const agent of entries) {
|
|
@@ -622,13 +853,19 @@ export async function checkAgentRegistry() {
|
|
|
622
853
|
}
|
|
623
854
|
const total = missingSlug + missingName + missingDescription;
|
|
624
855
|
if (total === 0) {
|
|
625
|
-
return {
|
|
856
|
+
return {
|
|
857
|
+
name: 'Agent Registry',
|
|
858
|
+
status: 'pass',
|
|
859
|
+
message: `${entries.length} agent(s), all metadata complete`,
|
|
860
|
+
};
|
|
626
861
|
}
|
|
627
862
|
const parts = [
|
|
628
863
|
missingSlug > 0 ? `${missingSlug} missing slug` : null,
|
|
629
864
|
missingName > 0 ? `${missingName} missing name` : null,
|
|
630
865
|
missingDescription > 0 ? `${missingDescription} missing description` : null,
|
|
631
|
-
]
|
|
866
|
+
]
|
|
867
|
+
.filter(Boolean)
|
|
868
|
+
.join(', ');
|
|
632
869
|
return {
|
|
633
870
|
name: 'Agent Registry',
|
|
634
871
|
status: 'warn',
|
|
@@ -637,21 +874,39 @@ export async function checkAgentRegistry() {
|
|
|
637
874
|
};
|
|
638
875
|
}
|
|
639
876
|
catch {
|
|
640
|
-
return {
|
|
877
|
+
return {
|
|
878
|
+
name: 'Agent Registry',
|
|
879
|
+
status: 'warn',
|
|
880
|
+
message: 'Could not build/parse agent registry',
|
|
881
|
+
};
|
|
641
882
|
}
|
|
642
883
|
}
|
|
643
884
|
export async function checkGuidanceGates() {
|
|
644
885
|
const settingsPath = join(process.cwd(), '.claude', 'settings.json');
|
|
645
886
|
const gatesHandlerPath = join(process.cwd(), '.claude', 'helpers', 'handlers', 'gates-handler.cjs');
|
|
646
887
|
if (!existsSync(gatesHandlerPath)) {
|
|
647
|
-
return {
|
|
888
|
+
return {
|
|
889
|
+
name: 'Guidance Gates',
|
|
890
|
+
status: 'warn',
|
|
891
|
+
message: 'gates-handler.cjs not found — enforcement gates not installed',
|
|
892
|
+
fix: 'monomind init (then monomind guidance setup)',
|
|
893
|
+
};
|
|
648
894
|
}
|
|
649
895
|
if (!existsSync(settingsPath)) {
|
|
650
|
-
return {
|
|
896
|
+
return {
|
|
897
|
+
name: 'Guidance Gates',
|
|
898
|
+
status: 'warn',
|
|
899
|
+
message: 'gates-handler.cjs present but .claude/settings.json missing',
|
|
900
|
+
fix: 'monomind guidance setup',
|
|
901
|
+
};
|
|
651
902
|
}
|
|
652
903
|
try {
|
|
653
904
|
if (statSync(settingsPath).size > MAX_DOCTOR_CONFIG_BYTES) {
|
|
654
|
-
return {
|
|
905
|
+
return {
|
|
906
|
+
name: 'Guidance Gates',
|
|
907
|
+
status: 'warn',
|
|
908
|
+
message: 'settings.json too large to parse',
|
|
909
|
+
};
|
|
655
910
|
}
|
|
656
911
|
const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
|
|
657
912
|
const preToolUse = settings?.hooks?.PreToolUse ?? [];
|
|
@@ -662,18 +917,42 @@ export async function checkGuidanceGates() {
|
|
|
662
917
|
// INACTIVE the moment it did, telling users their secrets gate was off
|
|
663
918
|
// while it was demonstrably blocking secrets, and sending them to
|
|
664
919
|
// `guidance setup`, which would then add a duplicate entry.
|
|
665
|
-
const hasPreWrite = preToolUse.some(e => /\bWrite\b/.test(e.matcher ?? '') && e.hooks.some(h => h.command?.includes('pre-write')));
|
|
666
|
-
const hasPreBash = preToolUse.some(e => e.matcher === 'Bash' && e.hooks.some(h => h.command?.includes('pre-bash')));
|
|
920
|
+
const hasPreWrite = preToolUse.some((e) => /\bWrite\b/.test(e.matcher ?? '') && e.hooks.some((h) => h.command?.includes('pre-write')));
|
|
921
|
+
const hasPreBash = preToolUse.some((e) => e.matcher === 'Bash' && e.hooks.some((h) => h.command?.includes('pre-bash')));
|
|
667
922
|
if (!hasPreWrite && !hasPreBash)
|
|
668
|
-
return {
|
|
923
|
+
return {
|
|
924
|
+
name: 'Guidance Gates',
|
|
925
|
+
status: 'warn',
|
|
926
|
+
message: 'gates-handler.cjs present but no gates registered',
|
|
927
|
+
fix: 'monomind guidance setup',
|
|
928
|
+
};
|
|
669
929
|
if (!hasPreWrite)
|
|
670
|
-
return {
|
|
930
|
+
return {
|
|
931
|
+
name: 'Guidance Gates',
|
|
932
|
+
status: 'warn',
|
|
933
|
+
message: 'pre-write hook not registered — secrets gate inactive',
|
|
934
|
+
fix: 'monomind guidance setup',
|
|
935
|
+
};
|
|
671
936
|
if (!hasPreBash)
|
|
672
|
-
return {
|
|
673
|
-
|
|
937
|
+
return {
|
|
938
|
+
name: 'Guidance Gates',
|
|
939
|
+
status: 'warn',
|
|
940
|
+
message: 'pre-bash hook not registered — destructive-ops gate inactive',
|
|
941
|
+
fix: 'monomind guidance setup',
|
|
942
|
+
};
|
|
943
|
+
return {
|
|
944
|
+
name: 'Guidance Gates',
|
|
945
|
+
status: 'pass',
|
|
946
|
+
message: 'destructive-ops (pre-bash) + secrets (pre-write) gates active',
|
|
947
|
+
};
|
|
674
948
|
}
|
|
675
949
|
catch {
|
|
676
|
-
return {
|
|
950
|
+
return {
|
|
951
|
+
name: 'Guidance Gates',
|
|
952
|
+
status: 'warn',
|
|
953
|
+
message: 'Could not parse .claude/settings.json',
|
|
954
|
+
fix: 'monomind guidance setup --force',
|
|
955
|
+
};
|
|
677
956
|
}
|
|
678
957
|
}
|
|
679
958
|
// Workers refresh at session start when output is >6h old — allow a grace
|
|
@@ -702,11 +981,19 @@ function readMetricsJSON(name) {
|
|
|
702
981
|
export async function checkMetricsFreshness() {
|
|
703
982
|
const metricsDir = join(process.cwd(), '.monomind', 'metrics');
|
|
704
983
|
const knownOutputs = [
|
|
705
|
-
'codebase-map.json',
|
|
706
|
-
'
|
|
984
|
+
'codebase-map.json',
|
|
985
|
+
'security-audit.json',
|
|
986
|
+
'performance.json',
|
|
987
|
+
'consolidation.json',
|
|
988
|
+
'ddd-progress.json',
|
|
707
989
|
];
|
|
708
990
|
if (!existsSync(metricsDir)) {
|
|
709
|
-
return {
|
|
991
|
+
return {
|
|
992
|
+
name: 'Worker Metrics',
|
|
993
|
+
status: 'warn',
|
|
994
|
+
message: 'No .monomind/metrics — workers have not run yet (they run at session start)',
|
|
995
|
+
fix: 'monomind hooks worker run map',
|
|
996
|
+
};
|
|
710
997
|
}
|
|
711
998
|
const now = Date.now();
|
|
712
999
|
const fresh = [];
|
|
@@ -722,19 +1009,30 @@ export async function checkMetricsFreshness() {
|
|
|
722
1009
|
else
|
|
723
1010
|
stale.push(name);
|
|
724
1011
|
}
|
|
725
|
-
catch {
|
|
1012
|
+
catch {
|
|
1013
|
+
/* skip unreadable */
|
|
1014
|
+
}
|
|
726
1015
|
}
|
|
727
1016
|
if (fresh.length === 0 && stale.length === 0) {
|
|
728
|
-
return {
|
|
1017
|
+
return {
|
|
1018
|
+
name: 'Worker Metrics',
|
|
1019
|
+
status: 'warn',
|
|
1020
|
+
message: 'No worker output files found yet (they run at session start)',
|
|
1021
|
+
fix: 'monomind hooks worker run map',
|
|
1022
|
+
};
|
|
729
1023
|
}
|
|
730
1024
|
if (stale.length === 0) {
|
|
731
|
-
return {
|
|
1025
|
+
return {
|
|
1026
|
+
name: 'Worker Metrics',
|
|
1027
|
+
status: 'pass',
|
|
1028
|
+
message: `${fresh.length} metrics file(s) fresh (<12h)`,
|
|
1029
|
+
};
|
|
732
1030
|
}
|
|
733
1031
|
return {
|
|
734
1032
|
name: 'Worker Metrics',
|
|
735
1033
|
status: 'warn',
|
|
736
1034
|
message: `${stale.length} stale (>12h): ${stale.join(', ')}${fresh.length > 0 ? ` — ${fresh.length} fresh` : ''}`,
|
|
737
|
-
fix: 'monomind hooks worker run <name> # map, audit,
|
|
1035
|
+
fix: 'monomind hooks worker run <name> # map, audit, consolidate, ddd',
|
|
738
1036
|
};
|
|
739
1037
|
}
|
|
740
1038
|
/**
|
|
@@ -743,12 +1041,18 @@ export async function checkMetricsFreshness() {
|
|
|
743
1041
|
export async function checkSecurityAuditFindings() {
|
|
744
1042
|
const audit = readMetricsJSON('security-audit.json');
|
|
745
1043
|
if (!audit) {
|
|
746
|
-
return {
|
|
1044
|
+
return {
|
|
1045
|
+
name: 'Security Audit',
|
|
1046
|
+
status: 'warn',
|
|
1047
|
+
message: 'No security-audit.json yet',
|
|
1048
|
+
fix: 'monomind hooks worker run audit',
|
|
1049
|
+
};
|
|
747
1050
|
}
|
|
748
1051
|
const riskLevel = (audit.riskLevel || 'low').toLowerCase();
|
|
749
1052
|
const recommendations = audit.recommendations || [];
|
|
750
1053
|
const priorityTargets = audit.priorityScanTargets || [];
|
|
751
|
-
const criticalCount = recommendations.length +
|
|
1054
|
+
const criticalCount = recommendations.length +
|
|
1055
|
+
(riskLevel === 'high' || riskLevel === 'critical' ? priorityTargets.length : 0);
|
|
752
1056
|
if (riskLevel === 'critical' || riskLevel === 'high') {
|
|
753
1057
|
return {
|
|
754
1058
|
name: 'Security Audit',
|
|
@@ -758,7 +1062,11 @@ export async function checkSecurityAuditFindings() {
|
|
|
758
1062
|
};
|
|
759
1063
|
}
|
|
760
1064
|
if (recommendations.length > 0) {
|
|
761
|
-
return {
|
|
1065
|
+
return {
|
|
1066
|
+
name: 'Security Audit',
|
|
1067
|
+
status: 'warn',
|
|
1068
|
+
message: `risk=${riskLevel}, ${recommendations.length} recommendation(s)`,
|
|
1069
|
+
};
|
|
762
1070
|
}
|
|
763
1071
|
return { name: 'Security Audit', status: 'pass', message: `risk=${riskLevel}, no open findings` };
|
|
764
1072
|
}
|
|
@@ -786,7 +1094,11 @@ export async function checkMemoryProficiency() {
|
|
|
786
1094
|
return { name: 'Memory Proficiency', status: 'pass', message: msg };
|
|
787
1095
|
}
|
|
788
1096
|
catch {
|
|
789
|
-
return {
|
|
1097
|
+
return {
|
|
1098
|
+
name: 'Memory Proficiency',
|
|
1099
|
+
status: 'warn',
|
|
1100
|
+
message: 'Could not load intelligence module',
|
|
1101
|
+
};
|
|
790
1102
|
}
|
|
791
1103
|
}
|
|
792
1104
|
/** AppleDouble sidecars (`._name`) under `.claude/`.
|
|
@@ -808,7 +1120,10 @@ export async function checkAppleDoubleSidecars() {
|
|
|
808
1120
|
const found = findAppleDoubleSidecars(process.cwd());
|
|
809
1121
|
if (found.length === 0)
|
|
810
1122
|
return { name, status: 'pass', message: 'None under .claude/' };
|
|
811
|
-
const shown = found
|
|
1123
|
+
const shown = found
|
|
1124
|
+
.slice(0, 3)
|
|
1125
|
+
.map((p) => p.replace(`${process.cwd()}/`, ''))
|
|
1126
|
+
.join(', ');
|
|
812
1127
|
return {
|
|
813
1128
|
name,
|
|
814
1129
|
status: 'warn',
|
|
@@ -860,8 +1175,55 @@ export function fixAppleDoubleSidecars(cwd) {
|
|
|
860
1175
|
rmSync(f, { force: true });
|
|
861
1176
|
removed++;
|
|
862
1177
|
}
|
|
863
|
-
catch {
|
|
1178
|
+
catch {
|
|
1179
|
+
/* best effort */
|
|
1180
|
+
}
|
|
864
1181
|
}
|
|
865
1182
|
return removed;
|
|
866
1183
|
}
|
|
1184
|
+
/** Second Brain document ingestion: whether the "documents" capability is
|
|
1185
|
+
* active for this project. Read directly from capabilities.json rather than
|
|
1186
|
+
* re-running the directory scan — doctor should report on what's actually
|
|
1187
|
+
* activated, not re-detect. */
|
|
1188
|
+
function isDocumentsCapabilityActive(cwd) {
|
|
1189
|
+
try {
|
|
1190
|
+
const capsPath = join(cwd, '.monomind', 'capabilities.json');
|
|
1191
|
+
if (!existsSync(capsPath))
|
|
1192
|
+
return false;
|
|
1193
|
+
const parsed = JSON.parse(readFileSync(capsPath, 'utf8'));
|
|
1194
|
+
return Array.isArray(parsed.active) && parsed.active.includes('documents');
|
|
1195
|
+
}
|
|
1196
|
+
catch {
|
|
1197
|
+
return false;
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
/** Per-extractor health for Second Brain document ingestion (MEM-8/MEM-9):
|
|
1201
|
+
* one check per format family (PDF, DOCX, XLSX/XLS/ODS, PPTX/ODT/ODP/EPUB,
|
|
1202
|
+
* legacy DOC/PPT/Pages) instead of a single blanket "documents" check, so
|
|
1203
|
+
* `doctor` can report exactly which formats are functional vs broken.
|
|
1204
|
+
* No-op (empty array) when the documents capability isn't active — nothing
|
|
1205
|
+
* to report if this project doesn't ingest documents. */
|
|
1206
|
+
export async function checkDocumentExtractors() {
|
|
1207
|
+
if (!isDocumentsCapabilityActive(process.cwd()))
|
|
1208
|
+
return [];
|
|
1209
|
+
try {
|
|
1210
|
+
const { documentsCapability } = await import('../capabilities/cap-documents.js');
|
|
1211
|
+
const checks = (await documentsCapability.healthChecks?.()) ?? [];
|
|
1212
|
+
return checks.map((c) => ({
|
|
1213
|
+
name: c.name,
|
|
1214
|
+
status: c.status,
|
|
1215
|
+
message: c.message,
|
|
1216
|
+
fix: c.hint ?? c.fix,
|
|
1217
|
+
}));
|
|
1218
|
+
}
|
|
1219
|
+
catch (err) {
|
|
1220
|
+
return [
|
|
1221
|
+
{
|
|
1222
|
+
name: 'Document Extractors',
|
|
1223
|
+
status: 'warn',
|
|
1224
|
+
message: `Check failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
1225
|
+
},
|
|
1226
|
+
];
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
867
1229
|
//# sourceMappingURL=doctor-project-checks.js.map
|