monomind 1.18.15 → 2.0.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/README.md +2 -5
- package/package.json +15 -34
- package/packages/@monomind/cli/.claude/agents/core/researcher.md +29 -24
- package/packages/@monomind/cli/.claude/agents/github/code-review-swarm.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/github-modes.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/issue-tracker.md +1 -3
- package/packages/@monomind/cli/.claude/agents/github/multi-repo-swarm.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/pr-manager.md +1 -3
- package/packages/@monomind/cli/.claude/agents/github/project-board-sync.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/release-manager.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +4 -12
- package/packages/@monomind/cli/.claude/agents/github/swarm-issue.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/swarm-pr.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/sync-coordinator.md +1 -1
- package/packages/@monomind/cli/.claude/agents/github/workflow-automation.md +1 -1
- package/packages/@monomind/cli/.claude/agents/goal/goal-planner.md +1 -2
- package/packages/@monomind/cli/.claude/agents/specialized/specialized-workflow-architect.md +11 -14
- package/packages/@monomind/cli/.claude/agents/testing/production-validator.md +8 -7
- package/packages/@monomind/cli/.claude/agents/testing/testing-evidence-collector.md +3 -1
- package/packages/@monomind/cli/.claude/commands/github/issue-tracker.md +0 -2
- package/packages/@monomind/cli/.claude/commands/github/pr-manager.md +0 -2
- package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +3 -10
- package/packages/@monomind/cli/.claude/commands/mastermind/code-review.md +4 -4
- package/packages/@monomind/cli/.claude/commands/mastermind/help.md +5 -5
- package/packages/@monomind/cli/.claude/commands/mastermind/okf-export.md +14 -0
- package/packages/@monomind/cli/.claude/commands/mastermind/okf-import.md +15 -0
- package/packages/@monomind/cli/.claude/commands/workflows/README.md +0 -1
- package/packages/@monomind/cli/.claude/commands/workflows/workflow-create.md +0 -1
- package/packages/@monomind/cli/.claude/commands/workflows/workflow-execute.md +1 -3
- package/packages/@monomind/cli/.claude/commands/workflows/workflow-export.md +0 -2
- package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +28 -36
- package/packages/@monomind/cli/.claude/helpers/handlers/capture-handler.cjs +110 -0
- package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +15 -0
- package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +2 -8
- package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +314 -245
- package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +182 -163
- package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +95 -53
- package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +17 -160
- package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +153 -16
- package/packages/@monomind/cli/.claude/helpers/intelligence.cjs +255 -15
- package/packages/@monomind/cli/.claude/helpers/learning-service.mjs +1 -0
- package/packages/@monomind/cli/.claude/helpers/mastermind-activate.cjs +33 -51
- package/packages/@monomind/cli/.claude/helpers/monolean-activate.cjs +13 -3
- package/packages/@monomind/cli/.claude/helpers/monolean-propagate.cjs +7 -3
- package/packages/@monomind/cli/.claude/helpers/router.cjs +122 -11
- package/packages/@monomind/cli/.claude/helpers/skill-registry.json +0 -189
- package/packages/@monomind/cli/.claude/skills/github-toolkit/SKILL.md +60 -0
- package/packages/@monomind/cli/.claude/skills/hive-mind-advanced/SKILL.md +0 -15
- package/packages/@monomind/cli/.claude/skills/hooks-automation/SKILL.md +0 -1
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/_protocol.md +1 -1
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/architect.md +5 -6
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/autodev.md +8 -5
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/build.md +1 -2
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/review.md +8 -5
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/techport.md +37 -3
- package/packages/@monomind/cli/.claude/skills/memory-toolkit/SKILL.md +75 -0
- package/packages/@monomind/cli/.claude/skills/monodesign/document.md +9 -6
- package/packages/@monomind/cli/.claude/skills/monodesign/extract.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/document.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monodesign/reference/live.md +1 -1
- package/packages/@monomind/cli/.claude/skills/monolean/SKILL.md +1 -1
- package/packages/@monomind/cli/.claude/skills/specialagent/SKILL.md +2 -4
- package/packages/@monomind/cli/.claude/skills/swarm-advanced/SKILL.md +0 -1
- package/packages/@monomind/cli/README.md +2 -5
- package/packages/@monomind/cli/bin/mcp-server.js +11 -1
- package/packages/@monomind/cli/dist/src/autopilot-state.js +4 -5
- package/packages/@monomind/cli/dist/src/browser/dashboard/server.js +69 -1
- package/packages/@monomind/cli/dist/src/browser/dashboard/ui.html +214 -1764
- package/packages/@monomind/cli/dist/src/capabilities/index.d.ts +0 -2
- package/packages/@monomind/cli/dist/src/capabilities/index.js +0 -1
- package/packages/@monomind/cli/dist/src/commands/agent-lifecycle.js +2 -6
- package/packages/@monomind/cli/dist/src/commands/agent-ops.d.ts +1 -2
- package/packages/@monomind/cli/dist/src/commands/agent-ops.js +1 -59
- package/packages/@monomind/cli/dist/src/commands/agent.js +2 -3
- package/packages/@monomind/cli/dist/src/commands/analyze-diff.js +1 -1
- package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +0 -4
- package/packages/@monomind/cli/dist/src/commands/analyze.js +1 -29
- package/packages/@monomind/cli/dist/src/commands/browse-action.js +94 -2
- package/packages/@monomind/cli/dist/src/commands/completions.js +12 -76
- package/packages/@monomind/cli/dist/src/commands/config.js +0 -6
- package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +13 -3
- package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +131 -23
- package/packages/@monomind/cli/dist/src/commands/doctor.js +6 -5
- package/packages/@monomind/cli/dist/src/commands/guidance.d.ts +5 -1
- package/packages/@monomind/cli/dist/src/commands/guidance.js +11 -556
- package/packages/@monomind/cli/dist/src/commands/hive-mind-comms.js +11 -4
- package/packages/@monomind/cli/dist/src/commands/hive-mind-helpers.js +2 -2
- package/packages/@monomind/cli/dist/src/commands/hive-mind-ops.d.ts +1 -3
- package/packages/@monomind/cli/dist/src/commands/hive-mind-ops.js +2 -116
- package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +4 -4
- package/packages/@monomind/cli/dist/src/commands/hive-mind.js +11 -11
- package/packages/@monomind/cli/dist/src/commands/hooks-coverage-commands.js +8 -7
- package/packages/@monomind/cli/dist/src/commands/hooks-coverage-gaps.js +1 -1
- package/packages/@monomind/cli/dist/src/commands/hooks-coverage-routing.js +2 -2
- package/packages/@monomind/cli/dist/src/commands/hooks-extended-commands.d.ts +0 -3
- package/packages/@monomind/cli/dist/src/commands/hooks-extended-commands.js +0 -307
- package/packages/@monomind/cli/dist/src/commands/hooks-formatting.d.ts +1 -5
- package/packages/@monomind/cli/dist/src/commands/hooks-formatting.js +1 -18
- package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +82 -330
- package/packages/@monomind/cli/dist/src/commands/hooks.js +1 -12
- package/packages/@monomind/cli/dist/src/commands/index.d.ts +2 -55
- package/packages/@monomind/cli/dist/src/commands/index.js +23 -216
- package/packages/@monomind/cli/dist/src/commands/init-wizard.js +3 -5
- package/packages/@monomind/cli/dist/src/commands/init.js +4 -24
- package/packages/@monomind/cli/dist/src/commands/mcp.js +32 -4
- package/packages/@monomind/cli/dist/src/commands/memory-admin.d.ts +1 -2
- package/packages/@monomind/cli/dist/src/commands/memory-admin.js +1 -118
- package/packages/@monomind/cli/dist/src/commands/memory-transfer.d.ts +1 -2
- package/packages/@monomind/cli/dist/src/commands/memory-transfer.js +5 -171
- package/packages/@monomind/cli/dist/src/commands/memory.js +3 -6
- package/packages/@monomind/cli/dist/src/commands/neural-core.d.ts +3 -1
- package/packages/@monomind/cli/dist/src/commands/neural-core.js +154 -15
- package/packages/@monomind/cli/dist/src/commands/neural-optimize.js +13 -15
- package/packages/@monomind/cli/dist/src/commands/neural-registry.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/neural-registry.js +14 -14
- package/packages/@monomind/cli/dist/src/commands/neural.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/neural.js +6 -6
- package/packages/@monomind/cli/dist/src/commands/performance.js +68 -58
- package/packages/@monomind/cli/dist/src/commands/providers.js +77 -117
- package/packages/@monomind/cli/dist/src/commands/search-universal.d.ts +7 -1
- package/packages/@monomind/cli/dist/src/commands/search-universal.js +59 -5
- package/packages/@monomind/cli/dist/src/commands/security-cve.js +3 -5
- package/packages/@monomind/cli/dist/src/commands/security-misc.d.ts +0 -1
- package/packages/@monomind/cli/dist/src/commands/security-misc.js +69 -45
- package/packages/@monomind/cli/dist/src/commands/security.js +2 -4
- package/packages/@monomind/cli/dist/src/commands/session.js +137 -281
- package/packages/@monomind/cli/dist/src/commands/start.js +2 -59
- package/packages/@monomind/cli/dist/src/commands/status.js +18 -29
- package/packages/@monomind/cli/dist/src/commands/swarm.js +113 -66
- package/packages/@monomind/cli/dist/src/commands/task.js +2 -49
- package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +43 -1
- package/packages/@monomind/cli/dist/src/consensus/tally.d.ts +19 -0
- package/packages/@monomind/cli/dist/src/consensus/tally.js +34 -0
- package/packages/@monomind/cli/dist/src/index.d.ts +3 -2
- package/packages/@monomind/cli/dist/src/index.js +13 -9
- package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +10 -14
- package/packages/@monomind/cli/dist/src/init/executor.js +42 -100
- package/packages/@monomind/cli/dist/src/init/helpers-generator.js +2 -22
- package/packages/@monomind/cli/dist/src/init/settings-generator.js +0 -13
- package/packages/@monomind/cli/dist/src/init/statusline-generator.js +62 -0
- package/packages/@monomind/cli/dist/src/init/types.d.ts +3 -9
- package/packages/@monomind/cli/dist/src/init/types.js +0 -5
- package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +18 -8
- package/packages/@monomind/cli/dist/src/mcp-client.js +0 -8
- package/packages/@monomind/cli/dist/src/mcp-server.js +14 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +0 -17
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/causal-infer.d.ts +5 -5
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/causal-infer.js +32 -46
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/coherence-check.js +1 -19
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/consensus-verify.d.ts +2 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/consensus-verify.js +22 -20
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/memory-gate.d.ts +3 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/memory-gate.js +32 -19
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/quantum-topology.d.ts +4 -4
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/quantum-topology.js +11 -17
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/spectral-analyze.d.ts +2 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/spectral-analyze.js +51 -32
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.d.ts +8 -11
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.js +3 -18
- package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +1 -7
- package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +9 -19
- package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +198 -40
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.d.ts +18 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.js +25 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +4 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +33 -482
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.d.ts +1 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +96 -202
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.d.ts +31 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.js +196 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +10 -11
- package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -4
- package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +24 -9
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.d.ts +6 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +370 -95
- package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +8 -9
- package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +249 -539
- package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +5 -17
- package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +4 -4
- package/packages/@monomind/cli/dist/src/mcp-tools/quality-tools.d.ts +7 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/quality-tools.js +7 -257
- package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +103 -0
- package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +9 -9
- package/packages/@monomind/cli/dist/src/memory/intelligence.js +71 -59
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +1 -0
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +47 -5
- package/packages/@monomind/cli/dist/src/memory/memory-read.js +1 -19
- package/packages/@monomind/cli/dist/src/suggest.js +1 -12
- package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +3 -2
- package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +22 -70
- package/packages/@monomind/cli/dist/src/update/checker.js +0 -1
- package/packages/@monomind/cli/dist/src/utils/cosine-similarity.d.ts +22 -0
- package/packages/@monomind/cli/dist/src/utils/cosine-similarity.js +38 -0
- package/packages/@monomind/cli/dist/src/utils/input-guards.d.ts +51 -0
- package/packages/@monomind/cli/dist/src/utils/input-guards.js +223 -0
- package/packages/@monomind/cli/dist/src/utils/json-file.d.ts +33 -0
- package/packages/@monomind/cli/dist/src/utils/json-file.js +57 -0
- package/packages/@monomind/cli/package.json +9 -6
- package/packages/@monomind/cli/scripts/sync-claude-assets.sh +16 -20
- package/scripts/generate-agent-avatars.mjs +0 -8
- package/.claude/agents/architecture/system-design/arch-system-design.md +0 -54
- package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
- package/.claude/agents/consensus/quorum-manager.md +0 -803
- package/.claude/agents/consensus/security-manager.md +0 -602
- package/.claude/agents/core/coder.md +0 -262
- package/.claude/agents/core/coordinator.md +0 -71
- package/.claude/agents/core/planner.md +0 -170
- package/.claude/agents/core/researcher.md +0 -192
- package/.claude/agents/core/reviewer.md +0 -327
- package/.claude/agents/core/tester.md +0 -318
- package/.claude/agents/design/design-monodesign.md +0 -121
- package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -212
- package/.claude/agents/engineering/engineering-ai-engineer.md +0 -165
- package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -108
- package/.claude/agents/engineering/engineering-backend-architect.md +0 -254
- package/.claude/agents/engineering/engineering-code-reviewer.md +0 -95
- package/.claude/agents/engineering/engineering-data-engineer.md +0 -307
- package/.claude/agents/engineering/engineering-database-optimizer.md +0 -200
- package/.claude/agents/engineering/engineering-devops-automator.md +0 -430
- package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -174
- package/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -607
- package/.claude/agents/engineering/engineering-frontend-developer.md +0 -249
- package/.claude/agents/engineering/engineering-git-workflow-master.md +0 -108
- package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -482
- package/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -499
- package/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -463
- package/.claude/agents/engineering/engineering-security-engineer.md +0 -303
- package/.claude/agents/engineering/engineering-senior-developer.md +0 -195
- package/.claude/agents/engineering/engineering-software-architect.md +0 -100
- package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -528
- package/.claude/agents/engineering/engineering-sre.md +0 -114
- package/.claude/agents/engineering/engineering-technical-writer.md +0 -412
- package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -540
- package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -351
- package/.claude/agents/generated/case-analyst.md +0 -50
- package/.claude/agents/generated/channel-intelligence-director.md +0 -87
- package/.claude/agents/generated/chief-growth-officer.md +0 -88
- package/.claude/agents/generated/churn-analyst.md +0 -53
- package/.claude/agents/generated/code-reviewer.md +0 -55
- package/.claude/agents/generated/code-validator.md +0 -57
- package/.claude/agents/generated/complexity-scanner.md +0 -56
- package/.claude/agents/generated/content-seo-strategist.md +0 -90
- package/.claude/agents/generated/copy-editor.md +0 -45
- package/.claude/agents/generated/court-reporter.md +0 -50
- package/.claude/agents/generated/defender.md +0 -51
- package/.claude/agents/generated/devbot-orchestrator.md +0 -58
- package/.claude/agents/generated/devbot-planner.md +0 -63
- package/.claude/agents/generated/developer-community-strategist.md +0 -91
- package/.claude/agents/generated/editor-in-chief.md +0 -45
- package/.claude/agents/generated/fact-checker.md +0 -45
- package/.claude/agents/generated/impact-assessor.md +0 -54
- package/.claude/agents/generated/judge.md +0 -51
- package/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
- package/.claude/agents/generated/prosecutor.md +0 -51
- package/.claude/agents/generated/reporter.md +0 -45
- package/.claude/agents/generated/social-media-strategist.md +0 -91
- package/.claude/agents/generated/video-visual-strategist.md +0 -90
- package/.claude/agents/github/code-review-swarm.md +0 -557
- package/.claude/agents/github/github-modes.md +0 -154
- package/.claude/agents/github/issue-tracker.md +0 -299
- package/.claude/agents/github/multi-repo-swarm.md +0 -525
- package/.claude/agents/github/pr-manager.md +0 -163
- package/.claude/agents/github/project-board-sync.md +0 -478
- package/.claude/agents/github/release-manager.md +0 -296
- package/.claude/agents/github/repo-architect.md +0 -359
- package/.claude/agents/github/swarm-issue.md +0 -548
- package/.claude/agents/github/swarm-pr.md +0 -427
- package/.claude/agents/github/sync-coordinator.md +0 -355
- package/.claude/agents/github/workflow-automation.md +0 -640
- package/.claude/agents/goal/goal-planner.md +0 -168
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +0 -202
- package/.claude/agents/hive-mind/scout-explorer.md +0 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -192
- package/.claude/agents/hive-mind/worker-specialist.md +0 -216
- package/.claude/agents/marketing/marketing-competitive-content.md +0 -155
- package/.claude/agents/marketing/marketing-cro-specialist.md +0 -147
- package/.claude/agents/marketing/marketing-email-specialist.md +0 -90
- package/.claude/agents/marketing/marketing-launch-strategist.md +0 -129
- package/.claude/agents/marketing/marketing-pricing-strategist.md +0 -127
- package/.claude/agents/optimization/benchmark-suite.md +0 -665
- package/.claude/agents/optimization/load-balancer.md +0 -431
- package/.claude/agents/optimization/performance-monitor.md +0 -672
- package/.claude/agents/optimization/resource-allocator.md +0 -674
- package/.claude/agents/optimization/topology-optimizer.md +0 -808
- package/.claude/agents/reengineer-squad/boss.md +0 -113
- package/.claude/agents/reengineer-squad/critic-architect.md +0 -132
- package/.claude/agents/reengineer-squad/git-manager.md +0 -145
- package/.claude/agents/reengineer-squad/idea-generator.md +0 -95
- package/.claude/agents/reengineer-squad/implementer.md +0 -112
- package/.claude/agents/reengineer-squad/integration-planner.md +0 -112
- package/.claude/agents/reengineer-squad/source-analyst.md +0 -103
- package/.claude/agents/reengineer-squad/target-analyst.md +0 -118
- package/.claude/agents/reengineer-squad/tester.md +0 -105
- package/.claude/agents/schemas/architecture-output.json +0 -43
- package/.claude/agents/schemas/code-review-output.json +0 -28
- package/.claude/agents/schemas/generic-task-input.json +0 -12
- package/.claude/agents/schemas/implementation-output.json +0 -18
- package/.claude/agents/schemas/research-output.json +0 -31
- package/.claude/agents/schemas/security-audit-output.json +0 -29
- package/.claude/agents/schemas/test-report-output.json +0 -29
- package/.claude/agents/sparc/architecture.md +0 -453
- package/.claude/agents/sparc/pseudocode.md +0 -299
- package/.claude/agents/sparc/refinement.md +0 -504
- package/.claude/agents/sparc/specification.md +0 -258
- package/.claude/agents/specialists/integration-architect.md +0 -94
- package/.claude/agents/specialized/agentic-identity-trust.md +0 -388
- package/.claude/agents/specialized/agents-orchestrator.md +0 -368
- package/.claude/agents/specialized/automation-governance-architect.md +0 -217
- package/.claude/agents/specialized/blockchain-security-auditor.md +0 -497
- package/.claude/agents/specialized/compliance-auditor.md +0 -159
- package/.claude/agents/specialized/identity-graph-operator.md +0 -261
- package/.claude/agents/specialized/lsp-index-engineer.md +0 -315
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -89
- package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -89
- package/.claude/agents/specialized/specialized-developer-advocate.md +0 -318
- package/.claude/agents/specialized/specialized-document-generator.md +0 -56
- package/.claude/agents/specialized/specialized-mcp-builder.md +0 -64
- package/.claude/agents/specialized/specialized-model-qa.md +0 -489
- package/.claude/agents/specialized/specialized-workflow-architect.md +0 -598
- package/.claude/agents/specialized/zk-steward.md +0 -212
- package/.claude/agents/swarm/mesh-coordinator.md +0 -363
- package/.claude/agents/templates/automation-smart-agent.md +0 -185
- package/.claude/agents/templates/coordinator-swarm-init.md +0 -83
- package/.claude/agents/templates/implementer-sparc-coder.md +0 -231
- package/.claude/agents/testing/production-validator.md +0 -374
- package/.claude/agents/testing/tdd-london-swarm.md +0 -241
- package/.claude/agents/testing/testing-accessibility-auditor.md +0 -322
- package/.claude/agents/testing/testing-api-tester.md +0 -307
- package/.claude/agents/testing/testing-evidence-collector.md +0 -211
- package/.claude/agents/testing/testing-performance-benchmarker.md +0 -269
- package/.claude/agents/testing/testing-test-results-analyzer.md +0 -306
- package/.claude/agents/testing/testing-tool-evaluator.md +0 -395
- package/.claude/agents/testing/testing-workflow-optimizer.md +0 -451
- package/.claude/commands/agents/README.md +0 -14
- package/.claude/commands/agents/agent-capabilities.md +0 -25
- package/.claude/commands/agents/agent-coordination.md +0 -32
- package/.claude/commands/agents/agent-spawning.md +0 -32
- package/.claude/commands/agents/agent-types.md +0 -30
- package/.claude/commands/analysis/README.md +0 -18
- package/.claude/commands/analysis/bottleneck-detect.md +0 -69
- package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
- package/.claude/commands/analysis/performance-report.md +0 -52
- package/.claude/commands/analysis/token-usage.md +0 -47
- package/.claude/commands/automation/README.md +0 -19
- package/.claude/commands/automation/auto-agent.md +0 -86
- package/.claude/commands/automation/self-healing.md +0 -108
- package/.claude/commands/automation/session-memory.md +0 -89
- package/.claude/commands/automation/smart-agents.md +0 -81
- package/.claude/commands/automation/smart-spawn.md +0 -66
- package/.claude/commands/automation/workflow-select.md +0 -60
- package/.claude/commands/coordination/README.md +0 -13
- package/.claude/commands/coordination/agent-spawn.md +0 -69
- package/.claude/commands/coordination/swarm-init.md +0 -82
- package/.claude/commands/coordination/task-orchestrate.md +0 -79
- package/.claude/commands/github/README.md +0 -24
- package/.claude/commands/github/github-modes.md +0 -151
- package/.claude/commands/github/issue-tracker.md +0 -293
- package/.claude/commands/github/pr-manager.md +0 -173
- package/.claude/commands/github/release-manager.md +0 -343
- package/.claude/commands/github/repo-architect.md +0 -379
- package/.claude/commands/github/sync-coordinator.md +0 -297
- package/.claude/commands/hive-mind/README.md +0 -42
- package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
- package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
- package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
- package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
- package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
- package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
- package/.claude/commands/hive-mind/hive-mind.md +0 -87
- package/.claude/commands/hooks/README.md +0 -66
- package/.claude/commands/hooks/overview.md +0 -112
- package/.claude/commands/hooks/post-edit.md +0 -78
- package/.claude/commands/hooks/post-task.md +0 -62
- package/.claude/commands/hooks/pre-edit.md +0 -81
- package/.claude/commands/hooks/pre-task.md +0 -73
- package/.claude/commands/hooks/session-end.md +0 -82
- package/.claude/commands/hooks/setup.md +0 -132
- package/.claude/commands/mastermind/_repeat.md +0 -492
- package/.claude/commands/mastermind/_taskfile.md +0 -232
- package/.claude/commands/mastermind/adr.md +0 -9
- package/.claude/commands/mastermind/approve.md +0 -91
- package/.claude/commands/mastermind/architect.md +0 -52
- package/.claude/commands/mastermind/autodev.md +0 -28
- package/.claude/commands/mastermind/brain.md +0 -99
- package/.claude/commands/mastermind/budget.md +0 -5
- package/.claude/commands/mastermind/build.md +0 -23
- package/.claude/commands/mastermind/code-review.md +0 -314
- package/.claude/commands/mastermind/content.md +0 -23
- package/.claude/commands/mastermind/createorg.md +0 -136
- package/.claude/commands/mastermind/createtask.md +0 -372
- package/.claude/commands/mastermind/debug.md +0 -19
- package/.claude/commands/mastermind/design.md +0 -17
- package/.claude/commands/mastermind/do.md +0 -525
- package/.claude/commands/mastermind/execute.md +0 -17
- package/.claude/commands/mastermind/finance.md +0 -23
- package/.claude/commands/mastermind/finish.md +0 -17
- package/.claude/commands/mastermind/graph-status.md +0 -5
- package/.claude/commands/mastermind/help.md +0 -115
- package/.claude/commands/mastermind/idea.md +0 -23
- package/.claude/commands/mastermind/ideate.md +0 -258
- package/.claude/commands/mastermind/improve.md +0 -342
- package/.claude/commands/mastermind/loops.md +0 -5
- package/.claude/commands/mastermind/marketing.md +0 -23
- package/.claude/commands/mastermind/master.md +0 -1124
- package/.claude/commands/mastermind/memory.md +0 -227
- package/.claude/commands/mastermind/ops.md +0 -23
- package/.claude/commands/mastermind/orgs.md +0 -18
- package/.claude/commands/mastermind/orgstatus.md +0 -56
- package/.claude/commands/mastermind/plan.md +0 -23
- package/.claude/commands/mastermind/receive-review.md +0 -17
- package/.claude/commands/mastermind/references/antigravity-tools.md +0 -60
- package/.claude/commands/mastermind/references/claude-code-tools.md +0 -50
- package/.claude/commands/mastermind/references/codex-tools.md +0 -64
- package/.claude/commands/mastermind/references/copilot-tools.md +0 -49
- package/.claude/commands/mastermind/references/gemini-tools.md +0 -63
- package/.claude/commands/mastermind/references/pi-tools.md +0 -28
- package/.claude/commands/mastermind/release.md +0 -23
- package/.claude/commands/mastermind/repeat.md +0 -254
- package/.claude/commands/mastermind/research.md +0 -23
- package/.claude/commands/mastermind/review.md +0 -34
- package/.claude/commands/mastermind/runorg.md +0 -153
- package/.claude/commands/mastermind/sales.md +0 -23
- package/.claude/commands/mastermind/skill-builder.md +0 -17
- package/.claude/commands/mastermind/specialagents.md +0 -122
- package/.claude/commands/mastermind/stoporg.md +0 -75
- package/.claude/commands/mastermind/swarm.md +0 -158
- package/.claude/commands/mastermind/taskdev.md +0 -23
- package/.claude/commands/mastermind/tdd.md +0 -19
- package/.claude/commands/mastermind/techport.md +0 -27
- package/.claude/commands/mastermind/understand.md +0 -136
- package/.claude/commands/mastermind/verify.md +0 -19
- package/.claude/commands/mastermind/worktree.md +0 -17
- package/.claude/commands/mastermind.md +0 -121
- package/.claude/commands/memory/README.md +0 -79
- package/.claude/commands/memory/memory-search.md +0 -77
- package/.claude/commands/monitoring/README.md +0 -69
- package/.claude/commands/monitoring/agent-metrics.md +0 -65
- package/.claude/commands/monitoring/agents.md +0 -71
- package/.claude/commands/monitoring/status.md +0 -108
- package/.claude/commands/monobrowse.md +0 -21
- package/.claude/commands/monoes/README.md +0 -30
- package/.claude/commands/monoes/install.md +0 -163
- package/.claude/commands/monoes/monoagent.md +0 -148
- package/.claude/commands/monoes/monoclip.md +0 -64
- package/.claude/commands/monoes/monotask.md +0 -137
- package/.claude/commands/monograph/README.md +0 -102
- package/.claude/commands/monograph/monograph-build.md +0 -79
- package/.claude/commands/monograph/monograph-search.md +0 -96
- package/.claude/commands/monograph/monograph-stats.md +0 -53
- package/.claude/commands/monograph/monograph-watch.md +0 -63
- package/.claude/commands/monograph/monograph-wiki.md +0 -91
- package/.claude/commands/optimization/auto-topology.md +0 -85
- package/.claude/commands/optimization/performance-optimize.md +0 -79
- package/.claude/commands/pair/README.md +0 -79
- package/.claude/commands/pair/examples.md +0 -156
- package/.claude/commands/pair/modes.md +0 -122
- package/.claude/commands/pair/session.md +0 -124
- package/.claude/commands/sparc/analyzer.md +0 -35
- package/.claude/commands/sparc/architect.md +0 -36
- package/.claude/commands/sparc/ask.md +0 -56
- package/.claude/commands/sparc/batch-executor.md +0 -37
- package/.claude/commands/sparc/code.md +0 -48
- package/.claude/commands/sparc/coder.md +0 -37
- package/.claude/commands/sparc/debug.md +0 -42
- package/.claude/commands/sparc/debugger.md +0 -37
- package/.claude/commands/sparc/designer.md +0 -36
- package/.claude/commands/sparc/devops.md +0 -68
- package/.claude/commands/sparc/docs-writer.md +0 -39
- package/.claude/commands/sparc/documenter.md +0 -37
- package/.claude/commands/sparc/innovator.md +0 -37
- package/.claude/commands/sparc/integration.md +0 -42
- package/.claude/commands/sparc/mcp.md +0 -76
- package/.claude/commands/sparc/memory-manager.md +0 -57
- package/.claude/commands/sparc/optimizer.md +0 -37
- package/.claude/commands/sparc/orchestrator.md +0 -70
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
- package/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
- package/.claude/commands/sparc/researcher.md +0 -37
- package/.claude/commands/sparc/reviewer.md +0 -37
- package/.claude/commands/sparc/security-review.md +0 -39
- package/.claude/commands/sparc/sparc-modes.md +0 -120
- package/.claude/commands/sparc/sparc.md +0 -71
- package/.claude/commands/sparc/spec-pseudocode.md +0 -39
- package/.claude/commands/sparc/supabase-admin.md +0 -301
- package/.claude/commands/sparc/swarm-coordinator.md +0 -50
- package/.claude/commands/sparc/tdd.md +0 -37
- package/.claude/commands/sparc/tester.md +0 -37
- package/.claude/commands/sparc/tutorial.md +0 -38
- package/.claude/commands/sparc/workflow-manager.md +0 -37
- package/.claude/commands/sparc.md +0 -112
- package/.claude/commands/stream-chain/pipeline.md +0 -116
- package/.claude/commands/stream-chain/run.md +0 -156
- package/.claude/commands/swarm/README.md +0 -40
- package/.claude/commands/swarm/analysis.md +0 -73
- package/.claude/commands/swarm/development.md +0 -72
- package/.claude/commands/swarm/examples.md +0 -103
- package/.claude/commands/swarm/maintenance.md +0 -75
- package/.claude/commands/swarm/optimization.md +0 -84
- package/.claude/commands/swarm/research.md +0 -76
- package/.claude/commands/swarm/swarm.md +0 -79
- package/.claude/commands/swarm/testing.md +0 -80
- package/.claude/commands/tokens.md +0 -18
- package/.claude/commands/truth/start.md +0 -121
- package/.claude/commands/ts.md +0 -14
- package/.claude/commands/workflows/README.md +0 -65
- package/.claude/commands/workflows/development.md +0 -86
- package/.claude/commands/workflows/research.md +0 -89
- package/.claude/commands/workflows/workflow-create.md +0 -84
- package/.claude/commands/workflows/workflow-execute.md +0 -103
- package/.claude/commands/workflows/workflow-export.md +0 -90
- package/.claude/helpers/auto-memory-hook.mjs +0 -503
- package/.claude/helpers/control-start.cjs +0 -184
- package/.claude/helpers/event-logger.cjs +0 -155
- package/.claude/helpers/extras-registry.json +0 -5141
- package/.claude/helpers/graphify-freshen.cjs +0 -140
- package/.claude/helpers/handlers/adr-draft-handler.cjs +0 -78
- package/.claude/helpers/handlers/agent-start-handler.cjs +0 -108
- package/.claude/helpers/handlers/budget-status-handler.cjs +0 -14
- package/.claude/helpers/handlers/capture-handler.cjs +0 -473
- package/.claude/helpers/handlers/compact-handler.cjs +0 -35
- package/.claude/helpers/handlers/edit-handler.cjs +0 -145
- package/.claude/helpers/handlers/gates-handler.cjs +0 -138
- package/.claude/helpers/handlers/graph-status-handler.cjs +0 -45
- package/.claude/helpers/handlers/loops-status-handler.cjs +0 -48
- package/.claude/helpers/handlers/route-handler.cjs +0 -454
- package/.claude/helpers/handlers/session-handler.cjs +0 -237
- package/.claude/helpers/handlers/session-restore-handler.cjs +0 -370
- package/.claude/helpers/handlers/stats-handler.cjs +0 -14
- package/.claude/helpers/handlers/task-handler.cjs +0 -353
- package/.claude/helpers/hook-handler.cjs +0 -681
- package/.claude/helpers/intelligence.cjs +0 -189
- package/.claude/helpers/learning-service.mjs +0 -60
- package/.claude/helpers/loop-tracker.cjs +0 -119
- package/.claude/helpers/mastermind-activate.cjs +0 -53
- package/.claude/helpers/memory-palace.cjs +0 -461
- package/.claude/helpers/memory.cjs +0 -193
- package/.claude/helpers/metrics-db.mjs +0 -87
- package/.claude/helpers/monolean-activate.cjs +0 -20
- package/.claude/helpers/monolean-config.cjs +0 -76
- package/.claude/helpers/monolean-instructions.cjs +0 -109
- package/.claude/helpers/monolean-propagate.cjs +0 -9
- package/.claude/helpers/monolean-tracker.cjs +0 -18
- package/.claude/helpers/router.cjs +0 -326
- package/.claude/helpers/session.cjs +0 -140
- package/.claude/helpers/skill-registry.json +0 -1043
- package/.claude/helpers/statusline.cjs +0 -1344
- package/.claude/helpers/toggle-statusline.cjs +0 -73
- package/.claude/helpers/token-tracker.cjs +0 -934
- package/.claude/helpers/utils/micro-agents.cjs +0 -354
- package/.claude/helpers/utils/monograph.cjs +0 -480
- package/.claude/helpers/utils/telemetry.cjs +0 -146
- package/.claude/mcp.json +0 -3
- package/.claude/scheduled_tasks.lock +0 -1
- package/.claude/settings.json +0 -495
- package/.claude/skills/.monomind/data/ranked-context.json +0 -5
- package/.claude/skills/.monomind/sessions/current.json +0 -13
- package/.claude/skills/.monomind/sessions/session-1777829336455.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777831614725.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777832095857.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777839814183.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777841847131.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777843309463.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777880867159.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777881884593.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777884090471.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777884808221.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777885672155.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777886852818.json +0 -15
- package/.claude/skills/.monomind/sessions/session-1777896532690.json +0 -15
- package/.claude/skills/agent-browser-testing/SKILL.md +0 -964
- package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
- package/.claude/skills/github-issue-triage/SKILL.md +0 -354
- package/.claude/skills/github-repo-recap/SKILL.md +0 -207
- package/.claude/skills/hive-mind-advanced/SKILL.md +0 -709
- package/.claude/skills/hooks-automation/SKILL.md +0 -1193
- package/.claude/skills/mastermind-skills/_agent-select.md +0 -132
- package/.claude/skills/mastermind-skills/_delegation.md +0 -83
- package/.claude/skills/mastermind-skills/_intake.md +0 -83
- package/.claude/skills/mastermind-skills/_protocol.md +0 -404
- package/.claude/skills/mastermind-skills/_repeat.md +0 -171
- package/.claude/skills/mastermind-skills/access.md +0 -236
- package/.claude/skills/mastermind-skills/activity.md +0 -191
- package/.claude/skills/mastermind-skills/adapter-manager.md +0 -259
- package/.claude/skills/mastermind-skills/adapters.md +0 -204
- package/.claude/skills/mastermind-skills/agent-detail.md +0 -242
- package/.claude/skills/mastermind-skills/agents.md +0 -178
- package/.claude/skills/mastermind-skills/approval-detail.md +0 -259
- package/.claude/skills/mastermind-skills/approve.md +0 -188
- package/.claude/skills/mastermind-skills/architect.md +0 -863
- package/.claude/skills/mastermind-skills/autodev.md +0 -357
- package/.claude/skills/mastermind-skills/backup.md +0 -197
- package/.claude/skills/mastermind-skills/bootstrap.md +0 -190
- package/.claude/skills/mastermind-skills/budgets.md +0 -237
- package/.claude/skills/mastermind-skills/build.md +0 -170
- package/.claude/skills/mastermind-skills/code-quality-reviewer-prompt.md +0 -60
- package/.claude/skills/mastermind-skills/companies.md +0 -256
- package/.claude/skills/mastermind-skills/content.md +0 -197
- package/.claude/skills/mastermind-skills/costs.md +0 -151
- package/.claude/skills/mastermind-skills/createorg.md +0 -862
- package/.claude/skills/mastermind-skills/debug.md +0 -232
- package/.claude/skills/mastermind-skills/design.md +0 -189
- package/.claude/skills/mastermind-skills/diagnose.md +0 -249
- package/.claude/skills/mastermind-skills/env.md +0 -198
- package/.claude/skills/mastermind-skills/environments.md +0 -250
- package/.claude/skills/mastermind-skills/execute.md +0 -104
- package/.claude/skills/mastermind-skills/export.md +0 -333
- package/.claude/skills/mastermind-skills/finance.md +0 -166
- package/.claude/skills/mastermind-skills/finish.md +0 -251
- package/.claude/skills/mastermind-skills/goal-detail.md +0 -255
- package/.claude/skills/mastermind-skills/goals.md +0 -149
- package/.claude/skills/mastermind-skills/heartbeat.md +0 -164
- package/.claude/skills/mastermind-skills/idea.md +0 -1142
- package/.claude/skills/mastermind-skills/implementer-prompt.md +0 -109
- package/.claude/skills/mastermind-skills/import.md +0 -281
- package/.claude/skills/mastermind-skills/inbox.md +0 -214
- package/.claude/skills/mastermind-skills/instance-settings.md +0 -315
- package/.claude/skills/mastermind-skills/instance.md +0 -233
- package/.claude/skills/mastermind-skills/invite-landing.md +0 -227
- package/.claude/skills/mastermind-skills/invites.md +0 -254
- package/.claude/skills/mastermind-skills/issue-detail.md +0 -291
- package/.claude/skills/mastermind-skills/issues.md +0 -235
- package/.claude/skills/mastermind-skills/join-queue.md +0 -170
- package/.claude/skills/mastermind-skills/liveness.md +0 -392
- package/.claude/skills/mastermind-skills/marketing.md +0 -228
- package/.claude/skills/mastermind-skills/memory.md +0 -321
- package/.claude/skills/mastermind-skills/monitor.md +0 -1284
- package/.claude/skills/mastermind-skills/monotask.md +0 -350
- package/.claude/skills/mastermind-skills/my-issues.md +0 -146
- package/.claude/skills/mastermind-skills/new-agent.md +0 -241
- package/.claude/skills/mastermind-skills/ops.md +0 -168
- package/.claude/skills/mastermind-skills/org-chart.md +0 -209
- package/.claude/skills/mastermind-skills/org-settings.md +0 -254
- package/.claude/skills/mastermind-skills/orgs.md +0 -98
- package/.claude/skills/mastermind-skills/orgstatus.md +0 -194
- package/.claude/skills/mastermind-skills/plan-to-tasks.md +0 -136
- package/.claude/skills/mastermind-skills/plan.md +0 -198
- package/.claude/skills/mastermind-skills/plugin-manager.md +0 -241
- package/.claude/skills/mastermind-skills/plugin-settings.md +0 -273
- package/.claude/skills/mastermind-skills/plugins.md +0 -190
- package/.claude/skills/mastermind-skills/profile.md +0 -187
- package/.claude/skills/mastermind-skills/project-detail.md +0 -249
- package/.claude/skills/mastermind-skills/project-workspace.md +0 -244
- package/.claude/skills/mastermind-skills/projects.md +0 -164
- package/.claude/skills/mastermind-skills/receive-review.md +0 -213
- package/.claude/skills/mastermind-skills/references/copywriting-frameworks.md +0 -181
- package/.claude/skills/mastermind-skills/references/persuasion-psychology.md +0 -158
- package/.claude/skills/mastermind-skills/release.md +0 -168
- package/.claude/skills/mastermind-skills/research.md +0 -168
- package/.claude/skills/mastermind-skills/review.md +0 -230
- package/.claude/skills/mastermind-skills/routine-detail.md +0 -253
- package/.claude/skills/mastermind-skills/routines.md +0 -203
- package/.claude/skills/mastermind-skills/runorg.md +0 -714
- package/.claude/skills/mastermind-skills/sales.md +0 -170
- package/.claude/skills/mastermind-skills/search.md +0 -186
- package/.claude/skills/mastermind-skills/secrets.md +0 -199
- package/.claude/skills/mastermind-skills/skill-builder.md +0 -274
- package/.claude/skills/mastermind-skills/skills.md +0 -156
- package/.claude/skills/mastermind-skills/spec-reviewer-prompt.md +0 -63
- package/.claude/skills/mastermind-skills/stoporg.md +0 -138
- package/.claude/skills/mastermind-skills/taskdev.md +0 -307
- package/.claude/skills/mastermind-skills/tasks.md +0 -149
- package/.claude/skills/mastermind-skills/tdd.md +0 -394
- package/.claude/skills/mastermind-skills/techport.md +0 -743
- package/.claude/skills/mastermind-skills/threads.md +0 -259
- package/.claude/skills/mastermind-skills/tree-control.md +0 -250
- package/.claude/skills/mastermind-skills/verify.md +0 -196
- package/.claude/skills/mastermind-skills/wiki.md +0 -314
- package/.claude/skills/mastermind-skills/workspace-detail.md +0 -317
- package/.claude/skills/mastermind-skills/workspaces.md +0 -261
- package/.claude/skills/mastermind-skills/worktree.md +0 -215
- package/.claude/skills/monodesign/SKILL.md +0 -333
- package/.claude/skills/monodesign/adapt.md +0 -53
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
- package/.claude/skills/monodesign/animate.md +0 -65
- package/.claude/skills/monodesign/audit.md +0 -89
- package/.claude/skills/monodesign/bolder.md +0 -50
- package/.claude/skills/monodesign/clarify.md +0 -64
- package/.claude/skills/monodesign/colorize.md +0 -68
- package/.claude/skills/monodesign/craft.md +0 -51
- package/.claude/skills/monodesign/critique.md +0 -66
- package/.claude/skills/monodesign/delight.md +0 -47
- package/.claude/skills/monodesign/distill.md +0 -56
- package/.claude/skills/monodesign/document.md +0 -80
- package/.claude/skills/monodesign/extract.md +0 -74
- package/.claude/skills/monodesign/harden.md +0 -65
- package/.claude/skills/monodesign/live.md +0 -59
- package/.claude/skills/monodesign/onboard.md +0 -50
- package/.claude/skills/monodesign/optimize.md +0 -64
- package/.claude/skills/monodesign/overdrive.md +0 -56
- package/.claude/skills/monodesign/polish.md +0 -68
- package/.claude/skills/monodesign/quieter.md +0 -57
- package/.claude/skills/monodesign/reference/adapt.md +0 -190
- package/.claude/skills/monodesign/reference/animate.md +0 -175
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -359
- package/.claude/skills/monodesign/reference/audit.md +0 -133
- package/.claude/skills/monodesign/reference/bolder.md +0 -113
- package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
- package/.claude/skills/monodesign/reference/brand.md +0 -114
- package/.claude/skills/monodesign/reference/clarify.md +0 -174
- package/.claude/skills/monodesign/reference/codex.md +0 -107
- package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
- package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
- package/.claude/skills/monodesign/reference/colorize.md +0 -154
- package/.claude/skills/monodesign/reference/component-specs.md +0 -260
- package/.claude/skills/monodesign/reference/component-states.md +0 -274
- package/.claude/skills/monodesign/reference/component-system.md +0 -358
- package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
- package/.claude/skills/monodesign/reference/craft.md +0 -196
- package/.claude/skills/monodesign/reference/critique.md +0 -213
- package/.claude/skills/monodesign/reference/delight.md +0 -302
- package/.claude/skills/monodesign/reference/design-principles.md +0 -246
- package/.claude/skills/monodesign/reference/distill.md +0 -111
- package/.claude/skills/monodesign/reference/document.md +0 -427
- package/.claude/skills/monodesign/reference/extract.md +0 -69
- package/.claude/skills/monodesign/reference/harden.md +0 -347
- package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
- package/.claude/skills/monodesign/reference/hooks.md +0 -99
- package/.claude/skills/monodesign/reference/image-prompts.md +0 -130
- package/.claude/skills/monodesign/reference/interaction-design.md +0 -195
- package/.claude/skills/monodesign/reference/layout.md +0 -141
- package/.claude/skills/monodesign/reference/live.md +0 -622
- package/.claude/skills/monodesign/reference/motion-design.md +0 -109
- package/.claude/skills/monodesign/reference/onboard.md +0 -234
- package/.claude/skills/monodesign/reference/optimize.md +0 -258
- package/.claude/skills/monodesign/reference/overdrive.md +0 -130
- package/.claude/skills/monodesign/reference/personas.md +0 -179
- package/.claude/skills/monodesign/reference/polish.md +0 -233
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
- package/.claude/skills/monodesign/reference/product.md +0 -62
- package/.claude/skills/monodesign/reference/quieter.md +0 -99
- package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
- package/.claude/skills/monodesign/reference/shape.md +0 -151
- package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
- package/.claude/skills/monodesign/reference/teach.md +0 -156
- package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
- package/.claude/skills/monodesign/reference/typeset.md +0 -124
- package/.claude/skills/monodesign/reference/typography.md +0 -159
- package/.claude/skills/monodesign/reference/ux-research.md +0 -143
- package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
- package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
- package/.claude/skills/monodesign/shape.md +0 -71
- package/.claude/skills/monodesign/teach.md +0 -69
- package/.claude/skills/monodesign/typeset.md +0 -59
- package/.claude/skills/monolean/SKILL.md +0 -118
- package/.claude/skills/monolean-audit/SKILL.md +0 -41
- package/.claude/skills/monolean-debt/SKILL.md +0 -46
- package/.claude/skills/monolean-help/SKILL.md +0 -60
- package/.claude/skills/monolean-review/SKILL.md +0 -57
- package/.claude/skills/monomind/.monomind/registry.json +0 -6
- package/.claude/skills/monomind/browse-agentcore.md +0 -115
- package/.claude/skills/monomind/browse-electron.md +0 -188
- package/.claude/skills/monomind/browse-qa.md +0 -228
- package/.claude/skills/monomind/browse-references/authentication.md +0 -161
- package/.claude/skills/monomind/browse-references/trust-boundaries.md +0 -40
- package/.claude/skills/monomind/browse-references/video-recording.md +0 -83
- package/.claude/skills/monomind/browse-slack.md +0 -188
- package/.claude/skills/monomind/browse-vercel.md +0 -239
- package/.claude/skills/monomind/browse.md +0 -724
- package/.claude/skills/monomotion/SKILL.md +0 -145
- package/.claude/skills/monomotion/rules/api-control.md +0 -139
- package/.claude/skills/monomotion/rules/effects.md +0 -109
- package/.claude/skills/monomotion/rules/integration.md +0 -140
- package/.claude/skills/monomotion/rules/scroll.md +0 -131
- package/.claude/skills/monomotion/rules/sequencing.md +0 -105
- package/.claude/skills/monomotion/rules/svg.md +0 -101
- package/.claude/skills/monomotion/rules/text.md +0 -119
- package/.claude/skills/pair-programming/SKILL.md +0 -1202
- package/.claude/skills/performance-analysis/SKILL.md +0 -560
- package/.claude/skills/skill-builder/SKILL.md +0 -910
- package/.claude/skills/sparc-methodology/SKILL.md +0 -950
- package/.claude/skills/specialagent/SKILL.md +0 -208
- package/.claude/skills/stop-slop/SKILL.md +0 -67
- package/.claude/skills/stop-slop/references/examples.md +0 -61
- package/.claude/skills/stop-slop/references/phrases.md +0 -130
- package/.claude/skills/stop-slop/references/structures.md +0 -136
- package/.claude/skills/swarm-advanced/SKILL.md +0 -937
- package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
- package/.claude/skills/verification-quality/SKILL.md +0 -674
- package/.claude/workflows/feature-dev.yaml +0 -18
- package/.claude/workflows/security-audit.yaml +0 -10
- package/packages/@monomind/cli/.claude/agents/generated/case-analyst.md +0 -50
- package/packages/@monomind/cli/.claude/agents/generated/channel-intelligence-director.md +0 -87
- package/packages/@monomind/cli/.claude/agents/generated/chief-growth-officer.md +0 -88
- package/packages/@monomind/cli/.claude/agents/generated/churn-analyst.md +0 -53
- package/packages/@monomind/cli/.claude/agents/generated/code-reviewer.md +0 -55
- package/packages/@monomind/cli/.claude/agents/generated/code-validator.md +0 -57
- package/packages/@monomind/cli/.claude/agents/generated/complexity-scanner.md +0 -56
- package/packages/@monomind/cli/.claude/agents/generated/content-seo-strategist.md +0 -90
- package/packages/@monomind/cli/.claude/agents/generated/copy-editor.md +0 -45
- package/packages/@monomind/cli/.claude/agents/generated/court-reporter.md +0 -50
- package/packages/@monomind/cli/.claude/agents/generated/defender.md +0 -51
- package/packages/@monomind/cli/.claude/agents/generated/devbot-orchestrator.md +0 -58
- package/packages/@monomind/cli/.claude/agents/generated/devbot-planner.md +0 -63
- package/packages/@monomind/cli/.claude/agents/generated/developer-community-strategist.md +0 -91
- package/packages/@monomind/cli/.claude/agents/generated/editor-in-chief.md +0 -45
- package/packages/@monomind/cli/.claude/agents/generated/fact-checker.md +0 -45
- package/packages/@monomind/cli/.claude/agents/generated/impact-assessor.md +0 -54
- package/packages/@monomind/cli/.claude/agents/generated/judge.md +0 -51
- package/packages/@monomind/cli/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
- package/packages/@monomind/cli/.claude/agents/generated/prosecutor.md +0 -51
- package/packages/@monomind/cli/.claude/agents/generated/reporter.md +0 -45
- package/packages/@monomind/cli/.claude/agents/generated/social-media-strategist.md +0 -91
- package/packages/@monomind/cli/.claude/agents/generated/video-visual-strategist.md +0 -90
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/boss.md +0 -113
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/critic-architect.md +0 -132
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/git-manager.md +0 -145
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/idea-generator.md +0 -95
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/implementer.md +0 -112
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/integration-planner.md +0 -112
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/source-analyst.md +0 -103
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/target-analyst.md +0 -118
- package/packages/@monomind/cli/.claude/agents/reengineer-squad/tester.md +0 -105
- package/packages/@monomind/cli/.claude/agents/sparc/architecture.md +0 -453
- package/packages/@monomind/cli/.claude/agents/sparc/pseudocode.md +0 -299
- package/packages/@monomind/cli/.claude/agents/sparc/refinement.md +0 -504
- package/packages/@monomind/cli/.claude/agents/sparc/specification.md +0 -258
- package/packages/@monomind/cli/.claude/agents/templates/implementer-sparc-coder.md +0 -231
- package/packages/@monomind/cli/.claude/commands/sparc/analyzer.md +0 -35
- package/packages/@monomind/cli/.claude/commands/sparc/architect.md +0 -36
- package/packages/@monomind/cli/.claude/commands/sparc/ask.md +0 -56
- package/packages/@monomind/cli/.claude/commands/sparc/batch-executor.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/code.md +0 -48
- package/packages/@monomind/cli/.claude/commands/sparc/coder.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/debug.md +0 -42
- package/packages/@monomind/cli/.claude/commands/sparc/debugger.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/designer.md +0 -36
- package/packages/@monomind/cli/.claude/commands/sparc/devops.md +0 -68
- package/packages/@monomind/cli/.claude/commands/sparc/docs-writer.md +0 -39
- package/packages/@monomind/cli/.claude/commands/sparc/documenter.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/innovator.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/integration.md +0 -42
- package/packages/@monomind/cli/.claude/commands/sparc/mcp.md +0 -76
- package/packages/@monomind/cli/.claude/commands/sparc/memory-manager.md +0 -57
- package/packages/@monomind/cli/.claude/commands/sparc/optimizer.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/orchestrator.md +0 -70
- package/packages/@monomind/cli/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
- package/packages/@monomind/cli/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
- package/packages/@monomind/cli/.claude/commands/sparc/researcher.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/reviewer.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/security-review.md +0 -39
- package/packages/@monomind/cli/.claude/commands/sparc/sparc-modes.md +0 -120
- package/packages/@monomind/cli/.claude/commands/sparc/sparc.md +0 -71
- package/packages/@monomind/cli/.claude/commands/sparc/spec-pseudocode.md +0 -39
- package/packages/@monomind/cli/.claude/commands/sparc/supabase-admin.md +0 -301
- package/packages/@monomind/cli/.claude/commands/sparc/swarm-coordinator.md +0 -50
- package/packages/@monomind/cli/.claude/commands/sparc/tdd.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/tester.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc/tutorial.md +0 -38
- package/packages/@monomind/cli/.claude/commands/sparc/workflow-manager.md +0 -37
- package/packages/@monomind/cli/.claude/commands/sparc.md +0 -112
- package/packages/@monomind/cli/.claude/helpers/auto-memory-hook.mjs +0 -503
- package/packages/@monomind/cli/.claude/skills/sparc-methodology/SKILL.md +0 -950
- package/packages/@monomind/cli/dist/src/capabilities/enrichment.d.ts +0 -44
- package/packages/@monomind/cli/dist/src/capabilities/enrichment.js +0 -141
- package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.d.ts +0 -14
- package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.js +0 -295
- package/packages/@monomind/cli/dist/src/commands/analyze-graph.d.ts +0 -14
- package/packages/@monomind/cli/dist/src/commands/analyze-graph.js +0 -304
- package/packages/@monomind/cli/dist/src/commands/claims.d.ts +0 -10
- package/packages/@monomind/cli/dist/src/commands/claims.js +0 -650
- package/packages/@monomind/cli/dist/src/commands/daemon.d.ts +0 -8
- package/packages/@monomind/cli/dist/src/commands/daemon.js +0 -681
- package/packages/@monomind/cli/dist/src/commands/deployment.d.ts +0 -10
- package/packages/@monomind/cli/dist/src/commands/deployment.js +0 -706
- package/packages/@monomind/cli/dist/src/commands/enrich.d.ts +0 -10
- package/packages/@monomind/cli/dist/src/commands/enrich.js +0 -58
- package/packages/@monomind/cli/dist/src/commands/issues.d.ts +0 -21
- package/packages/@monomind/cli/dist/src/commands/issues.js +0 -575
- package/packages/@monomind/cli/dist/src/commands/workflow.d.ts +0 -8
- package/packages/@monomind/cli/dist/src/commands/workflow.js +0 -677
- package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +0 -717
- package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +0 -198
- package/packages/@monomind/cli/dist/src/services/claim-service.js +0 -890
- package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +0 -311
- package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +0 -1183
- package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +0 -248
- package/packages/@monomind/cli/dist/src/services/worker-daemon.js +0 -1417
- package/packages/@monomind/cli/dist/src/ui/.monomind/capture/active-run.json +0 -1
- package/packages/@monomind/guidance/README.md +0 -87
- package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
- package/packages/@monomind/guidance/dist/adversarial.js +0 -572
- package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
- package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
- package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
- package/packages/@monomind/guidance/dist/artifacts.js +0 -356
- package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
- package/packages/@monomind/guidance/dist/authority.js +0 -558
- package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
- package/packages/@monomind/guidance/dist/capabilities.js +0 -485
- package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
- package/packages/@monomind/guidance/dist/coherence.js +0 -378
- package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
- package/packages/@monomind/guidance/dist/compiler.js +0 -425
- package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
- package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
- package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
- package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
- package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
- package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
- package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
- package/packages/@monomind/guidance/dist/evolution.js +0 -500
- package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
- package/packages/@monomind/guidance/dist/gates.js +0 -302
- package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
- package/packages/@monomind/guidance/dist/gateway.js +0 -452
- package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
- package/packages/@monomind/guidance/dist/generators.js +0 -682
- package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
- package/packages/@monomind/guidance/dist/headless.js +0 -342
- package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
- package/packages/@monomind/guidance/dist/hooks.js +0 -347
- package/packages/@monomind/guidance/dist/index.d.ts +0 -203
- package/packages/@monomind/guidance/dist/index.js +0 -320
- package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
- package/packages/@monomind/guidance/dist/ledger.js +0 -375
- package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
- package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
- package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
- package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
- package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
- package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
- package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
- package/packages/@monomind/guidance/dist/optimizer.js +0 -329
- package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
- package/packages/@monomind/guidance/dist/persistence.js +0 -464
- package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
- package/packages/@monomind/guidance/dist/proof.js +0 -238
- package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
- package/packages/@monomind/guidance/dist/retriever.js +0 -394
- package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
- package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
- package/packages/@monomind/guidance/dist/temporal.d.ts +0 -428
- package/packages/@monomind/guidance/dist/temporal.js +0 -660
- package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
- package/packages/@monomind/guidance/dist/trust.js +0 -474
- package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
- package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
- package/packages/@monomind/guidance/dist/types.d.ts +0 -378
- package/packages/@monomind/guidance/dist/types.js +0 -10
- package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
- package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
- package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
- package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
- package/packages/@monomind/guidance/package.json +0 -192
|
@@ -1,219 +1,112 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Pattern Store MCP Tools — "neural" namespace (legacy name, kept for API compat)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* These tools embed text as vectors and search by cosine similarity.
|
|
5
|
+
* No ML training, gradient descent, or neural network inference occurs.
|
|
6
|
+
* The "train" tool embeds and stores; the "predict" tool finds similar stored
|
|
7
|
+
* patterns. Embeddings come from the shared memory/embedding-operations.ts
|
|
8
|
+
* pipeline (LanceDB bridge -> ONNX -> deterministic hash fallback).
|
|
5
9
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - Falls back to deterministic hash-based embeddings otherwise
|
|
9
|
-
* - Pattern storage and search with cosine similarity (real math in all tiers)
|
|
10
|
-
* - Training stores patterns as searchable embeddings (not simulated)
|
|
11
|
-
*
|
|
12
|
-
* Note: The lean build has no neural training. The full loop lives on monoes-full-loop.
|
|
10
|
+
* All pattern storage is delegated to intelligence.ts's LocalReasoningBank
|
|
11
|
+
* (single source of truth for patterns.json). No separate models.json store.
|
|
13
12
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
: false;
|
|
32
|
-
if (probe && probe.length > 0 && hasNonZero) {
|
|
33
|
-
realEmbeddings = { embed: async (text) => Array.from(await onnxEmb.embed(text)) };
|
|
34
|
-
embeddingServiceName = 'monovector/onnx';
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
// No ONNX embedding provider available, will use hash fallback
|
|
41
|
-
}
|
|
42
|
-
// Storage paths
|
|
43
|
-
const STORAGE_DIR = '.monomind';
|
|
44
|
-
const NEURAL_DIR = 'neural';
|
|
45
|
-
const MODELS_FILE = 'models.json';
|
|
46
|
-
const PATTERNS_FILE = 'patterns.json';
|
|
47
|
-
function getNeuralDir() {
|
|
48
|
-
return join(getProjectCwd(), STORAGE_DIR, NEURAL_DIR);
|
|
49
|
-
}
|
|
50
|
-
function getNeuralPath() {
|
|
51
|
-
return join(getNeuralDir(), MODELS_FILE);
|
|
52
|
-
}
|
|
53
|
-
function ensureNeuralDir() {
|
|
54
|
-
const dir = getNeuralDir();
|
|
55
|
-
if (!existsSync(dir)) {
|
|
56
|
-
mkdirSync(dir, { recursive: true });
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
function loadNeuralStore() {
|
|
13
|
+
const RESERVED_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
14
|
+
const MAX_MODEL_ID_LEN = 256;
|
|
15
|
+
const MAX_PATTERNS = 10000;
|
|
16
|
+
const MAX_TRAINING_ENTRIES = 1000;
|
|
17
|
+
const MAX_TEXT_LENGTH = 64 * 1024;
|
|
18
|
+
const MAX_SEARCH_QUERY_LENGTH = 16 * 1024;
|
|
19
|
+
// Embeddings: delegate to the shared embedding pipeline (LanceDB bridge -> ONNX ->
|
|
20
|
+
// deterministic hash fallback) in memory/embedding-operations.ts.
|
|
21
|
+
let lastEmbeddingModel = 'unknown';
|
|
22
|
+
/**
|
|
23
|
+
* Generate embedding via the shared pipeline (LanceDB bridge -> ONNX -> deterministic
|
|
24
|
+
* hash), same one used by CLI `neural` commands and memory search. Falls back to a
|
|
25
|
+
* local deterministic hash only if the shared module fails to load entirely.
|
|
26
|
+
*/
|
|
27
|
+
async function generateEmbedding(text, dims = 384) {
|
|
28
|
+
if (!text)
|
|
29
|
+
return new Array(dims).fill(0);
|
|
60
30
|
try {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
const raw = JSON.parse(readFileSync(path, 'utf-8'));
|
|
67
|
-
// Strip proto-polluting keys from top-level containers
|
|
68
|
-
const models = {};
|
|
69
|
-
for (const [k, v] of Object.entries(raw.models ?? {})) {
|
|
70
|
-
if (!NEURAL_RESERVED_KEYS.has(k))
|
|
71
|
-
models[k] = v;
|
|
72
|
-
}
|
|
73
|
-
const patterns = {};
|
|
74
|
-
for (const [k, v] of Object.entries(raw.patterns ?? {})) {
|
|
75
|
-
if (!NEURAL_RESERVED_KEYS.has(k))
|
|
76
|
-
patterns[k] = v;
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
models: models,
|
|
80
|
-
patterns: patterns,
|
|
81
|
-
version: typeof raw.version === 'string' ? raw.version : '3.0.0',
|
|
82
|
-
};
|
|
83
|
-
}
|
|
31
|
+
const { generateEmbedding: sharedGenerateEmbedding } = await import('../memory/embedding-operations.js');
|
|
32
|
+
const result = await sharedGenerateEmbedding(text);
|
|
33
|
+
lastEmbeddingModel = result.model;
|
|
34
|
+
return result.embedding;
|
|
84
35
|
}
|
|
85
36
|
catch {
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
function saveNeuralStore(store) {
|
|
91
|
-
ensureNeuralDir();
|
|
92
|
-
const dest = getNeuralPath();
|
|
93
|
-
const tmp = `${dest}.${process.pid}.${Date.now()}.tmp`;
|
|
94
|
-
writeFileSync(tmp, JSON.stringify(store, null, 2), 'utf-8');
|
|
95
|
-
renameSync(tmp, dest);
|
|
96
|
-
}
|
|
97
|
-
// Generate embedding - uses real ML embeddings if available, falls back to deterministic hash
|
|
98
|
-
async function generateEmbedding(text, dims = 384) {
|
|
99
|
-
// If real embeddings available and text provided, use them
|
|
100
|
-
if (realEmbeddings && text) {
|
|
101
|
-
try {
|
|
102
|
-
return await realEmbeddings.embed(text);
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
// Fall back to hash-based
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
// Hash-based deterministic embedding (better than pure random for consistency)
|
|
109
|
-
if (text) {
|
|
110
|
-
const hash = text.split('').reduce((acc, char, i) => {
|
|
111
|
-
return acc + char.charCodeAt(0) * (i + 1);
|
|
112
|
-
}, 0);
|
|
113
|
-
// Use hash to seed a deterministic embedding
|
|
37
|
+
// memory/embedding-operations.js unavailable — deterministic hash fallback
|
|
38
|
+
lastEmbeddingModel = 'hash-fallback';
|
|
39
|
+
const hash = text.split('').reduce((acc, char, i) => acc + char.charCodeAt(0) * (i + 1), 0);
|
|
114
40
|
const embedding = [];
|
|
115
41
|
let seed = hash;
|
|
116
42
|
for (let i = 0; i < dims; i++) {
|
|
117
|
-
// Simple LCG random with seed
|
|
118
43
|
seed = (seed * 1103515245 + 12345) & 0x7fffffff;
|
|
119
44
|
embedding.push((seed / 0x7fffffff) * 2 - 1);
|
|
120
45
|
}
|
|
121
46
|
return embedding;
|
|
122
47
|
}
|
|
123
|
-
// No text provided — return zero vector (callers should always provide text)
|
|
124
|
-
return new Array(dims).fill(0);
|
|
125
48
|
}
|
|
126
|
-
|
|
127
|
-
function
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
for (let i = 0; i < a.length; i++) {
|
|
135
|
-
dotProduct += a[i] * b[i];
|
|
136
|
-
normA += a[i] * a[i];
|
|
137
|
-
normB += b[i] * b[i];
|
|
138
|
-
}
|
|
139
|
-
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB) || 1);
|
|
49
|
+
/** Truncate and validate a modelId string */
|
|
50
|
+
function sanitizeModelId(raw) {
|
|
51
|
+
if (typeof raw !== 'string')
|
|
52
|
+
return null;
|
|
53
|
+
const id = raw.length > MAX_MODEL_ID_LEN ? raw.slice(0, MAX_MODEL_ID_LEN) : raw;
|
|
54
|
+
if (RESERVED_KEYS.has(id))
|
|
55
|
+
return null;
|
|
56
|
+
return id;
|
|
140
57
|
}
|
|
141
58
|
export const neuralTools = [
|
|
142
59
|
{
|
|
143
60
|
name: 'neural_train',
|
|
144
|
-
description: '
|
|
61
|
+
description: 'Embed text as vectors and store as named patterns for later similarity search (no ML training occurs)',
|
|
145
62
|
category: 'neural',
|
|
146
63
|
inputSchema: {
|
|
147
64
|
type: 'object',
|
|
148
65
|
properties: {
|
|
149
|
-
modelId: { type: 'string', description: '
|
|
150
|
-
modelType: { type: 'string', enum: ['
|
|
151
|
-
epochs: { type: 'number', description: '
|
|
152
|
-
learningRate: { type: 'number', description: '
|
|
153
|
-
data: { type: 'object', description: '
|
|
66
|
+
modelId: { type: 'string', description: 'Store ID (groups related patterns)' },
|
|
67
|
+
modelType: { type: 'string', enum: ['pattern', 'embedding'], description: 'Store type' },
|
|
68
|
+
epochs: { type: 'number', description: 'Deprecated — ignored. Patterns are embedded and stored, not trained.' },
|
|
69
|
+
learningRate: { type: 'number', description: 'Deprecated — ignored. No gradient-based training occurs.' },
|
|
70
|
+
data: { type: 'object', description: 'Data to embed and store (array of strings or {text/content/label} objects)' },
|
|
154
71
|
},
|
|
155
72
|
required: ['modelType'],
|
|
156
73
|
},
|
|
157
74
|
handler: async (input) => {
|
|
158
|
-
const store = loadNeuralStore();
|
|
159
|
-
// Cap modelId to prevent DoS via oversized object keys written to the neural store JSON.
|
|
160
|
-
const MAX_MODEL_ID_LEN = 256;
|
|
161
75
|
const rawModelId = input.modelId || `model-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
162
|
-
const modelId =
|
|
163
|
-
|
|
164
|
-
: rawModelId;
|
|
165
|
-
const RESERVED_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
166
|
-
if (RESERVED_KEYS.has(modelId)) {
|
|
76
|
+
const modelId = sanitizeModelId(rawModelId);
|
|
77
|
+
if (modelId === null) {
|
|
167
78
|
return { success: false, error: 'Invalid modelId' };
|
|
168
79
|
}
|
|
169
|
-
const
|
|
170
|
-
if (Object.keys(store.patterns ?? {}).length >= MAX_PATTERNS) {
|
|
171
|
-
return { success: false, error: `Pattern store full (max ${MAX_PATTERNS}). Run neural_compress first.` };
|
|
172
|
-
}
|
|
173
|
-
const MAX_MODELS = 100;
|
|
174
|
-
if (Object.keys(store.models ?? {}).length >= MAX_MODELS) {
|
|
175
|
-
return { success: false, error: `Model store full (max ${MAX_MODELS}). Delete old models first.` };
|
|
176
|
-
}
|
|
177
|
-
// Runtime-validate modelType against the allowed enum. The JSON schema
|
|
178
|
-
// declares an enum but callers that bypass schema validation (e.g. direct
|
|
179
|
-
// MCP calls) can pass arbitrary strings, which would be stored verbatim.
|
|
180
|
-
const VALID_MODEL_TYPES = new Set(['moe', 'transformer', 'classifier', 'embedding']);
|
|
80
|
+
const VALID_MODEL_TYPES = new Set(['pattern', 'embedding']);
|
|
181
81
|
const rawModelType = input.modelType;
|
|
182
82
|
if (!rawModelType || !VALID_MODEL_TYPES.has(rawModelType)) {
|
|
183
|
-
return { success: false, error: `Invalid modelType "${rawModelType}". Must be one of:
|
|
83
|
+
return { success: false, error: `Invalid modelType "${rawModelType}". Must be one of: pattern, embedding` };
|
|
184
84
|
}
|
|
185
85
|
const modelType = rawModelType;
|
|
186
|
-
//
|
|
187
|
-
const
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
};
|
|
202
|
-
store.models[modelId] = model;
|
|
203
|
-
saveNeuralStore(store);
|
|
204
|
-
// Real training: embed training data and store as searchable patterns.
|
|
205
|
-
// Cap input array length and re-check the pattern cap inside the loop —
|
|
206
|
-
// the pre-loop check at line 199 alone allowed an attacker to bypass
|
|
207
|
-
// MAX_PATTERNS by passing a 100k-entry array.
|
|
208
|
-
const MAX_TRAINING_ENTRIES = 1000;
|
|
209
|
-
const MAX_TEXT_LENGTH = 64 * 1024;
|
|
86
|
+
// Initialize intelligence system (single source of truth)
|
|
87
|
+
const { initializeIntelligence, getReasoningBank, getAllPatterns, flushPatterns } = await import('../memory/intelligence.js');
|
|
88
|
+
const init = await initializeIntelligence();
|
|
89
|
+
if (!init.success) {
|
|
90
|
+
return { success: false, error: 'Failed to initialize intelligence system' };
|
|
91
|
+
}
|
|
92
|
+
const bank = getReasoningBank();
|
|
93
|
+
if (!bank) {
|
|
94
|
+
return { success: false, error: 'ReasoningBank not available' };
|
|
95
|
+
}
|
|
96
|
+
// Check pattern capacity
|
|
97
|
+
const existingPatterns = await getAllPatterns();
|
|
98
|
+
if (existingPatterns.length >= MAX_PATTERNS) {
|
|
99
|
+
return { success: false, error: `Pattern store full (max ${MAX_PATTERNS}). Run neural_compress first.` };
|
|
100
|
+
}
|
|
210
101
|
const trainingData = input.data;
|
|
211
102
|
let patternsStored = 0;
|
|
212
103
|
if (trainingData) {
|
|
213
104
|
const rawEntries = Array.isArray(trainingData) ? trainingData : [trainingData];
|
|
214
105
|
const entries = rawEntries.slice(0, MAX_TRAINING_ENTRIES);
|
|
215
106
|
for (let i = 0; i < entries.length; i++) {
|
|
216
|
-
|
|
107
|
+
// Re-check capacity inside loop to prevent bypass via large arrays
|
|
108
|
+
const currentPatterns = await getAllPatterns();
|
|
109
|
+
if (currentPatterns.length >= MAX_PATTERNS)
|
|
217
110
|
break;
|
|
218
111
|
const entry = entries[i];
|
|
219
112
|
let text = typeof entry === 'string' ? entry
|
|
@@ -227,166 +120,80 @@ export const neuralTools = [
|
|
|
227
120
|
text = text.slice(0, MAX_TEXT_LENGTH);
|
|
228
121
|
const embedding = await generateEmbedding(text, 384);
|
|
229
122
|
const patternId = `${modelId}-train-${i}`;
|
|
230
|
-
store
|
|
123
|
+
bank.store({
|
|
231
124
|
id: patternId,
|
|
232
|
-
name: typeof entry === 'object' && entry !== null && 'label' in entry
|
|
233
|
-
? String(entry.label) : text.slice(0, 100),
|
|
234
125
|
type: modelType,
|
|
235
126
|
embedding,
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
usageCount: 0,
|
|
239
|
-
};
|
|
240
|
-
patternsStored++;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
model.status = 'ready';
|
|
244
|
-
model.accuracy = patternsStored > 0 ? 1.0 : 0; // accuracy = data stored, not simulated
|
|
245
|
-
model.trainedAt = new Date().toISOString();
|
|
246
|
-
saveNeuralStore(store);
|
|
247
|
-
// Mirror patterns to patterns.json so CLI commands (neural patterns list,
|
|
248
|
-
// neural predict) can find patterns trained via MCP and vice versa.
|
|
249
|
-
if (patternsStored > 0) {
|
|
250
|
-
try {
|
|
251
|
-
const patternsPath = join(getNeuralDir(), PATTERNS_FILE);
|
|
252
|
-
let existing = [];
|
|
253
|
-
if (existsSync(patternsPath) && statSync(patternsPath).size <= MAX_NEURAL_STORE_BYTES) {
|
|
254
|
-
const raw = readFileSync(patternsPath, 'utf-8');
|
|
255
|
-
const parsed = JSON.parse(raw);
|
|
256
|
-
if (Array.isArray(parsed))
|
|
257
|
-
existing = parsed;
|
|
258
|
-
}
|
|
259
|
-
const existingIds = new Set(existing.map(p => p['id']));
|
|
260
|
-
const newEntries = Object.values(store.patterns)
|
|
261
|
-
.filter(p => p.id.startsWith(modelId) && !existingIds.has(p.id))
|
|
262
|
-
.map(p => ({
|
|
263
|
-
id: p.id,
|
|
264
|
-
type: p.type,
|
|
265
|
-
content: p.name,
|
|
127
|
+
content: typeof entry === 'object' && entry !== null && 'label' in entry
|
|
128
|
+
? String(entry.label) : text.slice(0, 100),
|
|
266
129
|
confidence: 0.8,
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
}));
|
|
271
|
-
if (newEntries.length > 0) {
|
|
272
|
-
const merged = [...existing, ...newEntries];
|
|
273
|
-
const tmp = `${patternsPath}.${process.pid}.${Date.now()}.tmp`;
|
|
274
|
-
writeFileSync(tmp, JSON.stringify(merged, null, 2), 'utf-8');
|
|
275
|
-
renameSync(tmp, patternsPath);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
catch {
|
|
279
|
-
// Mirror is best-effort; don't fail the train operation
|
|
130
|
+
metadata: { modelId, index: i, raw: entry },
|
|
131
|
+
});
|
|
132
|
+
patternsStored++;
|
|
280
133
|
}
|
|
281
134
|
}
|
|
135
|
+
// Flush immediately to persist
|
|
136
|
+
flushPatterns();
|
|
137
|
+
const totalPatterns = (await getAllPatterns()).length;
|
|
282
138
|
return {
|
|
283
139
|
success: true,
|
|
284
|
-
_realEmbedding:
|
|
140
|
+
_realEmbedding: lastEmbeddingModel !== 'hash-fallback',
|
|
285
141
|
modelId,
|
|
286
142
|
type: modelType,
|
|
287
|
-
status:
|
|
143
|
+
status: 'ready',
|
|
288
144
|
patternsStored,
|
|
289
|
-
totalPatterns
|
|
290
|
-
epochs,
|
|
291
|
-
trainedAt:
|
|
145
|
+
totalPatterns,
|
|
146
|
+
epochs: 1,
|
|
147
|
+
trainedAt: new Date().toISOString(),
|
|
292
148
|
};
|
|
293
149
|
},
|
|
294
150
|
},
|
|
295
151
|
{
|
|
296
152
|
name: 'neural_predict',
|
|
297
|
-
description: '
|
|
153
|
+
description: 'Find stored patterns most similar to input text via cosine similarity (not ML prediction)',
|
|
298
154
|
category: 'neural',
|
|
299
155
|
inputSchema: {
|
|
300
156
|
type: 'object',
|
|
301
157
|
properties: {
|
|
302
158
|
modelId: { type: 'string', description: 'Model ID to use' },
|
|
303
|
-
input: { type: 'string', description: '
|
|
304
|
-
topK: { type: 'number', description: 'Number of top
|
|
159
|
+
input: { type: 'string', description: 'Text to find similar patterns for' },
|
|
160
|
+
topK: { type: 'number', description: 'Number of top results to return' },
|
|
305
161
|
},
|
|
306
162
|
required: ['input'],
|
|
307
163
|
},
|
|
308
164
|
handler: async (input) => {
|
|
309
|
-
const store = loadNeuralStore();
|
|
310
|
-
// Cap modelId to prevent O(n) hash/compare cost on absurdly long keys.
|
|
311
|
-
const MAX_MODEL_ID_LEN_PRED = 256;
|
|
312
165
|
const rawModelIdPred = input.modelId;
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
const RESERVED_KEYS_PRED = new Set(['__proto__', 'constructor', 'prototype']);
|
|
319
|
-
if (modelId && (RESERVED_KEYS_PRED.has(modelId) || typeof modelId !== 'string')) {
|
|
320
|
-
return { success: false, error: 'Invalid modelId' };
|
|
321
|
-
}
|
|
322
|
-
// Find model or use default
|
|
323
|
-
const model = modelId
|
|
324
|
-
? (Object.hasOwn(store.models, modelId) ? store.models[modelId] : undefined)
|
|
325
|
-
: Object.values(store.models).find(m => m.status === 'ready');
|
|
326
|
-
if (model && model.status !== 'ready') {
|
|
327
|
-
return { success: false, error: 'Model not ready' };
|
|
166
|
+
if (rawModelIdPred) {
|
|
167
|
+
const modelId = sanitizeModelId(rawModelIdPred);
|
|
168
|
+
if (modelId === null) {
|
|
169
|
+
return { success: false, error: 'Invalid modelId' };
|
|
170
|
+
}
|
|
328
171
|
}
|
|
329
|
-
|
|
172
|
+
const inputText = typeof input.input === 'string' ? input.input.slice(0, MAX_SEARCH_QUERY_LENGTH) : '';
|
|
173
|
+
const topK = Math.max(1, Math.min(input.topK || 3, 50));
|
|
174
|
+
const { initializeIntelligence, findSimilarPatterns } = await import('../memory/intelligence.js');
|
|
175
|
+
await initializeIntelligence();
|
|
330
176
|
const startTime = performance.now();
|
|
331
177
|
const embedding = await generateEmbedding(inputText, 384);
|
|
178
|
+
// Use intelligence.ts findSimilarPatterns which handles embedding + search
|
|
179
|
+
const results = await findSimilarPatterns(inputText, {
|
|
180
|
+
k: topK,
|
|
181
|
+
threshold: 0.1,
|
|
182
|
+
});
|
|
332
183
|
const latency = Math.round(performance.now() - startTime);
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
const EARLY_EXIT_THRESHOLD = 0.1;
|
|
338
|
-
const mcpPatterns = Object.values(store.patterns);
|
|
339
|
-
const cliPatternsRaw = [];
|
|
340
|
-
try {
|
|
341
|
-
const cliPath = join(getNeuralDir(), PATTERNS_FILE);
|
|
342
|
-
if (existsSync(cliPath) && statSync(cliPath).size <= MAX_NEURAL_STORE_BYTES) {
|
|
343
|
-
const raw = JSON.parse(readFileSync(cliPath, 'utf-8'));
|
|
344
|
-
if (Array.isArray(raw)) {
|
|
345
|
-
const mcpIds = new Set(mcpPatterns.map(p => p.id));
|
|
346
|
-
for (const p of raw) {
|
|
347
|
-
if (p?.id && !mcpIds.has(p.id) && Array.isArray(p.embedding)) {
|
|
348
|
-
cliPatternsRaw.push(p);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
catch { /* best-effort */ }
|
|
355
|
-
const cliMapped = cliPatternsRaw.map(p => ({
|
|
356
|
-
id: p.id ?? '',
|
|
357
|
-
name: p.content ?? p.name ?? p.type ?? '',
|
|
358
|
-
type: p.type ?? 'general',
|
|
359
|
-
embedding: p.embedding ?? [],
|
|
360
|
-
metadata: {},
|
|
361
|
-
createdAt: new Date().toISOString(),
|
|
362
|
-
usageCount: 0,
|
|
184
|
+
const predictions = results.map(r => ({
|
|
185
|
+
label: r.content || r.type || r.id,
|
|
186
|
+
confidence: r.similarity ?? r.confidence,
|
|
187
|
+
patternId: r.id,
|
|
363
188
|
}));
|
|
364
|
-
const storedPatterns = [...mcpPatterns, ...cliMapped].slice(0, MAX_SCAN);
|
|
365
|
-
let predictions;
|
|
366
|
-
if (storedPatterns.length > 0) {
|
|
367
|
-
const scored = [];
|
|
368
|
-
for (const p of storedPatterns) {
|
|
369
|
-
if (!Array.isArray(p.embedding) || p.embedding.length !== embedding.length)
|
|
370
|
-
continue;
|
|
371
|
-
const conf = Math.max(0, cosineSimilarity(embedding, p.embedding));
|
|
372
|
-
if (conf < EARLY_EXIT_THRESHOLD)
|
|
373
|
-
continue;
|
|
374
|
-
scored.push({ label: p.name || p.type || p.id, confidence: conf, patternId: p.id });
|
|
375
|
-
}
|
|
376
|
-
predictions = scored.sort((a, b) => b.confidence - a.confidence).slice(0, topK);
|
|
377
|
-
}
|
|
378
|
-
else {
|
|
379
|
-
// No patterns stored — no predictions possible
|
|
380
|
-
predictions = [];
|
|
381
|
-
}
|
|
382
189
|
return {
|
|
383
190
|
success: true,
|
|
384
|
-
_realEmbedding:
|
|
385
|
-
_hasStoredPatterns:
|
|
386
|
-
modelId:
|
|
191
|
+
_realEmbedding: lastEmbeddingModel !== 'hash-fallback',
|
|
192
|
+
_hasStoredPatterns: results.length > 0,
|
|
193
|
+
modelId: rawModelIdPred || 'default',
|
|
387
194
|
input: inputText,
|
|
388
195
|
predictions,
|
|
389
|
-
embedding: embedding.slice(0, 8),
|
|
196
|
+
embedding: embedding.slice(0, 8),
|
|
390
197
|
embeddingDims: embedding.length,
|
|
391
198
|
latency,
|
|
392
199
|
};
|
|
@@ -408,116 +215,118 @@ export const neuralTools = [
|
|
|
408
215
|
},
|
|
409
216
|
},
|
|
410
217
|
handler: async (input) => {
|
|
411
|
-
const store = loadNeuralStore();
|
|
412
218
|
const action = input.action || 'list';
|
|
219
|
+
const { initializeIntelligence, getAllPatterns, getPatternsByType, getReasoningBank, findSimilarPatterns, deletePattern, flushPatterns } = await import('../memory/intelligence.js');
|
|
220
|
+
await initializeIntelligence();
|
|
413
221
|
if (action === 'list') {
|
|
414
|
-
const patterns = Object.values(store.patterns);
|
|
415
222
|
const typeFilter = input.type;
|
|
416
|
-
const
|
|
223
|
+
const patterns = typeFilter
|
|
224
|
+
? await getPatternsByType(typeFilter)
|
|
225
|
+
: await getAllPatterns();
|
|
417
226
|
return {
|
|
418
|
-
patterns:
|
|
227
|
+
patterns: patterns.map(p => ({
|
|
419
228
|
id: p.id,
|
|
420
|
-
name: p.
|
|
229
|
+
name: p.content,
|
|
421
230
|
type: p.type,
|
|
422
231
|
usageCount: p.usageCount,
|
|
423
|
-
createdAt: p.createdAt,
|
|
232
|
+
createdAt: typeof p.createdAt === 'number' ? new Date(p.createdAt).toISOString() : p.createdAt,
|
|
424
233
|
})),
|
|
425
|
-
total:
|
|
234
|
+
total: patterns.length,
|
|
426
235
|
};
|
|
427
236
|
}
|
|
428
237
|
if (action === 'get') {
|
|
429
238
|
const patternId = input.patternId;
|
|
430
|
-
if (!patternId ||
|
|
239
|
+
if (!patternId || RESERVED_KEYS.has(patternId)) {
|
|
431
240
|
return { success: false, error: 'Invalid patternId' };
|
|
432
241
|
}
|
|
433
|
-
const
|
|
242
|
+
const bank = getReasoningBank();
|
|
243
|
+
if (!bank) {
|
|
244
|
+
return { success: false, error: 'ReasoningBank not available' };
|
|
245
|
+
}
|
|
246
|
+
const pattern = bank.get(patternId);
|
|
434
247
|
if (!pattern) {
|
|
435
248
|
return { success: false, error: 'Pattern not found' };
|
|
436
249
|
}
|
|
437
|
-
return {
|
|
250
|
+
return {
|
|
251
|
+
success: true,
|
|
252
|
+
pattern: {
|
|
253
|
+
id: pattern.id,
|
|
254
|
+
name: pattern.content,
|
|
255
|
+
type: pattern.type,
|
|
256
|
+
embedding: pattern.embedding,
|
|
257
|
+
metadata: pattern.metadata ?? {},
|
|
258
|
+
createdAt: new Date(pattern.createdAt).toISOString(),
|
|
259
|
+
usageCount: pattern.usageCount,
|
|
260
|
+
},
|
|
261
|
+
};
|
|
438
262
|
}
|
|
439
263
|
if (action === 'store') {
|
|
440
|
-
const
|
|
441
|
-
if (
|
|
264
|
+
const allPatterns = await getAllPatterns();
|
|
265
|
+
if (allPatterns.length >= MAX_PATTERNS) {
|
|
442
266
|
return { success: false, error: `Pattern store full (max ${MAX_PATTERNS}). Run neural_compress first.` };
|
|
443
267
|
}
|
|
444
|
-
const
|
|
445
|
-
// Cap name length to prevent DoS in generateEmbedding (hash path is O(n))
|
|
446
|
-
const MAX_PATTERN_NAME_LENGTH = 16 * 1024; // 16 KB
|
|
268
|
+
const MAX_PATTERN_NAME_LENGTH = 16 * 1024;
|
|
447
269
|
const rawPatternName = input.name || 'Unnamed pattern';
|
|
448
270
|
const patternName = typeof rawPatternName === 'string' && rawPatternName.length > MAX_PATTERN_NAME_LENGTH
|
|
449
271
|
? rawPatternName.slice(0, MAX_PATTERN_NAME_LENGTH)
|
|
450
272
|
: rawPatternName;
|
|
451
|
-
// Generate embedding from pattern name/content
|
|
452
273
|
const embedding = await generateEmbedding(patternName, 384);
|
|
453
|
-
const
|
|
274
|
+
const patternId = `pattern-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
275
|
+
const patternType = input.type || 'general';
|
|
276
|
+
const bank = getReasoningBank();
|
|
277
|
+
if (!bank) {
|
|
278
|
+
return { success: false, error: 'ReasoningBank not available' };
|
|
279
|
+
}
|
|
280
|
+
bank.store({
|
|
454
281
|
id: patternId,
|
|
455
|
-
|
|
456
|
-
type: input.type || 'general',
|
|
282
|
+
type: patternType,
|
|
457
283
|
embedding,
|
|
284
|
+
content: patternName,
|
|
285
|
+
confidence: 0.8,
|
|
458
286
|
metadata: input.data || {},
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
};
|
|
462
|
-
store.patterns[patternId] = pattern;
|
|
463
|
-
saveNeuralStore(store);
|
|
287
|
+
});
|
|
288
|
+
flushPatterns();
|
|
464
289
|
return {
|
|
465
290
|
success: true,
|
|
466
|
-
_realEmbedding:
|
|
291
|
+
_realEmbedding: lastEmbeddingModel !== 'hash-fallback',
|
|
467
292
|
patternId,
|
|
468
|
-
name:
|
|
469
|
-
type:
|
|
293
|
+
name: patternName,
|
|
294
|
+
type: patternType,
|
|
470
295
|
embeddingDims: embedding.length,
|
|
471
|
-
createdAt:
|
|
296
|
+
createdAt: new Date().toISOString(),
|
|
472
297
|
};
|
|
473
298
|
}
|
|
474
299
|
if (action === 'search') {
|
|
475
|
-
// Cap query length to prevent DoS in generateEmbedding (hash path is O(n))
|
|
476
|
-
const MAX_SEARCH_QUERY_LENGTH = 16 * 1024; // 16 KB — matches neural_predict cap
|
|
477
300
|
const rawQuery = input.query;
|
|
478
301
|
const query = typeof rawQuery === 'string' && rawQuery.length > MAX_SEARCH_QUERY_LENGTH
|
|
479
302
|
? rawQuery.slice(0, MAX_SEARCH_QUERY_LENGTH)
|
|
480
303
|
: rawQuery;
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
.map(p => ({
|
|
486
|
-
...p,
|
|
487
|
-
similarity: cosineSimilarity(queryEmbedding, p.embedding),
|
|
488
|
-
}))
|
|
489
|
-
.sort((a, b) => b.similarity - a.similarity)
|
|
490
|
-
.slice(0, 10);
|
|
491
|
-
// Increment usageCount so prune can track retrieval frequency
|
|
492
|
-
for (const r of results) {
|
|
493
|
-
if (Object.hasOwn(store.patterns, r.id)) {
|
|
494
|
-
store.patterns[r.id].usageCount = (store.patterns[r.id].usageCount || 0) + 1;
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
saveNeuralStore(store);
|
|
304
|
+
const results = await findSimilarPatterns(query || '', {
|
|
305
|
+
k: 10,
|
|
306
|
+
threshold: 0.1,
|
|
307
|
+
});
|
|
498
308
|
return {
|
|
499
309
|
_realSimilarity: true,
|
|
500
|
-
_realEmbedding:
|
|
310
|
+
_realEmbedding: lastEmbeddingModel !== 'hash-fallback',
|
|
501
311
|
query,
|
|
502
312
|
results: results.map(r => ({
|
|
503
313
|
id: r.id,
|
|
504
|
-
name: r.
|
|
314
|
+
name: r.content,
|
|
505
315
|
type: r.type,
|
|
506
|
-
similarity: r.similarity,
|
|
316
|
+
similarity: r.similarity ?? r.confidence,
|
|
507
317
|
})),
|
|
508
318
|
total: results.length,
|
|
509
319
|
};
|
|
510
320
|
}
|
|
511
321
|
if (action === 'delete') {
|
|
512
322
|
const patternId = input.patternId;
|
|
513
|
-
if (!patternId ||
|
|
323
|
+
if (!patternId || RESERVED_KEYS.has(patternId)) {
|
|
514
324
|
return { success: false, error: 'Invalid patternId' };
|
|
515
325
|
}
|
|
516
|
-
|
|
326
|
+
const deleted = await deletePattern(patternId);
|
|
327
|
+
if (!deleted) {
|
|
517
328
|
return { success: false, error: 'Pattern not found' };
|
|
518
329
|
}
|
|
519
|
-
delete store.patterns[patternId];
|
|
520
|
-
saveNeuralStore(store);
|
|
521
330
|
return { success: true, deleted: patternId };
|
|
522
331
|
}
|
|
523
332
|
return { success: false, error: 'Unknown action' };
|
|
@@ -525,7 +334,7 @@ export const neuralTools = [
|
|
|
525
334
|
},
|
|
526
335
|
{
|
|
527
336
|
name: 'neural_compress',
|
|
528
|
-
description: 'Compress
|
|
337
|
+
description: 'Compress pattern store (quantize, prune, or deduplicate)',
|
|
529
338
|
category: 'neural',
|
|
530
339
|
inputSchema: {
|
|
531
340
|
type: 'object',
|
|
@@ -536,97 +345,39 @@ export const neuralTools = [
|
|
|
536
345
|
},
|
|
537
346
|
},
|
|
538
347
|
handler: async (input) => {
|
|
539
|
-
const store = loadNeuralStore();
|
|
540
348
|
const method = input.method || 'quantize';
|
|
541
|
-
const
|
|
542
|
-
|
|
349
|
+
const { initializeIntelligence, compactPatterns, getAllPatterns } = await import('../memory/intelligence.js');
|
|
350
|
+
await initializeIntelligence();
|
|
351
|
+
const patterns = await getAllPatterns();
|
|
543
352
|
if (patterns.length === 0) {
|
|
544
353
|
return { success: false, error: 'No patterns to compress. Train patterns first with neural_train.' };
|
|
545
354
|
}
|
|
546
355
|
const beforeCount = patterns.length;
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
let totalCompressed = 0;
|
|
552
|
-
for (const pattern of patterns) {
|
|
553
|
-
if (pattern.embedding && pattern.embedding.length > 0) {
|
|
554
|
-
const stats = getQuantizationStats(pattern.embedding);
|
|
555
|
-
const quantized = quantizeInt8(pattern.embedding);
|
|
556
|
-
// Store quantized metadata (keep original embedding for search)
|
|
557
|
-
pattern._quantized = {
|
|
558
|
-
scale: quantized.scale,
|
|
559
|
-
zeroPoint: quantized.zeroPoint,
|
|
560
|
-
compressionRatio: stats.compressionRatio,
|
|
561
|
-
};
|
|
562
|
-
totalCompressed++;
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
saveNeuralStore(store);
|
|
566
|
-
return {
|
|
567
|
-
success: true, _real: true, method,
|
|
568
|
-
patternsCompressed: totalCompressed,
|
|
569
|
-
note: 'Quantization metadata stored; original embeddings retained for search accuracy.',
|
|
570
|
-
};
|
|
571
|
-
}
|
|
572
|
-
catch {
|
|
573
|
-
return { success: false, error: 'Quantization requires memory-initializer. Run `memory init` first.' };
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
if (method === 'prune') {
|
|
577
|
-
// Prune the least-used fraction of patterns. targetReduction (0-1) is a percentile:
|
|
578
|
-
// 0.5 removes the bottom 50% by usageCount, 0.8 removes the bottom 80%, etc.
|
|
579
|
-
const counts = Object.values(store.patterns)
|
|
580
|
-
.map(p => p.usageCount || 0)
|
|
581
|
-
.sort((a, b) => a - b);
|
|
582
|
-
const cutoffIdx = Math.floor(targetReduction * counts.length);
|
|
583
|
-
const threshold = counts[cutoffIdx] ?? 0;
|
|
584
|
-
const toRemove = [];
|
|
585
|
-
for (const [id, pattern] of Object.entries(store.patterns)) {
|
|
586
|
-
if ((pattern.usageCount || 0) < threshold)
|
|
587
|
-
toRemove.push(id);
|
|
588
|
-
}
|
|
589
|
-
for (const id of toRemove)
|
|
590
|
-
delete store.patterns[id];
|
|
591
|
-
saveNeuralStore(store);
|
|
356
|
+
if (method === 'quantize' || method === 'distill') {
|
|
357
|
+
// Both quantize and distill map to compactPatterns (dedup by cosine similarity)
|
|
358
|
+
const threshold = method === 'quantize' ? 0.99 : 0.95;
|
|
359
|
+
const result = await compactPatterns(threshold);
|
|
592
360
|
return {
|
|
593
361
|
success: true, _real: true, method,
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
362
|
+
patternsBefore: result.before,
|
|
363
|
+
patternsAfter: result.after,
|
|
364
|
+
patternsRemoved: result.removed,
|
|
365
|
+
note: method === 'quantize'
|
|
366
|
+
? 'Near-duplicate patterns removed (cosine > 0.99).'
|
|
367
|
+
: `Similar patterns merged (cosine > ${threshold}).`,
|
|
598
368
|
};
|
|
599
369
|
}
|
|
600
|
-
if (method === '
|
|
601
|
-
//
|
|
602
|
-
const
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
if (merged.includes(idA))
|
|
607
|
-
continue;
|
|
608
|
-
for (let j = i + 1; j < patternList.length; j++) {
|
|
609
|
-
const [idB, b] = patternList[j];
|
|
610
|
-
if (!a.embedding || !b.embedding || merged.includes(idB))
|
|
611
|
-
continue;
|
|
612
|
-
const sim = cosineSimilarity(a.embedding, b.embedding);
|
|
613
|
-
if (sim > 0.95) {
|
|
614
|
-
// Merge: average embeddings, keep higher usage count
|
|
615
|
-
for (let k = 0; k < a.embedding.length; k++) {
|
|
616
|
-
a.embedding[k] = (a.embedding[k] + (b.embedding[k] || 0)) / 2;
|
|
617
|
-
}
|
|
618
|
-
a.usageCount = Math.max(a.usageCount || 0, b.usageCount || 0);
|
|
619
|
-
delete store.patterns[idB];
|
|
620
|
-
merged.push(idB);
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
saveNeuralStore(store);
|
|
370
|
+
if (method === 'prune') {
|
|
371
|
+
// Prune maps to compactPatterns with a looser threshold
|
|
372
|
+
const targetReduction = input.targetSize || 0.5;
|
|
373
|
+
// Use a threshold proportional to target reduction (lower = more aggressive)
|
|
374
|
+
const threshold = 0.7 + (1 - targetReduction) * 0.25;
|
|
375
|
+
const result = await compactPatterns(threshold);
|
|
625
376
|
return {
|
|
626
377
|
success: true, _real: true, method,
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
378
|
+
patternsBefore: result.before,
|
|
379
|
+
patternsAfter: result.after,
|
|
380
|
+
patternsRemoved: result.removed,
|
|
630
381
|
};
|
|
631
382
|
}
|
|
632
383
|
return { success: false, error: `Unknown method: ${method}. Use quantize, prune, or distill.` };
|
|
@@ -634,7 +385,7 @@ export const neuralTools = [
|
|
|
634
385
|
},
|
|
635
386
|
{
|
|
636
387
|
name: 'neural_status',
|
|
637
|
-
description: 'Get
|
|
388
|
+
description: 'Get pattern store status (pattern count, embedding dimensions, store health)',
|
|
638
389
|
category: 'neural',
|
|
639
390
|
inputSchema: {
|
|
640
391
|
type: 'object',
|
|
@@ -644,55 +395,55 @@ export const neuralTools = [
|
|
|
644
395
|
},
|
|
645
396
|
},
|
|
646
397
|
handler: async (input) => {
|
|
647
|
-
const
|
|
398
|
+
const { initializeIntelligence, getIntelligenceStats, getAllPatterns } = await import('../memory/intelligence.js');
|
|
399
|
+
await initializeIntelligence();
|
|
400
|
+
const stats = getIntelligenceStats();
|
|
401
|
+
const patterns = await getAllPatterns();
|
|
648
402
|
if (input.modelId) {
|
|
649
|
-
const
|
|
650
|
-
|
|
651
|
-
const modelId = typeof rawModelIdStatus === 'string' && rawModelIdStatus.length > MAX_MODEL_ID_LEN_STATUS
|
|
652
|
-
? rawModelIdStatus.slice(0, MAX_MODEL_ID_LEN_STATUS)
|
|
653
|
-
: rawModelIdStatus;
|
|
654
|
-
if (NEURAL_RESERVED_KEYS.has(modelId)) {
|
|
403
|
+
const modelId = sanitizeModelId(input.modelId);
|
|
404
|
+
if (modelId === null) {
|
|
655
405
|
return { success: false, error: 'Invalid modelId' };
|
|
656
406
|
}
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
407
|
+
// Filter patterns belonging to this model (by metadata or id prefix)
|
|
408
|
+
const modelPatterns = patterns.filter(p => p.id.startsWith(modelId) ||
|
|
409
|
+
(p.metadata?.modelId === modelId));
|
|
410
|
+
return {
|
|
411
|
+
success: true,
|
|
412
|
+
model: {
|
|
413
|
+
id: modelId,
|
|
414
|
+
patternsStored: modelPatterns.length,
|
|
415
|
+
status: modelPatterns.length > 0 ? 'ready' : 'empty',
|
|
416
|
+
},
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
const byType = {};
|
|
420
|
+
for (const p of patterns) {
|
|
421
|
+
byType[p.type] = (byType[p.type] || 0) + 1;
|
|
662
422
|
}
|
|
663
|
-
const models = Object.values(store.models);
|
|
664
|
-
const patterns = Object.values(store.patterns);
|
|
665
423
|
return {
|
|
666
|
-
|
|
667
|
-
|
|
424
|
+
embeddingProvider: lastEmbeddingModel === 'unknown' ? 'not yet used' : lastEmbeddingModel,
|
|
425
|
+
sonaEnabled: stats.sonaEnabled,
|
|
668
426
|
models: {
|
|
669
|
-
total: models
|
|
670
|
-
ready:
|
|
671
|
-
|
|
672
|
-
avgAccuracy: models.length > 0
|
|
673
|
-
? models.reduce((sum, m) => sum + m.accuracy, 0) / models.length
|
|
674
|
-
: 0,
|
|
427
|
+
total: 0, // models concept removed; patterns are stored directly
|
|
428
|
+
ready: 0,
|
|
429
|
+
indexing: 0,
|
|
675
430
|
},
|
|
676
431
|
patterns: {
|
|
677
432
|
total: patterns.length,
|
|
678
|
-
byType
|
|
679
|
-
|
|
680
|
-
return acc;
|
|
681
|
-
}, {}),
|
|
682
|
-
totalEmbeddingDims: patterns.length > 0 ? patterns[0].embedding.length : 384,
|
|
433
|
+
byType,
|
|
434
|
+
embeddingDims: patterns.length > 0 && patterns[0].embedding ? patterns[0].embedding.length : 384,
|
|
683
435
|
},
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
reasoningBank: true,
|
|
436
|
+
intelligence: {
|
|
437
|
+
reasoningBankSize: stats.reasoningBankSize,
|
|
438
|
+
patternsLearned: stats.patternsLearned,
|
|
439
|
+
trajectoriesRecorded: stats.trajectoriesRecorded,
|
|
689
440
|
},
|
|
690
441
|
};
|
|
691
442
|
},
|
|
692
443
|
},
|
|
693
444
|
{
|
|
694
445
|
name: 'neural_optimize',
|
|
695
|
-
description: 'Optimize
|
|
446
|
+
description: 'Optimize pattern store (deduplicate, quantize, prune empty)',
|
|
696
447
|
category: 'neural',
|
|
697
448
|
inputSchema: {
|
|
698
449
|
type: 'object',
|
|
@@ -702,9 +453,10 @@ export const neuralTools = [
|
|
|
702
453
|
},
|
|
703
454
|
},
|
|
704
455
|
handler: async (input) => {
|
|
705
|
-
const store = loadNeuralStore();
|
|
706
456
|
const target = input.target || 'balanced';
|
|
707
|
-
const
|
|
457
|
+
const { initializeIntelligence, compactPatterns, getAllPatterns } = await import('../memory/intelligence.js');
|
|
458
|
+
await initializeIntelligence();
|
|
459
|
+
const patterns = await getAllPatterns();
|
|
708
460
|
if (patterns.length === 0) {
|
|
709
461
|
return { success: false, error: 'No patterns to optimize. Train patterns first with neural_train.' };
|
|
710
462
|
}
|
|
@@ -712,81 +464,39 @@ export const neuralTools = [
|
|
|
712
464
|
const actions = [];
|
|
713
465
|
const beforeCount = patterns.length;
|
|
714
466
|
const dims = patterns[0]?.embedding?.length || 0;
|
|
715
|
-
|
|
716
|
-
let
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
existing.usageCount = Math.max(existing.usageCount || 0, p.usageCount || 0);
|
|
732
|
-
delete store.patterns[id];
|
|
733
|
-
duplicatesRemoved++;
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
else {
|
|
737
|
-
seen.set(hash, id);
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
if (duplicatesRemoved > 0)
|
|
741
|
-
actions.push(`Removed ${duplicatesRemoved} near-duplicate patterns`);
|
|
467
|
+
// All optimization targets delegate to compactPatterns with varying thresholds
|
|
468
|
+
let threshold;
|
|
469
|
+
switch (target) {
|
|
470
|
+
case 'speed':
|
|
471
|
+
threshold = 0.99; // only near-exact duplicates
|
|
472
|
+
break;
|
|
473
|
+
case 'memory':
|
|
474
|
+
threshold = 0.90; // aggressive dedup
|
|
475
|
+
break;
|
|
476
|
+
case 'accuracy':
|
|
477
|
+
threshold = 0.98; // conservative
|
|
478
|
+
break;
|
|
479
|
+
case 'balanced':
|
|
480
|
+
default:
|
|
481
|
+
threshold = 0.95;
|
|
482
|
+
break;
|
|
742
483
|
}
|
|
743
|
-
|
|
744
|
-
if (
|
|
745
|
-
|
|
746
|
-
const { quantizeInt8, getQuantizationStats } = await import('../memory/memory-initializer.js');
|
|
747
|
-
for (const p of Object.values(store.patterns)) {
|
|
748
|
-
if (p.embedding && p.embedding.length > 0 && !p._quantized) {
|
|
749
|
-
const stats = getQuantizationStats(p.embedding);
|
|
750
|
-
const q = quantizeInt8(p.embedding);
|
|
751
|
-
p._quantized = { scale: q.scale, zeroPoint: q.zeroPoint, compressionRatio: stats.compressionRatio };
|
|
752
|
-
patternsQuantized++;
|
|
753
|
-
}
|
|
754
|
-
}
|
|
755
|
-
if (patternsQuantized > 0)
|
|
756
|
-
actions.push(`Quantized ${patternsQuantized} pattern embeddings (Int8, ~3.92x)`);
|
|
757
|
-
}
|
|
758
|
-
catch {
|
|
759
|
-
actions.push('Quantization skipped (memory-initializer not available)');
|
|
760
|
-
}
|
|
484
|
+
const result = await compactPatterns(threshold);
|
|
485
|
+
if (result.removed > 0) {
|
|
486
|
+
actions.push(`Removed ${result.removed} similar patterns (cosine > ${threshold})`);
|
|
761
487
|
}
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
for (const [id, p] of Object.entries(store.patterns)) {
|
|
765
|
-
if (!p.embedding || p.embedding.length === 0) {
|
|
766
|
-
delete store.patterns[id];
|
|
767
|
-
patternsRemoved++;
|
|
768
|
-
continue;
|
|
769
|
-
}
|
|
770
|
-
// Remove patterns with all-zero embeddings (no useful signal)
|
|
771
|
-
const norm = p.embedding.reduce((s, v) => s + v * v, 0);
|
|
772
|
-
if (norm < 1e-10) {
|
|
773
|
-
delete store.patterns[id];
|
|
774
|
-
patternsRemoved++;
|
|
775
|
-
}
|
|
776
|
-
}
|
|
777
|
-
if (patternsRemoved > 0)
|
|
778
|
-
actions.push(`Pruned ${patternsRemoved} empty/zero-signal patterns`);
|
|
488
|
+
else {
|
|
489
|
+
actions.push('No duplicate patterns found');
|
|
779
490
|
}
|
|
780
|
-
saveNeuralStore(store);
|
|
781
491
|
const elapsed = Math.round(performance.now() - startTime);
|
|
782
492
|
return {
|
|
783
493
|
success: true, _real: true, target,
|
|
784
494
|
actions,
|
|
785
|
-
patternsBefore:
|
|
786
|
-
patternsAfter:
|
|
787
|
-
duplicatesRemoved,
|
|
788
|
-
patternsQuantized,
|
|
789
|
-
patternsRemoved,
|
|
495
|
+
patternsBefore: result.before,
|
|
496
|
+
patternsAfter: result.after,
|
|
497
|
+
duplicatesRemoved: result.removed,
|
|
498
|
+
patternsQuantized: 0,
|
|
499
|
+
patternsRemoved: result.removed,
|
|
790
500
|
embeddingDims: dims,
|
|
791
501
|
elapsedMs: elapsed,
|
|
792
502
|
};
|