@monoes/monomindcli 2.9.23 → 2.9.25
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/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.js +6 -6
- 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 +22 -12
- package/dist/src/browser/dashboard/server.js.map +1 -1
- package/dist/src/browser/dashboard/ui.html +3 -3
- 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 +93 -22
- 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 +116 -32
- 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 +72 -19
- 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.map +1 -1
- package/dist/src/commands/analyze-ast.js +41 -16
- 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 +59 -16
- 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 +48 -20
- package/dist/src/commands/analyze-symbols.js.map +1 -1
- package/dist/src/commands/analyze.d.ts.map +1 -1
- package/dist/src/commands/analyze.js +30 -14
- 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 +2 -2
- 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.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 +111 -47
- 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 -20
- 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 +90 -49
- 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.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +442 -112
- 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 +132 -59
- 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.map +1 -1
- package/dist/src/commands/hooks-routing-commands.js +174 -82
- 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 +96 -61
- package/dist/src/commands/hooks-workers.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +6 -6
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/init-subcommands.d.ts.map +1 -1
- package/dist/src/commands/init-subcommands.js +12 -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 -36
- 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 +132 -47
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +128 -84
- 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 +65 -41
- 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.map +1 -1
- package/dist/src/commands/monoswarm.js +11 -19
- package/dist/src/commands/monoswarm.js.map +1 -1
- package/dist/src/commands/neural-core.d.ts.map +1 -1
- package/dist/src/commands/neural-core.js +114 -31
- 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 +67 -22
- package/dist/src/commands/neural-optimize.js.map +1 -1
- package/dist/src/commands/neural-registry.d.ts.map +1 -1
- package/dist/src/commands/neural-registry.js +50 -14
- package/dist/src/commands/neural-registry.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +180 -92
- 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 +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +580 -188
- 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 +200 -54
- 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 +173 -43
- package/dist/src/commands/security-misc.js.map +1 -1
- package/dist/src/commands/security-scan.d.ts +1 -1
- package/dist/src/commands/security-scan.d.ts.map +1 -1
- package/dist/src/commands/security-scan.js +135 -39
- 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 +9 -2
- 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 +43 -34
- 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 +88 -75
- 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 +64 -28
- 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 +5 -0
- package/dist/src/consensus/audit-writer.d.ts.map +1 -1
- package/dist/src/consensus/audit-writer.js +18 -10
- 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 +6 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +41 -35
- 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 +22 -7
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/codex-generator.d.ts +7 -1
- package/dist/src/init/codex-generator.d.ts.map +1 -1
- package/dist/src/init/codex-generator.js +114 -1
- package/dist/src/init/codex-generator.js.map +1 -1
- package/dist/src/init/copy-assets.d.ts.map +1 -1
- package/dist/src/init/copy-assets.js +13 -12
- 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 +49 -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 +6 -6
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/index.d.ts +8 -8
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +9 -9
- 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 +33 -20
- 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 +2 -5
- 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 +23 -18
- package/dist/src/init/shared.js.map +1 -1
- package/dist/src/init/types.js +2 -2
- 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 +19 -17
- 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 +3 -3
- 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 +18 -14
- package/dist/src/init/write-claude.js.map +1 -1
- package/dist/src/init/write-codex.d.ts.map +1 -1
- package/dist/src/init/write-codex.js +76 -7
- package/dist/src/init/write-codex.js.map +1 -1
- 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 +20 -19
- 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 +69 -33
- 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 +19 -42
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +84 -49
- 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.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.js +29 -9
- 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 +449 -93
- 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 -8
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.js +9 -17
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +16 -15
- 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 -2
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +18 -18
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +18 -18
- 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 +156 -39
- 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 +131 -56
- 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.map +1 -1
- package/dist/src/mcp-tools/monoswarm-tools.js +217 -81
- package/dist/src/mcp-tools/monoswarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +280 -83
- 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 +7 -7
- 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.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +2 -1
- 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 -19
- 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 +1 -1
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
- package/dist/src/memory/hnsw-operations.js +5 -6
- package/dist/src/memory/hnsw-operations.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +122 -84
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +7 -7
- 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 -47
- package/dist/src/memory/memory-crud.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +7 -7
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +38 -34
- 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 +45 -21
- 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.map +1 -1
- package/dist/src/memory/sona-optimizer.js +163 -41
- 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.js +2 -2
- package/dist/src/monovector/model-outcomes.js.map +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +46 -17
- 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 +24 -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 +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +36 -19
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +3 -1
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts +1 -1
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +45 -18
- 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 +48 -16
- 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 +213 -41
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts +1 -1
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +51 -17
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +5 -6
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +55 -47
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +2 -2
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +83 -34
- 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 +36 -16
- 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 +1 -1
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +40 -15
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +15 -5
- 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 +60 -25
- 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.map +1 -1
- package/dist/src/orgrt/policy.js +65 -20
- 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 +1 -1
- package/dist/src/orgrt/provider.d.ts.map +1 -1
- 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 +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.js +61 -26
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
- 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 +31 -15
- 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 +57 -20
- 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 +3 -3
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +165 -66
- 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.map +1 -1
- package/dist/src/orgrt/task-dag.js +22 -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 +61 -34
- 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 +6 -3
- package/dist/src/orgrt/tool-fence.js.map +1 -1
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +148 -38
- 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 -3
- 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.map +1 -1
- package/dist/src/security/audit-log.js +9 -5
- package/dist/src/security/audit-log.js.map +1 -1
- package/dist/src/services/config-file-manager.d.ts.map +1 -1
- package/dist/src/services/config-file-manager.js +40 -15
- 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 -56
- 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.js +2 -2
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui/collector.mjs +270 -150
- package/dist/src/ui/dashboard.html +731 -732
- package/dist/src/ui/data/agent-avatars.html +3 -3
- package/dist/src/ui/data/agent-avatars.json +1 -1
- 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 +4237 -2415
- package/dist/src/ui/server.mjs +103 -94
- 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.map +1 -1
- package/dist/src/utils/json-file.js +3 -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 +6 -6
|
@@ -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 = [
|
|
@@ -507,7 +714,10 @@ const REQUIRED_GITIGNORE_PATTERNS = [
|
|
|
507
714
|
* `.monomind/` and `.monomind` all compare equal. A gitignore pattern with no
|
|
508
715
|
* leading slash already matches at every depth, so `**/` is redundant. */
|
|
509
716
|
function normalizeGitignorePattern(p) {
|
|
510
|
-
return p
|
|
717
|
+
return p
|
|
718
|
+
.replace(/^\/+/, '')
|
|
719
|
+
.replace(/^\*\*\//, '')
|
|
720
|
+
.replace(/\/+$/, '');
|
|
511
721
|
}
|
|
512
722
|
/** True when ignoring `line` already protects everything `required` covers.
|
|
513
723
|
* Beyond exact matches this understands directory containment: a repo with a
|
|
@@ -532,17 +742,34 @@ export async function checkGitignoreCoverage() {
|
|
|
532
742
|
// writes a literal backslash-n (sh/bash echo does not interpret escapes
|
|
533
743
|
// without -e) — one junk line matching nothing. `--fix` now writes the file
|
|
534
744
|
// directly, so point at that rather than at a command to copy-paste.
|
|
535
|
-
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
|
+
};
|
|
536
751
|
}
|
|
537
752
|
if (statSync(gitignorePath).size > MAX_DOCTOR_GITIGNORE_BYTES) {
|
|
538
753
|
return { name: 'Gitignore Coverage', status: 'warn', message: '.gitignore too large to parse' };
|
|
539
754
|
}
|
|
540
|
-
const lines = readFileSync(gitignorePath, 'utf-8')
|
|
541
|
-
|
|
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)));
|
|
542
760
|
if (missing.length === 0)
|
|
543
|
-
return {
|
|
544
|
-
|
|
545
|
-
|
|
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
|
+
};
|
|
546
773
|
}
|
|
547
774
|
/** Patterns written by `doctor --fix` when there is no .gitignore at all.
|
|
548
775
|
* Covers monomind runtime state plus the standard secrets files, since a repo
|
|
@@ -574,16 +801,17 @@ export async function fixGitignoreCoverage() {
|
|
|
574
801
|
const gitignorePath = join(process.cwd(), '.gitignore');
|
|
575
802
|
try {
|
|
576
803
|
if (!existsSync(gitignorePath)) {
|
|
577
|
-
writeFileSync(gitignorePath, GITIGNORE_FIX_PATTERNS.join('\n')
|
|
804
|
+
writeFileSync(gitignorePath, `${GITIGNORE_FIX_PATTERNS.join('\n')}\n`, 'utf-8');
|
|
578
805
|
return true;
|
|
579
806
|
}
|
|
580
807
|
if (statSync(gitignorePath).size > MAX_DOCTOR_GITIGNORE_BYTES)
|
|
581
808
|
return false;
|
|
582
809
|
const existing = readFileSync(gitignorePath, 'utf-8');
|
|
583
|
-
const lines = existing
|
|
584
|
-
|
|
585
|
-
.map(
|
|
586
|
-
.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)));
|
|
587
815
|
if (missing.length === 0)
|
|
588
816
|
return false;
|
|
589
817
|
const prefix = existing.endsWith('\n') || existing === '' ? '' : '\n';
|
|
@@ -607,7 +835,12 @@ export async function checkAgentRegistry() {
|
|
|
607
835
|
const registry = buildUnifiedRegistry(roots, join(outDir, 'registry.json'));
|
|
608
836
|
const entries = registry.agents;
|
|
609
837
|
if (entries.length === 0) {
|
|
610
|
-
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
|
+
};
|
|
611
844
|
}
|
|
612
845
|
let missingSlug = 0, missingName = 0, missingDescription = 0;
|
|
613
846
|
for (const agent of entries) {
|
|
@@ -620,13 +853,19 @@ export async function checkAgentRegistry() {
|
|
|
620
853
|
}
|
|
621
854
|
const total = missingSlug + missingName + missingDescription;
|
|
622
855
|
if (total === 0) {
|
|
623
|
-
return {
|
|
856
|
+
return {
|
|
857
|
+
name: 'Agent Registry',
|
|
858
|
+
status: 'pass',
|
|
859
|
+
message: `${entries.length} agent(s), all metadata complete`,
|
|
860
|
+
};
|
|
624
861
|
}
|
|
625
862
|
const parts = [
|
|
626
863
|
missingSlug > 0 ? `${missingSlug} missing slug` : null,
|
|
627
864
|
missingName > 0 ? `${missingName} missing name` : null,
|
|
628
865
|
missingDescription > 0 ? `${missingDescription} missing description` : null,
|
|
629
|
-
]
|
|
866
|
+
]
|
|
867
|
+
.filter(Boolean)
|
|
868
|
+
.join(', ');
|
|
630
869
|
return {
|
|
631
870
|
name: 'Agent Registry',
|
|
632
871
|
status: 'warn',
|
|
@@ -635,21 +874,39 @@ export async function checkAgentRegistry() {
|
|
|
635
874
|
};
|
|
636
875
|
}
|
|
637
876
|
catch {
|
|
638
|
-
return {
|
|
877
|
+
return {
|
|
878
|
+
name: 'Agent Registry',
|
|
879
|
+
status: 'warn',
|
|
880
|
+
message: 'Could not build/parse agent registry',
|
|
881
|
+
};
|
|
639
882
|
}
|
|
640
883
|
}
|
|
641
884
|
export async function checkGuidanceGates() {
|
|
642
885
|
const settingsPath = join(process.cwd(), '.claude', 'settings.json');
|
|
643
886
|
const gatesHandlerPath = join(process.cwd(), '.claude', 'helpers', 'handlers', 'gates-handler.cjs');
|
|
644
887
|
if (!existsSync(gatesHandlerPath)) {
|
|
645
|
-
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
|
+
};
|
|
646
894
|
}
|
|
647
895
|
if (!existsSync(settingsPath)) {
|
|
648
|
-
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
|
+
};
|
|
649
902
|
}
|
|
650
903
|
try {
|
|
651
904
|
if (statSync(settingsPath).size > MAX_DOCTOR_CONFIG_BYTES) {
|
|
652
|
-
return {
|
|
905
|
+
return {
|
|
906
|
+
name: 'Guidance Gates',
|
|
907
|
+
status: 'warn',
|
|
908
|
+
message: 'settings.json too large to parse',
|
|
909
|
+
};
|
|
653
910
|
}
|
|
654
911
|
const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
|
|
655
912
|
const preToolUse = settings?.hooks?.PreToolUse ?? [];
|
|
@@ -660,18 +917,42 @@ export async function checkGuidanceGates() {
|
|
|
660
917
|
// INACTIVE the moment it did, telling users their secrets gate was off
|
|
661
918
|
// while it was demonstrably blocking secrets, and sending them to
|
|
662
919
|
// `guidance setup`, which would then add a duplicate entry.
|
|
663
|
-
const hasPreWrite = preToolUse.some(e => /\bWrite\b/.test(e.matcher ?? '') && e.hooks.some(h => h.command?.includes('pre-write')));
|
|
664
|
-
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')));
|
|
665
922
|
if (!hasPreWrite && !hasPreBash)
|
|
666
|
-
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
|
+
};
|
|
667
929
|
if (!hasPreWrite)
|
|
668
|
-
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
|
+
};
|
|
669
936
|
if (!hasPreBash)
|
|
670
|
-
return {
|
|
671
|
-
|
|
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
|
+
};
|
|
672
948
|
}
|
|
673
949
|
catch {
|
|
674
|
-
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
|
+
};
|
|
675
956
|
}
|
|
676
957
|
}
|
|
677
958
|
// Workers refresh at session start when output is >6h old — allow a grace
|
|
@@ -700,11 +981,19 @@ function readMetricsJSON(name) {
|
|
|
700
981
|
export async function checkMetricsFreshness() {
|
|
701
982
|
const metricsDir = join(process.cwd(), '.monomind', 'metrics');
|
|
702
983
|
const knownOutputs = [
|
|
703
|
-
'codebase-map.json',
|
|
704
|
-
'
|
|
984
|
+
'codebase-map.json',
|
|
985
|
+
'security-audit.json',
|
|
986
|
+
'performance.json',
|
|
987
|
+
'consolidation.json',
|
|
988
|
+
'ddd-progress.json',
|
|
705
989
|
];
|
|
706
990
|
if (!existsSync(metricsDir)) {
|
|
707
|
-
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
|
+
};
|
|
708
997
|
}
|
|
709
998
|
const now = Date.now();
|
|
710
999
|
const fresh = [];
|
|
@@ -720,13 +1009,24 @@ export async function checkMetricsFreshness() {
|
|
|
720
1009
|
else
|
|
721
1010
|
stale.push(name);
|
|
722
1011
|
}
|
|
723
|
-
catch {
|
|
1012
|
+
catch {
|
|
1013
|
+
/* skip unreadable */
|
|
1014
|
+
}
|
|
724
1015
|
}
|
|
725
1016
|
if (fresh.length === 0 && stale.length === 0) {
|
|
726
|
-
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
|
+
};
|
|
727
1023
|
}
|
|
728
1024
|
if (stale.length === 0) {
|
|
729
|
-
return {
|
|
1025
|
+
return {
|
|
1026
|
+
name: 'Worker Metrics',
|
|
1027
|
+
status: 'pass',
|
|
1028
|
+
message: `${fresh.length} metrics file(s) fresh (<12h)`,
|
|
1029
|
+
};
|
|
730
1030
|
}
|
|
731
1031
|
return {
|
|
732
1032
|
name: 'Worker Metrics',
|
|
@@ -741,12 +1041,18 @@ export async function checkMetricsFreshness() {
|
|
|
741
1041
|
export async function checkSecurityAuditFindings() {
|
|
742
1042
|
const audit = readMetricsJSON('security-audit.json');
|
|
743
1043
|
if (!audit) {
|
|
744
|
-
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
|
+
};
|
|
745
1050
|
}
|
|
746
1051
|
const riskLevel = (audit.riskLevel || 'low').toLowerCase();
|
|
747
1052
|
const recommendations = audit.recommendations || [];
|
|
748
1053
|
const priorityTargets = audit.priorityScanTargets || [];
|
|
749
|
-
const criticalCount = recommendations.length +
|
|
1054
|
+
const criticalCount = recommendations.length +
|
|
1055
|
+
(riskLevel === 'high' || riskLevel === 'critical' ? priorityTargets.length : 0);
|
|
750
1056
|
if (riskLevel === 'critical' || riskLevel === 'high') {
|
|
751
1057
|
return {
|
|
752
1058
|
name: 'Security Audit',
|
|
@@ -756,7 +1062,11 @@ export async function checkSecurityAuditFindings() {
|
|
|
756
1062
|
};
|
|
757
1063
|
}
|
|
758
1064
|
if (recommendations.length > 0) {
|
|
759
|
-
return {
|
|
1065
|
+
return {
|
|
1066
|
+
name: 'Security Audit',
|
|
1067
|
+
status: 'warn',
|
|
1068
|
+
message: `risk=${riskLevel}, ${recommendations.length} recommendation(s)`,
|
|
1069
|
+
};
|
|
760
1070
|
}
|
|
761
1071
|
return { name: 'Security Audit', status: 'pass', message: `risk=${riskLevel}, no open findings` };
|
|
762
1072
|
}
|
|
@@ -784,7 +1094,11 @@ export async function checkMemoryProficiency() {
|
|
|
784
1094
|
return { name: 'Memory Proficiency', status: 'pass', message: msg };
|
|
785
1095
|
}
|
|
786
1096
|
catch {
|
|
787
|
-
return {
|
|
1097
|
+
return {
|
|
1098
|
+
name: 'Memory Proficiency',
|
|
1099
|
+
status: 'warn',
|
|
1100
|
+
message: 'Could not load intelligence module',
|
|
1101
|
+
};
|
|
788
1102
|
}
|
|
789
1103
|
}
|
|
790
1104
|
/** AppleDouble sidecars (`._name`) under `.claude/`.
|
|
@@ -806,7 +1120,10 @@ export async function checkAppleDoubleSidecars() {
|
|
|
806
1120
|
const found = findAppleDoubleSidecars(process.cwd());
|
|
807
1121
|
if (found.length === 0)
|
|
808
1122
|
return { name, status: 'pass', message: 'None under .claude/' };
|
|
809
|
-
const shown = found
|
|
1123
|
+
const shown = found
|
|
1124
|
+
.slice(0, 3)
|
|
1125
|
+
.map((p) => p.replace(`${process.cwd()}/`, ''))
|
|
1126
|
+
.join(', ');
|
|
810
1127
|
return {
|
|
811
1128
|
name,
|
|
812
1129
|
status: 'warn',
|
|
@@ -858,7 +1175,9 @@ export function fixAppleDoubleSidecars(cwd) {
|
|
|
858
1175
|
rmSync(f, { force: true });
|
|
859
1176
|
removed++;
|
|
860
1177
|
}
|
|
861
|
-
catch {
|
|
1178
|
+
catch {
|
|
1179
|
+
/* best effort */
|
|
1180
|
+
}
|
|
862
1181
|
}
|
|
863
1182
|
return removed;
|
|
864
1183
|
}
|
|
@@ -889,11 +1208,22 @@ export async function checkDocumentExtractors() {
|
|
|
889
1208
|
return [];
|
|
890
1209
|
try {
|
|
891
1210
|
const { documentsCapability } = await import('../capabilities/cap-documents.js');
|
|
892
|
-
const checks = await documentsCapability.healthChecks?.() ?? [];
|
|
893
|
-
return checks.map(c => ({
|
|
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
|
+
}));
|
|
894
1218
|
}
|
|
895
1219
|
catch (err) {
|
|
896
|
-
return [
|
|
1220
|
+
return [
|
|
1221
|
+
{
|
|
1222
|
+
name: 'Document Extractors',
|
|
1223
|
+
status: 'warn',
|
|
1224
|
+
message: `Check failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
1225
|
+
},
|
|
1226
|
+
];
|
|
897
1227
|
}
|
|
898
1228
|
}
|
|
899
1229
|
//# sourceMappingURL=doctor-project-checks.js.map
|