@monoes/monomindcli 1.14.7 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/reengineer-squad/boss.md +113 -0
- package/.claude/agents/reengineer-squad/critic-architect.md +132 -0
- package/.claude/agents/reengineer-squad/git-manager.md +145 -0
- package/.claude/agents/reengineer-squad/idea-generator.md +95 -0
- package/.claude/agents/reengineer-squad/implementer.md +112 -0
- package/.claude/agents/reengineer-squad/integration-planner.md +112 -0
- package/.claude/agents/reengineer-squad/source-analyst.md +103 -0
- package/.claude/agents/reengineer-squad/target-analyst.md +118 -0
- package/.claude/agents/reengineer-squad/tester.md +105 -0
- package/.claude/commands/mastermind/master.md +35 -14
- package/.claude/helpers/handlers/capture-handler.cjs +155 -18
- package/.claude/helpers/monolean-activate.cjs +20 -0
- package/.claude/helpers/monolean-config.cjs +76 -0
- package/.claude/helpers/monolean-instructions.cjs +109 -0
- package/.claude/helpers/monolean-propagate.cjs +9 -0
- package/.claude/helpers/monolean-tracker.cjs +18 -0
- package/.claude/helpers/skill-registry.json +2 -2
- package/.claude/skills/agent-browser-testing/SKILL.md +301 -18
- package/.claude/skills/mastermind/runorg.md +69 -23
- package/.claude/skills/monodesign/SKILL.md +32 -1
- package/.claude/skills/monodesign/adapt.md +53 -0
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +100 -0
- package/.claude/skills/monodesign/animate.md +65 -0
- package/.claude/skills/monodesign/audit.md +89 -0
- package/.claude/skills/monodesign/bolder.md +50 -0
- package/.claude/skills/monodesign/clarify.md +64 -0
- package/.claude/skills/monodesign/colorize.md +68 -0
- package/.claude/skills/monodesign/craft.md +51 -0
- package/.claude/skills/monodesign/critique.md +66 -0
- package/.claude/skills/monodesign/delight.md +47 -0
- package/.claude/skills/monodesign/distill.md +56 -0
- package/.claude/skills/monodesign/document.md +80 -0
- package/.claude/skills/monodesign/extract.md +74 -0
- package/.claude/skills/monodesign/harden.md +65 -0
- package/.claude/skills/monodesign/live.md +59 -0
- package/.claude/skills/monodesign/onboard.md +50 -0
- package/.claude/skills/monodesign/optimize.md +64 -0
- package/.claude/skills/monodesign/overdrive.md +56 -0
- package/.claude/skills/monodesign/polish.md +68 -0
- package/.claude/skills/monodesign/quieter.md +57 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +248 -76
- package/.claude/skills/monodesign/reference/codex.md +107 -0
- package/.claude/skills/monodesign/reference/craft.md +3 -0
- package/.claude/skills/monodesign/reference/hooks.md +99 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +12 -0
- package/.claude/skills/monodesign/shape.md +71 -0
- package/.claude/skills/monodesign/teach.md +69 -0
- package/.claude/skills/monodesign/typeset.md +59 -0
- package/.claude/skills/monolean/SKILL.md +118 -0
- package/.claude/skills/monolean-audit/SKILL.md +41 -0
- package/.claude/skills/monolean-debt/SKILL.md +46 -0
- package/.claude/skills/monolean-help/SKILL.md +60 -0
- package/.claude/skills/monolean-review/SKILL.md +57 -0
- package/bin/cli.js +3 -1
- package/dist/dashboard/server.js +137 -0
- package/dist/src/__tests__/browse-adapters.test.d.ts +2 -0
- package/dist/src/__tests__/browse-adapters.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-adapters.test.js +51 -0
- package/dist/src/__tests__/browse-adapters.test.js.map +1 -0
- package/dist/src/__tests__/browse-analyzer.test.d.ts +2 -0
- package/dist/src/__tests__/browse-analyzer.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-analyzer.test.js +68 -0
- package/dist/src/__tests__/browse-analyzer.test.js.map +1 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.d.ts +2 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.js +139 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.js.map +1 -0
- package/dist/src/__tests__/browse-cdp.test.d.ts +2 -0
- package/dist/src/__tests__/browse-cdp.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-cdp.test.js +169 -0
- package/dist/src/__tests__/browse-cdp.test.js.map +1 -0
- package/dist/src/__tests__/browse-dashboard.test.d.ts +2 -0
- package/dist/src/__tests__/browse-dashboard.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-dashboard.test.js +179 -0
- package/dist/src/__tests__/browse-dashboard.test.js.map +1 -0
- package/dist/src/__tests__/browse-engine.test.d.ts +2 -0
- package/dist/src/__tests__/browse-engine.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-engine.test.js +122 -0
- package/dist/src/__tests__/browse-engine.test.js.map +1 -0
- package/dist/src/__tests__/browse-expression.test.d.ts +2 -0
- package/dist/src/__tests__/browse-expression.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-expression.test.js +54 -0
- package/dist/src/__tests__/browse-expression.test.js.map +1 -0
- package/dist/src/__tests__/browse-store.test.d.ts +2 -0
- package/dist/src/__tests__/browse-store.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-store.test.js +99 -0
- package/dist/src/__tests__/browse-store.test.js.map +1 -0
- package/dist/src/__tests__/browse-workflow-types.test.d.ts +2 -0
- package/dist/src/__tests__/browse-workflow-types.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-workflow-types.test.js +33 -0
- package/dist/src/__tests__/browse-workflow-types.test.js.map +1 -0
- package/dist/src/browser/action-builder/analyzer.d.ts +11 -0
- package/dist/src/browser/action-builder/analyzer.d.ts.map +1 -0
- package/dist/src/browser/action-builder/analyzer.js +71 -0
- package/dist/src/browser/action-builder/analyzer.js.map +1 -0
- package/dist/src/browser/action-builder/types.d.ts +47 -0
- package/dist/src/browser/action-builder/types.d.ts.map +1 -0
- package/dist/src/browser/action-builder/types.js +2 -0
- package/dist/src/browser/action-builder/types.js.map +1 -0
- package/dist/src/browser/adapters/gemini.d.ts +3 -0
- package/dist/src/browser/adapters/gemini.d.ts.map +1 -0
- package/dist/src/browser/adapters/gemini.js +16 -0
- package/dist/src/browser/adapters/gemini.js.map +1 -0
- package/dist/src/browser/adapters/google.d.ts +3 -0
- package/dist/src/browser/adapters/google.d.ts.map +1 -0
- package/dist/src/browser/adapters/google.js +17 -0
- package/dist/src/browser/adapters/google.js.map +1 -0
- package/dist/src/browser/adapters/index.d.ts +19 -0
- package/dist/src/browser/adapters/index.d.ts.map +1 -0
- package/dist/src/browser/adapters/index.js +23 -0
- package/dist/src/browser/adapters/index.js.map +1 -0
- package/dist/src/browser/adapters/instagram.d.ts +3 -0
- package/dist/src/browser/adapters/instagram.d.ts.map +1 -0
- package/dist/src/browser/adapters/instagram.js +17 -0
- package/dist/src/browser/adapters/instagram.js.map +1 -0
- package/dist/src/browser/adapters/linkedin.d.ts +3 -0
- package/dist/src/browser/adapters/linkedin.d.ts.map +1 -0
- package/dist/src/browser/adapters/linkedin.js +19 -0
- package/dist/src/browser/adapters/linkedin.js.map +1 -0
- package/dist/src/browser/adapters/microsoft.d.ts +3 -0
- package/dist/src/browser/adapters/microsoft.d.ts.map +1 -0
- package/dist/src/browser/adapters/microsoft.js +16 -0
- package/dist/src/browser/adapters/microsoft.js.map +1 -0
- package/dist/src/browser/adapters/x.d.ts +3 -0
- package/dist/src/browser/adapters/x.d.ts.map +1 -0
- package/dist/src/browser/adapters/x.js +19 -0
- package/dist/src/browser/adapters/x.js.map +1 -0
- package/dist/src/browser/dashboard/api-types.d.ts +50 -0
- package/dist/src/browser/dashboard/api-types.d.ts.map +1 -0
- package/dist/src/browser/dashboard/api-types.js +14 -0
- package/dist/src/browser/dashboard/api-types.js.map +1 -0
- package/dist/src/browser/dashboard/server.d.ts +9 -0
- package/dist/src/browser/dashboard/server.d.ts.map +1 -0
- package/dist/src/browser/dashboard/server.js +62 -0
- package/dist/src/browser/dashboard/server.js.map +1 -0
- package/dist/src/browser/dashboard/ui.html +1811 -0
- package/dist/src/browser/workflow/builtin-handlers.d.ts +3 -0
- package/dist/src/browser/workflow/builtin-handlers.d.ts.map +1 -0
- package/dist/src/browser/workflow/builtin-handlers.js +343 -0
- package/dist/src/browser/workflow/builtin-handlers.js.map +1 -0
- package/dist/src/browser/workflow/engine.d.ts +15 -0
- package/dist/src/browser/workflow/engine.d.ts.map +1 -0
- package/dist/src/browser/workflow/engine.js +127 -0
- package/dist/src/browser/workflow/engine.js.map +1 -0
- package/dist/src/browser/workflow/expression.d.ts +4 -0
- package/dist/src/browser/workflow/expression.d.ts.map +1 -0
- package/dist/src/browser/workflow/expression.js +64 -0
- package/dist/src/browser/workflow/expression.js.map +1 -0
- package/dist/src/browser/workflow/store.d.ts +24 -0
- package/dist/src/browser/workflow/store.d.ts.map +1 -0
- package/dist/src/browser/workflow/store.js +145 -0
- package/dist/src/browser/workflow/store.js.map +1 -0
- package/dist/src/browser/workflow/types.d.ts +48 -0
- package/dist/src/browser/workflow/types.d.ts.map +1 -0
- package/dist/src/browser/workflow/types.js +2 -0
- package/dist/src/browser/workflow/types.js.map +1 -0
- package/dist/src/commands/browse-action.d.ts +4 -0
- package/dist/src/commands/browse-action.d.ts.map +1 -0
- package/dist/src/commands/browse-action.js +151 -0
- package/dist/src/commands/browse-action.js.map +1 -0
- package/dist/src/commands/browse-platform.d.ts +4 -0
- package/dist/src/commands/browse-platform.d.ts.map +1 -0
- package/dist/src/commands/browse-platform.js +117 -0
- package/dist/src/commands/browse-platform.js.map +1 -0
- package/dist/src/commands/browse-workflow.d.ts +4 -0
- package/dist/src/commands/browse-workflow.d.ts.map +1 -0
- package/dist/src/commands/browse-workflow.js +153 -0
- package/dist/src/commands/browse-workflow.js.map +1 -0
- package/dist/src/commands/browse.d.ts +10 -6
- package/dist/src/commands/browse.d.ts.map +1 -1
- package/dist/src/commands/browse.js +11 -2154
- package/dist/src/commands/browse.js.map +1 -1
- package/dist/src/commands/design-detect.d.ts +21 -0
- package/dist/src/commands/design-detect.d.ts.map +1 -0
- package/dist/src/commands/design-detect.js +127 -0
- package/dist/src/commands/design-detect.js.map +1 -0
- package/dist/src/commands/design-palette.d.ts +22 -0
- package/dist/src/commands/design-palette.d.ts.map +1 -0
- package/dist/src/commands/design-palette.js +539 -0
- package/dist/src/commands/design-palette.js.map +1 -0
- package/dist/src/commands/hooks-core-commands.d.ts +10 -0
- package/dist/src/commands/hooks-core-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-core-commands.js +377 -0
- package/dist/src/commands/hooks-core-commands.js.map +1 -0
- package/dist/src/commands/hooks-coverage-commands.d.ts +12 -0
- package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-coverage-commands.js +1217 -0
- package/dist/src/commands/hooks-coverage-commands.js.map +1 -0
- package/dist/src/commands/hooks-coverage-utils.d.ts +42 -0
- package/dist/src/commands/hooks-coverage-utils.d.ts.map +1 -0
- package/dist/src/commands/hooks-coverage-utils.js +220 -0
- package/dist/src/commands/hooks-coverage-utils.js.map +1 -0
- package/dist/src/commands/hooks-extended-commands.d.ts +14 -0
- package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-extended-commands.js +579 -0
- package/dist/src/commands/hooks-extended-commands.js.map +1 -0
- package/dist/src/commands/hooks-formatting.d.ts +13 -0
- package/dist/src/commands/hooks-formatting.d.ts.map +1 -0
- package/dist/src/commands/hooks-formatting.js +42 -0
- package/dist/src/commands/hooks-formatting.js.map +1 -0
- package/dist/src/commands/hooks-routing-commands.d.ts +15 -0
- package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-routing-commands.js +723 -0
- package/dist/src/commands/hooks-routing-commands.js.map +1 -0
- package/dist/src/commands/hooks-workers.d.ts +9 -0
- package/dist/src/commands/hooks-workers.d.ts.map +1 -0
- package/dist/src/commands/hooks-workers.js +782 -0
- package/dist/src/commands/hooks-workers.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +8 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +179 -4103
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +1 -0
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +6 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +14 -15
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/tokens.d.ts.map +1 -1
- package/dist/src/commands/tokens.js +77 -1
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +18 -8
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +39 -5
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +25 -5
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.d.ts +3 -5
- package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +619 -326
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.d.ts +161 -0
- package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-embedding.js +506 -0
- package/dist/src/mcp-tools/hooks-embedding.js.map +1 -0
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +26 -0
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-intelligence.js +1328 -0
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts +27 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-routing.js +1591 -0
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts +3 -38
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +5 -3393
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +24 -14
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +54 -1
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts +58 -0
- package/dist/src/memory/embedding-operations.d.ts.map +1 -0
- package/dist/src/memory/embedding-operations.js +299 -0
- package/dist/src/memory/embedding-operations.js.map +1 -0
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +37 -3
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +130 -0
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -0
- package/dist/src/memory/hnsw-operations.js +400 -0
- package/dist/src/memory/hnsw-operations.js.map +1 -0
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +42 -23
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +52 -8
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts +67 -0
- package/dist/src/memory/memory-crud.d.ts.map +1 -0
- package/dist/src/memory/memory-crud.js +415 -0
- package/dist/src/memory/memory-crud.js.map +1 -0
- package/dist/src/memory/memory-initializer.d.ts +9 -322
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +17 -1794
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-migrations.d.ts +30 -0
- package/dist/src/memory/memory-migrations.d.ts.map +1 -0
- package/dist/src/memory/memory-migrations.js +134 -0
- package/dist/src/memory/memory-migrations.js.map +1 -0
- package/dist/src/memory/memory-read.d.ts +78 -0
- package/dist/src/memory/memory-read.d.ts.map +1 -0
- package/dist/src/memory/memory-read.js +331 -0
- package/dist/src/memory/memory-read.js.map +1 -0
- package/dist/src/memory/memory-schema.d.ts +13 -0
- package/dist/src/memory/memory-schema.d.ts.map +1 -0
- package/dist/src/memory/memory-schema.js +167 -0
- package/dist/src/memory/memory-schema.js.map +1 -0
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +37 -4
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/route-outcomes.js +16 -6
- package/dist/src/monovector/route-outcomes.js.map +1 -1
- package/dist/src/pricing/model-pricing.d.ts +41 -0
- package/dist/src/pricing/model-pricing.d.ts.map +1 -0
- package/dist/src/pricing/model-pricing.js +61 -0
- package/dist/src/pricing/model-pricing.js.map +1 -0
- package/dist/src/ui/.monomind/capture/active-run.json +1 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.convs.jsonl +3 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.jsonl +11 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/rigid-qa-restart-1782288201.jsonl +540 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa-threads.jsonl +3 -0
- package/dist/src/ui/.monomind/orgs/test-event-fix/runs/rigid-qa-restart-1782288201.jsonl +2 -0
- package/dist/src/ui/MODULARIZATION_PLAN.md +79 -0
- package/dist/src/ui/collector.mjs +23 -13
- package/dist/src/ui/dashboard.html +1652 -13
- package/dist/src/ui/data/known-projects.json +1 -0
- package/dist/src/ui/data/mastermind-events.jsonl +553 -0
- package/dist/src/ui/data/sessions/_index.json +1 -0
- package/dist/src/ui/data/sessions/final-sess-001.jsonl +542 -0
- package/dist/src/ui/data/unknown-events.jsonl +1 -0
- package/dist/src/ui/orgs.html +154 -10
- package/dist/src/ui/server.mjs +1131 -168
- package/dist/src/ui/sse-manager.mjs +119 -0
- package/dist/src/update/checker.js +1 -1
- package/dist/src/update/checker.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/workflow/builtin-handlers.js +321 -0
- package/dist/workflow/engine.js +253 -0
- package/dist/workflow/expression.js +98 -0
- package/dist/workflow/types.js +2 -0
- package/package.json +8 -5
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HNSW Operations + INT8 Quantization + Flash Attention
|
|
3
|
+
* Extracted from memory-initializer.ts (ARCH-4)
|
|
4
|
+
*
|
|
5
|
+
* @module v1/cli/hnsw-operations
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
// ADR-053: Lazy import of AgentDB v1 bridge
|
|
10
|
+
let _bridge;
|
|
11
|
+
async function getBridge() {
|
|
12
|
+
if (_bridge === null)
|
|
13
|
+
return null;
|
|
14
|
+
if (_bridge)
|
|
15
|
+
return _bridge;
|
|
16
|
+
try {
|
|
17
|
+
_bridge = await import('./memory-bridge.js');
|
|
18
|
+
return _bridge;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
_bridge = null;
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
let hnswIndex = null;
|
|
26
|
+
let hnswInitializing = false;
|
|
27
|
+
/**
|
|
28
|
+
* Get or create the HNSW index singleton
|
|
29
|
+
* Lazily initializes from SQLite data on first use
|
|
30
|
+
*/
|
|
31
|
+
export async function getHNSWIndex(options) {
|
|
32
|
+
const dimensions = options?.dimensions ?? 384;
|
|
33
|
+
// Return existing index if already initialized
|
|
34
|
+
if (hnswIndex?.initialized && !options?.forceRebuild) {
|
|
35
|
+
return hnswIndex;
|
|
36
|
+
}
|
|
37
|
+
// Prevent concurrent initialization
|
|
38
|
+
if (hnswInitializing) {
|
|
39
|
+
// Wait for initialization to complete (max 5s)
|
|
40
|
+
let waitIterations = 0;
|
|
41
|
+
while (hnswInitializing && waitIterations < 500) {
|
|
42
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
43
|
+
waitIterations++;
|
|
44
|
+
}
|
|
45
|
+
if (hnswInitializing) {
|
|
46
|
+
throw new Error('HNSW initialization timed out after 5s');
|
|
47
|
+
}
|
|
48
|
+
// Init may have failed — return null rather than a non-initialized index object
|
|
49
|
+
return hnswIndex?.initialized ? hnswIndex : null;
|
|
50
|
+
}
|
|
51
|
+
hnswInitializing = true;
|
|
52
|
+
try {
|
|
53
|
+
// Native @monoes/core HNSW (WASM VectorDb) was removed in the lean teardown.
|
|
54
|
+
// This function is kept for callers that check its return value — all callers
|
|
55
|
+
// already handle null by falling back to the pure-JS / brute-force path.
|
|
56
|
+
// The AgentDB bridge (memory-bridge.ts) provides HNSW via agentdb instead.
|
|
57
|
+
// Native backend removed — return null so callers use the pure-JS fallback.
|
|
58
|
+
hnswInitializing = false;
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
hnswInitializing = false;
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Save HNSW metadata to disk for persistence
|
|
68
|
+
*/
|
|
69
|
+
function saveHNSWMetadata() {
|
|
70
|
+
if (!hnswIndex?.entries)
|
|
71
|
+
return;
|
|
72
|
+
try {
|
|
73
|
+
const swarmDir = path.join(process.cwd(), '.swarm');
|
|
74
|
+
const metadataPath = path.join(swarmDir, 'hnsw.metadata.json');
|
|
75
|
+
const metadata = Array.from(hnswIndex.entries.entries());
|
|
76
|
+
const tmp = metadataPath + '.tmp';
|
|
77
|
+
fs.writeFileSync(tmp, JSON.stringify(metadata));
|
|
78
|
+
fs.renameSync(tmp, metadataPath);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Silently fail - metadata save is best-effort
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Add entry to HNSW index (with automatic persistence)
|
|
86
|
+
*/
|
|
87
|
+
export async function addToHNSWIndex(id, embedding, entry) {
|
|
88
|
+
// ADR-053: Try AgentDB v1 bridge first
|
|
89
|
+
const bridge = await getBridge();
|
|
90
|
+
if (bridge) {
|
|
91
|
+
const bridgeResult = await bridge.bridgeAddToHNSW(id, embedding, entry);
|
|
92
|
+
if (bridgeResult === true)
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
const index = await getHNSWIndex({ dimensions: embedding.length });
|
|
96
|
+
if (!index)
|
|
97
|
+
return false;
|
|
98
|
+
try {
|
|
99
|
+
const vector = new Float32Array(embedding);
|
|
100
|
+
await index.db.insert({
|
|
101
|
+
id,
|
|
102
|
+
vector
|
|
103
|
+
});
|
|
104
|
+
index.entries.set(id, entry);
|
|
105
|
+
// Save metadata for persistence (debounced would be better for high-volume)
|
|
106
|
+
saveHNSWMetadata();
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Search HNSW index (150x faster than brute-force)
|
|
115
|
+
* Returns results sorted by similarity (highest first)
|
|
116
|
+
*/
|
|
117
|
+
export async function searchHNSWIndex(queryEmbedding, options) {
|
|
118
|
+
// ADR-053: Try AgentDB v1 bridge first
|
|
119
|
+
const bridge = await getBridge();
|
|
120
|
+
if (bridge) {
|
|
121
|
+
const bridgeResult = await bridge.bridgeSearchHNSW(queryEmbedding, options);
|
|
122
|
+
if (bridgeResult)
|
|
123
|
+
return bridgeResult;
|
|
124
|
+
}
|
|
125
|
+
const index = await getHNSWIndex({ dimensions: queryEmbedding.length });
|
|
126
|
+
if (!index)
|
|
127
|
+
return null;
|
|
128
|
+
try {
|
|
129
|
+
const vector = new Float32Array(queryEmbedding);
|
|
130
|
+
const k = options?.k ?? 10;
|
|
131
|
+
// HNSW search returns results with cosine distance (lower = more similar)
|
|
132
|
+
const results = await index.db.search({ vector, k: k * 2 }); // Get extra for filtering
|
|
133
|
+
const filtered = [];
|
|
134
|
+
for (const result of results) {
|
|
135
|
+
const entry = index.entries.get(result.id);
|
|
136
|
+
if (!entry)
|
|
137
|
+
continue;
|
|
138
|
+
// Filter by namespace if specified
|
|
139
|
+
if (options?.namespace && options.namespace !== 'all' && entry.namespace !== options.namespace) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
// Convert cosine distance to similarity score (1 - distance)
|
|
143
|
+
// Cosine distance convention: 0 = identical, 2 = opposite
|
|
144
|
+
const score = 1 - (result.score / 2);
|
|
145
|
+
filtered.push({
|
|
146
|
+
id: entry.id.substring(0, 12),
|
|
147
|
+
key: entry.key || entry.id.substring(0, 15),
|
|
148
|
+
content: entry.content.substring(0, 60) + (entry.content.length > 60 ? '...' : ''),
|
|
149
|
+
score,
|
|
150
|
+
namespace: entry.namespace
|
|
151
|
+
});
|
|
152
|
+
if (filtered.length >= k)
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
// Sort by score descending (highest similarity first)
|
|
156
|
+
filtered.sort((a, b) => b.score - a.score);
|
|
157
|
+
return filtered;
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Get HNSW index status
|
|
165
|
+
*/
|
|
166
|
+
export function getHNSWStatus() {
|
|
167
|
+
// ADR-053: If bridge was previously loaded, report availability
|
|
168
|
+
if (_bridge && _bridge !== null) {
|
|
169
|
+
// Bridge is loaded — HNSW-equivalent is available via AgentDB v1
|
|
170
|
+
return {
|
|
171
|
+
available: true,
|
|
172
|
+
initialized: true,
|
|
173
|
+
entryCount: hnswIndex?.entries.size ?? 0,
|
|
174
|
+
dimensions: hnswIndex?.dimensions ?? 384
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
available: hnswIndex !== null,
|
|
179
|
+
initialized: hnswIndex?.initialized ?? false,
|
|
180
|
+
entryCount: hnswIndex?.entries.size ?? 0,
|
|
181
|
+
dimensions: hnswIndex?.dimensions ?? 384
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Clear the HNSW index (for rebuilding)
|
|
186
|
+
*/
|
|
187
|
+
export function clearHNSWIndex() {
|
|
188
|
+
hnswIndex = null;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Invalidate the in-memory HNSW cache so the next search rebuilds from DB.
|
|
192
|
+
* Call this after deleting entries that had embeddings to prevent ghost
|
|
193
|
+
* vectors from appearing in search results.
|
|
194
|
+
*/
|
|
195
|
+
export function rebuildSearchIndex() {
|
|
196
|
+
hnswIndex = null;
|
|
197
|
+
hnswInitializing = false;
|
|
198
|
+
}
|
|
199
|
+
// ============================================================================
|
|
200
|
+
// INT8 VECTOR QUANTIZATION (4x memory reduction)
|
|
201
|
+
// ============================================================================
|
|
202
|
+
/**
|
|
203
|
+
* Quantize a Float32 embedding to Int8 (4x memory reduction)
|
|
204
|
+
* Uses symmetric quantization with scale factor stored per-vector
|
|
205
|
+
*
|
|
206
|
+
* @param embedding - Float32 embedding array
|
|
207
|
+
* @returns Quantized Int8 array with scale factor
|
|
208
|
+
*/
|
|
209
|
+
export function quantizeInt8(embedding) {
|
|
210
|
+
const arr = embedding instanceof Float32Array ? embedding : new Float32Array(embedding);
|
|
211
|
+
// Find min/max for symmetric quantization
|
|
212
|
+
let min = Infinity, max = -Infinity;
|
|
213
|
+
for (let i = 0; i < arr.length; i++) {
|
|
214
|
+
if (arr[i] < min)
|
|
215
|
+
min = arr[i];
|
|
216
|
+
if (arr[i] > max)
|
|
217
|
+
max = arr[i];
|
|
218
|
+
}
|
|
219
|
+
// Symmetric quantization: scale = max(|min|, |max|) / 127
|
|
220
|
+
const absMax = Math.max(Math.abs(min), Math.abs(max));
|
|
221
|
+
const scale = absMax / 127 || 1e-10; // Avoid division by zero
|
|
222
|
+
const zeroPoint = 0; // Symmetric quantization
|
|
223
|
+
// Quantize
|
|
224
|
+
const quantized = new Int8Array(arr.length);
|
|
225
|
+
for (let i = 0; i < arr.length; i++) {
|
|
226
|
+
// Clamp to [-127, 127] to leave room for potential rounding
|
|
227
|
+
const q = Math.round(arr[i] / scale);
|
|
228
|
+
quantized[i] = Math.max(-127, Math.min(127, q));
|
|
229
|
+
}
|
|
230
|
+
return { quantized, scale, zeroPoint };
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Dequantize Int8 back to Float32
|
|
234
|
+
*
|
|
235
|
+
* @param quantized - Int8 quantized array
|
|
236
|
+
* @param scale - Scale factor from quantization
|
|
237
|
+
* @param zeroPoint - Zero point (usually 0 for symmetric)
|
|
238
|
+
* @returns Float32Array
|
|
239
|
+
*/
|
|
240
|
+
export function dequantizeInt8(quantized, scale, zeroPoint = 0) {
|
|
241
|
+
const result = new Float32Array(quantized.length);
|
|
242
|
+
for (let i = 0; i < quantized.length; i++) {
|
|
243
|
+
result[i] = (quantized[i] - zeroPoint) * scale;
|
|
244
|
+
}
|
|
245
|
+
return result;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Compute cosine similarity between quantized vectors
|
|
249
|
+
* Faster than dequantizing first
|
|
250
|
+
*/
|
|
251
|
+
export function quantizedCosineSim(a, aScale, b, bScale) {
|
|
252
|
+
if (a.length !== b.length)
|
|
253
|
+
return 0;
|
|
254
|
+
let dot = 0, normA = 0, normB = 0;
|
|
255
|
+
for (let i = 0; i < a.length; i++) {
|
|
256
|
+
dot += a[i] * b[i];
|
|
257
|
+
normA += a[i] * a[i];
|
|
258
|
+
normB += b[i] * b[i];
|
|
259
|
+
}
|
|
260
|
+
// Scales cancel out in cosine similarity for normalized vectors
|
|
261
|
+
const mag = Math.sqrt(normA * normB);
|
|
262
|
+
return mag === 0 ? 0 : dot / mag;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Get quantization statistics for an embedding
|
|
266
|
+
*/
|
|
267
|
+
export function getQuantizationStats(embedding) {
|
|
268
|
+
const len = embedding.length;
|
|
269
|
+
const originalBytes = len * 4; // Float32 = 4 bytes
|
|
270
|
+
const quantizedBytes = len + 8; // Int8 = 1 byte + 8 bytes for scale/zeroPoint
|
|
271
|
+
const compressionRatio = originalBytes / quantizedBytes;
|
|
272
|
+
return { originalBytes, quantizedBytes, compressionRatio };
|
|
273
|
+
}
|
|
274
|
+
// ============================================================================
|
|
275
|
+
// FLASH ATTENTION-STYLE BATCH OPERATIONS (V8-Optimized)
|
|
276
|
+
// ============================================================================
|
|
277
|
+
/**
|
|
278
|
+
* Batch cosine similarity - compute query against multiple vectors
|
|
279
|
+
* Optimized for V8 JIT with typed arrays
|
|
280
|
+
* ~50μs per 1000 vectors (384-dim)
|
|
281
|
+
*/
|
|
282
|
+
export function batchCosineSim(query, vectors) {
|
|
283
|
+
const n = vectors.length;
|
|
284
|
+
const scores = new Float32Array(n);
|
|
285
|
+
if (n === 0 || query.length === 0)
|
|
286
|
+
return scores;
|
|
287
|
+
// Pre-compute query norm
|
|
288
|
+
let queryNorm = 0;
|
|
289
|
+
for (let i = 0; i < query.length; i++) {
|
|
290
|
+
queryNorm += query[i] * query[i];
|
|
291
|
+
}
|
|
292
|
+
queryNorm = Math.sqrt(queryNorm);
|
|
293
|
+
if (queryNorm === 0)
|
|
294
|
+
return scores;
|
|
295
|
+
// Compute similarities
|
|
296
|
+
for (let v = 0; v < n; v++) {
|
|
297
|
+
const vec = vectors[v];
|
|
298
|
+
const len = Math.min(query.length, vec.length);
|
|
299
|
+
let dot = 0, vecNorm = 0;
|
|
300
|
+
for (let i = 0; i < len; i++) {
|
|
301
|
+
dot += query[i] * vec[i];
|
|
302
|
+
vecNorm += vec[i] * vec[i];
|
|
303
|
+
}
|
|
304
|
+
vecNorm = Math.sqrt(vecNorm);
|
|
305
|
+
scores[v] = vecNorm === 0 ? 0 : dot / (queryNorm * vecNorm);
|
|
306
|
+
}
|
|
307
|
+
return scores;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Softmax normalization for attention scores
|
|
311
|
+
* Numerically stable implementation
|
|
312
|
+
*/
|
|
313
|
+
export function softmaxAttention(scores, temperature = 1.0) {
|
|
314
|
+
const n = scores.length;
|
|
315
|
+
const result = new Float32Array(n);
|
|
316
|
+
if (n === 0)
|
|
317
|
+
return result;
|
|
318
|
+
// Find max for numerical stability
|
|
319
|
+
let max = scores[0];
|
|
320
|
+
for (let i = 1; i < n; i++) {
|
|
321
|
+
if (scores[i] > max)
|
|
322
|
+
max = scores[i];
|
|
323
|
+
}
|
|
324
|
+
// Compute exp and sum
|
|
325
|
+
let sum = 0;
|
|
326
|
+
for (let i = 0; i < n; i++) {
|
|
327
|
+
result[i] = Math.exp((scores[i] - max) / temperature);
|
|
328
|
+
sum += result[i];
|
|
329
|
+
}
|
|
330
|
+
// Normalize
|
|
331
|
+
if (sum > 0) {
|
|
332
|
+
for (let i = 0; i < n; i++) {
|
|
333
|
+
result[i] /= sum;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return result;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Top-K selection with partial sort (O(n + k log k))
|
|
340
|
+
* More efficient than full sort for small k
|
|
341
|
+
*/
|
|
342
|
+
export function topKIndices(scores, k) {
|
|
343
|
+
const n = scores.length;
|
|
344
|
+
if (k >= n) {
|
|
345
|
+
// Return all indices sorted by score
|
|
346
|
+
return Array.from({ length: n }, (_, i) => i)
|
|
347
|
+
.sort((a, b) => scores[b] - scores[a]);
|
|
348
|
+
}
|
|
349
|
+
// Build min-heap of size k
|
|
350
|
+
const heap = [];
|
|
351
|
+
for (let i = 0; i < n; i++) {
|
|
352
|
+
if (heap.length < k) {
|
|
353
|
+
heap.push({ idx: i, score: scores[i] });
|
|
354
|
+
// Bubble up
|
|
355
|
+
let j = heap.length - 1;
|
|
356
|
+
while (j > 0) {
|
|
357
|
+
const parent = Math.floor((j - 1) / 2);
|
|
358
|
+
if (heap[j].score < heap[parent].score) {
|
|
359
|
+
[heap[j], heap[parent]] = [heap[parent], heap[j]];
|
|
360
|
+
j = parent;
|
|
361
|
+
}
|
|
362
|
+
else
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
else if (scores[i] > heap[0].score) {
|
|
367
|
+
// Replace min and heapify down
|
|
368
|
+
heap[0] = { idx: i, score: scores[i] };
|
|
369
|
+
let j = 0;
|
|
370
|
+
while (true) {
|
|
371
|
+
const left = 2 * j + 1, right = 2 * j + 2;
|
|
372
|
+
let smallest = j;
|
|
373
|
+
if (left < k && heap[left].score < heap[smallest].score)
|
|
374
|
+
smallest = left;
|
|
375
|
+
if (right < k && heap[right].score < heap[smallest].score)
|
|
376
|
+
smallest = right;
|
|
377
|
+
if (smallest === j)
|
|
378
|
+
break;
|
|
379
|
+
[heap[j], heap[smallest]] = [heap[smallest], heap[j]];
|
|
380
|
+
j = smallest;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
// Extract and sort descending
|
|
385
|
+
return heap.sort((a, b) => b.score - a.score).map(h => h.idx);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Flash Attention-style search
|
|
389
|
+
* Combines batch similarity, softmax, and top-k in one pass.
|
|
390
|
+
* Returns indices and attention weights.
|
|
391
|
+
*/
|
|
392
|
+
export function flashAttentionSearch(query, vectors, options = {}) {
|
|
393
|
+
const { k = 10, temperature = 1.0, threshold = 0 } = options;
|
|
394
|
+
const scores = batchCosineSim(query, vectors);
|
|
395
|
+
const indices = topKIndices(scores, k).filter(i => scores[i] >= threshold);
|
|
396
|
+
const topScores = new Float32Array(indices.map(i => scores[i]));
|
|
397
|
+
const weights = softmaxAttention(topScores, temperature);
|
|
398
|
+
return { indices, scores: topScores, weights };
|
|
399
|
+
}
|
|
400
|
+
//# sourceMappingURL=hnsw-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-operations.js","sourceRoot":"","sources":["../../../src/memory/hnsw-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intelligence.d.ts","sourceRoot":"","sources":["../../../src/memory/intelligence.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"intelligence.d.ts","sourceRoot":"","sources":["../../../src/memory/intelligence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyDH,MAAM,WAAW,UAAU;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAsBD;;;;GAIG;AACH,cAAM,oBAAoB;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAyE;IAC7F,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,sBAAsB,CAAwB;gBAE1C,MAAM,EAAE,UAAU;IAM9B;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBlC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE;QAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOnG;;OAEG;IACH,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM,EAAE;IAc9C;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAK9B;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAQ7C;;;;;;OAMG;IACG,aAAa,CACjB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EAC1C,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAiDvD;;;;;;;OAOG;IACG,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC;QACvD,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAwGF;;OAEG;IACH,yBAAyB,IAAI,cAAc,EAAE;IAI7C;;OAEG;IACH,KAAK,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;CAOnF;AAED;;;;GAIG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAA8C;gBAErD,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAU/D;;OAEG;IACH,OAAO,CAAC,YAAY;IAiCpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,WAAW,IAAI,IAAI;IAiBnB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAuC7G;;;;;;;OAOG;IACH,WAAW,CACT,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACzD,aAAa,EAAE;IAsBlB;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS7B;;OAEG;IACH,OAAO,CAAC,SAAS;IAiBjB;;OAEG;IACH,KAAK,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAO/C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C;;OAEG;IACH,MAAM,IAAI,aAAa,EAAE;IAIzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;IAIxC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAc3B;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AA0KD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IAClF,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAQD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAqEvE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACzC,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,OAAO,CAAC,YAAY,EAAE,CAAC,CA0DzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAYxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,GAAG,IAAI,CAE5D;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACzC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAc7D;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,CAcR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAQxC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,GAAE,MAAa,GAAG;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB,CAkCA;AAyFD;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAuBzD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAgBxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,SAAS,GAAE,MAAa,GAAG,OAAO,CAAC;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CA6DD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;CACrB,CAaA"}
|
|
@@ -413,13 +413,15 @@ class LocalReasoningBank {
|
|
|
413
413
|
// Update or insert
|
|
414
414
|
if (this.patterns.has(pattern.id)) {
|
|
415
415
|
const existing = this.patterns.get(pattern.id);
|
|
416
|
+
// Preserve accumulated metadata from the existing entry
|
|
416
417
|
stored.usageCount = existing.usageCount + 1;
|
|
417
418
|
stored.createdAt = existing.createdAt;
|
|
418
|
-
// Update in
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
419
|
+
// Update in-place: both Map and patternList hold the same object reference,
|
|
420
|
+
// so mutating it here updates both without an O(n) list scan (no findIndex).
|
|
421
|
+
Object.assign(existing, stored);
|
|
422
|
+
// No need to re-insert into Map or patternList — reference unchanged.
|
|
423
|
+
this.saveToDisk();
|
|
424
|
+
return;
|
|
423
425
|
}
|
|
424
426
|
else {
|
|
425
427
|
// Evict oldest if at capacity
|
|
@@ -436,30 +438,43 @@ class LocalReasoningBank {
|
|
|
436
438
|
this.saveToDisk();
|
|
437
439
|
}
|
|
438
440
|
/**
|
|
439
|
-
* Find similar patterns by embedding
|
|
441
|
+
* Find similar patterns by embedding.
|
|
442
|
+
*
|
|
443
|
+
* This is a pure read operation: it does NOT mutate usageCount or
|
|
444
|
+
* lastUsedAt, so no disk save is triggered. Callers that need to record
|
|
445
|
+
* a usage hit should call `recordUsage(id)` explicitly after consuming
|
|
446
|
+
* the results.
|
|
440
447
|
*/
|
|
441
448
|
findSimilar(queryEmbedding, options) {
|
|
442
449
|
const { k = 5, threshold = 0.5, type } = options;
|
|
443
450
|
// Filter by type if specified
|
|
444
|
-
|
|
451
|
+
const candidates = type
|
|
445
452
|
? this.patternList.filter(p => p.type === type)
|
|
446
453
|
: this.patternList;
|
|
447
|
-
// Compute similarities
|
|
448
|
-
const scored =
|
|
449
|
-
|
|
450
|
-
score
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
454
|
+
// Compute similarities without mutating patterns
|
|
455
|
+
const scored = [];
|
|
456
|
+
for (const pattern of candidates) {
|
|
457
|
+
const score = this.cosineSim(queryEmbedding, pattern.embedding);
|
|
458
|
+
if (score >= threshold) {
|
|
459
|
+
scored.push({ pattern, score });
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
// Sort descending and slice, returning snapshot copies with confidence=score
|
|
463
|
+
scored.sort((a, b) => b.score - a.score);
|
|
464
|
+
return scored.slice(0, k).map(s => ({ ...s.pattern, confidence: s.score }));
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Record that a pattern was used, updating its usage metrics and scheduling
|
|
468
|
+
* a debounced disk save. Separated from findSimilar to keep searches pure.
|
|
469
|
+
*/
|
|
470
|
+
recordUsage(id) {
|
|
471
|
+
const pattern = this.patterns.get(id);
|
|
472
|
+
if (!pattern)
|
|
473
|
+
return;
|
|
474
|
+
pattern.usageCount++;
|
|
475
|
+
pattern.lastUsedAt = Date.now();
|
|
476
|
+
// Update list entry in-place using the Map reference (already same object)
|
|
477
|
+
this.saveToDisk();
|
|
463
478
|
}
|
|
464
479
|
/**
|
|
465
480
|
* Optimized cosine similarity
|
|
@@ -841,6 +856,10 @@ export async function findSimilarPatterns(query, options) {
|
|
|
841
856
|
threshold: options?.threshold ?? defaultThreshold,
|
|
842
857
|
type: options?.type
|
|
843
858
|
});
|
|
859
|
+
// Record usage for each matched pattern (findSimilar is now a pure read)
|
|
860
|
+
for (const r of results) {
|
|
861
|
+
reasoningBank.recordUsage(r.id);
|
|
862
|
+
}
|
|
844
863
|
return results.map((r) => ({
|
|
845
864
|
id: r.id,
|
|
846
865
|
type: r.type,
|