@vinaes/succ 1.3.19
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/LICENSE +87 -0
- package/README.md +588 -0
- package/agents/succ-checkpoint-manager.md +51 -0
- package/agents/succ-code-reviewer.md +181 -0
- package/agents/succ-context-optimizer.md +83 -0
- package/agents/succ-debug.md +224 -0
- package/agents/succ-decision-auditor.md +74 -0
- package/agents/succ-deep-search.md +41 -0
- package/agents/succ-diff-reviewer.md +123 -0
- package/agents/succ-explore.md +83 -0
- package/agents/succ-general.md +109 -0
- package/agents/succ-knowledge-indexer.md +45 -0
- package/agents/succ-knowledge-mapper.md +61 -0
- package/agents/succ-memory-curator.md +43 -0
- package/agents/succ-memory-health-monitor.md +55 -0
- package/agents/succ-pattern-detective.md +62 -0
- package/agents/succ-plan.md +172 -0
- package/agents/succ-quality-improvement-coach.md +63 -0
- package/agents/succ-readiness-improver.md +62 -0
- package/agents/succ-session-handoff-orchestrator.md +54 -0
- package/agents/succ-session-reviewer.md +46 -0
- package/agents/succ-style-tracker.md +73 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +749 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agents-md.d.ts +16 -0
- package/dist/commands/agents-md.d.ts.map +1 -0
- package/dist/commands/agents-md.js +33 -0
- package/dist/commands/agents-md.js.map +1 -0
- package/dist/commands/analyze-agents.d.ts +20 -0
- package/dist/commands/analyze-agents.d.ts.map +1 -0
- package/dist/commands/analyze-agents.js +305 -0
- package/dist/commands/analyze-agents.js.map +1 -0
- package/dist/commands/analyze-helpers.d.ts +22 -0
- package/dist/commands/analyze-helpers.d.ts.map +1 -0
- package/dist/commands/analyze-helpers.js +38 -0
- package/dist/commands/analyze-helpers.js.map +1 -0
- package/dist/commands/analyze-profile.d.ts +53 -0
- package/dist/commands/analyze-profile.d.ts.map +1 -0
- package/dist/commands/analyze-profile.js +638 -0
- package/dist/commands/analyze-profile.js.map +1 -0
- package/dist/commands/analyze-recursive.d.ts +20 -0
- package/dist/commands/analyze-recursive.d.ts.map +1 -0
- package/dist/commands/analyze-recursive.js +326 -0
- package/dist/commands/analyze-recursive.js.map +1 -0
- package/dist/commands/analyze-utils.d.ts +83 -0
- package/dist/commands/analyze-utils.d.ts.map +1 -0
- package/dist/commands/analyze-utils.js +541 -0
- package/dist/commands/analyze-utils.js.map +1 -0
- package/dist/commands/analyze.d.ts +15 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +265 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/backfill.d.ts +22 -0
- package/dist/commands/backfill.d.ts.map +1 -0
- package/dist/commands/backfill.js +62 -0
- package/dist/commands/backfill.js.map +1 -0
- package/dist/commands/benchmark-quality.d.ts +18 -0
- package/dist/commands/benchmark-quality.d.ts.map +1 -0
- package/dist/commands/benchmark-quality.js +316 -0
- package/dist/commands/benchmark-quality.js.map +1 -0
- package/dist/commands/benchmark-sqlite-vec.d.ts +12 -0
- package/dist/commands/benchmark-sqlite-vec.d.ts.map +1 -0
- package/dist/commands/benchmark-sqlite-vec.js +281 -0
- package/dist/commands/benchmark-sqlite-vec.js.map +1 -0
- package/dist/commands/benchmark.d.ts +57 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +682 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/chat.d.ts +14 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +84 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/checkpoint.d.ts +27 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +181 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/clear.d.ts +9 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +31 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/config.d.ts +26 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +247 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/consolidate.d.ts +21 -0
- package/dist/commands/consolidate.d.ts.map +1 -0
- package/dist/commands/consolidate.js +117 -0
- package/dist/commands/consolidate.js.map +1 -0
- package/dist/commands/daemon.d.ts +48 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +218 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/embedding.d.ts +26 -0
- package/dist/commands/embedding.d.ts.map +1 -0
- package/dist/commands/embedding.js +168 -0
- package/dist/commands/embedding.js.map +1 -0
- package/dist/commands/graph.d.ts +20 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +128 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/index-code.d.ts +23 -0
- package/dist/commands/index-code.d.ts.map +1 -0
- package/dist/commands/index-code.js +218 -0
- package/dist/commands/index-code.js.map +1 -0
- package/dist/commands/index.d.ts +23 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +217 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init-templates.d.ts +21 -0
- package/dist/commands/init-templates.d.ts.map +1 -0
- package/dist/commands/init-templates.js +487 -0
- package/dist/commands/init-templates.js.map +1 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +865 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/memories.d.ts +47 -0
- package/dist/commands/memories.d.ts.map +1 -0
- package/dist/commands/memories.js +597 -0
- package/dist/commands/memories.js.map +1 -0
- package/dist/commands/migrate.d.ts +19 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +154 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/prd.d.ts +46 -0
- package/dist/commands/prd.d.ts.map +1 -0
- package/dist/commands/prd.js +378 -0
- package/dist/commands/prd.js.map +1 -0
- package/dist/commands/precompute-context.d.ts +11 -0
- package/dist/commands/precompute-context.d.ts.map +1 -0
- package/dist/commands/precompute-context.js +12 -0
- package/dist/commands/precompute-context.js.map +1 -0
- package/dist/commands/progress.d.ts +16 -0
- package/dist/commands/progress.d.ts.map +1 -0
- package/dist/commands/progress.js +38 -0
- package/dist/commands/progress.js.map +1 -0
- package/dist/commands/reindex.d.ts +17 -0
- package/dist/commands/reindex.d.ts.map +1 -0
- package/dist/commands/reindex.js +83 -0
- package/dist/commands/reindex.js.map +1 -0
- package/dist/commands/retention.d.ts +19 -0
- package/dist/commands/retention.d.ts.map +1 -0
- package/dist/commands/retention.js +162 -0
- package/dist/commands/retention.js.map +1 -0
- package/dist/commands/score.d.ts +10 -0
- package/dist/commands/score.d.ts.map +1 -0
- package/dist/commands/score.js +28 -0
- package/dist/commands/score.js.map +1 -0
- package/dist/commands/search.d.ts +7 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +89 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/session-summary.d.ts +15 -0
- package/dist/commands/session-summary.d.ts.map +1 -0
- package/dist/commands/session-summary.js +16 -0
- package/dist/commands/session-summary.js.map +1 -0
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +222 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/soul.d.ts +9 -0
- package/dist/commands/soul.d.ts.map +1 -0
- package/dist/commands/soul.js +256 -0
- package/dist/commands/soul.js.map +1 -0
- package/dist/commands/stats.d.ts +18 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +138 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +145 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/train-bpe.d.ts +8 -0
- package/dist/commands/train-bpe.d.ts.map +1 -0
- package/dist/commands/train-bpe.js +35 -0
- package/dist/commands/train-bpe.js.map +1 -0
- package/dist/commands/watch.d.ts +22 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +171 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/daemon/analyzer.d.ts +54 -0
- package/dist/daemon/analyzer.d.ts.map +1 -0
- package/dist/daemon/analyzer.js +362 -0
- package/dist/daemon/analyzer.js.map +1 -0
- package/dist/daemon/client.d.ts +87 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +356 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/index.d.ts +12 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +12 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/service.d.ts +51 -0
- package/dist/daemon/service.d.ts.map +1 -0
- package/dist/daemon/service.js +1203 -0
- package/dist/daemon/service.js.map +1 -0
- package/dist/daemon/session-processor.d.ts +85 -0
- package/dist/daemon/session-processor.d.ts.map +1 -0
- package/dist/daemon/session-processor.js +571 -0
- package/dist/daemon/session-processor.js.map +1 -0
- package/dist/daemon/sessions.d.ts +62 -0
- package/dist/daemon/sessions.d.ts.map +1 -0
- package/dist/daemon/sessions.js +192 -0
- package/dist/daemon/sessions.js.map +1 -0
- package/dist/daemon/watcher.d.ts +52 -0
- package/dist/daemon/watcher.d.ts.map +1 -0
- package/dist/daemon/watcher.js +363 -0
- package/dist/daemon/watcher.js.map +1 -0
- package/dist/lib/agents-md-generator.d.ts +33 -0
- package/dist/lib/agents-md-generator.d.ts.map +1 -0
- package/dist/lib/agents-md-generator.js +156 -0
- package/dist/lib/agents-md-generator.js.map +1 -0
- package/dist/lib/ai-readiness.d.ts +132 -0
- package/dist/lib/ai-readiness.d.ts.map +1 -0
- package/dist/lib/ai-readiness.js +702 -0
- package/dist/lib/ai-readiness.js.map +1 -0
- package/dist/lib/analyze-state.d.ts +34 -0
- package/dist/lib/analyze-state.d.ts.map +1 -0
- package/dist/lib/analyze-state.js +106 -0
- package/dist/lib/analyze-state.js.map +1 -0
- package/dist/lib/benchmark.d.ts +250 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +778 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/bm25.d.ts +114 -0
- package/dist/lib/bm25.d.ts.map +1 -0
- package/dist/lib/bm25.js +727 -0
- package/dist/lib/bm25.js.map +1 -0
- package/dist/lib/bpe.d.ts +70 -0
- package/dist/lib/bpe.d.ts.map +1 -0
- package/dist/lib/bpe.js +270 -0
- package/dist/lib/bpe.js.map +1 -0
- package/dist/lib/checkpoint.d.ts +124 -0
- package/dist/lib/checkpoint.d.ts.map +1 -0
- package/dist/lib/checkpoint.js +321 -0
- package/dist/lib/checkpoint.js.map +1 -0
- package/dist/lib/chunker.d.ts +47 -0
- package/dist/lib/chunker.d.ts.map +1 -0
- package/dist/lib/chunker.js +358 -0
- package/dist/lib/chunker.js.map +1 -0
- package/dist/lib/claude-ws-transport.d.ts +76 -0
- package/dist/lib/claude-ws-transport.d.ts.map +1 -0
- package/dist/lib/claude-ws-transport.js +487 -0
- package/dist/lib/claude-ws-transport.js.map +1 -0
- package/dist/lib/compact-briefing.d.ts +22 -0
- package/dist/lib/compact-briefing.d.ts.map +1 -0
- package/dist/lib/compact-briefing.js +180 -0
- package/dist/lib/compact-briefing.js.map +1 -0
- package/dist/lib/config-defaults.d.ts +41 -0
- package/dist/lib/config-defaults.d.ts.map +1 -0
- package/dist/lib/config-defaults.js +99 -0
- package/dist/lib/config-defaults.js.map +1 -0
- package/dist/lib/config-display.d.ts +16 -0
- package/dist/lib/config-display.d.ts.map +1 -0
- package/dist/lib/config-display.js +408 -0
- package/dist/lib/config-display.js.map +1 -0
- package/dist/lib/config-types.d.ts +601 -0
- package/dist/lib/config-types.d.ts.map +1 -0
- package/dist/lib/config-types.js +7 -0
- package/dist/lib/config-types.js.map +1 -0
- package/dist/lib/config-validation.d.ts +19 -0
- package/dist/lib/config-validation.d.ts.map +1 -0
- package/dist/lib/config-validation.js +136 -0
- package/dist/lib/config-validation.js.map +1 -0
- package/dist/lib/config.d.ts +143 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +689 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/consolidate.d.ts +115 -0
- package/dist/lib/consolidate.d.ts.map +1 -0
- package/dist/lib/consolidate.js +600 -0
- package/dist/lib/consolidate.js.map +1 -0
- package/dist/lib/db/bm25-indexes.d.ts +58 -0
- package/dist/lib/db/bm25-indexes.d.ts.map +1 -0
- package/dist/lib/db/bm25-indexes.js +333 -0
- package/dist/lib/db/bm25-indexes.js.map +1 -0
- package/dist/lib/db/bpe.d.ts +18 -0
- package/dist/lib/db/bpe.d.ts.map +1 -0
- package/dist/lib/db/bpe.js +44 -0
- package/dist/lib/db/bpe.js.map +1 -0
- package/dist/lib/db/connection.d.ts +47 -0
- package/dist/lib/db/connection.d.ts.map +1 -0
- package/dist/lib/db/connection.js +114 -0
- package/dist/lib/db/connection.js.map +1 -0
- package/dist/lib/db/documents.d.ts +58 -0
- package/dist/lib/db/documents.d.ts.map +1 -0
- package/dist/lib/db/documents.js +374 -0
- package/dist/lib/db/documents.js.map +1 -0
- package/dist/lib/db/file-hash.d.ts +26 -0
- package/dist/lib/db/file-hash.d.ts.map +1 -0
- package/dist/lib/db/file-hash.js +56 -0
- package/dist/lib/db/file-hash.js.map +1 -0
- package/dist/lib/db/global-memories.d.ts +62 -0
- package/dist/lib/db/global-memories.d.ts.map +1 -0
- package/dist/lib/db/global-memories.js +173 -0
- package/dist/lib/db/global-memories.js.map +1 -0
- package/dist/lib/db/graph.d.ts +163 -0
- package/dist/lib/db/graph.d.ts.map +1 -0
- package/dist/lib/db/graph.js +488 -0
- package/dist/lib/db/graph.js.map +1 -0
- package/dist/lib/db/helpers.d.ts +13 -0
- package/dist/lib/db/helpers.d.ts.map +1 -0
- package/dist/lib/db/helpers.js +21 -0
- package/dist/lib/db/helpers.js.map +1 -0
- package/dist/lib/db/hybrid-search.d.ts +64 -0
- package/dist/lib/db/hybrid-search.d.ts.map +1 -0
- package/dist/lib/db/hybrid-search.js +549 -0
- package/dist/lib/db/hybrid-search.js.map +1 -0
- package/dist/lib/db/index.d.ts +23 -0
- package/dist/lib/db/index.d.ts.map +1 -0
- package/dist/lib/db/index.js +23 -0
- package/dist/lib/db/index.js.map +1 -0
- package/dist/lib/db/memories.d.ts +174 -0
- package/dist/lib/db/memories.d.ts.map +1 -0
- package/dist/lib/db/memories.js +866 -0
- package/dist/lib/db/memories.js.map +1 -0
- package/dist/lib/db/retention.d.ts +64 -0
- package/dist/lib/db/retention.d.ts.map +1 -0
- package/dist/lib/db/retention.js +115 -0
- package/dist/lib/db/retention.js.map +1 -0
- package/dist/lib/db/schema.d.ts +29 -0
- package/dist/lib/db/schema.d.ts.map +1 -0
- package/dist/lib/db/schema.js +832 -0
- package/dist/lib/db/schema.js.map +1 -0
- package/dist/lib/db/skills.d.ts +65 -0
- package/dist/lib/db/skills.d.ts.map +1 -0
- package/dist/lib/db/skills.js +119 -0
- package/dist/lib/db/skills.js.map +1 -0
- package/dist/lib/db/token-frequency.d.ts +34 -0
- package/dist/lib/db/token-frequency.d.ts.map +1 -0
- package/dist/lib/db/token-frequency.js +92 -0
- package/dist/lib/db/token-frequency.js.map +1 -0
- package/dist/lib/db/token-stats.d.ts +43 -0
- package/dist/lib/db/token-stats.d.ts.map +1 -0
- package/dist/lib/db/token-stats.js +59 -0
- package/dist/lib/db/token-stats.js.map +1 -0
- package/dist/lib/db/types.d.ts +57 -0
- package/dist/lib/db/types.d.ts.map +1 -0
- package/dist/lib/db/types.js +5 -0
- package/dist/lib/db/types.js.map +1 -0
- package/dist/lib/db/web-search-history.d.ts +22 -0
- package/dist/lib/db/web-search-history.d.ts.map +1 -0
- package/dist/lib/db/web-search-history.js +107 -0
- package/dist/lib/db/web-search-history.js.map +1 -0
- package/dist/lib/debug/state.d.ts +17 -0
- package/dist/lib/debug/state.d.ts.map +1 -0
- package/dist/lib/debug/state.js +131 -0
- package/dist/lib/debug/state.js.map +1 -0
- package/dist/lib/debug/types.d.ts +74 -0
- package/dist/lib/debug/types.d.ts.map +1 -0
- package/dist/lib/debug/types.js +85 -0
- package/dist/lib/debug/types.js.map +1 -0
- package/dist/lib/embedding-pool.d.ts +37 -0
- package/dist/lib/embedding-pool.d.ts.map +1 -0
- package/dist/lib/embedding-pool.js +159 -0
- package/dist/lib/embedding-pool.js.map +1 -0
- package/dist/lib/embedding-worker.d.ts +7 -0
- package/dist/lib/embedding-worker.d.ts.map +1 -0
- package/dist/lib/embedding-worker.js +49 -0
- package/dist/lib/embedding-worker.js.map +1 -0
- package/dist/lib/embeddings.d.ts +54 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/embeddings.js +437 -0
- package/dist/lib/embeddings.js.map +1 -0
- package/dist/lib/errors.d.ts +40 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +66 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/fault-logger.d.ts +35 -0
- package/dist/lib/fault-logger.d.ts.map +1 -0
- package/dist/lib/fault-logger.js +182 -0
- package/dist/lib/fault-logger.js.map +1 -0
- package/dist/lib/graph/centrality.d.ts +34 -0
- package/dist/lib/graph/centrality.d.ts.map +1 -0
- package/dist/lib/graph/centrality.js +76 -0
- package/dist/lib/graph/centrality.js.map +1 -0
- package/dist/lib/graph/cleanup.d.ts +36 -0
- package/dist/lib/graph/cleanup.d.ts.map +1 -0
- package/dist/lib/graph/cleanup.js +96 -0
- package/dist/lib/graph/cleanup.js.map +1 -0
- package/dist/lib/graph/community-detection.d.ts +61 -0
- package/dist/lib/graph/community-detection.d.ts.map +1 -0
- package/dist/lib/graph/community-detection.js +218 -0
- package/dist/lib/graph/community-detection.js.map +1 -0
- package/dist/lib/graph/contextual-proximity.d.ts +41 -0
- package/dist/lib/graph/contextual-proximity.d.ts.map +1 -0
- package/dist/lib/graph/contextual-proximity.js +125 -0
- package/dist/lib/graph/contextual-proximity.js.map +1 -0
- package/dist/lib/graph/llm-relations.d.ts +54 -0
- package/dist/lib/graph/llm-relations.d.ts.map +1 -0
- package/dist/lib/graph/llm-relations.js +265 -0
- package/dist/lib/graph/llm-relations.js.map +1 -0
- package/dist/lib/graph-export.d.ts +13 -0
- package/dist/lib/graph-export.d.ts.map +1 -0
- package/dist/lib/graph-export.js +637 -0
- package/dist/lib/graph-export.js.map +1 -0
- package/dist/lib/graph-scheduler.d.ts +7 -0
- package/dist/lib/graph-scheduler.d.ts.map +1 -0
- package/dist/lib/graph-scheduler.js +21 -0
- package/dist/lib/graph-scheduler.js.map +1 -0
- package/dist/lib/indexer.d.ts +36 -0
- package/dist/lib/indexer.d.ts.map +1 -0
- package/dist/lib/indexer.js +226 -0
- package/dist/lib/indexer.js.map +1 -0
- package/dist/lib/learning-delta.d.ts +35 -0
- package/dist/lib/learning-delta.d.ts.map +1 -0
- package/dist/lib/learning-delta.js +53 -0
- package/dist/lib/learning-delta.js.map +1 -0
- package/dist/lib/llm.d.ts +118 -0
- package/dist/lib/llm.d.ts.map +1 -0
- package/dist/lib/llm.js +439 -0
- package/dist/lib/llm.js.map +1 -0
- package/dist/lib/lock.d.ts +27 -0
- package/dist/lib/lock.d.ts.map +1 -0
- package/dist/lib/lock.js +143 -0
- package/dist/lib/lock.js.map +1 -0
- package/dist/lib/md-fetch.d.ts +61 -0
- package/dist/lib/md-fetch.d.ts.map +1 -0
- package/dist/lib/md-fetch.js +141 -0
- package/dist/lib/md-fetch.js.map +1 -0
- package/dist/lib/mmr.d.ts +29 -0
- package/dist/lib/mmr.d.ts.map +1 -0
- package/dist/lib/mmr.js +89 -0
- package/dist/lib/mmr.js.map +1 -0
- package/dist/lib/onboarding/ai-chat.d.ts +11 -0
- package/dist/lib/onboarding/ai-chat.d.ts.map +1 -0
- package/dist/lib/onboarding/ai-chat.js +85 -0
- package/dist/lib/onboarding/ai-chat.js.map +1 -0
- package/dist/lib/onboarding/index.d.ts +7 -0
- package/dist/lib/onboarding/index.d.ts.map +1 -0
- package/dist/lib/onboarding/index.js +7 -0
- package/dist/lib/onboarding/index.js.map +1 -0
- package/dist/lib/onboarding/wizard.d.ts +11 -0
- package/dist/lib/onboarding/wizard.d.ts.map +1 -0
- package/dist/lib/onboarding/wizard.js +104 -0
- package/dist/lib/onboarding/wizard.js.map +1 -0
- package/dist/lib/ort-provider.d.ts +27 -0
- package/dist/lib/ort-provider.d.ts.map +1 -0
- package/dist/lib/ort-provider.js +83 -0
- package/dist/lib/ort-provider.js.map +1 -0
- package/dist/lib/ort-session.d.ts +32 -0
- package/dist/lib/ort-session.d.ts.map +1 -0
- package/dist/lib/ort-session.js +227 -0
- package/dist/lib/ort-session.js.map +1 -0
- package/dist/lib/patterns.d.ts +43 -0
- package/dist/lib/patterns.d.ts.map +1 -0
- package/dist/lib/patterns.js +395 -0
- package/dist/lib/patterns.js.map +1 -0
- package/dist/lib/prd/codebase-context.d.ts +27 -0
- package/dist/lib/prd/codebase-context.d.ts.map +1 -0
- package/dist/lib/prd/codebase-context.js +420 -0
- package/dist/lib/prd/codebase-context.js.map +1 -0
- package/dist/lib/prd/context.d.ts +24 -0
- package/dist/lib/prd/context.d.ts.map +1 -0
- package/dist/lib/prd/context.js +68 -0
- package/dist/lib/prd/context.js.map +1 -0
- package/dist/lib/prd/executor.d.ts +52 -0
- package/dist/lib/prd/executor.d.ts.map +1 -0
- package/dist/lib/prd/executor.js +154 -0
- package/dist/lib/prd/executor.js.map +1 -0
- package/dist/lib/prd/export.d.ts +40 -0
- package/dist/lib/prd/export.d.ts.map +1 -0
- package/dist/lib/prd/export.js +511 -0
- package/dist/lib/prd/export.js.map +1 -0
- package/dist/lib/prd/gates.d.ts +30 -0
- package/dist/lib/prd/gates.d.ts.map +1 -0
- package/dist/lib/prd/gates.js +100 -0
- package/dist/lib/prd/gates.js.map +1 -0
- package/dist/lib/prd/generate.d.ts +56 -0
- package/dist/lib/prd/generate.d.ts.map +1 -0
- package/dist/lib/prd/generate.js +357 -0
- package/dist/lib/prd/generate.js.map +1 -0
- package/dist/lib/prd/parse.d.ts +21 -0
- package/dist/lib/prd/parse.d.ts.map +1 -0
- package/dist/lib/prd/parse.js +270 -0
- package/dist/lib/prd/parse.js.map +1 -0
- package/dist/lib/prd/prompt-builder.d.ts +18 -0
- package/dist/lib/prd/prompt-builder.d.ts.map +1 -0
- package/dist/lib/prd/prompt-builder.js +61 -0
- package/dist/lib/prd/prompt-builder.js.map +1 -0
- package/dist/lib/prd/runner.d.ts +54 -0
- package/dist/lib/prd/runner.d.ts.map +1 -0
- package/dist/lib/prd/runner.js +563 -0
- package/dist/lib/prd/runner.js.map +1 -0
- package/dist/lib/prd/scheduler.d.ts +27 -0
- package/dist/lib/prd/scheduler.d.ts.map +1 -0
- package/dist/lib/prd/scheduler.js +113 -0
- package/dist/lib/prd/scheduler.js.map +1 -0
- package/dist/lib/prd/state.d.ts +77 -0
- package/dist/lib/prd/state.d.ts.map +1 -0
- package/dist/lib/prd/state.js +253 -0
- package/dist/lib/prd/state.js.map +1 -0
- package/dist/lib/prd/team-runner.d.ts +48 -0
- package/dist/lib/prd/team-runner.d.ts.map +1 -0
- package/dist/lib/prd/team-runner.js +261 -0
- package/dist/lib/prd/team-runner.js.map +1 -0
- package/dist/lib/prd/types.d.ts +169 -0
- package/dist/lib/prd/types.d.ts.map +1 -0
- package/dist/lib/prd/types.js +143 -0
- package/dist/lib/prd/types.js.map +1 -0
- package/dist/lib/prd/worktree.d.ts +54 -0
- package/dist/lib/prd/worktree.d.ts.map +1 -0
- package/dist/lib/prd/worktree.js +255 -0
- package/dist/lib/prd/worktree.js.map +1 -0
- package/dist/lib/precompute-context.d.ts +48 -0
- package/dist/lib/precompute-context.d.ts.map +1 -0
- package/dist/lib/precompute-context.js +265 -0
- package/dist/lib/precompute-context.js.map +1 -0
- package/dist/lib/pricing.d.ts +60 -0
- package/dist/lib/pricing.d.ts.map +1 -0
- package/dist/lib/pricing.js +258 -0
- package/dist/lib/pricing.js.map +1 -0
- package/dist/lib/process-registry.d.ts +30 -0
- package/dist/lib/process-registry.d.ts.map +1 -0
- package/dist/lib/process-registry.js +92 -0
- package/dist/lib/process-registry.js.map +1 -0
- package/dist/lib/progress-log.d.ts +44 -0
- package/dist/lib/progress-log.d.ts.map +1 -0
- package/dist/lib/progress-log.js +58 -0
- package/dist/lib/progress-log.js.map +1 -0
- package/dist/lib/public-api.d.ts +56 -0
- package/dist/lib/public-api.d.ts.map +1 -0
- package/dist/lib/public-api.js +63 -0
- package/dist/lib/public-api.js.map +1 -0
- package/dist/lib/quality.d.ts +66 -0
- package/dist/lib/quality.d.ts.map +1 -0
- package/dist/lib/quality.js +486 -0
- package/dist/lib/quality.js.map +1 -0
- package/dist/lib/query-expansion.d.ts +16 -0
- package/dist/lib/query-expansion.d.ts.map +1 -0
- package/dist/lib/query-expansion.js +53 -0
- package/dist/lib/query-expansion.js.map +1 -0
- package/dist/lib/readiness.d.ts +35 -0
- package/dist/lib/readiness.d.ts.map +1 -0
- package/dist/lib/readiness.js +142 -0
- package/dist/lib/readiness.js.map +1 -0
- package/dist/lib/reference-embeddings.d.ts +39 -0
- package/dist/lib/reference-embeddings.d.ts.map +1 -0
- package/dist/lib/reference-embeddings.js +95 -0
- package/dist/lib/reference-embeddings.js.map +1 -0
- package/dist/lib/reflection-synthesizer.d.ts +27 -0
- package/dist/lib/reflection-synthesizer.d.ts.map +1 -0
- package/dist/lib/reflection-synthesizer.js +149 -0
- package/dist/lib/reflection-synthesizer.js.map +1 -0
- package/dist/lib/retention.d.ts +105 -0
- package/dist/lib/retention.d.ts.map +1 -0
- package/dist/lib/retention.js +246 -0
- package/dist/lib/retention.js.map +1 -0
- package/dist/lib/sensitive-filter.d.ts +34 -0
- package/dist/lib/sensitive-filter.d.ts.map +1 -0
- package/dist/lib/sensitive-filter.js +344 -0
- package/dist/lib/sensitive-filter.js.map +1 -0
- package/dist/lib/session-observations.d.ts +59 -0
- package/dist/lib/session-observations.d.ts.map +1 -0
- package/dist/lib/session-observations.js +128 -0
- package/dist/lib/session-observations.js.map +1 -0
- package/dist/lib/session-summary.d.ts +65 -0
- package/dist/lib/session-summary.d.ts.map +1 -0
- package/dist/lib/session-summary.js +344 -0
- package/dist/lib/session-summary.js.map +1 -0
- package/dist/lib/similarity-worker.d.ts +7 -0
- package/dist/lib/similarity-worker.d.ts.map +1 -0
- package/dist/lib/similarity-worker.js +36 -0
- package/dist/lib/similarity-worker.js.map +1 -0
- package/dist/lib/skills.d.ts +78 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +439 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/skyll-client.d.ts +59 -0
- package/dist/lib/skyll-client.d.ts.map +1 -0
- package/dist/lib/skyll-client.js +257 -0
- package/dist/lib/skyll-client.js.map +1 -0
- package/dist/lib/storage/backends/interface.d.ts +383 -0
- package/dist/lib/storage/backends/interface.d.ts.map +1 -0
- package/dist/lib/storage/backends/interface.js +12 -0
- package/dist/lib/storage/backends/interface.js.map +1 -0
- package/dist/lib/storage/backends/postgresql.d.ts +454 -0
- package/dist/lib/storage/backends/postgresql.d.ts.map +1 -0
- package/dist/lib/storage/backends/postgresql.js +2528 -0
- package/dist/lib/storage/backends/postgresql.js.map +1 -0
- package/dist/lib/storage/benchmark.d.ts +16 -0
- package/dist/lib/storage/benchmark.d.ts.map +1 -0
- package/dist/lib/storage/benchmark.js +219 -0
- package/dist/lib/storage/benchmark.js.map +1 -0
- package/dist/lib/storage/dispatcher-export.d.ts +108 -0
- package/dist/lib/storage/dispatcher-export.d.ts.map +1 -0
- package/dist/lib/storage/dispatcher-export.js +593 -0
- package/dist/lib/storage/dispatcher-export.js.map +1 -0
- package/dist/lib/storage/dispatcher.d.ts +468 -0
- package/dist/lib/storage/dispatcher.d.ts.map +1 -0
- package/dist/lib/storage/dispatcher.js +1926 -0
- package/dist/lib/storage/dispatcher.js.map +1 -0
- package/dist/lib/storage/index.d.ts +481 -0
- package/dist/lib/storage/index.d.ts.map +1 -0
- package/dist/lib/storage/index.js +727 -0
- package/dist/lib/storage/index.js.map +1 -0
- package/dist/lib/storage/migration/export-import.d.ts +133 -0
- package/dist/lib/storage/migration/export-import.d.ts.map +1 -0
- package/dist/lib/storage/migration/export-import.js +264 -0
- package/dist/lib/storage/migration/export-import.js.map +1 -0
- package/dist/lib/storage/types.d.ts +313 -0
- package/dist/lib/storage/types.d.ts.map +1 -0
- package/dist/lib/storage/types.js +30 -0
- package/dist/lib/storage/types.js.map +1 -0
- package/dist/lib/storage/vector/interface.d.ts +89 -0
- package/dist/lib/storage/vector/interface.d.ts.map +1 -0
- package/dist/lib/storage/vector/interface.js +10 -0
- package/dist/lib/storage/vector/interface.js.map +1 -0
- package/dist/lib/storage/vector/qdrant.d.ts +221 -0
- package/dist/lib/storage/vector/qdrant.d.ts.map +1 -0
- package/dist/lib/storage/vector/qdrant.js +880 -0
- package/dist/lib/storage/vector/qdrant.js.map +1 -0
- package/dist/lib/supersession.d.ts +26 -0
- package/dist/lib/supersession.d.ts.map +1 -0
- package/dist/lib/supersession.js +97 -0
- package/dist/lib/supersession.js.map +1 -0
- package/dist/lib/temporal.d.ts +140 -0
- package/dist/lib/temporal.d.ts.map +1 -0
- package/dist/lib/temporal.js +303 -0
- package/dist/lib/temporal.js.map +1 -0
- package/dist/lib/token-budget.d.ts +79 -0
- package/dist/lib/token-budget.d.ts.map +1 -0
- package/dist/lib/token-budget.js +146 -0
- package/dist/lib/token-budget.js.map +1 -0
- package/dist/lib/token-counter.d.ts +27 -0
- package/dist/lib/token-counter.d.ts.map +1 -0
- package/dist/lib/token-counter.js +52 -0
- package/dist/lib/token-counter.js.map +1 -0
- package/dist/lib/tree-sitter/chunker-ts.d.ts +24 -0
- package/dist/lib/tree-sitter/chunker-ts.d.ts.map +1 -0
- package/dist/lib/tree-sitter/chunker-ts.js +206 -0
- package/dist/lib/tree-sitter/chunker-ts.js.map +1 -0
- package/dist/lib/tree-sitter/extractor.d.ts +43 -0
- package/dist/lib/tree-sitter/extractor.d.ts.map +1 -0
- package/dist/lib/tree-sitter/extractor.js +297 -0
- package/dist/lib/tree-sitter/extractor.js.map +1 -0
- package/dist/lib/tree-sitter/index.d.ts +13 -0
- package/dist/lib/tree-sitter/index.d.ts.map +1 -0
- package/dist/lib/tree-sitter/index.js +14 -0
- package/dist/lib/tree-sitter/index.js.map +1 -0
- package/dist/lib/tree-sitter/parser.d.ts +70 -0
- package/dist/lib/tree-sitter/parser.d.ts.map +1 -0
- package/dist/lib/tree-sitter/parser.js +354 -0
- package/dist/lib/tree-sitter/parser.js.map +1 -0
- package/dist/lib/tree-sitter/public.d.ts +28 -0
- package/dist/lib/tree-sitter/public.d.ts.map +1 -0
- package/dist/lib/tree-sitter/public.js +50 -0
- package/dist/lib/tree-sitter/public.js.map +1 -0
- package/dist/lib/tree-sitter/queries.d.ts +28 -0
- package/dist/lib/tree-sitter/queries.d.ts.map +1 -0
- package/dist/lib/tree-sitter/queries.js +383 -0
- package/dist/lib/tree-sitter/queries.js.map +1 -0
- package/dist/lib/tree-sitter/types.d.ts +69 -0
- package/dist/lib/tree-sitter/types.d.ts.map +1 -0
- package/dist/lib/tree-sitter/types.js +131 -0
- package/dist/lib/tree-sitter/types.js.map +1 -0
- package/dist/lib/working-memory-pipeline.d.ts +118 -0
- package/dist/lib/working-memory-pipeline.d.ts.map +1 -0
- package/dist/lib/working-memory-pipeline.js +344 -0
- package/dist/lib/working-memory-pipeline.js.map +1 -0
- package/dist/mcp/helpers.d.ts +44 -0
- package/dist/mcp/helpers.d.ts.map +1 -0
- package/dist/mcp/helpers.js +244 -0
- package/dist/mcp/helpers.js.map +1 -0
- package/dist/mcp/index.d.ts +10 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +15 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/resources.d.ts +12 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +136 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +22 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +131 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/config.d.ts +10 -0
- package/dist/mcp/tools/config.d.ts.map +1 -0
- package/dist/mcp/tools/config.js +236 -0
- package/dist/mcp/tools/config.js.map +1 -0
- package/dist/mcp/tools/dead-end.d.ts +9 -0
- package/dist/mcp/tools/dead-end.d.ts.map +1 -0
- package/dist/mcp/tools/dead-end.js +137 -0
- package/dist/mcp/tools/dead-end.js.map +1 -0
- package/dist/mcp/tools/debug.d.ts +9 -0
- package/dist/mcp/tools/debug.d.ts.map +1 -0
- package/dist/mcp/tools/debug.js +387 -0
- package/dist/mcp/tools/debug.js.map +1 -0
- package/dist/mcp/tools/graph.d.ts +9 -0
- package/dist/mcp/tools/graph.d.ts.map +1 -0
- package/dist/mcp/tools/graph.js +337 -0
- package/dist/mcp/tools/graph.js.map +1 -0
- package/dist/mcp/tools/indexing.d.ts +12 -0
- package/dist/mcp/tools/indexing.d.ts.map +1 -0
- package/dist/mcp/tools/indexing.js +289 -0
- package/dist/mcp/tools/indexing.js.map +1 -0
- package/dist/mcp/tools/memory.d.ts +14 -0
- package/dist/mcp/tools/memory.d.ts.map +1 -0
- package/dist/mcp/tools/memory.js +1170 -0
- package/dist/mcp/tools/memory.js.map +1 -0
- package/dist/mcp/tools/prd.d.ts +12 -0
- package/dist/mcp/tools/prd.d.ts.map +1 -0
- package/dist/mcp/tools/prd.js +276 -0
- package/dist/mcp/tools/prd.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +9 -0
- package/dist/mcp/tools/search.d.ts.map +1 -0
- package/dist/mcp/tools/search.js +279 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/mcp/tools/status.d.ts +10 -0
- package/dist/mcp/tools/status.d.ts.map +1 -0
- package/dist/mcp/tools/status.js +296 -0
- package/dist/mcp/tools/status.js.map +1 -0
- package/dist/mcp/tools/web-fetch.d.ts +10 -0
- package/dist/mcp/tools/web-fetch.d.ts.map +1 -0
- package/dist/mcp/tools/web-fetch.js +107 -0
- package/dist/mcp/tools/web-fetch.js.map +1 -0
- package/dist/mcp/tools/web-search.d.ts +14 -0
- package/dist/mcp/tools/web-search.d.ts.map +1 -0
- package/dist/mcp/tools/web-search.js +427 -0
- package/dist/mcp/tools/web-search.js.map +1 -0
- package/dist/mcp/types.d.ts +16 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +5 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp-server.d.ts +9 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +9 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/prompts/analyze.d.ts +21 -0
- package/dist/prompts/analyze.d.ts.map +1 -0
- package/dist/prompts/analyze.js +27 -0
- package/dist/prompts/analyze.js.map +1 -0
- package/dist/prompts/briefing.d.ts +27 -0
- package/dist/prompts/briefing.d.ts.map +1 -0
- package/dist/prompts/briefing.js +123 -0
- package/dist/prompts/briefing.js.map +1 -0
- package/dist/prompts/chat.d.ts +8 -0
- package/dist/prompts/chat.d.ts.map +1 -0
- package/dist/prompts/chat.js +39 -0
- package/dist/prompts/chat.js.map +1 -0
- package/dist/prompts/daemon.d.ts +16 -0
- package/dist/prompts/daemon.d.ts.map +1 -0
- package/dist/prompts/daemon.js +46 -0
- package/dist/prompts/daemon.js.map +1 -0
- package/dist/prompts/extraction.d.ts +13 -0
- package/dist/prompts/extraction.d.ts.map +1 -0
- package/dist/prompts/extraction.js +93 -0
- package/dist/prompts/extraction.js.map +1 -0
- package/dist/prompts/index.d.ts +17 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +27 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/memory.d.ts +11 -0
- package/dist/prompts/memory.d.ts.map +1 -0
- package/dist/prompts/memory.js +23 -0
- package/dist/prompts/memory.js.map +1 -0
- package/dist/prompts/onboarding.d.ts +16 -0
- package/dist/prompts/onboarding.d.ts.map +1 -0
- package/dist/prompts/onboarding.js +183 -0
- package/dist/prompts/onboarding.js.map +1 -0
- package/dist/prompts/prd.d.ts +12 -0
- package/dist/prompts/prd.d.ts.map +1 -0
- package/dist/prompts/prd.js +211 -0
- package/dist/prompts/prd.js.map +1 -0
- package/dist/prompts/quality.d.ts +11 -0
- package/dist/prompts/quality.d.ts.map +1 -0
- package/dist/prompts/quality.js +11 -0
- package/dist/prompts/quality.js.map +1 -0
- package/dist/prompts/skills.d.ts +16 -0
- package/dist/prompts/skills.d.ts.map +1 -0
- package/dist/prompts/skills.js +30 -0
- package/dist/prompts/skills.js.map +1 -0
- package/hooks/succ-post-tool.cjs +227 -0
- package/hooks/succ-pre-tool.cjs +312 -0
- package/hooks/succ-session-end.cjs +85 -0
- package/hooks/succ-session-start.cjs +618 -0
- package/hooks/succ-stop-reflection.cjs +87 -0
- package/hooks/succ-user-prompt.cjs +220 -0
- package/package.json +128 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as bm25 from '../bm25.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get or build BM25 index for code search
|
|
4
|
+
*/
|
|
5
|
+
declare function getCodeBm25Index(): bm25.BM25Index;
|
|
6
|
+
/**
|
|
7
|
+
* Invalidate BM25 index (call when documents change)
|
|
8
|
+
*/
|
|
9
|
+
export declare function invalidateCodeBm25Index(): void;
|
|
10
|
+
/**
|
|
11
|
+
* Update BM25 index when a document is added/updated
|
|
12
|
+
*/
|
|
13
|
+
export declare function updateCodeBm25Index(docId: number, content: string, symbolName?: string, signature?: string): void;
|
|
14
|
+
export { getCodeBm25Index };
|
|
15
|
+
/**
|
|
16
|
+
* Get or build BM25 index for docs search (brain/ files)
|
|
17
|
+
*/
|
|
18
|
+
declare function getDocsBm25Index(): bm25.BM25Index;
|
|
19
|
+
/**
|
|
20
|
+
* Invalidate docs BM25 index
|
|
21
|
+
*/
|
|
22
|
+
export declare function invalidateDocsBm25Index(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Update docs BM25 index when a document is added/updated
|
|
25
|
+
*/
|
|
26
|
+
export declare function updateDocsBm25Index(docId: number, content: string): void;
|
|
27
|
+
export { getDocsBm25Index };
|
|
28
|
+
/**
|
|
29
|
+
* Get or build BM25 index for memories
|
|
30
|
+
*/
|
|
31
|
+
declare function getMemoriesBm25Index(): bm25.BM25Index;
|
|
32
|
+
/**
|
|
33
|
+
* Invalidate memories BM25 index
|
|
34
|
+
*/
|
|
35
|
+
export declare function invalidateMemoriesBm25Index(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Update memories BM25 index when a memory is added
|
|
38
|
+
*/
|
|
39
|
+
export declare function updateMemoriesBm25Index(memoryId: number, content: string): void;
|
|
40
|
+
export { getMemoriesBm25Index };
|
|
41
|
+
/**
|
|
42
|
+
* Get or build BM25 index for global memories
|
|
43
|
+
*/
|
|
44
|
+
declare function getGlobalMemoriesBm25Index(): bm25.BM25Index;
|
|
45
|
+
/**
|
|
46
|
+
* Invalidate global memories BM25 index
|
|
47
|
+
*/
|
|
48
|
+
export declare function invalidateGlobalMemoriesBm25Index(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Update global memories BM25 index when a memory is added
|
|
51
|
+
*/
|
|
52
|
+
export declare function updateGlobalMemoriesBm25Index(memoryId: number, content: string): void;
|
|
53
|
+
export { getGlobalMemoriesBm25Index };
|
|
54
|
+
/**
|
|
55
|
+
* Invalidate all BM25 indexes (useful for full rebuild)
|
|
56
|
+
*/
|
|
57
|
+
export declare function invalidateBM25Index(): void;
|
|
58
|
+
//# sourceMappingURL=bm25-indexes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bm25-indexes.d.ts","sourceRoot":"","sources":["../../../src/lib/db/bm25-indexes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAYnC;;GAEG;AACH,iBAAS,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAqD1C;AAcD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAON;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAQ5B;;GAEG;AACH,iBAAS,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAuC1C;AAcD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKxE;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAQ5B;;GAEG;AACH,iBAAS,oBAAoB,IAAI,IAAI,CAAC,SAAS,CAuC9C;AAcD;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAK/E;AAGD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAQhC;;GAEG;AACH,iBAAS,0BAA0B,IAAI,IAAI,CAAC,SAAS,CAuCpD;AAaD;;GAEG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAUxD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKrF;AAGD,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAMtC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import { getDb, getGlobalDb, onDbChange } from './connection.js';
|
|
2
|
+
import * as bm25 from '../bm25.js';
|
|
3
|
+
import { logWarn } from '../fault-logger.js';
|
|
4
|
+
// Batch size for paginated index rebuilds — limits peak memory during full rebuild.
|
|
5
|
+
const REBUILD_BATCH_SIZE = 5000;
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// BM25 Index Management for Code
|
|
8
|
+
// ============================================================================
|
|
9
|
+
let codeBm25Index = null;
|
|
10
|
+
/**
|
|
11
|
+
* Get or build BM25 index for code search
|
|
12
|
+
*/
|
|
13
|
+
function getCodeBm25Index() {
|
|
14
|
+
if (codeBm25Index)
|
|
15
|
+
return codeBm25Index;
|
|
16
|
+
const database = getDb();
|
|
17
|
+
// Try to load from metadata
|
|
18
|
+
const stored = database
|
|
19
|
+
.prepare("SELECT value FROM metadata WHERE key = 'bm25_code_index'")
|
|
20
|
+
.get();
|
|
21
|
+
if (stored) {
|
|
22
|
+
try {
|
|
23
|
+
codeBm25Index = bm25.deserializeIndex(stored.value);
|
|
24
|
+
return codeBm25Index;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Invalid stored index, rebuild
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Build from documents in batches to limit peak memory
|
|
31
|
+
codeBm25Index = bm25.createEmptyIndex();
|
|
32
|
+
const stmt = database.prepare("SELECT id, content, symbol_name, signature FROM documents WHERE file_path LIKE 'code:%' ORDER BY id LIMIT ? OFFSET ?");
|
|
33
|
+
let offset = 0;
|
|
34
|
+
for (;;) {
|
|
35
|
+
const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
|
|
36
|
+
if (rows.length === 0)
|
|
37
|
+
break;
|
|
38
|
+
for (const row of rows) {
|
|
39
|
+
bm25.addToIndex(codeBm25Index, {
|
|
40
|
+
id: row.id,
|
|
41
|
+
content: row.content,
|
|
42
|
+
symbolName: row.symbol_name ?? undefined,
|
|
43
|
+
signature: row.signature ?? undefined,
|
|
44
|
+
}, 'code');
|
|
45
|
+
}
|
|
46
|
+
offset += rows.length;
|
|
47
|
+
if (rows.length < REBUILD_BATCH_SIZE)
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
// Store for future use
|
|
51
|
+
saveCodeBm25Index();
|
|
52
|
+
return codeBm25Index;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Save BM25 index to metadata
|
|
56
|
+
*/
|
|
57
|
+
function saveCodeBm25Index() {
|
|
58
|
+
if (!codeBm25Index)
|
|
59
|
+
return;
|
|
60
|
+
const database = getDb();
|
|
61
|
+
const serialized = bm25.serializeIndex(codeBm25Index);
|
|
62
|
+
database
|
|
63
|
+
.prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_code_index', ?)")
|
|
64
|
+
.run(serialized);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Invalidate BM25 index (call when documents change)
|
|
68
|
+
*/
|
|
69
|
+
export function invalidateCodeBm25Index() {
|
|
70
|
+
codeBm25Index = null;
|
|
71
|
+
const database = getDb();
|
|
72
|
+
database.prepare("DELETE FROM metadata WHERE key = 'bm25_code_index'").run();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Update BM25 index when a document is added/updated
|
|
76
|
+
*/
|
|
77
|
+
export function updateCodeBm25Index(docId, content, symbolName, signature) {
|
|
78
|
+
const index = getCodeBm25Index();
|
|
79
|
+
// Remove old entry if exists
|
|
80
|
+
bm25.removeFromIndex(index, docId);
|
|
81
|
+
// Pass AST metadata for tokenizeCodeWithAST boost
|
|
82
|
+
bm25.addToIndex(index, { id: docId, content, symbolName, signature }, 'code');
|
|
83
|
+
saveCodeBm25Index();
|
|
84
|
+
}
|
|
85
|
+
// Export getter for use in hybrid search
|
|
86
|
+
export { getCodeBm25Index };
|
|
87
|
+
// ============================================================================
|
|
88
|
+
// BM25 Index Management for Docs (brain/ markdown files)
|
|
89
|
+
// ============================================================================
|
|
90
|
+
let docsBm25Index = null;
|
|
91
|
+
/**
|
|
92
|
+
* Get or build BM25 index for docs search (brain/ files)
|
|
93
|
+
*/
|
|
94
|
+
function getDocsBm25Index() {
|
|
95
|
+
if (docsBm25Index)
|
|
96
|
+
return docsBm25Index;
|
|
97
|
+
const database = getDb();
|
|
98
|
+
// Try to load from metadata
|
|
99
|
+
const stored = database
|
|
100
|
+
.prepare("SELECT value FROM metadata WHERE key = 'bm25_docs_index'")
|
|
101
|
+
.get();
|
|
102
|
+
if (stored) {
|
|
103
|
+
try {
|
|
104
|
+
docsBm25Index = bm25.deserializeIndex(stored.value);
|
|
105
|
+
return docsBm25Index;
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Invalid stored index, rebuild
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Build from documents in batches to limit peak memory
|
|
112
|
+
docsBm25Index = bm25.createEmptyIndex();
|
|
113
|
+
const stmt = database.prepare("SELECT id, content FROM documents WHERE file_path NOT LIKE 'code:%' ORDER BY id LIMIT ? OFFSET ?");
|
|
114
|
+
let offset = 0;
|
|
115
|
+
for (;;) {
|
|
116
|
+
const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
|
|
117
|
+
if (rows.length === 0)
|
|
118
|
+
break;
|
|
119
|
+
for (const row of rows) {
|
|
120
|
+
bm25.addToIndex(docsBm25Index, row, 'docs');
|
|
121
|
+
}
|
|
122
|
+
offset += rows.length;
|
|
123
|
+
if (rows.length < REBUILD_BATCH_SIZE)
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
// Store for future use
|
|
127
|
+
saveDocsBm25Index();
|
|
128
|
+
return docsBm25Index;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Save docs BM25 index to metadata
|
|
132
|
+
*/
|
|
133
|
+
function saveDocsBm25Index() {
|
|
134
|
+
if (!docsBm25Index)
|
|
135
|
+
return;
|
|
136
|
+
const database = getDb();
|
|
137
|
+
const serialized = bm25.serializeIndex(docsBm25Index);
|
|
138
|
+
database
|
|
139
|
+
.prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_docs_index', ?)")
|
|
140
|
+
.run(serialized);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Invalidate docs BM25 index
|
|
144
|
+
*/
|
|
145
|
+
export function invalidateDocsBm25Index() {
|
|
146
|
+
docsBm25Index = null;
|
|
147
|
+
const database = getDb();
|
|
148
|
+
database.prepare("DELETE FROM metadata WHERE key = 'bm25_docs_index'").run();
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Update docs BM25 index when a document is added/updated
|
|
152
|
+
*/
|
|
153
|
+
export function updateDocsBm25Index(docId, content) {
|
|
154
|
+
const index = getDocsBm25Index();
|
|
155
|
+
bm25.removeFromIndex(index, docId);
|
|
156
|
+
bm25.addToIndex(index, { id: docId, content }, 'docs');
|
|
157
|
+
saveDocsBm25Index();
|
|
158
|
+
}
|
|
159
|
+
// Export getter for use in hybrid search
|
|
160
|
+
export { getDocsBm25Index };
|
|
161
|
+
// ============================================================================
|
|
162
|
+
// BM25 Index Management for Memories
|
|
163
|
+
// ============================================================================
|
|
164
|
+
let memoriesBm25Index = null;
|
|
165
|
+
/**
|
|
166
|
+
* Get or build BM25 index for memories
|
|
167
|
+
*/
|
|
168
|
+
function getMemoriesBm25Index() {
|
|
169
|
+
if (memoriesBm25Index)
|
|
170
|
+
return memoriesBm25Index;
|
|
171
|
+
const database = getDb();
|
|
172
|
+
// Try to load from metadata
|
|
173
|
+
const stored = database
|
|
174
|
+
.prepare("SELECT value FROM metadata WHERE key = 'bm25_memories_index'")
|
|
175
|
+
.get();
|
|
176
|
+
if (stored) {
|
|
177
|
+
try {
|
|
178
|
+
memoriesBm25Index = bm25.deserializeIndex(stored.value);
|
|
179
|
+
return memoriesBm25Index;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// Invalid stored index, rebuild
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Build from memories in batches to limit peak memory
|
|
186
|
+
memoriesBm25Index = bm25.createEmptyIndex();
|
|
187
|
+
{
|
|
188
|
+
const stmt = database.prepare('SELECT id, content FROM memories ORDER BY id LIMIT ? OFFSET ?');
|
|
189
|
+
let offset = 0;
|
|
190
|
+
for (;;) {
|
|
191
|
+
const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
|
|
192
|
+
if (rows.length === 0)
|
|
193
|
+
break;
|
|
194
|
+
for (const row of rows) {
|
|
195
|
+
bm25.addToIndex(memoriesBm25Index, row, 'docs');
|
|
196
|
+
}
|
|
197
|
+
offset += rows.length;
|
|
198
|
+
if (rows.length < REBUILD_BATCH_SIZE)
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Store for future use
|
|
203
|
+
saveMemoriesBm25Index();
|
|
204
|
+
return memoriesBm25Index;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Save memories BM25 index to metadata
|
|
208
|
+
*/
|
|
209
|
+
function saveMemoriesBm25Index() {
|
|
210
|
+
if (!memoriesBm25Index)
|
|
211
|
+
return;
|
|
212
|
+
const database = getDb();
|
|
213
|
+
const serialized = bm25.serializeIndex(memoriesBm25Index);
|
|
214
|
+
database
|
|
215
|
+
.prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_memories_index', ?)")
|
|
216
|
+
.run(serialized);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Invalidate memories BM25 index
|
|
220
|
+
*/
|
|
221
|
+
export function invalidateMemoriesBm25Index() {
|
|
222
|
+
memoriesBm25Index = null;
|
|
223
|
+
const database = getDb();
|
|
224
|
+
database.prepare("DELETE FROM metadata WHERE key = 'bm25_memories_index'").run();
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Update memories BM25 index when a memory is added
|
|
228
|
+
*/
|
|
229
|
+
export function updateMemoriesBm25Index(memoryId, content) {
|
|
230
|
+
const index = getMemoriesBm25Index();
|
|
231
|
+
bm25.removeFromIndex(index, memoryId);
|
|
232
|
+
bm25.addToIndex(index, { id: memoryId, content }, 'docs');
|
|
233
|
+
saveMemoriesBm25Index();
|
|
234
|
+
}
|
|
235
|
+
// Export getter for use in hybrid search
|
|
236
|
+
export { getMemoriesBm25Index };
|
|
237
|
+
// ============================================================================
|
|
238
|
+
// BM25 Index Management for Global Memories
|
|
239
|
+
// ============================================================================
|
|
240
|
+
let globalMemoriesBm25Index = null;
|
|
241
|
+
/**
|
|
242
|
+
* Get or build BM25 index for global memories
|
|
243
|
+
*/
|
|
244
|
+
function getGlobalMemoriesBm25Index() {
|
|
245
|
+
if (globalMemoriesBm25Index)
|
|
246
|
+
return globalMemoriesBm25Index;
|
|
247
|
+
const database = getGlobalDb();
|
|
248
|
+
// Try to load from metadata
|
|
249
|
+
const stored = database
|
|
250
|
+
.prepare("SELECT value FROM metadata WHERE key = 'bm25_memories_index'")
|
|
251
|
+
.get();
|
|
252
|
+
if (stored) {
|
|
253
|
+
try {
|
|
254
|
+
globalMemoriesBm25Index = bm25.deserializeIndex(stored.value);
|
|
255
|
+
return globalMemoriesBm25Index;
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
// Invalid stored index, rebuild
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
// Build from memories in batches to limit peak memory
|
|
262
|
+
globalMemoriesBm25Index = bm25.createEmptyIndex();
|
|
263
|
+
{
|
|
264
|
+
const stmt = database.prepare('SELECT id, content FROM memories ORDER BY id LIMIT ? OFFSET ?');
|
|
265
|
+
let offset = 0;
|
|
266
|
+
for (;;) {
|
|
267
|
+
const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
|
|
268
|
+
if (rows.length === 0)
|
|
269
|
+
break;
|
|
270
|
+
for (const row of rows) {
|
|
271
|
+
bm25.addToIndex(globalMemoriesBm25Index, row, 'docs');
|
|
272
|
+
}
|
|
273
|
+
offset += rows.length;
|
|
274
|
+
if (rows.length < REBUILD_BATCH_SIZE)
|
|
275
|
+
break;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Store for future use
|
|
279
|
+
saveGlobalMemoriesBm25Index();
|
|
280
|
+
return globalMemoriesBm25Index;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Save global memories BM25 index to metadata
|
|
284
|
+
*/
|
|
285
|
+
function saveGlobalMemoriesBm25Index() {
|
|
286
|
+
if (!globalMemoriesBm25Index)
|
|
287
|
+
return;
|
|
288
|
+
const database = getGlobalDb();
|
|
289
|
+
database
|
|
290
|
+
.prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_memories_index', ?)")
|
|
291
|
+
.run(bm25.serializeIndex(globalMemoriesBm25Index));
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Invalidate global memories BM25 index
|
|
295
|
+
*/
|
|
296
|
+
export function invalidateGlobalMemoriesBm25Index() {
|
|
297
|
+
globalMemoriesBm25Index = null;
|
|
298
|
+
try {
|
|
299
|
+
const database = getGlobalDb();
|
|
300
|
+
database.prepare("DELETE FROM metadata WHERE key = 'bm25_memories_index'").run();
|
|
301
|
+
}
|
|
302
|
+
catch (err) {
|
|
303
|
+
logWarn('bm25', 'Failed to invalidate BM25 index', {
|
|
304
|
+
error: err instanceof Error ? err.message : String(err),
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Update global memories BM25 index when a memory is added
|
|
310
|
+
*/
|
|
311
|
+
export function updateGlobalMemoriesBm25Index(memoryId, content) {
|
|
312
|
+
const index = getGlobalMemoriesBm25Index();
|
|
313
|
+
bm25.removeFromIndex(index, memoryId);
|
|
314
|
+
bm25.addToIndex(index, { id: memoryId, content }, 'docs');
|
|
315
|
+
saveGlobalMemoriesBm25Index();
|
|
316
|
+
}
|
|
317
|
+
// Export getter for use in hybrid search
|
|
318
|
+
export { getGlobalMemoriesBm25Index };
|
|
319
|
+
// ============================================================================
|
|
320
|
+
// Invalidate All BM25 Indexes
|
|
321
|
+
// ============================================================================
|
|
322
|
+
/**
|
|
323
|
+
* Invalidate all BM25 indexes (useful for full rebuild)
|
|
324
|
+
*/
|
|
325
|
+
export function invalidateBM25Index() {
|
|
326
|
+
invalidateCodeBm25Index();
|
|
327
|
+
invalidateDocsBm25Index();
|
|
328
|
+
invalidateMemoriesBm25Index();
|
|
329
|
+
invalidateGlobalMemoriesBm25Index();
|
|
330
|
+
}
|
|
331
|
+
// Auto-flush BM25 caches when DB is swapped via setDb()
|
|
332
|
+
onDbChange(invalidateBM25Index);
|
|
333
|
+
//# sourceMappingURL=bm25-indexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bm25-indexes.js","sourceRoot":"","sources":["../../../src/lib/db/bm25-indexes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BPE SQLite persistence — raw database operations for BPE vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* BPE tables only exist in SQLite (not PostgreSQL).
|
|
5
|
+
* All functions are guarded by isPostgresBackend() checks.
|
|
6
|
+
*/
|
|
7
|
+
export interface BPEVocabRow {
|
|
8
|
+
merges: string;
|
|
9
|
+
vocab: string;
|
|
10
|
+
vocab_size: number;
|
|
11
|
+
corpus_size: number;
|
|
12
|
+
trained_at: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function initBPESchema(): void;
|
|
15
|
+
export declare function saveBPEVocabToDb(mergesJson: string, vocabJson: string, vocabSize: number, corpusSize: number, trainedAt: string): void;
|
|
16
|
+
export declare function loadBPEVocabFromDb(): BPEVocabRow | null;
|
|
17
|
+
export declare function getLastBPETrainTimeFromDb(): string | null;
|
|
18
|
+
//# sourceMappingURL=bpe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpe.d.ts","sourceRoot":"","sources":["../../../src/lib/db/bpe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,IAAI,IAAI,CAiBpC;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,IAAI,CAaN;AAED,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAKvD;AAED,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CASzD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BPE SQLite persistence — raw database operations for BPE vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* BPE tables only exist in SQLite (not PostgreSQL).
|
|
5
|
+
* All functions are guarded by isPostgresBackend() checks.
|
|
6
|
+
*/
|
|
7
|
+
import { getDb } from './connection.js';
|
|
8
|
+
export function initBPESchema() {
|
|
9
|
+
const db = getDb();
|
|
10
|
+
db.exec(`
|
|
11
|
+
CREATE TABLE IF NOT EXISTS bpe_vocab (
|
|
12
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
13
|
+
merges TEXT NOT NULL,
|
|
14
|
+
vocab TEXT NOT NULL,
|
|
15
|
+
vocab_size INTEGER NOT NULL,
|
|
16
|
+
corpus_size INTEGER NOT NULL,
|
|
17
|
+
trained_at TEXT DEFAULT CURRENT_TIMESTAMP
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE TABLE IF NOT EXISTS bpe_metadata (
|
|
21
|
+
key TEXT PRIMARY KEY,
|
|
22
|
+
value TEXT NOT NULL
|
|
23
|
+
);
|
|
24
|
+
`);
|
|
25
|
+
}
|
|
26
|
+
export function saveBPEVocabToDb(mergesJson, vocabJson, vocabSize, corpusSize, trainedAt) {
|
|
27
|
+
initBPESchema();
|
|
28
|
+
const db = getDb();
|
|
29
|
+
db.prepare(`INSERT INTO bpe_vocab (merges, vocab, vocab_size, corpus_size, trained_at)
|
|
30
|
+
VALUES (?, ?, ?, ?, ?)`).run(mergesJson, vocabJson, vocabSize, corpusSize, trainedAt);
|
|
31
|
+
db.prepare('INSERT OR REPLACE INTO bpe_metadata (key, value) VALUES (?, ?)').run('last_trained', trainedAt);
|
|
32
|
+
}
|
|
33
|
+
export function loadBPEVocabFromDb() {
|
|
34
|
+
initBPESchema();
|
|
35
|
+
const db = getDb();
|
|
36
|
+
return db.prepare('SELECT * FROM bpe_vocab ORDER BY id DESC LIMIT 1').get();
|
|
37
|
+
}
|
|
38
|
+
export function getLastBPETrainTimeFromDb() {
|
|
39
|
+
initBPESchema();
|
|
40
|
+
const db = getDb();
|
|
41
|
+
const row = db.prepare('SELECT value FROM bpe_metadata WHERE key = ?').get('last_trained');
|
|
42
|
+
return row?.value ?? null;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=bpe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bpe.js","sourceRoot":"","sources":["../../../src/lib/db/bpe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAUxC,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,SAAiB;IAEjB,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,EAAE,CAAC,OAAO,CACR;4BACwB,CACzB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/D,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAC9E,cAAc,EACd,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,OAAO,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,EAAwB,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,cAAc,CAEjF,CAAC;IAET,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
/**
|
|
3
|
+
* Get a cached prepared statement for the local DB.
|
|
4
|
+
* Avoids re-preparing the same SQL on every function call.
|
|
5
|
+
* Cache is auto-cleared when setDb()/closeDb() is called.
|
|
6
|
+
*/
|
|
7
|
+
export declare function cachedPrepare(sql: string): Database.Statement;
|
|
8
|
+
/**
|
|
9
|
+
* Get a cached prepared statement for the global DB.
|
|
10
|
+
* Cache is auto-cleared when closeGlobalDb() is called.
|
|
11
|
+
*/
|
|
12
|
+
export declare function cachedPrepareGlobal(sql: string): Database.Statement;
|
|
13
|
+
/**
|
|
14
|
+
* Register a callback to run when setDb() swaps the database.
|
|
15
|
+
* Used by bm25-indexes.ts to flush cached indexes.
|
|
16
|
+
*/
|
|
17
|
+
export declare function onDbChange(callback: () => void): void;
|
|
18
|
+
/**
|
|
19
|
+
* Apply SQLite performance tuning PRAGMAs.
|
|
20
|
+
* Safe with WAL mode; optimizes for read-heavy workloads.
|
|
21
|
+
*/
|
|
22
|
+
export declare function applySqliteTuning(database: Database.Database): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get the local database instance (synchronous, lazy initialization).
|
|
25
|
+
* Safe for Node.js single-threaded model - no async race conditions possible.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getDb(): Database.Database;
|
|
28
|
+
/**
|
|
29
|
+
* Get the global database instance (synchronous, lazy initialization).
|
|
30
|
+
*/
|
|
31
|
+
export declare function getGlobalDb(): Database.Database;
|
|
32
|
+
/**
|
|
33
|
+
* Override the local database singleton with an external instance.
|
|
34
|
+
* Used by benchmarks, tests, and any code that needs an isolated DB.
|
|
35
|
+
* Flushes cached BM25 indexes since they reference the old DB.
|
|
36
|
+
* Call closeDb() to revert to default lazy-init behavior.
|
|
37
|
+
*/
|
|
38
|
+
export declare function setDb(database: Database.Database): void;
|
|
39
|
+
/**
|
|
40
|
+
* Close the local database connection
|
|
41
|
+
*/
|
|
42
|
+
export declare function closeDb(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Close the global database connection
|
|
45
|
+
*/
|
|
46
|
+
export declare function closeGlobalDb(): void;
|
|
47
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/lib/db/connection.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAgBtC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAO7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAOnE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAErD;AACD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAMnE;AAED;;;GAGG;AACH,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CASzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAS/C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAIvD;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAM9B;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import { getDbPath, getGlobalDbPath } from '../config.js';
|
|
3
|
+
import { initDb, initGlobalDb, loadSqliteVec } from './schema.js';
|
|
4
|
+
let db = null;
|
|
5
|
+
let globalDb = null;
|
|
6
|
+
// Callbacks invoked when DB is swapped via setDb(). Avoids circular imports.
|
|
7
|
+
const onDbChangeCallbacks = [];
|
|
8
|
+
// ---------- Prepared statement cache ----------
|
|
9
|
+
// Per-database statement caches. Keyed by SQL string.
|
|
10
|
+
const stmtCacheLocal = new Map();
|
|
11
|
+
const stmtCacheGlobal = new Map();
|
|
12
|
+
/**
|
|
13
|
+
* Get a cached prepared statement for the local DB.
|
|
14
|
+
* Avoids re-preparing the same SQL on every function call.
|
|
15
|
+
* Cache is auto-cleared when setDb()/closeDb() is called.
|
|
16
|
+
*/
|
|
17
|
+
export function cachedPrepare(sql) {
|
|
18
|
+
let stmt = stmtCacheLocal.get(sql);
|
|
19
|
+
if (!stmt) {
|
|
20
|
+
stmt = getDb().prepare(sql);
|
|
21
|
+
stmtCacheLocal.set(sql, stmt);
|
|
22
|
+
}
|
|
23
|
+
return stmt;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get a cached prepared statement for the global DB.
|
|
27
|
+
* Cache is auto-cleared when closeGlobalDb() is called.
|
|
28
|
+
*/
|
|
29
|
+
export function cachedPrepareGlobal(sql) {
|
|
30
|
+
let stmt = stmtCacheGlobal.get(sql);
|
|
31
|
+
if (!stmt) {
|
|
32
|
+
stmt = getGlobalDb().prepare(sql);
|
|
33
|
+
stmtCacheGlobal.set(sql, stmt);
|
|
34
|
+
}
|
|
35
|
+
return stmt;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Register a callback to run when setDb() swaps the database.
|
|
39
|
+
* Used by bm25-indexes.ts to flush cached indexes.
|
|
40
|
+
*/
|
|
41
|
+
export function onDbChange(callback) {
|
|
42
|
+
onDbChangeCallbacks.push(callback);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Apply SQLite performance tuning PRAGMAs.
|
|
46
|
+
* Safe with WAL mode; optimizes for read-heavy workloads.
|
|
47
|
+
*/
|
|
48
|
+
export function applySqliteTuning(database) {
|
|
49
|
+
database.pragma('busy_timeout = 5000');
|
|
50
|
+
database.pragma('cache_size = -16000'); // 16MB cache (default ~2MB)
|
|
51
|
+
database.pragma('mmap_size = 67108864'); // 64MB memory-mapped I/O
|
|
52
|
+
database.pragma('synchronous = NORMAL'); // Safe with WAL, skip fsync wait
|
|
53
|
+
database.pragma('temp_store = MEMORY'); // Temp tables in RAM
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get the local database instance (synchronous, lazy initialization).
|
|
57
|
+
* Safe for Node.js single-threaded model - no async race conditions possible.
|
|
58
|
+
*/
|
|
59
|
+
export function getDb() {
|
|
60
|
+
if (!db) {
|
|
61
|
+
db = new Database(getDbPath());
|
|
62
|
+
db.pragma('journal_mode = WAL');
|
|
63
|
+
applySqliteTuning(db);
|
|
64
|
+
loadSqliteVec(db);
|
|
65
|
+
initDb(db);
|
|
66
|
+
}
|
|
67
|
+
return db;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get the global database instance (synchronous, lazy initialization).
|
|
71
|
+
*/
|
|
72
|
+
export function getGlobalDb() {
|
|
73
|
+
if (!globalDb) {
|
|
74
|
+
globalDb = new Database(getGlobalDbPath());
|
|
75
|
+
globalDb.pragma('journal_mode = WAL');
|
|
76
|
+
applySqliteTuning(globalDb);
|
|
77
|
+
loadSqliteVec(globalDb);
|
|
78
|
+
initGlobalDb(globalDb);
|
|
79
|
+
}
|
|
80
|
+
return globalDb;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Override the local database singleton with an external instance.
|
|
84
|
+
* Used by benchmarks, tests, and any code that needs an isolated DB.
|
|
85
|
+
* Flushes cached BM25 indexes since they reference the old DB.
|
|
86
|
+
* Call closeDb() to revert to default lazy-init behavior.
|
|
87
|
+
*/
|
|
88
|
+
export function setDb(database) {
|
|
89
|
+
db = database;
|
|
90
|
+
stmtCacheLocal.clear();
|
|
91
|
+
for (const cb of onDbChangeCallbacks)
|
|
92
|
+
cb();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Close the local database connection
|
|
96
|
+
*/
|
|
97
|
+
export function closeDb() {
|
|
98
|
+
stmtCacheLocal.clear();
|
|
99
|
+
if (db) {
|
|
100
|
+
db.close();
|
|
101
|
+
db = null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Close the global database connection
|
|
106
|
+
*/
|
|
107
|
+
export function closeGlobalDb() {
|
|
108
|
+
stmtCacheGlobal.clear();
|
|
109
|
+
if (globalDb) {
|
|
110
|
+
globalDb.close();
|
|
111
|
+
globalDb = null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/lib/db/connection.ts"],"names":[],"mappings":"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"}
|