monomind 1.8.0 → 1.9.0
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 +153 -70
- 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
|
@@ -4,17 +4,19 @@
|
|
|
4
4
|
* V2 Compatibility - Neural network and ML tools
|
|
5
5
|
*
|
|
6
6
|
* ✅ HYBRID Implementation:
|
|
7
|
-
* - Uses @
|
|
7
|
+
* - Uses @monomind/embeddings for REAL ML embeddings when available
|
|
8
8
|
* - Falls back to deterministic hash-based embeddings when ML model not installed
|
|
9
9
|
* - Pattern storage and search with cosine similarity (real math in all tiers)
|
|
10
10
|
* - Training stores patterns as searchable embeddings (not simulated)
|
|
11
11
|
*
|
|
12
|
-
* Note: For production neural features, use @
|
|
12
|
+
* Note: For production neural features, use @monomind/neural module
|
|
13
13
|
*/
|
|
14
14
|
import { getProjectCwd } from './types.js';
|
|
15
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
15
|
+
import { existsSync, readFileSync, writeFileSync, renameSync, mkdirSync, statSync } from 'node:fs';
|
|
16
16
|
import { join } from 'node:path';
|
|
17
|
-
|
|
17
|
+
const MAX_NEURAL_STORE_BYTES = 50 * 1024 * 1024; // 50 MB
|
|
18
|
+
const NEURAL_RESERVED_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
19
|
+
// Try to import real embeddings — prefer agentic-flow v1 ReasoningBank, then @monomind/embeddings
|
|
18
20
|
let realEmbeddings = null;
|
|
19
21
|
let embeddingServiceName = 'none';
|
|
20
22
|
try {
|
|
@@ -24,9 +26,9 @@ try {
|
|
|
24
26
|
realEmbeddings = { embed: (text) => rb.computeEmbedding(text) };
|
|
25
27
|
embeddingServiceName = 'agentic-flow/reasoningbank';
|
|
26
28
|
}
|
|
27
|
-
// Tier 2: @
|
|
29
|
+
// Tier 2: @monomind/embeddings
|
|
28
30
|
if (!realEmbeddings) {
|
|
29
|
-
const embeddingsModule = await import('@
|
|
31
|
+
const embeddingsModule = await import('@monomind/embeddings').catch(() => null);
|
|
30
32
|
if (embeddingsModule?.createEmbeddingService) {
|
|
31
33
|
try {
|
|
32
34
|
const service = embeddingsModule.createEmbeddingService({ provider: 'agentic-flow' });
|
|
@@ -75,7 +77,26 @@ function loadNeuralStore() {
|
|
|
75
77
|
try {
|
|
76
78
|
const path = getNeuralPath();
|
|
77
79
|
if (existsSync(path)) {
|
|
78
|
-
|
|
80
|
+
if (statSync(path).size > MAX_NEURAL_STORE_BYTES) {
|
|
81
|
+
return { models: {}, patterns: {}, version: '3.0.0' };
|
|
82
|
+
}
|
|
83
|
+
const raw = JSON.parse(readFileSync(path, 'utf-8'));
|
|
84
|
+
// Strip proto-polluting keys from top-level containers
|
|
85
|
+
const models = {};
|
|
86
|
+
for (const [k, v] of Object.entries(raw.models ?? {})) {
|
|
87
|
+
if (!NEURAL_RESERVED_KEYS.has(k))
|
|
88
|
+
models[k] = v;
|
|
89
|
+
}
|
|
90
|
+
const patterns = {};
|
|
91
|
+
for (const [k, v] of Object.entries(raw.patterns ?? {})) {
|
|
92
|
+
if (!NEURAL_RESERVED_KEYS.has(k))
|
|
93
|
+
patterns[k] = v;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
models: models,
|
|
97
|
+
patterns: patterns,
|
|
98
|
+
version: typeof raw.version === 'string' ? raw.version : '3.0.0',
|
|
99
|
+
};
|
|
79
100
|
}
|
|
80
101
|
}
|
|
81
102
|
catch {
|
|
@@ -85,7 +106,10 @@ function loadNeuralStore() {
|
|
|
85
106
|
}
|
|
86
107
|
function saveNeuralStore(store) {
|
|
87
108
|
ensureNeuralDir();
|
|
88
|
-
|
|
109
|
+
const dest = getNeuralPath();
|
|
110
|
+
const tmp = `${dest}.${process.pid}.${Date.now()}.tmp`;
|
|
111
|
+
writeFileSync(tmp, JSON.stringify(store, null, 2), 'utf-8');
|
|
112
|
+
renameSync(tmp, dest);
|
|
89
113
|
}
|
|
90
114
|
// Generate embedding - uses real ML embeddings if available, falls back to deterministic hash
|
|
91
115
|
async function generateEmbedding(text, dims = 384) {
|
|
@@ -118,8 +142,9 @@ async function generateEmbedding(text, dims = 384) {
|
|
|
118
142
|
}
|
|
119
143
|
// Cosine similarity for pattern search
|
|
120
144
|
function cosineSimilarity(a, b) {
|
|
121
|
-
if (a.length !== b.length)
|
|
122
|
-
|
|
145
|
+
if (a.length !== b.length) {
|
|
146
|
+
throw new Error(`Embedding dimension mismatch: ${a.length} vs ${b.length}. Ensure all embeddings use the same provider and dims.`);
|
|
147
|
+
}
|
|
123
148
|
let dotProduct = 0;
|
|
124
149
|
let normA = 0;
|
|
125
150
|
let normB = 0;
|
|
@@ -149,6 +174,18 @@ export const neuralTools = [
|
|
|
149
174
|
handler: async (input) => {
|
|
150
175
|
const store = loadNeuralStore();
|
|
151
176
|
const modelId = input.modelId || `model-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
177
|
+
const RESERVED_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
178
|
+
if (RESERVED_KEYS.has(modelId)) {
|
|
179
|
+
return { success: false, error: 'Invalid modelId' };
|
|
180
|
+
}
|
|
181
|
+
const MAX_PATTERNS = 10000;
|
|
182
|
+
if (Object.keys(store.patterns ?? {}).length >= MAX_PATTERNS) {
|
|
183
|
+
return { success: false, error: `Pattern store full (max ${MAX_PATTERNS}). Run neural_compress first.` };
|
|
184
|
+
}
|
|
185
|
+
const MAX_MODELS = 100;
|
|
186
|
+
if (Object.keys(store.models ?? {}).length >= MAX_MODELS) {
|
|
187
|
+
return { success: false, error: `Model store full (max ${MAX_MODELS}). Delete old models first.` };
|
|
188
|
+
}
|
|
152
189
|
const modelType = input.modelType;
|
|
153
190
|
const epochs = input.epochs || 10;
|
|
154
191
|
const model = {
|
|
@@ -165,20 +202,30 @@ export const neuralTools = [
|
|
|
165
202
|
};
|
|
166
203
|
store.models[modelId] = model;
|
|
167
204
|
saveNeuralStore(store);
|
|
168
|
-
// Real training: embed training data and store as searchable patterns
|
|
205
|
+
// Real training: embed training data and store as searchable patterns.
|
|
206
|
+
// Cap input array length and re-check the pattern cap inside the loop —
|
|
207
|
+
// the pre-loop check at line 199 alone allowed an attacker to bypass
|
|
208
|
+
// MAX_PATTERNS by passing a 100k-entry array.
|
|
209
|
+
const MAX_TRAINING_ENTRIES = 1000;
|
|
210
|
+
const MAX_TEXT_LENGTH = 64 * 1024;
|
|
169
211
|
const trainingData = input.data;
|
|
170
212
|
let patternsStored = 0;
|
|
171
213
|
if (trainingData) {
|
|
172
|
-
const
|
|
214
|
+
const rawEntries = Array.isArray(trainingData) ? trainingData : [trainingData];
|
|
215
|
+
const entries = rawEntries.slice(0, MAX_TRAINING_ENTRIES);
|
|
173
216
|
for (let i = 0; i < entries.length; i++) {
|
|
217
|
+
if (Object.keys(store.patterns ?? {}).length >= MAX_PATTERNS)
|
|
218
|
+
break;
|
|
174
219
|
const entry = entries[i];
|
|
175
|
-
|
|
220
|
+
let text = typeof entry === 'string' ? entry
|
|
176
221
|
: entry?.text
|
|
177
222
|
|| entry?.content
|
|
178
223
|
|| entry?.label
|
|
179
224
|
|| JSON.stringify(entry);
|
|
180
|
-
if (!text)
|
|
225
|
+
if (!text || typeof text !== 'string')
|
|
181
226
|
continue;
|
|
227
|
+
if (text.length > MAX_TEXT_LENGTH)
|
|
228
|
+
text = text.slice(0, MAX_TEXT_LENGTH);
|
|
182
229
|
const embedding = await generateEmbedding(text, 384);
|
|
183
230
|
const patternId = `${modelId}-train-${i}`;
|
|
184
231
|
store.patterns[patternId] = {
|
|
@@ -227,10 +274,16 @@ export const neuralTools = [
|
|
|
227
274
|
handler: async (input) => {
|
|
228
275
|
const store = loadNeuralStore();
|
|
229
276
|
const modelId = input.modelId;
|
|
230
|
-
const inputText = input.input;
|
|
231
|
-
const topK = input.topK || 3;
|
|
277
|
+
const inputText = typeof input.input === 'string' ? input.input.slice(0, 16 * 1024) : '';
|
|
278
|
+
const topK = Math.max(1, Math.min(input.topK || 3, 50));
|
|
279
|
+
const RESERVED_KEYS_PRED = new Set(['__proto__', 'constructor', 'prototype']);
|
|
280
|
+
if (modelId && (RESERVED_KEYS_PRED.has(modelId) || typeof modelId !== 'string')) {
|
|
281
|
+
return { success: false, error: 'Invalid modelId' };
|
|
282
|
+
}
|
|
232
283
|
// Find model or use default
|
|
233
|
-
const model = modelId
|
|
284
|
+
const model = modelId
|
|
285
|
+
? (Object.hasOwn(store.models, modelId) ? store.models[modelId] : undefined)
|
|
286
|
+
: Object.values(store.models).find(m => m.status === 'ready');
|
|
234
287
|
if (model && model.status !== 'ready') {
|
|
235
288
|
return { success: false, error: 'Model not ready' };
|
|
236
289
|
}
|
|
@@ -238,19 +291,25 @@ export const neuralTools = [
|
|
|
238
291
|
const startTime = performance.now();
|
|
239
292
|
const embedding = await generateEmbedding(inputText, 384);
|
|
240
293
|
const latency = Math.round(performance.now() - startTime);
|
|
241
|
-
// Search stored patterns via real cosine similarity
|
|
242
|
-
|
|
294
|
+
// Search stored patterns via real cosine similarity.
|
|
295
|
+
// Cap at MAX_PATTERNS to prevent O(N) blowup if the store grew unbounded
|
|
296
|
+
// through some other path. Skip patterns below an early-exit threshold
|
|
297
|
+
// before sorting to avoid O(N log N) on irrelevant rows.
|
|
298
|
+
const MAX_SCAN = 10000;
|
|
299
|
+
const EARLY_EXIT_THRESHOLD = 0.1;
|
|
300
|
+
const storedPatterns = Object.values(store.patterns).slice(0, MAX_SCAN);
|
|
243
301
|
let predictions;
|
|
244
302
|
if (storedPatterns.length > 0) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
.
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
.
|
|
253
|
-
|
|
303
|
+
const scored = [];
|
|
304
|
+
for (const p of storedPatterns) {
|
|
305
|
+
if (!Array.isArray(p.embedding) || p.embedding.length !== embedding.length)
|
|
306
|
+
continue;
|
|
307
|
+
const conf = Math.max(0, cosineSimilarity(embedding, p.embedding));
|
|
308
|
+
if (conf < EARLY_EXIT_THRESHOLD)
|
|
309
|
+
continue;
|
|
310
|
+
scored.push({ label: p.name || p.type || p.id, confidence: conf, patternId: p.id });
|
|
311
|
+
}
|
|
312
|
+
predictions = scored.sort((a, b) => b.confidence - a.confidence).slice(0, topK);
|
|
254
313
|
}
|
|
255
314
|
else {
|
|
256
315
|
// No patterns stored — no predictions possible
|
|
@@ -303,13 +362,21 @@ export const neuralTools = [
|
|
|
303
362
|
};
|
|
304
363
|
}
|
|
305
364
|
if (action === 'get') {
|
|
306
|
-
const
|
|
365
|
+
const patternId = input.patternId;
|
|
366
|
+
if (!patternId || NEURAL_RESERVED_KEYS.has(patternId)) {
|
|
367
|
+
return { success: false, error: 'Invalid patternId' };
|
|
368
|
+
}
|
|
369
|
+
const pattern = Object.hasOwn(store.patterns, patternId) ? store.patterns[patternId] : undefined;
|
|
307
370
|
if (!pattern) {
|
|
308
371
|
return { success: false, error: 'Pattern not found' };
|
|
309
372
|
}
|
|
310
373
|
return { success: true, pattern };
|
|
311
374
|
}
|
|
312
375
|
if (action === 'store') {
|
|
376
|
+
const MAX_PATTERNS = 10000;
|
|
377
|
+
if (Object.keys(store.patterns ?? {}).length >= MAX_PATTERNS) {
|
|
378
|
+
return { success: false, error: `Pattern store full (max ${MAX_PATTERNS}). Run neural_compress first.` };
|
|
379
|
+
}
|
|
313
380
|
const patternId = `pattern-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
314
381
|
const patternName = input.name || 'Unnamed pattern';
|
|
315
382
|
// Generate embedding from pattern name/content
|
|
@@ -347,6 +414,13 @@ export const neuralTools = [
|
|
|
347
414
|
}))
|
|
348
415
|
.sort((a, b) => b.similarity - a.similarity)
|
|
349
416
|
.slice(0, 10);
|
|
417
|
+
// Increment usageCount so prune can track retrieval frequency
|
|
418
|
+
for (const r of results) {
|
|
419
|
+
if (Object.hasOwn(store.patterns, r.id)) {
|
|
420
|
+
store.patterns[r.id].usageCount = (store.patterns[r.id].usageCount || 0) + 1;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
saveNeuralStore(store);
|
|
350
424
|
return {
|
|
351
425
|
_realSimilarity: true,
|
|
352
426
|
_realEmbedding: !!realEmbeddings,
|
|
@@ -362,7 +436,10 @@ export const neuralTools = [
|
|
|
362
436
|
}
|
|
363
437
|
if (action === 'delete') {
|
|
364
438
|
const patternId = input.patternId;
|
|
365
|
-
if (!
|
|
439
|
+
if (!patternId || NEURAL_RESERVED_KEYS.has(patternId)) {
|
|
440
|
+
return { success: false, error: 'Invalid patternId' };
|
|
441
|
+
}
|
|
442
|
+
if (!Object.hasOwn(store.patterns, patternId)) {
|
|
366
443
|
return { success: false, error: 'Pattern not found' };
|
|
367
444
|
}
|
|
368
445
|
delete store.patterns[patternId];
|
|
@@ -415,9 +492,7 @@ export const neuralTools = [
|
|
|
415
492
|
return {
|
|
416
493
|
success: true, _real: true, method,
|
|
417
494
|
patternsCompressed: totalCompressed,
|
|
418
|
-
|
|
419
|
-
beforeBytes: beforeSize,
|
|
420
|
-
afterBytes: Math.round(beforeSize / 3.92),
|
|
495
|
+
note: 'Quantization metadata stored; original embeddings retained for search accuracy.',
|
|
421
496
|
};
|
|
422
497
|
}
|
|
423
498
|
catch {
|
|
@@ -425,8 +500,13 @@ export const neuralTools = [
|
|
|
425
500
|
}
|
|
426
501
|
}
|
|
427
502
|
if (method === 'prune') {
|
|
428
|
-
// Prune
|
|
429
|
-
|
|
503
|
+
// Prune the least-used fraction of patterns. targetReduction (0-1) is a percentile:
|
|
504
|
+
// 0.5 removes the bottom 50% by usageCount, 0.8 removes the bottom 80%, etc.
|
|
505
|
+
const counts = Object.values(store.patterns)
|
|
506
|
+
.map(p => p.usageCount || 0)
|
|
507
|
+
.sort((a, b) => a - b);
|
|
508
|
+
const cutoffIdx = Math.floor(targetReduction * counts.length);
|
|
509
|
+
const threshold = counts[cutoffIdx] ?? 0;
|
|
430
510
|
const toRemove = [];
|
|
431
511
|
for (const [id, pattern] of Object.entries(store.patterns)) {
|
|
432
512
|
if ((pattern.usageCount || 0) < threshold)
|
|
@@ -492,7 +572,11 @@ export const neuralTools = [
|
|
|
492
572
|
handler: async (input) => {
|
|
493
573
|
const store = loadNeuralStore();
|
|
494
574
|
if (input.modelId) {
|
|
495
|
-
const
|
|
575
|
+
const modelId = input.modelId;
|
|
576
|
+
if (NEURAL_RESERVED_KEYS.has(modelId)) {
|
|
577
|
+
return { success: false, error: 'Invalid modelId' };
|
|
578
|
+
}
|
|
579
|
+
const model = Object.hasOwn(store.models, modelId) ? store.models[modelId] : undefined;
|
|
496
580
|
if (!model) {
|
|
497
581
|
return { success: false, error: 'Model not found' };
|
|
498
582
|
}
|
|
@@ -502,7 +586,7 @@ export const neuralTools = [
|
|
|
502
586
|
const patterns = Object.values(store.patterns);
|
|
503
587
|
return {
|
|
504
588
|
_realEmbeddings: !!realEmbeddings,
|
|
505
|
-
embeddingProvider: realEmbeddings ? `@
|
|
589
|
+
embeddingProvider: realEmbeddings ? `@monomind/embeddings (${embeddingServiceName})` : 'hash-based (deterministic)',
|
|
506
590
|
models: {
|
|
507
591
|
total: models.length,
|
|
508
592
|
ready: models.filter(m => m.status === 'ready').length,
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* Note: Some optimization suggestions are illustrative
|
|
13
13
|
*/
|
|
14
14
|
import { getProjectCwd } from './types.js';
|
|
15
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
15
|
+
import { existsSync, readFileSync, writeFileSync, renameSync, unlinkSync, readdirSync, mkdirSync } from 'node:fs';
|
|
16
16
|
import { join } from 'node:path';
|
|
17
17
|
import * as os from 'node:os';
|
|
18
18
|
// Storage paths
|
|
@@ -46,7 +46,10 @@ function loadPerfStore() {
|
|
|
46
46
|
}
|
|
47
47
|
function savePerfStore(store) {
|
|
48
48
|
ensurePerfDir();
|
|
49
|
-
|
|
49
|
+
const dest = getPerfPath();
|
|
50
|
+
const tmpPath = `${dest}.${process.pid}.${Date.now()}.tmp`;
|
|
51
|
+
writeFileSync(tmpPath, JSON.stringify(store, null, 2), 'utf-8');
|
|
52
|
+
renameSync(tmpPath, dest);
|
|
50
53
|
}
|
|
51
54
|
export const performanceTools = [
|
|
52
55
|
{
|
|
@@ -177,7 +180,6 @@ export const performanceTools = [
|
|
|
177
180
|
readFileSync(probeFile);
|
|
178
181
|
diskLatencyMs = Math.round((performance.now() - t0) * 100) / 100;
|
|
179
182
|
try {
|
|
180
|
-
const { unlinkSync } = require('node:fs');
|
|
181
183
|
unlinkSync(probeFile);
|
|
182
184
|
}
|
|
183
185
|
catch { /* best-effort */ }
|
|
@@ -301,6 +303,13 @@ export const performanceTools = [
|
|
|
301
303
|
createdAt: new Date().toISOString(),
|
|
302
304
|
};
|
|
303
305
|
store.benchmarks[id] = result;
|
|
306
|
+
// Evict oldest entries if over limit
|
|
307
|
+
const MAX_BENCHMARKS = 200;
|
|
308
|
+
const benchEntries = Object.entries(store.benchmarks)
|
|
309
|
+
.sort(([, a], [, b]) => (a.createdAt < b.createdAt ? -1 : 1));
|
|
310
|
+
if (benchEntries.length > MAX_BENCHMARKS) {
|
|
311
|
+
store.benchmarks = Object.fromEntries(benchEntries.slice(-MAX_BENCHMARKS));
|
|
312
|
+
}
|
|
304
313
|
results.push({
|
|
305
314
|
name: suiteName,
|
|
306
315
|
opsPerSec,
|
|
@@ -312,9 +321,10 @@ export const performanceTools = [
|
|
|
312
321
|
}
|
|
313
322
|
savePerfStore(store);
|
|
314
323
|
// Calculate comparison vs previous benchmarks
|
|
324
|
+
const runStart = new Date().toISOString();
|
|
315
325
|
const allBenchmarks = Object.values(store.benchmarks);
|
|
316
326
|
const previousBenchmarks = allBenchmarks
|
|
317
|
-
.filter(b => suitesToRun.includes(b.name) && b.createdAt <
|
|
327
|
+
.filter(b => suitesToRun.includes(b.name) && b.createdAt < runStart)
|
|
318
328
|
.slice(-suitesToRun.length);
|
|
319
329
|
const comparison = previousBenchmarks.length > 0
|
|
320
330
|
? {
|
|
@@ -365,6 +375,9 @@ export const performanceTools = [
|
|
|
365
375
|
};
|
|
366
376
|
const targets = target === 'all' ? ['memory', 'io', 'cpu'] : [target];
|
|
367
377
|
const deadline = wallStart + durationMs;
|
|
378
|
+
// Cap I/O operations to prevent the io target from saturating disk/event loop
|
|
379
|
+
const MAX_IO_OPS = 1000;
|
|
380
|
+
let ioOps = 0;
|
|
368
381
|
while (performance.now() < deadline) {
|
|
369
382
|
for (const t of targets) {
|
|
370
383
|
if (performance.now() >= deadline)
|
|
@@ -375,11 +388,14 @@ export const performanceTools = [
|
|
|
375
388
|
runOp('array-sort', () => { const a = Array.from({ length: 500 }, () => Math.random()); a.sort(); });
|
|
376
389
|
}
|
|
377
390
|
else if (t === 'io') {
|
|
391
|
+
if (ioOps >= MAX_IO_OPS)
|
|
392
|
+
continue;
|
|
378
393
|
runOp('file-write', () => { ensurePerfDir(); writeFileSync(join(getPerfDir(), '.profile-probe'), 'x'.repeat(1024)); });
|
|
379
394
|
runOp('file-read', () => { try {
|
|
380
395
|
readFileSync(join(getPerfDir(), '.profile-probe'));
|
|
381
396
|
}
|
|
382
397
|
catch { /* ok */ } });
|
|
398
|
+
ioOps += 2;
|
|
383
399
|
}
|
|
384
400
|
else if (t === 'cpu') {
|
|
385
401
|
runOp('matrix-mult', () => { const s = 32; const a = Array.from({ length: s }, () => Array.from({ length: s }, () => Math.random())); for (let i = 0; i < s; i++)
|
|
@@ -408,7 +424,6 @@ export const performanceTools = [
|
|
|
408
424
|
.sort((a, b) => b.percentOfTotal - a.percentOfTotal);
|
|
409
425
|
// Cleanup probe file
|
|
410
426
|
try {
|
|
411
|
-
const { unlinkSync } = require('node:fs');
|
|
412
427
|
unlinkSync(join(getPerfDir(), '.profile-probe'));
|
|
413
428
|
}
|
|
414
429
|
catch { /* ok */ }
|
|
@@ -459,7 +474,6 @@ export const performanceTools = [
|
|
|
459
474
|
readFileSync(probe);
|
|
460
475
|
diskLatencyBefore = Math.round((performance.now() - t0) * 100) / 100;
|
|
461
476
|
try {
|
|
462
|
-
const { unlinkSync } = require('node:fs');
|
|
463
477
|
unlinkSync(probe);
|
|
464
478
|
}
|
|
465
479
|
catch { /* ok */ }
|
|
@@ -504,10 +518,9 @@ export const performanceTools = [
|
|
|
504
518
|
if (aggressive) {
|
|
505
519
|
try {
|
|
506
520
|
const dir = getPerfDir();
|
|
507
|
-
const { readdirSync, unlinkSync: ul } = require('node:fs');
|
|
508
521
|
const probes = readdirSync(dir).filter((f) => f.startsWith('.'));
|
|
509
522
|
probes.forEach((f) => { try {
|
|
510
|
-
|
|
523
|
+
unlinkSync(join(dir, f));
|
|
511
524
|
}
|
|
512
525
|
catch { /* ok */ } });
|
|
513
526
|
if (probes.length > 0)
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides MCP tools for checking and syncing V1 implementation progress.
|
|
5
5
|
*
|
|
6
|
-
* @module @
|
|
6
|
+
* @module @monomind/cli/mcp-tools/progress
|
|
7
7
|
*/
|
|
8
|
-
import { existsSync, readdirSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
8
|
+
import { existsSync, readdirSync, readFileSync, writeFileSync, renameSync, mkdirSync } from 'fs';
|
|
9
9
|
import { join, basename, dirname } from 'path';
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
11
11
|
// Get project root - handles both src and dist paths
|
|
12
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
13
13
|
const __dirname = dirname(__filename);
|
|
14
14
|
// From dist/src/mcp-tools or src/mcp-tools, navigate to v1 directory
|
|
15
|
-
// CLI is at packages/@
|
|
15
|
+
// CLI is at packages/@monomind/cli, so go up 2 levels from cli to get to v1
|
|
16
16
|
const CLI_ROOT = join(__dirname, '../../..');
|
|
17
17
|
const MONOMIND_DIR = join(CLI_ROOT, '..'); // @monomind directory
|
|
18
18
|
const PACKAGES_DIR = join(MONOMIND_DIR, '..'); // v1 directory
|
|
@@ -92,7 +92,7 @@ function calculateModuleProgress(moduleDir) {
|
|
|
92
92
|
async function calculateProgress() {
|
|
93
93
|
const now = new Date().toISOString();
|
|
94
94
|
// Count V1 modules
|
|
95
|
-
const modulesDir = join(PACKAGES_DIR, '@
|
|
95
|
+
const modulesDir = join(PACKAGES_DIR, '@monomind');
|
|
96
96
|
const modules = [];
|
|
97
97
|
let totalProgress = 0;
|
|
98
98
|
let explicitDDD = 0;
|
|
@@ -119,7 +119,7 @@ async function calculateProgress() {
|
|
|
119
119
|
const totalStats = countFilesAndLines(PACKAGES_DIR);
|
|
120
120
|
// Count CLI commands (from commands/index.ts)
|
|
121
121
|
let cliCommands = 28; // Default to known count
|
|
122
|
-
const commandsIndexPath = join(PACKAGES_DIR, '@
|
|
122
|
+
const commandsIndexPath = join(PACKAGES_DIR, '@monomind/cli/src/commands/index.ts');
|
|
123
123
|
if (existsSync(commandsIndexPath)) {
|
|
124
124
|
try {
|
|
125
125
|
const content = readFileSync(commandsIndexPath, 'utf-8');
|
|
@@ -132,7 +132,7 @@ async function calculateProgress() {
|
|
|
132
132
|
}
|
|
133
133
|
// Count MCP tools
|
|
134
134
|
let mcpTools = 100; // Approximate
|
|
135
|
-
const toolsIndexPath = join(PACKAGES_DIR, '@
|
|
135
|
+
const toolsIndexPath = join(PACKAGES_DIR, '@monomind/cli/src/mcp-tools/index.ts');
|
|
136
136
|
if (existsSync(toolsIndexPath)) {
|
|
137
137
|
try {
|
|
138
138
|
const content = readFileSync(toolsIndexPath, 'utf-8');
|
|
@@ -142,7 +142,7 @@ async function calculateProgress() {
|
|
|
142
142
|
}
|
|
143
143
|
// Count hooks subcommands (count const *Command definitions)
|
|
144
144
|
let hooksSubcommands = 27; // Default to documented count
|
|
145
|
-
const hooksPath = join(PACKAGES_DIR, '@
|
|
145
|
+
const hooksPath = join(PACKAGES_DIR, '@monomind/cli/src/commands/hooks.ts');
|
|
146
146
|
if (existsSync(hooksPath)) {
|
|
147
147
|
try {
|
|
148
148
|
const content = readFileSync(hooksPath, 'utf-8');
|
|
@@ -191,7 +191,8 @@ async function syncProgress() {
|
|
|
191
191
|
mkdirSync(metricsDir, { recursive: true });
|
|
192
192
|
}
|
|
193
193
|
const outputPath = join(metricsDir, 'v1-progress.json');
|
|
194
|
-
|
|
194
|
+
const outputTmp = outputPath + '.tmp';
|
|
195
|
+
writeFileSync(outputTmp, JSON.stringify({
|
|
195
196
|
domains: { completed: Math.floor(metrics.packages.withDDD / 3), total: 5 },
|
|
196
197
|
ddd: {
|
|
197
198
|
progress: metrics.ddd.progress,
|
|
@@ -203,6 +204,7 @@ async function syncProgress() {
|
|
|
203
204
|
lastUpdated: metrics.lastUpdated,
|
|
204
205
|
source: 'ProgressService',
|
|
205
206
|
}, null, 2));
|
|
207
|
+
renameSync(outputTmp, outputPath);
|
|
206
208
|
return metrics;
|
|
207
209
|
}
|
|
208
210
|
function getSummary(metrics) {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Lightweight counter for tracking MCP tool invocations.
|
|
4
4
|
* Used by system_metrics to report real request counts.
|
|
5
5
|
*/
|
|
6
|
+
const MAX_TRACKED_TOOLS = 500;
|
|
6
7
|
let counts = {
|
|
7
8
|
total: 0,
|
|
8
9
|
success: 0,
|
|
@@ -16,7 +17,9 @@ export function trackRequest(toolName, success) {
|
|
|
16
17
|
counts.success++;
|
|
17
18
|
else
|
|
18
19
|
counts.errors++;
|
|
19
|
-
counts.byTool
|
|
20
|
+
if (Object.keys(counts.byTool).length < MAX_TRACKED_TOOLS || toolName in counts.byTool) {
|
|
21
|
+
counts.byTool[toolName] = (counts.byTool[toolName] || 0) + 1;
|
|
22
|
+
}
|
|
20
23
|
}
|
|
21
24
|
export function getRequestCounts() {
|
|
22
25
|
return { ...counts };
|
|
@@ -7,6 +7,20 @@
|
|
|
7
7
|
async function loadRuvllmWasm() {
|
|
8
8
|
return import('../ruvector/ruvllm-wasm.js');
|
|
9
9
|
}
|
|
10
|
+
// ── Instance Registries ──────────────────────────────────────
|
|
11
|
+
const hnswRouters = new Map();
|
|
12
|
+
const sonaInstances = new Map();
|
|
13
|
+
const loraInstances = new Map();
|
|
14
|
+
// ── Map eviction (prevents WASM object leaks in long-running MCP servers) ────
|
|
15
|
+
const MAX_MAP_SIZE = 50;
|
|
16
|
+
function setWithEviction(map, key, value) {
|
|
17
|
+
if (map.size >= MAX_MAP_SIZE) {
|
|
18
|
+
// Evict the oldest entry (first inserted)
|
|
19
|
+
const firstKey = map.keys().next().value;
|
|
20
|
+
map.delete(firstKey);
|
|
21
|
+
}
|
|
22
|
+
map.set(key, value);
|
|
23
|
+
}
|
|
10
24
|
export const ruvllmWasmTools = [
|
|
11
25
|
{
|
|
12
26
|
name: 'ruvllm_status',
|
|
@@ -45,7 +59,7 @@ export const ruvllmWasmTools = [
|
|
|
45
59
|
});
|
|
46
60
|
// Store router in module-level registry
|
|
47
61
|
const id = `hnsw-${Date.now().toString(36)}`;
|
|
48
|
-
hnswRouters
|
|
62
|
+
setWithEviction(hnswRouters, id, router);
|
|
49
63
|
return { content: [{ type: 'text', text: JSON.stringify({ success: true, routerId: id, dimensions: args.dimensions, maxPatterns: args.maxPatterns }) }] };
|
|
50
64
|
}
|
|
51
65
|
catch (err) {
|
|
@@ -102,7 +116,8 @@ export const ruvllmWasmTools = [
|
|
|
102
116
|
if (!router)
|
|
103
117
|
return { content: [{ type: 'text', text: JSON.stringify({ error: `Router not found: ${args.routerId}` }) }], isError: true };
|
|
104
118
|
const query = new Float32Array(args.query);
|
|
105
|
-
const
|
|
119
|
+
const k = typeof args.k === 'number' && args.k > 0 ? Math.floor(args.k) : 3;
|
|
120
|
+
const results = router.route(query, k);
|
|
106
121
|
return { content: [{ type: 'text', text: JSON.stringify({ results }) }] };
|
|
107
122
|
}
|
|
108
123
|
catch (err) {
|
|
@@ -130,7 +145,7 @@ export const ruvllmWasmTools = [
|
|
|
130
145
|
patternCapacity: args.patternCapacity,
|
|
131
146
|
});
|
|
132
147
|
const id = `sona-${Date.now().toString(36)}`;
|
|
133
|
-
sonaInstances
|
|
148
|
+
setWithEviction(sonaInstances, id, sona);
|
|
134
149
|
return { content: [{ type: 'text', text: JSON.stringify({ success: true, sonaId: id }) }] };
|
|
135
150
|
}
|
|
136
151
|
catch (err) {
|
|
@@ -185,7 +200,7 @@ export const ruvllmWasmTools = [
|
|
|
185
200
|
alpha: args.alpha,
|
|
186
201
|
});
|
|
187
202
|
const id = `lora-${Date.now().toString(36)}`;
|
|
188
|
-
loraInstances
|
|
203
|
+
setWithEviction(loraInstances, id, lora);
|
|
189
204
|
return { content: [{ type: 'text', text: JSON.stringify({ success: true, loraId: id }) }] };
|
|
190
205
|
}
|
|
191
206
|
catch (err) {
|
|
@@ -277,8 +292,4 @@ export const ruvllmWasmTools = [
|
|
|
277
292
|
},
|
|
278
293
|
},
|
|
279
294
|
];
|
|
280
|
-
// ── Instance Registries ──────────────────────────────────────
|
|
281
|
-
const hnswRouters = new Map();
|
|
282
|
-
const sonaInstances = new Map();
|
|
283
|
-
const loraInstances = new Map();
|
|
284
295
|
//# sourceMappingURL=ruvllm-tools.js.map
|