@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
package/dist/src/ui/server.mjs
CHANGED
|
@@ -1,41 +1,37 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { fileURLToPath } from 'url';
|
|
8
|
-
import
|
|
9
|
-
import { spawn } from 'child_process';
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import http from 'node:http';
|
|
4
|
+
import { createRequire } from 'node:module';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
import zlib from 'node:zlib';
|
|
10
9
|
import {
|
|
11
|
-
collectAll,
|
|
12
|
-
getWatchPaths,
|
|
13
|
-
collectProject,
|
|
14
|
-
collectSessions,
|
|
15
10
|
collectAgents,
|
|
16
|
-
|
|
11
|
+
collectAll,
|
|
17
12
|
collectHooks,
|
|
18
13
|
collectKnowledge,
|
|
19
|
-
collectMetrics,
|
|
20
14
|
collectMemory,
|
|
21
|
-
|
|
15
|
+
collectMetrics,
|
|
16
|
+
collectProject,
|
|
17
|
+
collectSessions,
|
|
22
18
|
collectSystem,
|
|
19
|
+
collectTokens,
|
|
23
20
|
} from './collector.mjs';
|
|
21
|
+
import { handleMonographRoutes } from './routes-monograph.mjs';
|
|
22
|
+
import { handleOrgRoutes } from './routes-org.mjs';
|
|
24
23
|
import {
|
|
24
|
+
addMmClient,
|
|
25
25
|
addSseClient,
|
|
26
|
-
removeSseClient,
|
|
27
26
|
broadcast,
|
|
28
|
-
|
|
27
|
+
broadcastMm,
|
|
29
28
|
closeSseClients,
|
|
30
|
-
|
|
29
|
+
getSseClientCount,
|
|
31
30
|
removeMmClient,
|
|
32
|
-
|
|
33
|
-
getMmClientCount,
|
|
31
|
+
removeSseClient,
|
|
34
32
|
} from './sse-manager.mjs';
|
|
35
|
-
import { handleMonographRoutes } from './routes-monograph.mjs';
|
|
36
|
-
import { handleOrgRoutes } from './routes-org.mjs';
|
|
37
33
|
|
|
38
|
-
const
|
|
34
|
+
const _JSONL_SIZE_CAP = 10 * 1024 * 1024; // 10 MB — skip files larger than this in /api/graph
|
|
39
35
|
// Session id format for data/sessions/<id>.jsonl persistence — no path traversal (".."), starts
|
|
40
36
|
// with a word char, rest is word chars/dot/dash. Shared by every session-id-accepting endpoint.
|
|
41
37
|
const SESSION_ID_RE = /^(?!.*\.\.)[a-zA-Z0-9_][a-zA-Z0-9_.-]*$/;
|
|
@@ -43,10 +39,7 @@ const buildDocsState = new Map();
|
|
|
43
39
|
|
|
44
40
|
// Pricing per token (mirrors token-tracker.cjs FALLBACK_PRICING)
|
|
45
41
|
const _SJ_PRICING = {
|
|
46
|
-
'claude-fable-5': { in: 10e-6, out: 50e-6, cw: 12.5e-6, cr: 1e-6 },
|
|
47
|
-
'claude-mythos-5': { in: 10e-6, out: 50e-6, cw: 12.5e-6, cr: 1e-6 },
|
|
48
42
|
'claude-opus-5': { in: 5e-6, out: 25e-6, cw: 6.25e-6, cr: 0.5e-6 },
|
|
49
|
-
'claude-opus-4-8': { in: 5e-6, out: 25e-6, cw: 6.25e-6, cr: 0.5e-6 },
|
|
50
43
|
'claude-opus-4-7': { in: 5e-6, out: 25e-6, cw: 6.25e-6, cr: 0.5e-6 },
|
|
51
44
|
'claude-opus-4-6': { in: 5e-6, out: 25e-6, cw: 6.25e-6, cr: 0.5e-6 },
|
|
52
45
|
'claude-opus-4-5': { in: 5e-6, out: 25e-6, cw: 6.25e-6, cr: 0.5e-6 },
|
|
@@ -93,7 +86,7 @@ export function _sjHasPricing(model) {
|
|
|
93
86
|
function _sjCalcCost(model, usage) {
|
|
94
87
|
const p = _sjGetPricing(model);
|
|
95
88
|
if (!p || !usage) return 0;
|
|
96
|
-
const webSearch = (
|
|
89
|
+
const webSearch = (usage.server_tool_use?.web_search_requests || 0) * 0.01;
|
|
97
90
|
return (
|
|
98
91
|
(usage.input_tokens || 0) * p.in +
|
|
99
92
|
(usage.output_tokens || 0) * p.out +
|
|
@@ -139,7 +132,7 @@ function categorizeTool(name) {
|
|
|
139
132
|
|
|
140
133
|
function parseSessionLines(lines) {
|
|
141
134
|
const events = [];
|
|
142
|
-
|
|
135
|
+
const _agentDepth = 0;
|
|
143
136
|
const toolMap = new Map(); // id → tool event index
|
|
144
137
|
|
|
145
138
|
for (const line of lines) {
|
|
@@ -191,7 +184,7 @@ function parseSessionLines(lines) {
|
|
|
191
184
|
} else if (type === 'tool') {
|
|
192
185
|
const content = entry.message?.content || [];
|
|
193
186
|
for (const block of Array.isArray(content) ? content : []) {
|
|
194
|
-
if (
|
|
187
|
+
if (block?.type !== 'tool_result') continue;
|
|
195
188
|
const resultText = Array.isArray(block.content)
|
|
196
189
|
? block.content
|
|
197
190
|
.filter((b) => b && b.type === 'text')
|
|
@@ -809,7 +802,7 @@ export function resolveAllowedHosts(optionValue) {
|
|
|
809
802
|
let running = false;
|
|
810
803
|
let currentPort = null;
|
|
811
804
|
let currentUrl = null;
|
|
812
|
-
let
|
|
805
|
+
let _activeServer = null;
|
|
813
806
|
const activeWatchers = [];
|
|
814
807
|
|
|
815
808
|
// broadcast() is imported from sse-manager.mjs
|
|
@@ -818,7 +811,7 @@ const activeWatchers = [];
|
|
|
818
811
|
* Opens a URL in the default browser, cross-platform.
|
|
819
812
|
*/
|
|
820
813
|
async function openUrl(url) {
|
|
821
|
-
const { exec } = await import('child_process');
|
|
814
|
+
const { exec } = await import('node:child_process');
|
|
822
815
|
const cmd =
|
|
823
816
|
process.platform === 'darwin'
|
|
824
817
|
? `open "${url}"`
|
|
@@ -873,6 +866,15 @@ function bindServer(server, port) {
|
|
|
873
866
|
const _slugPathCache = new Map();
|
|
874
867
|
const _MAX_SLUG_CACHE = 200;
|
|
875
868
|
|
|
869
|
+
// Inverse of resolveSlugToPath: absolute path -> ~/.claude/projects/<slug>
|
|
870
|
+
// dir name. Claude Code's slug replaces every path separator AND the
|
|
871
|
+
// Windows drive-letter colon with '-' (e.g. "C:\Users\x" -> "C--Users-x")
|
|
872
|
+
// — replacing only '/' leaves Windows paths (all-backslash) completely
|
|
873
|
+
// untouched, so every dir= lookup 404s and every project shows 0 sessions.
|
|
874
|
+
function pathToSlug(d) {
|
|
875
|
+
return String(d).replace(/[\\/:]/g, '-');
|
|
876
|
+
}
|
|
877
|
+
|
|
876
878
|
function resolveSlugToPath(slug, projDir) {
|
|
877
879
|
if (_slugPathCache.has(slug)) return _slugPathCache.get(slug);
|
|
878
880
|
const resolved = _resolveSlugToPathUncached(slug, projDir);
|
|
@@ -902,13 +904,13 @@ function _resolveSlugToPathUncached(slug, projDir) {
|
|
|
902
904
|
if (r1) return r1;
|
|
903
905
|
// Option B: combine with hyphen into current basename
|
|
904
906
|
if (current !== '/') {
|
|
905
|
-
const combined = path.join(path.dirname(current), path.basename(current)
|
|
907
|
+
const combined = path.join(path.dirname(current), `${path.basename(current)}-${parts[idx]}`);
|
|
906
908
|
const r2 = tryPaths(idx + 1, combined);
|
|
907
909
|
if (r2) return r2;
|
|
908
910
|
}
|
|
909
911
|
return null;
|
|
910
912
|
}
|
|
911
|
-
const fsResolved = parts.length ? tryPaths(1,
|
|
913
|
+
const fsResolved = parts.length ? tryPaths(1, `/${parts[0]}`) : null;
|
|
912
914
|
if (fsResolved) return fsResolved;
|
|
913
915
|
|
|
914
916
|
// 2. Try reading cwd from a session file
|
|
@@ -924,7 +926,16 @@ function _resolveSlugToPathUncached(slug, projDir) {
|
|
|
924
926
|
.find((l) => l.includes('"cwd"'));
|
|
925
927
|
if (line) {
|
|
926
928
|
const m = line.match(/"cwd"\s*:\s*"([^"]+)"/);
|
|
927
|
-
|
|
929
|
+
// m[1] is the raw JSON-escaped text between the quotes (e.g. a
|
|
930
|
+
// Windows path's backslashes still escaped as \\) — unescape it
|
|
931
|
+
// properly instead of returning the escaped literal.
|
|
932
|
+
if (m?.[1]) {
|
|
933
|
+
try {
|
|
934
|
+
return JSON.parse(`"${m[1]}"`);
|
|
935
|
+
} catch {
|
|
936
|
+
return m[1];
|
|
937
|
+
}
|
|
938
|
+
}
|
|
928
939
|
}
|
|
929
940
|
} catch {}
|
|
930
941
|
}
|
|
@@ -1113,7 +1124,7 @@ export async function startServer({
|
|
|
1113
1124
|
fs.mkdirSync(path.dirname(_badLog), { recursive: true });
|
|
1114
1125
|
fs.appendFileSync(
|
|
1115
1126
|
_badLog,
|
|
1116
|
-
JSON.stringify({ ts: Date.now(), type: event.type, body: body.slice(0, 256) })
|
|
1127
|
+
`${JSON.stringify({ ts: Date.now(), type: event.type, body: body.slice(0, 256) })}\n`,
|
|
1117
1128
|
);
|
|
1118
1129
|
} catch (_) {}
|
|
1119
1130
|
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
@@ -1159,7 +1170,7 @@ export async function startServer({
|
|
|
1159
1170
|
}
|
|
1160
1171
|
})(),
|
|
1161
1172
|
].filter(Boolean);
|
|
1162
|
-
if (!_systemPaths.includes(_norm) && !_systemPaths.some((p) => _norm.startsWith(p
|
|
1173
|
+
if (!_systemPaths.includes(_norm) && !_systemPaths.some((p) => _norm.startsWith(`${p}/`))) {
|
|
1163
1174
|
eventProject = _norm;
|
|
1164
1175
|
}
|
|
1165
1176
|
}
|
|
@@ -1257,7 +1268,7 @@ export async function startServer({
|
|
|
1257
1268
|
}
|
|
1258
1269
|
// Update durable runstate.json — survives server restarts
|
|
1259
1270
|
if (event.org) _updateRunState(event, root);
|
|
1260
|
-
appendToFile(path.join(dataDir, 'mastermind-events.jsonl'), JSON.stringify(event)
|
|
1271
|
+
appendToFile(path.join(dataDir, 'mastermind-events.jsonl'), `${JSON.stringify(event)}\n`).catch(
|
|
1261
1272
|
() => {},
|
|
1262
1273
|
);
|
|
1263
1274
|
// Persist to git-safe run file (survives branch switches + shared across worktrees)
|
|
@@ -1276,12 +1287,24 @@ export async function startServer({
|
|
|
1276
1287
|
const _monoDir = _getGitMonomindDir(root) || path.join(root, '.monomind');
|
|
1277
1288
|
const _runDir = path.join(_monoDir, 'orgs', _orn, 'runs');
|
|
1278
1289
|
fs.mkdirSync(_runDir, { recursive: true });
|
|
1279
|
-
await appendToFile(path.join(_runDir, `${_rid}.jsonl`), JSON.stringify(event)
|
|
1290
|
+
await appendToFile(path.join(_runDir, `${_rid}.jsonl`), `${JSON.stringify(event)}\n`);
|
|
1280
1291
|
_insertRunEvent(event, 'http');
|
|
1281
|
-
//
|
|
1282
|
-
|
|
1292
|
+
// Usage accumulation — persist per-role token/cost data to state.json (accumulated
|
|
1293
|
+
// across runs). Real producers emit two distinct shapes and both must be handled:
|
|
1294
|
+
// - 'agent:usage': flattened { role, tokens_in, tokens_out, cost_usd } (legacy/direct).
|
|
1295
|
+
// - 'org:usage': orgrt's actual forwarded shape (attachForwarder's translate(), the
|
|
1296
|
+
// default case for a raw OrgBus 'usage' event) — { from, data: { tokens, cost_usd } }.
|
|
1297
|
+
// orgrt never emits 'agent:usage' itself, so without this branch real v2 cost data
|
|
1298
|
+
// never reaches state.json even though the UI displays it as if it did.
|
|
1299
|
+
const _usageRole =
|
|
1300
|
+
event.type === 'agent:usage'
|
|
1301
|
+
? event.role
|
|
1302
|
+
: event.type === 'org:usage'
|
|
1303
|
+
? event.from
|
|
1304
|
+
: null;
|
|
1305
|
+
if (_usageRole) {
|
|
1283
1306
|
try {
|
|
1284
|
-
const _arole = String(
|
|
1307
|
+
const _arole = String(_usageRole).trim();
|
|
1285
1308
|
if (
|
|
1286
1309
|
_arole.length > 0 &&
|
|
1287
1310
|
_arole.length <= 64 &&
|
|
@@ -1294,11 +1317,22 @@ export async function startServer({
|
|
|
1294
1317
|
} catch (_e) {}
|
|
1295
1318
|
if (!_st.agents) _st.agents = {};
|
|
1296
1319
|
const _ex = _st.agents[_arole] || {};
|
|
1320
|
+
const _tokensIn = event.type === 'agent:usage' ? Number(event.tokens_in) || 0 : 0;
|
|
1321
|
+
const _tokensOut = event.type === 'agent:usage' ? Number(event.tokens_out) || 0 : 0;
|
|
1322
|
+
// 'org:usage' carries a single total (data.tokens), not an in/out split —
|
|
1323
|
+
// counted toward tokens_used so the budget total still reflects it honestly.
|
|
1324
|
+
const _tokensTotal =
|
|
1325
|
+
event.type === 'org:usage' ? Number(event.data?.tokens) || 0 : 0;
|
|
1326
|
+
const _costUsd =
|
|
1327
|
+
event.type === 'agent:usage'
|
|
1328
|
+
? Number(event.cost_usd) || 0
|
|
1329
|
+
: Number(event.data?.cost_usd) || 0;
|
|
1297
1330
|
_st.agents[_arole] = {
|
|
1298
1331
|
..._ex,
|
|
1299
|
-
tokens_in: (_ex.tokens_in || 0) +
|
|
1300
|
-
tokens_out: (_ex.tokens_out || 0) +
|
|
1301
|
-
|
|
1332
|
+
tokens_in: (_ex.tokens_in || 0) + _tokensIn,
|
|
1333
|
+
tokens_out: (_ex.tokens_out || 0) + _tokensOut,
|
|
1334
|
+
tokens_used: (_ex.tokens_used || 0) + _tokensIn + _tokensOut + _tokensTotal,
|
|
1335
|
+
total_cost_usd: (_ex.total_cost_usd || 0) + _costUsd,
|
|
1302
1336
|
lastUpdated: event.ts,
|
|
1303
1337
|
};
|
|
1304
1338
|
fs.writeFileSync(_stateFile, JSON.stringify(_st, null, 2));
|
|
@@ -1316,7 +1350,7 @@ export async function startServer({
|
|
|
1316
1350
|
};
|
|
1317
1351
|
await appendToFile(
|
|
1318
1352
|
path.join(_runDir, `${_rid}.convs.jsonl`),
|
|
1319
|
-
JSON.stringify(_conv)
|
|
1353
|
+
`${JSON.stringify(_conv)}\n`,
|
|
1320
1354
|
);
|
|
1321
1355
|
// Also write to org-level threads.jsonl so the dashboard Threads tab shows agent conversations
|
|
1322
1356
|
const _orgThreadsFile = path.join(root, '.monomind', 'orgs', `${_orn}-threads.jsonl`);
|
|
@@ -1330,7 +1364,7 @@ export async function startServer({
|
|
|
1330
1364
|
msg: event.msg,
|
|
1331
1365
|
subject: `Run ${_rid}`,
|
|
1332
1366
|
};
|
|
1333
|
-
appendToFile(_orgThreadsFile, JSON.stringify(_thread)
|
|
1367
|
+
appendToFile(_orgThreadsFile, `${JSON.stringify(_thread)}\n`).catch(() => {});
|
|
1334
1368
|
}
|
|
1335
1369
|
// Phase 4: Compact completed run to three-tier retention (Issue 7)
|
|
1336
1370
|
// hot (SQLite JSONL in .monomind) → warm (flat JSONL in archive/) → cold (gzip)
|
|
@@ -1413,7 +1447,7 @@ export async function startServer({
|
|
|
1413
1447
|
const sessDir = path.join(dataDir, 'sessions');
|
|
1414
1448
|
fs.mkdirSync(sessDir, { recursive: true });
|
|
1415
1449
|
// Append event to per-session JSONL (O(1), no read)
|
|
1416
|
-
appendToFile(path.join(sessDir, `${_sid}.jsonl`), JSON.stringify(event)
|
|
1450
|
+
appendToFile(path.join(sessDir, `${_sid}.jsonl`), `${JSON.stringify(event)}\n`).catch(
|
|
1417
1451
|
() => {},
|
|
1418
1452
|
);
|
|
1419
1453
|
// Update lightweight index (id, ts, prompt, status, org, startedAt, endedAt, domains only)
|
|
@@ -1874,7 +1908,7 @@ export async function startServer({
|
|
|
1874
1908
|
// --------------------------------------------------------- GET /api/git-user
|
|
1875
1909
|
if (req.method === 'GET' && url === '/api/git-user') {
|
|
1876
1910
|
try {
|
|
1877
|
-
const { execSync: gitExec } = await import('child_process');
|
|
1911
|
+
const { execSync: gitExec } = await import('node:child_process');
|
|
1878
1912
|
const cwd = projectDir || process.cwd();
|
|
1879
1913
|
const name = gitExec('git config user.name', { cwd, encoding: 'utf8' }).trim();
|
|
1880
1914
|
const email = gitExec('git config user.email', { cwd, encoding: 'utf8' }).trim();
|
|
@@ -1989,7 +2023,7 @@ export async function startServer({
|
|
|
1989
2023
|
const qs = new URL(req.url, 'http://localhost').searchParams;
|
|
1990
2024
|
const dir = qs.get('dir') || projectDir || process.cwd();
|
|
1991
2025
|
const d = path.resolve(dir || process.cwd());
|
|
1992
|
-
const slug = d
|
|
2026
|
+
const slug = pathToSlug(d);
|
|
1993
2027
|
const projectClaudeDir = path.join(os.homedir(), '.claude', 'projects', slug);
|
|
1994
2028
|
|
|
1995
2029
|
let sessionFiles = [];
|
|
@@ -2162,7 +2196,7 @@ export async function startServer({
|
|
|
2162
2196
|
}
|
|
2163
2197
|
try {
|
|
2164
2198
|
const d = path.resolve(dir || process.cwd());
|
|
2165
|
-
const slug = d
|
|
2199
|
+
const slug = pathToSlug(d);
|
|
2166
2200
|
const projectClaudeDir = path.join(os.homedir(), '.claude', 'projects', slug);
|
|
2167
2201
|
let sessionFiles = [];
|
|
2168
2202
|
try {
|
|
@@ -2236,7 +2270,7 @@ export async function startServer({
|
|
|
2236
2270
|
const dir = qs.get('dir') || projectDir || process.cwd();
|
|
2237
2271
|
const limit = Math.min(parseInt(qs.get('limit') || '50', 10), 200);
|
|
2238
2272
|
const d = path.resolve(dir || process.cwd());
|
|
2239
|
-
const slug = d
|
|
2273
|
+
const slug = pathToSlug(d);
|
|
2240
2274
|
const projectClaudeDir = path.join(os.homedir(), '.claude', 'projects', slug);
|
|
2241
2275
|
let sessionFiles = [];
|
|
2242
2276
|
try {
|
|
@@ -2327,7 +2361,7 @@ export async function startServer({
|
|
|
2327
2361
|
const qs = new URL(req.url, 'http://localhost').searchParams;
|
|
2328
2362
|
const dir = qs.get('dir') || projectDir || process.cwd();
|
|
2329
2363
|
const d = path.resolve(dir || process.cwd());
|
|
2330
|
-
const slug = d
|
|
2364
|
+
const slug = pathToSlug(d);
|
|
2331
2365
|
const projectClaudeDir = path.join(os.homedir(), '.claude', 'projects', slug);
|
|
2332
2366
|
let sessionFiles = [];
|
|
2333
2367
|
try {
|
|
@@ -2401,7 +2435,7 @@ export async function startServer({
|
|
|
2401
2435
|
const qs = new URL(req.url, 'http://localhost').searchParams;
|
|
2402
2436
|
const dir = qs.get('dir') || projectDir || process.cwd();
|
|
2403
2437
|
const d = path.resolve(dir || process.cwd());
|
|
2404
|
-
const slug = d
|
|
2438
|
+
const slug = pathToSlug(d);
|
|
2405
2439
|
const projectClaudeDir = path.join(os.homedir(), '.claude', 'projects', slug);
|
|
2406
2440
|
let sessionFiles = [];
|
|
2407
2441
|
try {
|
|
@@ -2553,10 +2587,7 @@ export async function startServer({
|
|
|
2553
2587
|
.map((slug) => {
|
|
2554
2588
|
const projDir = path.join(projectsBase, slug);
|
|
2555
2589
|
const projPath = resolveSlugToPath(slug, projDir);
|
|
2556
|
-
const name =
|
|
2557
|
-
projPath.split('/').filter(Boolean).pop() ||
|
|
2558
|
-
slug.split('-').filter(Boolean).pop() ||
|
|
2559
|
-
slug;
|
|
2590
|
+
const name = path.basename(projPath) || slug.split('-').filter(Boolean).pop() || slug;
|
|
2560
2591
|
let sessionCount = 0;
|
|
2561
2592
|
let lastActivity = 0;
|
|
2562
2593
|
let memoryCount = 0;
|
|
@@ -2849,7 +2880,7 @@ export async function startServer({
|
|
|
2849
2880
|
const adrDirs = [{ path: path.join(d, 'docs', 'adrs'), group: 'all' }];
|
|
2850
2881
|
|
|
2851
2882
|
const adrs = [];
|
|
2852
|
-
for (const { path: adrDir, group } of adrDirs) {
|
|
2883
|
+
for (const { path: adrDir, group: _group } of adrDirs) {
|
|
2853
2884
|
if (!fs.existsSync(adrDir)) continue;
|
|
2854
2885
|
// Skip AppleDouble junk ('._*') — exFAT volumes litter these and they aren't real ADRs
|
|
2855
2886
|
const files = fs
|
|
@@ -2887,7 +2918,7 @@ export async function startServer({
|
|
|
2887
2918
|
/##\s+(?:Context|Summary|Problem Statement)[^\n]*\n+([\s\S]{20,300})/i,
|
|
2888
2919
|
);
|
|
2889
2920
|
adrs.push({
|
|
2890
|
-
number: numMatch ?
|
|
2921
|
+
number: numMatch ? `ADR-${numMatch[1]}` : fname.replace('.md', ''),
|
|
2891
2922
|
title: titleMatch
|
|
2892
2923
|
? titleMatch[1].replace(/^ADR-[A-Z0-9-]+[:\s]+/i, '').trim()
|
|
2893
2924
|
: fname.replace('.md', ''),
|
|
@@ -2925,7 +2956,7 @@ export async function startServer({
|
|
|
2925
2956
|
const dir = qs.get('dir') || projectDir || process.cwd();
|
|
2926
2957
|
const d = path.resolve(dir || process.cwd());
|
|
2927
2958
|
const homeDir = os.homedir();
|
|
2928
|
-
const slug = d
|
|
2959
|
+
const slug = pathToSlug(d);
|
|
2929
2960
|
const memDir = path.join(homeDir, '.claude', 'projects', slug, 'memory');
|
|
2930
2961
|
|
|
2931
2962
|
let files = [];
|
|
@@ -2987,9 +3018,9 @@ export async function startServer({
|
|
|
2987
3018
|
backend = rows
|
|
2988
3019
|
.filter((e) => e && e.content != null && e.status !== 'deleted')
|
|
2989
3020
|
.map((e) => ({
|
|
2990
|
-
filename:
|
|
3021
|
+
filename: `backend:${e.key || e.id}`,
|
|
2991
3022
|
name: e.key || e.id || 'entry',
|
|
2992
|
-
description: e.namespace ?
|
|
3023
|
+
description: e.namespace ? `namespace: ${e.namespace}` : '',
|
|
2993
3024
|
type: e.type || 'semantic',
|
|
2994
3025
|
body: String(e.content),
|
|
2995
3026
|
source: 'backend',
|
|
@@ -3027,7 +3058,7 @@ export async function startServer({
|
|
|
3027
3058
|
try {
|
|
3028
3059
|
const qs = new URL(req.url, 'http://localhost').searchParams;
|
|
3029
3060
|
const d = path.resolve(qs.get('dir') || projectDir || process.cwd());
|
|
3030
|
-
const slug = d
|
|
3061
|
+
const slug = pathToSlug(d);
|
|
3031
3062
|
const memDir = path.join(os.homedir(), '.claude', 'projects', slug, 'memory');
|
|
3032
3063
|
const { filename, content } = JSON.parse(body);
|
|
3033
3064
|
if (
|
|
@@ -3075,7 +3106,7 @@ export async function startServer({
|
|
|
3075
3106
|
try {
|
|
3076
3107
|
const qs = new URL(req.url, 'http://localhost').searchParams;
|
|
3077
3108
|
const d = path.resolve(qs.get('dir') || projectDir || process.cwd());
|
|
3078
|
-
const slug = d
|
|
3109
|
+
const slug = pathToSlug(d);
|
|
3079
3110
|
const memDir = path.join(os.homedir(), '.claude', 'projects', slug, 'memory');
|
|
3080
3111
|
const { filename } = JSON.parse(body);
|
|
3081
3112
|
if (
|
|
@@ -3146,7 +3177,7 @@ export async function startServer({
|
|
|
3146
3177
|
try {
|
|
3147
3178
|
const qs = new URL(req.url, 'http://localhost').searchParams;
|
|
3148
3179
|
const d = path.resolve(qs.get('dir') || projectDir || process.cwd());
|
|
3149
|
-
const slug = d
|
|
3180
|
+
const slug = pathToSlug(d);
|
|
3150
3181
|
const memDir = path.join(os.homedir(), '.claude', 'projects', slug, 'memory');
|
|
3151
3182
|
|
|
3152
3183
|
let total = 0,
|
|
@@ -3247,7 +3278,7 @@ export async function startServer({
|
|
|
3247
3278
|
return;
|
|
3248
3279
|
}
|
|
3249
3280
|
const result = await bridge.bridgeListEntries({ namespace: ns, limit, offset });
|
|
3250
|
-
if (!result
|
|
3281
|
+
if (!result?.success) {
|
|
3251
3282
|
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
3252
3283
|
res.end(JSON.stringify({ error: result?.error || 'Failed to list entries' }));
|
|
3253
3284
|
return;
|
|
@@ -3284,7 +3315,7 @@ export async function startServer({
|
|
|
3284
3315
|
return;
|
|
3285
3316
|
}
|
|
3286
3317
|
const result = await bridge.bridgeSearchEntries({ query, namespace: ns, limit });
|
|
3287
|
-
if (!result
|
|
3318
|
+
if (!result?.success) {
|
|
3288
3319
|
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
3289
3320
|
res.end(JSON.stringify({ error: result?.error || 'Search failed' }));
|
|
3290
3321
|
return;
|
|
@@ -3339,7 +3370,7 @@ export async function startServer({
|
|
|
3339
3370
|
tags: Array.isArray(tags) ? tags : [],
|
|
3340
3371
|
upsert: true,
|
|
3341
3372
|
});
|
|
3342
|
-
if (!result
|
|
3373
|
+
if (!result?.success) {
|
|
3343
3374
|
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
3344
3375
|
res.end(JSON.stringify({ error: result?.error || 'Store failed' }));
|
|
3345
3376
|
return;
|
|
@@ -3386,7 +3417,7 @@ export async function startServer({
|
|
|
3386
3417
|
id,
|
|
3387
3418
|
namespace: namespace || 'default',
|
|
3388
3419
|
});
|
|
3389
|
-
if (!result
|
|
3420
|
+
if (!result?.success) {
|
|
3390
3421
|
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
3391
3422
|
res.end(JSON.stringify({ error: result?.error || 'Delete failed' }));
|
|
3392
3423
|
return;
|
|
@@ -3452,7 +3483,7 @@ export async function startServer({
|
|
|
3452
3483
|
// Try to extract ScheduleWakeup context from session JSONL
|
|
3453
3484
|
let loopEntry = null;
|
|
3454
3485
|
try {
|
|
3455
|
-
const escaped = cwd
|
|
3486
|
+
const escaped = pathToSlug(cwd);
|
|
3456
3487
|
const sessionFile = path.join(
|
|
3457
3488
|
os.homedir(),
|
|
3458
3489
|
'.claude',
|
|
@@ -3488,12 +3519,12 @@ export async function startServer({
|
|
|
3488
3519
|
const delaySeconds = lastWakeup.delaySeconds || 60;
|
|
3489
3520
|
// Parse rep info from reason e.g. "repeat run 2/10"
|
|
3490
3521
|
const repM = (reason || prompt).match(/(\d+)\s*\/\s*(\d+)/);
|
|
3491
|
-
const currentRep = repM ? parseInt(repM[1]) : 1;
|
|
3492
|
-
const maxReps = repM ? parseInt(repM[2]) : 0;
|
|
3522
|
+
const currentRep = repM ? parseInt(repM[1], 10) : 1;
|
|
3523
|
+
const maxReps = repM ? parseInt(repM[2], 10) : 0;
|
|
3493
3524
|
const repFlag = prompt.match(/--rep\s+(\d+)/);
|
|
3494
3525
|
const timesFlag = prompt.match(/--times\s+(\d+)/);
|
|
3495
|
-
const finalRep = repFlag ? parseInt(repFlag[1]) : currentRep;
|
|
3496
|
-
const finalMax = timesFlag ? parseInt(timesFlag[1]) : maxReps;
|
|
3526
|
+
const finalRep = repFlag ? parseInt(repFlag[1], 10) : currentRep;
|
|
3527
|
+
const finalMax = timesFlag ? parseInt(timesFlag[1], 10) : maxReps;
|
|
3497
3528
|
const isTillendPrompt = /--tillend/i.test(prompt);
|
|
3498
3529
|
const type = isTillendPrompt
|
|
3499
3530
|
? 'tillend'
|
|
@@ -3681,7 +3712,7 @@ export async function startServer({
|
|
|
3681
3712
|
// match against every filename when sessionId is a very long string.
|
|
3682
3713
|
const _rawSessId = qs.get('id') || '';
|
|
3683
3714
|
const sessionId = _rawSessId.slice(0, 256);
|
|
3684
|
-
const slug = d
|
|
3715
|
+
const slug = pathToSlug(d);
|
|
3685
3716
|
const projectClaudeDir = path.join(os.homedir(), '.claude', 'projects', slug);
|
|
3686
3717
|
try {
|
|
3687
3718
|
const files = fs
|
|
@@ -3753,7 +3784,7 @@ export async function startServer({
|
|
|
3753
3784
|
if (req.method === 'GET' && url.startsWith('/api/events-stream')) {
|
|
3754
3785
|
const qs = new URL(req.url, 'http://localhost').searchParams;
|
|
3755
3786
|
const d = path.resolve(qs.get('dir') || projectDir || process.cwd());
|
|
3756
|
-
const slug = d
|
|
3787
|
+
const slug = pathToSlug(d);
|
|
3757
3788
|
const projectClaudeDir = path.join(os.homedir(), '.claude', 'projects', slug);
|
|
3758
3789
|
res.writeHead(200, {
|
|
3759
3790
|
'Content-Type': 'text/event-stream',
|
|
@@ -3897,7 +3928,7 @@ export async function startServer({
|
|
|
3897
3928
|
entries[idx] = { ...entries[idx], text };
|
|
3898
3929
|
fs.writeFileSync(
|
|
3899
3930
|
chunksFile,
|
|
3900
|
-
entries.map((e) => JSON.stringify(e)).join('\n')
|
|
3931
|
+
`${entries.map((e) => JSON.stringify(e)).join('\n')}\n`,
|
|
3901
3932
|
'utf8',
|
|
3902
3933
|
);
|
|
3903
3934
|
res.writeHead(200, {
|
|
@@ -4015,7 +4046,7 @@ export async function startServer({
|
|
|
4015
4046
|
const { countEdges } = await import(
|
|
4016
4047
|
new URL('../../../../monograph/dist/src/storage/edge-store.js', import.meta.url).href
|
|
4017
4048
|
);
|
|
4018
|
-
const
|
|
4049
|
+
const _getShortestPath = (db, fromId, toId, maxDepth = 6) => {
|
|
4019
4050
|
if (fromId === toId) return [fromId];
|
|
4020
4051
|
const visited = new Set([fromId]);
|
|
4021
4052
|
let frontier = [[fromId]];
|
|
@@ -4124,7 +4155,7 @@ export async function startServer({
|
|
|
4124
4155
|
);
|
|
4125
4156
|
}
|
|
4126
4157
|
} else if (tool === 'monograph_detect_changes') {
|
|
4127
|
-
const { execSync } = await import('child_process');
|
|
4158
|
+
const { execSync } = await import('node:child_process');
|
|
4128
4159
|
let changed = '';
|
|
4129
4160
|
try {
|
|
4130
4161
|
changed = execSync('git diff --name-only HEAD', { cwd: d2, encoding: 'utf-8' });
|
|
@@ -4418,7 +4449,11 @@ export async function startServer({
|
|
|
4418
4449
|
),
|
|
4419
4450
|
).toFixed(0);
|
|
4420
4451
|
const status =
|
|
4421
|
-
parseInt(score) >= 70
|
|
4452
|
+
parseInt(score, 10) >= 70
|
|
4453
|
+
? '✓ OK'
|
|
4454
|
+
: parseInt(score, 10) >= 40
|
|
4455
|
+
? '⚠ WARNING'
|
|
4456
|
+
: '✗ CRITICAL';
|
|
4422
4457
|
ok(
|
|
4423
4458
|
`Vital Signs — ${new Date().toISOString()}\n${'─'.repeat(50)}\n Health Score: ${score}/100 ${status}\n Nodes: ${n}\n Edges: ${e}\n Density: ${density}\n Dead symbols: ${dead} (${deadRatio}%)\n Hub nodes: ${hubs} nodes with >20 edges`,
|
|
4424
4459
|
);
|
|
@@ -4469,7 +4504,7 @@ export async function startServer({
|
|
|
4469
4504
|
0,
|
|
4470
4505
|
100 - (r.fan_out / maxOut) * 60 - (r.fan_in > 10 ? 20 : 0),
|
|
4471
4506
|
).toFixed(0);
|
|
4472
|
-
return ` ${parseInt(mi) >= 70 ? '✓' : parseInt(mi) >= 40 ? '⚠' : '✗'} MI:${mi.padStart(3)} out:${String(r.fan_out).padStart(4)} in:${String(r.fan_in).padStart(4)} ${r.name}`;
|
|
4507
|
+
return ` ${parseInt(mi, 10) >= 70 ? '✓' : parseInt(mi, 10) >= 40 ? '⚠' : '✗'} MI:${mi.padStart(3)} out:${String(r.fan_out).padStart(4)} in:${String(r.fan_in).padStart(4)} ${r.name}`;
|
|
4473
4508
|
});
|
|
4474
4509
|
ok(
|
|
4475
4510
|
`Maintainability Index (estimated from fan-out/fan-in):\n${'─'.repeat(60)}\n${lines.join('\n')}`,
|
|
@@ -4490,7 +4525,7 @@ export async function startServer({
|
|
|
4490
4525
|
? 'CRAP Score proxy (degree² — lower is better)'
|
|
4491
4526
|
: 'Complexity by Out-Degree';
|
|
4492
4527
|
ok(
|
|
4493
|
-
`${header}:\n${'─'.repeat(50)}\n${rows.map((r) => ` ${r.name} (${r.label}) ${isCrap ? 'CRAP' : 'complexity'}: ${isCrap ?
|
|
4528
|
+
`${header}:\n${'─'.repeat(50)}\n${rows.map((r) => ` ${r.name} (${r.label}) ${isCrap ? 'CRAP' : 'complexity'}: ${isCrap ? r.out_deg ** 2 : r.out_deg}\n ${r.file_path || '?'}`).join('\n')}`,
|
|
4494
4529
|
);
|
|
4495
4530
|
}
|
|
4496
4531
|
} else if (tool === 'monograph_risk_profile') {
|
|
@@ -4527,7 +4562,7 @@ export async function startServer({
|
|
|
4527
4562
|
} else if (tool === 'monograph_author_analytics') {
|
|
4528
4563
|
// Clamp to a safe integer — this value is interpolated into a shell command below.
|
|
4529
4564
|
const limit = Math.min(Math.max(parseInt(input.limit, 10) || 20, 1), 100);
|
|
4530
|
-
const { execSync: execS } = await import('child_process');
|
|
4565
|
+
const { execSync: execS } = await import('node:child_process');
|
|
4531
4566
|
try {
|
|
4532
4567
|
const log = execS(
|
|
4533
4568
|
`git log --format="%ae" --no-merges -- . 2>/dev/null | sort | uniq -c | sort -rn | head -${limit}`,
|
|
@@ -4608,7 +4643,7 @@ export async function startServer({
|
|
|
4608
4643
|
);
|
|
4609
4644
|
} else if (tool === 'monograph_circular_deps') {
|
|
4610
4645
|
// Find import cycles using iterative DFS
|
|
4611
|
-
const limit = Math.min(parseInt(input.limit || '10') || 10, 20);
|
|
4646
|
+
const limit = Math.min(parseInt(input.limit || '10', 10) || 10, 20);
|
|
4612
4647
|
const importEdges = db2
|
|
4613
4648
|
.prepare(
|
|
4614
4649
|
`SELECT source_id, target_id FROM edges WHERE relation IN ('IMPORTS','REQUIRES','USES','DEPENDS_ON') LIMIT 50000`,
|
|
@@ -4650,7 +4685,7 @@ export async function startServer({
|
|
|
4650
4685
|
.join('\n')}`,
|
|
4651
4686
|
);
|
|
4652
4687
|
} else if (tool === 'monograph_largest_files') {
|
|
4653
|
-
const limit2 = Math.min(parseInt(input.limit || '25') || 25, 50);
|
|
4688
|
+
const limit2 = Math.min(parseInt(input.limit || '25', 10) || 25, 50);
|
|
4654
4689
|
const rows = db2
|
|
4655
4690
|
.prepare(
|
|
4656
4691
|
`SELECT file_path, MAX(end_line) as lines, COUNT(*) as symbols FROM nodes WHERE file_path IS NOT NULL AND end_line IS NOT NULL AND end_line > 0 GROUP BY file_path ORDER BY lines DESC LIMIT ${limit2}`,
|
|
@@ -4666,7 +4701,7 @@ export async function startServer({
|
|
|
4666
4701
|
);
|
|
4667
4702
|
} else if (tool === 'monograph_coupling_balance') {
|
|
4668
4703
|
// Fan-out (what this file uses) vs Fan-in (what uses this file)
|
|
4669
|
-
const limit3 = Math.min(parseInt(input.limit || '20') || 20, 40);
|
|
4704
|
+
const limit3 = Math.min(parseInt(input.limit || '20', 10) || 20, 40);
|
|
4670
4705
|
const fanOut = db2
|
|
4671
4706
|
.prepare(`SELECT source_id, COUNT(*) as c FROM edges GROUP BY source_id`)
|
|
4672
4707
|
.all();
|
|
@@ -4753,7 +4788,7 @@ export async function startServer({
|
|
|
4753
4788
|
} else if (tool === 'monograph_instability') {
|
|
4754
4789
|
// Robert Martin's Instability = Ce / (Ca + Ce)
|
|
4755
4790
|
// Ca = afferent coupling (in-degree), Ce = efferent coupling (out-degree)
|
|
4756
|
-
const
|
|
4791
|
+
const _limit4 = Math.min(parseInt(input.limit || '25', 10) || 25, 50);
|
|
4757
4792
|
const outRows = db2
|
|
4758
4793
|
.prepare(`SELECT source_id, COUNT(*) as c FROM edges GROUP BY source_id`)
|
|
4759
4794
|
.all();
|
|
@@ -4800,9 +4835,9 @@ export async function startServer({
|
|
|
4800
4835
|
);
|
|
4801
4836
|
} else if (tool === 'monograph_churn_hotspots') {
|
|
4802
4837
|
// Combines git churn frequency with structural complexity (out-degree)
|
|
4803
|
-
const limit5 = Math.min(parseInt(input.limit || '15') || 15, 30);
|
|
4804
|
-
const { execSync: execS2 } = await import('child_process');
|
|
4805
|
-
|
|
4838
|
+
const limit5 = Math.min(parseInt(input.limit || '15', 10) || 15, 30);
|
|
4839
|
+
const { execSync: execS2 } = await import('node:child_process');
|
|
4840
|
+
const churnMap = {};
|
|
4806
4841
|
try {
|
|
4807
4842
|
// Whitelist the --since value — it is interpolated into a shell command below.
|
|
4808
4843
|
const sinceRaw = String(input.since || '');
|
|
@@ -4815,7 +4850,7 @@ export async function startServer({
|
|
|
4815
4850
|
);
|
|
4816
4851
|
for (const line of log2.trim().split('\n')) {
|
|
4817
4852
|
const m = line.trim().match(/^(\d+)\s+(.+)$/);
|
|
4818
|
-
if (m) churnMap[m[2]] = parseInt(m[1]);
|
|
4853
|
+
if (m) churnMap[m[2]] = parseInt(m[1], 10);
|
|
4819
4854
|
}
|
|
4820
4855
|
} catch {}
|
|
4821
4856
|
if (!Object.keys(churnMap).length) {
|
|
@@ -4887,7 +4922,7 @@ export async function startServer({
|
|
|
4887
4922
|
for (const entry of entries) {
|
|
4888
4923
|
if (entry.name.startsWith('.') || SKIP_DIRS.has(entry.name)) continue;
|
|
4889
4924
|
const childAbs = path.join(abs, entry.name);
|
|
4890
|
-
const childRel = rel ? rel
|
|
4925
|
+
const childRel = rel ? `${rel}/${entry.name}` : entry.name;
|
|
4891
4926
|
if (entry.isDirectory()) {
|
|
4892
4927
|
walk(childAbs, childRel);
|
|
4893
4928
|
} else if (entry.isFile() && DOC_EXT.has(path.extname(entry.name))) {
|
|
@@ -5162,7 +5197,7 @@ export async function startServer({
|
|
|
5162
5197
|
periodLabel: period,
|
|
5163
5198
|
}),
|
|
5164
5199
|
);
|
|
5165
|
-
} catch (
|
|
5200
|
+
} catch (_e) {
|
|
5166
5201
|
fallback();
|
|
5167
5202
|
}
|
|
5168
5203
|
} catch (err) {
|
|
@@ -5326,7 +5361,11 @@ export async function startServer({
|
|
|
5326
5361
|
// that as not-active too, not just a literal status !== 'running'.
|
|
5327
5362
|
let _gfActive = _gfRt.status === 'running';
|
|
5328
5363
|
if (_gfActive && typeof _gfRt.pid === 'number') {
|
|
5329
|
-
try {
|
|
5364
|
+
try {
|
|
5365
|
+
process.kill(_gfRt.pid, 0);
|
|
5366
|
+
} catch {
|
|
5367
|
+
_gfActive = false;
|
|
5368
|
+
}
|
|
5330
5369
|
}
|
|
5331
5370
|
if (_gfActive) activeOrgRuns.set(_gfOrg, _gfId);
|
|
5332
5371
|
} catch (_) {}
|
|
@@ -5390,9 +5429,7 @@ export async function startServer({
|
|
|
5390
5429
|
});
|
|
5391
5430
|
}
|
|
5392
5431
|
fs.writeFileSync(_migIndexFile, JSON.stringify(_migIndex));
|
|
5393
|
-
console.log(
|
|
5394
|
-
'[server] migrated ' + _migIndex.length + ' sessions to per-session JSONL format',
|
|
5395
|
-
);
|
|
5432
|
+
console.log(`[server] migrated ${_migIndex.length} sessions to per-session JSONL format`);
|
|
5396
5433
|
} catch (_me) {
|
|
5397
5434
|
console.warn('[server] session migration failed:', _me.message);
|
|
5398
5435
|
}
|
|
@@ -5401,9 +5438,9 @@ export async function startServer({
|
|
|
5401
5438
|
|
|
5402
5439
|
// ---------------------------------------------------------------- Watchers
|
|
5403
5440
|
let debounceTimer = null;
|
|
5404
|
-
|
|
5441
|
+
const pendingSections = new Set();
|
|
5405
5442
|
|
|
5406
|
-
function scheduleRefresh(
|
|
5443
|
+
function scheduleRefresh(_event, filename) {
|
|
5407
5444
|
const sections = pathToSections(filename);
|
|
5408
5445
|
if (sections) sections.forEach((s) => pendingSections.add(s));
|
|
5409
5446
|
if (debounceTimer) clearTimeout(debounceTimer);
|
|
@@ -5460,7 +5497,7 @@ export async function startServer({
|
|
|
5460
5497
|
} catch {
|
|
5461
5498
|
continue;
|
|
5462
5499
|
}
|
|
5463
|
-
if (!ev
|
|
5500
|
+
if (!ev?.type) continue;
|
|
5464
5501
|
// Index in SQLite (watcher path — bash-written lifecycle events)
|
|
5465
5502
|
if (!ev.org) ev.org = orgName;
|
|
5466
5503
|
if (!ev.runId) ev.runId = runId;
|
|
@@ -5577,8 +5614,7 @@ export async function startServer({
|
|
|
5577
5614
|
{ recursive: true, persistent: false },
|
|
5578
5615
|
(_evType, _fname) => {
|
|
5579
5616
|
if (
|
|
5580
|
-
!_fname ||
|
|
5581
|
-
!_fname.endsWith('.jsonl') ||
|
|
5617
|
+
!_fname?.endsWith('.jsonl') ||
|
|
5582
5618
|
_fname.endsWith('.warm.jsonl') ||
|
|
5583
5619
|
_fname.endsWith('.convs.jsonl')
|
|
5584
5620
|
)
|
|
@@ -5750,7 +5786,7 @@ export async function startServer({
|
|
|
5750
5786
|
try {
|
|
5751
5787
|
const _ppData = JSON.parse(fs.readFileSync(_ppPath, 'utf8'));
|
|
5752
5788
|
const _ppid = parseInt(_ppf.replace('.json', ''), 10);
|
|
5753
|
-
if (!_ppid || isNaN(_ppid)) return;
|
|
5789
|
+
if (!_ppid || Number.isNaN(_ppid)) return;
|
|
5754
5790
|
// Check if the ppid process is still alive (signal 0 = probe, no kill)
|
|
5755
5791
|
try {
|
|
5756
5792
|
process.kill(_ppid, 0);
|
|
@@ -5798,7 +5834,7 @@ export async function startServer({
|
|
|
5798
5834
|
running = true;
|
|
5799
5835
|
currentPort = boundPort;
|
|
5800
5836
|
currentUrl = url;
|
|
5801
|
-
|
|
5837
|
+
_activeServer = server;
|
|
5802
5838
|
|
|
5803
5839
|
// --------------------------------------------------------- Graceful shutdown
|
|
5804
5840
|
function shutdown() {
|
|
@@ -5828,7 +5864,7 @@ export async function startServer({
|
|
|
5828
5864
|
running = false;
|
|
5829
5865
|
currentPort = null;
|
|
5830
5866
|
currentUrl = null;
|
|
5831
|
-
|
|
5867
|
+
_activeServer = null;
|
|
5832
5868
|
process.exit(0);
|
|
5833
5869
|
});
|
|
5834
5870
|
});
|