causantic 0.2.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/LICENSE +19 -0
- package/README.md +332 -0
- package/config.schema.json +254 -0
- package/dist/cli/commands/archive.d.ts +4 -0
- package/dist/cli/commands/archive.d.ts.map +1 -0
- package/dist/cli/commands/archive.js +76 -0
- package/dist/cli/commands/archive.js.map +1 -0
- package/dist/cli/commands/benchmark-collection.d.ts +8 -0
- package/dist/cli/commands/benchmark-collection.d.ts.map +1 -0
- package/dist/cli/commands/benchmark-collection.js +146 -0
- package/dist/cli/commands/benchmark-collection.js.map +1 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +69 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +3 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +12 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/encryption.d.ts +3 -0
- package/dist/cli/commands/encryption.d.ts.map +1 -0
- package/dist/cli/commands/encryption.js +207 -0
- package/dist/cli/commands/encryption.js.map +1 -0
- package/dist/cli/commands/hook.d.ts +3 -0
- package/dist/cli/commands/hook.d.ts.map +1 -0
- package/dist/cli/commands/hook.js +35 -0
- package/dist/cli/commands/hook.js.map +1 -0
- package/dist/cli/commands/ingest.d.ts +4 -0
- package/dist/cli/commands/ingest.d.ts.map +1 -0
- package/dist/cli/commands/ingest.js +31 -0
- package/dist/cli/commands/ingest.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +680 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/maintenance.d.ts +3 -0
- package/dist/cli/commands/maintenance.d.ts.map +1 -0
- package/dist/cli/commands/maintenance.js +67 -0
- package/dist/cli/commands/maintenance.js.map +1 -0
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +16 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +3 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +19 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +4 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +49 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +3 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +10 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +86 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/skill-templates.d.ts +19 -0
- package/dist/cli/skill-templates.d.ts.map +1 -0
- package/dist/cli/skill-templates.js +1128 -0
- package/dist/cli/skill-templates.js.map +1 -0
- package/dist/cli/types.d.ts +10 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +5 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/uninstall.d.ts +66 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +490 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/utils.d.ts +26 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +105 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/clusters/cluster-manager.d.ts +96 -0
- package/dist/clusters/cluster-manager.d.ts.map +1 -0
- package/dist/clusters/cluster-manager.js +321 -0
- package/dist/clusters/cluster-manager.js.map +1 -0
- package/dist/clusters/cluster-refresh.d.ts +56 -0
- package/dist/clusters/cluster-refresh.d.ts.map +1 -0
- package/dist/clusters/cluster-refresh.js +187 -0
- package/dist/clusters/cluster-refresh.js.map +1 -0
- package/dist/clusters/hdbscan/cluster-extraction.d.ts +26 -0
- package/dist/clusters/hdbscan/cluster-extraction.d.ts.map +1 -0
- package/dist/clusters/hdbscan/cluster-extraction.js +232 -0
- package/dist/clusters/hdbscan/cluster-extraction.js.map +1 -0
- package/dist/clusters/hdbscan/core-distance-worker.d.ts +6 -0
- package/dist/clusters/hdbscan/core-distance-worker.d.ts.map +1 -0
- package/dist/clusters/hdbscan/core-distance-worker.js +54 -0
- package/dist/clusters/hdbscan/core-distance-worker.js.map +1 -0
- package/dist/clusters/hdbscan/core-distance.d.ts +26 -0
- package/dist/clusters/hdbscan/core-distance.d.ts.map +1 -0
- package/dist/clusters/hdbscan/core-distance.js +94 -0
- package/dist/clusters/hdbscan/core-distance.js.map +1 -0
- package/dist/clusters/hdbscan/distance-cache.d.ts +46 -0
- package/dist/clusters/hdbscan/distance-cache.d.ts.map +1 -0
- package/dist/clusters/hdbscan/distance-cache.js +84 -0
- package/dist/clusters/hdbscan/distance-cache.js.map +1 -0
- package/dist/clusters/hdbscan/hierarchy.d.ts +34 -0
- package/dist/clusters/hdbscan/hierarchy.d.ts.map +1 -0
- package/dist/clusters/hdbscan/hierarchy.js +442 -0
- package/dist/clusters/hdbscan/hierarchy.js.map +1 -0
- package/dist/clusters/hdbscan/incremental.d.ts +30 -0
- package/dist/clusters/hdbscan/incremental.d.ts.map +1 -0
- package/dist/clusters/hdbscan/incremental.js +130 -0
- package/dist/clusters/hdbscan/incremental.js.map +1 -0
- package/dist/clusters/hdbscan/kd-tree.d.ts +51 -0
- package/dist/clusters/hdbscan/kd-tree.d.ts.map +1 -0
- package/dist/clusters/hdbscan/kd-tree.js +130 -0
- package/dist/clusters/hdbscan/kd-tree.js.map +1 -0
- package/dist/clusters/hdbscan/min-heap.d.ts +62 -0
- package/dist/clusters/hdbscan/min-heap.d.ts.map +1 -0
- package/dist/clusters/hdbscan/min-heap.js +139 -0
- package/dist/clusters/hdbscan/min-heap.js.map +1 -0
- package/dist/clusters/hdbscan/mst.d.ts +20 -0
- package/dist/clusters/hdbscan/mst.d.ts.map +1 -0
- package/dist/clusters/hdbscan/mst.js +77 -0
- package/dist/clusters/hdbscan/mst.js.map +1 -0
- package/dist/clusters/hdbscan/probabilities.d.ts +37 -0
- package/dist/clusters/hdbscan/probabilities.d.ts.map +1 -0
- package/dist/clusters/hdbscan/probabilities.js +149 -0
- package/dist/clusters/hdbscan/probabilities.js.map +1 -0
- package/dist/clusters/hdbscan/types.d.ts +123 -0
- package/dist/clusters/hdbscan/types.d.ts.map +1 -0
- package/dist/clusters/hdbscan/types.js +5 -0
- package/dist/clusters/hdbscan/types.js.map +1 -0
- package/dist/clusters/hdbscan/union-find.d.ts +51 -0
- package/dist/clusters/hdbscan/union-find.d.ts.map +1 -0
- package/dist/clusters/hdbscan/union-find.js +115 -0
- package/dist/clusters/hdbscan/union-find.js.map +1 -0
- package/dist/clusters/hdbscan.d.ts +71 -0
- package/dist/clusters/hdbscan.d.ts.map +1 -0
- package/dist/clusters/hdbscan.js +283 -0
- package/dist/clusters/hdbscan.js.map +1 -0
- package/dist/clusters/index.d.ts +8 -0
- package/dist/clusters/index.d.ts.map +1 -0
- package/dist/clusters/index.js +8 -0
- package/dist/clusters/index.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +105 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +339 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/memory-config.d.ts +109 -0
- package/dist/config/memory-config.d.ts.map +1 -0
- package/dist/config/memory-config.js +182 -0
- package/dist/config/memory-config.js.map +1 -0
- package/dist/core/benchmark-types.d.ts +62 -0
- package/dist/core/benchmark-types.d.ts.map +1 -0
- package/dist/core/benchmark-types.js +11 -0
- package/dist/core/benchmark-types.js.map +1 -0
- package/dist/core/decay-types.d.ts +111 -0
- package/dist/core/decay-types.d.ts.map +1 -0
- package/dist/core/decay-types.js +30 -0
- package/dist/core/decay-types.js.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lexical-features.d.ts +34 -0
- package/dist/core/lexical-features.d.ts.map +1 -0
- package/dist/core/lexical-features.js +155 -0
- package/dist/core/lexical-features.js.map +1 -0
- package/dist/dashboard/client/assets/index-CMUKy4f9.css +1 -0
- package/dist/dashboard/client/assets/index-esv8TpCN.js +168 -0
- package/dist/dashboard/client/index.html +14 -0
- package/dist/dashboard/middleware/async-handler.d.ts +11 -0
- package/dist/dashboard/middleware/async-handler.d.ts.map +1 -0
- package/dist/dashboard/middleware/async-handler.js +12 -0
- package/dist/dashboard/middleware/async-handler.js.map +1 -0
- package/dist/dashboard/middleware/error-handler.d.ts +9 -0
- package/dist/dashboard/middleware/error-handler.d.ts.map +1 -0
- package/dist/dashboard/middleware/error-handler.js +14 -0
- package/dist/dashboard/middleware/error-handler.js.map +1 -0
- package/dist/dashboard/routes/benchmark-collection.d.ts +11 -0
- package/dist/dashboard/routes/benchmark-collection.d.ts.map +1 -0
- package/dist/dashboard/routes/benchmark-collection.js +49 -0
- package/dist/dashboard/routes/benchmark-collection.js.map +1 -0
- package/dist/dashboard/routes/chunks.d.ts +3 -0
- package/dist/dashboard/routes/chunks.d.ts.map +1 -0
- package/dist/dashboard/routes/chunks.js +25 -0
- package/dist/dashboard/routes/chunks.js.map +1 -0
- package/dist/dashboard/routes/clusters.d.ts +3 -0
- package/dist/dashboard/routes/clusters.d.ts.map +1 -0
- package/dist/dashboard/routes/clusters.js +28 -0
- package/dist/dashboard/routes/clusters.js.map +1 -0
- package/dist/dashboard/routes/edges.d.ts +3 -0
- package/dist/dashboard/routes/edges.d.ts.map +1 -0
- package/dist/dashboard/routes/edges.js +32 -0
- package/dist/dashboard/routes/edges.js.map +1 -0
- package/dist/dashboard/routes/graph.d.ts +3 -0
- package/dist/dashboard/routes/graph.d.ts.map +1 -0
- package/dist/dashboard/routes/graph.js +158 -0
- package/dist/dashboard/routes/graph.js.map +1 -0
- package/dist/dashboard/routes/projects.d.ts +3 -0
- package/dist/dashboard/routes/projects.d.ts.map +1 -0
- package/dist/dashboard/routes/projects.js +9 -0
- package/dist/dashboard/routes/projects.js.map +1 -0
- package/dist/dashboard/routes/search.d.ts +3 -0
- package/dist/dashboard/routes/search.d.ts.map +1 -0
- package/dist/dashboard/routes/search.js +105 -0
- package/dist/dashboard/routes/search.js.map +1 -0
- package/dist/dashboard/routes/sessions.d.ts +3 -0
- package/dist/dashboard/routes/sessions.d.ts.map +1 -0
- package/dist/dashboard/routes/sessions.js +16 -0
- package/dist/dashboard/routes/sessions.js.map +1 -0
- package/dist/dashboard/routes/stats.d.ts +3 -0
- package/dist/dashboard/routes/stats.d.ts.map +1 -0
- package/dist/dashboard/routes/stats.js +38 -0
- package/dist/dashboard/routes/stats.js.map +1 -0
- package/dist/dashboard/server.d.ts +3 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +85 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/eval/annotation-schema.d.ts +41 -0
- package/dist/eval/annotation-schema.d.ts.map +1 -0
- package/dist/eval/annotation-schema.js +171 -0
- package/dist/eval/annotation-schema.js.map +1 -0
- package/dist/eval/benchmark-runner.d.ts +15 -0
- package/dist/eval/benchmark-runner.d.ts.map +1 -0
- package/dist/eval/benchmark-runner.js +93 -0
- package/dist/eval/benchmark-runner.js.map +1 -0
- package/dist/eval/cluster-evaluator.d.ts +39 -0
- package/dist/eval/cluster-evaluator.d.ts.map +1 -0
- package/dist/eval/cluster-evaluator.js +51 -0
- package/dist/eval/cluster-evaluator.js.map +1 -0
- package/dist/eval/code-nl-alignment.d.ts +25 -0
- package/dist/eval/code-nl-alignment.d.ts.map +1 -0
- package/dist/eval/code-nl-alignment.js +49 -0
- package/dist/eval/code-nl-alignment.js.map +1 -0
- package/dist/eval/collection-benchmark/graph-value.d.ts +16 -0
- package/dist/eval/collection-benchmark/graph-value.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/graph-value.js +162 -0
- package/dist/eval/collection-benchmark/graph-value.js.map +1 -0
- package/dist/eval/collection-benchmark/health.d.ts +12 -0
- package/dist/eval/collection-benchmark/health.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/health.js +246 -0
- package/dist/eval/collection-benchmark/health.js.map +1 -0
- package/dist/eval/collection-benchmark/history.d.ts +27 -0
- package/dist/eval/collection-benchmark/history.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/history.js +134 -0
- package/dist/eval/collection-benchmark/history.js.map +1 -0
- package/dist/eval/collection-benchmark/latency.d.ts +16 -0
- package/dist/eval/collection-benchmark/latency.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/latency.js +115 -0
- package/dist/eval/collection-benchmark/latency.js.map +1 -0
- package/dist/eval/collection-benchmark/reporter.d.ts +18 -0
- package/dist/eval/collection-benchmark/reporter.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/reporter.js +244 -0
- package/dist/eval/collection-benchmark/reporter.js.map +1 -0
- package/dist/eval/collection-benchmark/retrieval.d.ts +15 -0
- package/dist/eval/collection-benchmark/retrieval.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/retrieval.js +203 -0
- package/dist/eval/collection-benchmark/retrieval.js.map +1 -0
- package/dist/eval/collection-benchmark/runner.d.ts +20 -0
- package/dist/eval/collection-benchmark/runner.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/runner.js +189 -0
- package/dist/eval/collection-benchmark/runner.js.map +1 -0
- package/dist/eval/collection-benchmark/sampler.d.ts +18 -0
- package/dist/eval/collection-benchmark/sampler.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/sampler.js +186 -0
- package/dist/eval/collection-benchmark/sampler.js.map +1 -0
- package/dist/eval/collection-benchmark/tuning.d.ts +12 -0
- package/dist/eval/collection-benchmark/tuning.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/tuning.js +222 -0
- package/dist/eval/collection-benchmark/tuning.js.map +1 -0
- package/dist/eval/collection-benchmark/types.d.ts +183 -0
- package/dist/eval/collection-benchmark/types.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/types.js +7 -0
- package/dist/eval/collection-benchmark/types.js.map +1 -0
- package/dist/eval/context-window-test.d.ts +34 -0
- package/dist/eval/context-window-test.d.ts.map +1 -0
- package/dist/eval/context-window-test.js +59 -0
- package/dist/eval/context-window-test.js.map +1 -0
- package/dist/eval/corpus-builder.d.ts +33 -0
- package/dist/eval/corpus-builder.d.ts.map +1 -0
- package/dist/eval/corpus-builder.js +88 -0
- package/dist/eval/corpus-builder.js.map +1 -0
- package/dist/eval/experiments/boilerplate-filter.d.ts +26 -0
- package/dist/eval/experiments/boilerplate-filter.d.ts.map +1 -0
- package/dist/eval/experiments/boilerplate-filter.js +95 -0
- package/dist/eval/experiments/boilerplate-filter.js.map +1 -0
- package/dist/eval/experiments/cluster-threshold/index.d.ts +6 -0
- package/dist/eval/experiments/cluster-threshold/index.d.ts.map +1 -0
- package/dist/eval/experiments/cluster-threshold/index.js +5 -0
- package/dist/eval/experiments/cluster-threshold/index.js.map +1 -0
- package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.d.ts +58 -0
- package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.d.ts.map +1 -0
- package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js +246 -0
- package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js.map +1 -0
- package/dist/eval/experiments/code-focused-mode.d.ts +20 -0
- package/dist/eval/experiments/code-focused-mode.d.ts.map +1 -0
- package/dist/eval/experiments/code-focused-mode.js +66 -0
- package/dist/eval/experiments/code-focused-mode.js.map +1 -0
- package/dist/eval/experiments/edge-decay/decay-curves.d.ts +59 -0
- package/dist/eval/experiments/edge-decay/decay-curves.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/decay-curves.js +124 -0
- package/dist/eval/experiments/edge-decay/decay-curves.js.map +1 -0
- package/dist/eval/experiments/edge-decay/index.d.ts +13 -0
- package/dist/eval/experiments/edge-decay/index.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/index.js +16 -0
- package/dist/eval/experiments/edge-decay/index.js.map +1 -0
- package/dist/eval/experiments/edge-decay/presets.d.ts +52 -0
- package/dist/eval/experiments/edge-decay/presets.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/presets.js +234 -0
- package/dist/eval/experiments/edge-decay/presets.js.map +1 -0
- package/dist/eval/experiments/edge-decay/reference-extractor.d.ts +34 -0
- package/dist/eval/experiments/edge-decay/reference-extractor.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/reference-extractor.js +353 -0
- package/dist/eval/experiments/edge-decay/reference-extractor.js.map +1 -0
- package/dist/eval/experiments/edge-decay/reference-types.d.ts +131 -0
- package/dist/eval/experiments/edge-decay/reference-types.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/reference-types.js +5 -0
- package/dist/eval/experiments/edge-decay/reference-types.js.map +1 -0
- package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts +64 -0
- package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/retrieval-ranking.js +565 -0
- package/dist/eval/experiments/edge-decay/retrieval-ranking.js.map +1 -0
- package/dist/eval/experiments/edge-decay/run-experiments.d.ts +25 -0
- package/dist/eval/experiments/edge-decay/run-experiments.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/run-experiments.js +229 -0
- package/dist/eval/experiments/edge-decay/run-experiments.js.map +1 -0
- package/dist/eval/experiments/edge-decay/simulate.d.ts +42 -0
- package/dist/eval/experiments/edge-decay/simulate.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/simulate.js +232 -0
- package/dist/eval/experiments/edge-decay/simulate.js.map +1 -0
- package/dist/eval/experiments/edge-decay/types.d.ts +10 -0
- package/dist/eval/experiments/edge-decay/types.d.ts.map +1 -0
- package/dist/eval/experiments/edge-decay/types.js +9 -0
- package/dist/eval/experiments/edge-decay/types.js.map +1 -0
- package/dist/eval/experiments/hdbscan-sweep.d.ts +19 -0
- package/dist/eval/experiments/hdbscan-sweep.d.ts.map +1 -0
- package/dist/eval/experiments/hdbscan-sweep.js +71 -0
- package/dist/eval/experiments/hdbscan-sweep.js.map +1 -0
- package/dist/eval/experiments/single-model-run.d.ts +54 -0
- package/dist/eval/experiments/single-model-run.d.ts.map +1 -0
- package/dist/eval/experiments/single-model-run.js +120 -0
- package/dist/eval/experiments/single-model-run.js.map +1 -0
- package/dist/eval/experiments/thinking-ablation.d.ts +21 -0
- package/dist/eval/experiments/thinking-ablation.d.ts.map +1 -0
- package/dist/eval/experiments/thinking-ablation.js +68 -0
- package/dist/eval/experiments/thinking-ablation.js.map +1 -0
- package/dist/eval/experiments/topic-continuity/embedding-classifier.d.ts +55 -0
- package/dist/eval/experiments/topic-continuity/embedding-classifier.d.ts.map +1 -0
- package/dist/eval/experiments/topic-continuity/embedding-classifier.js +126 -0
- package/dist/eval/experiments/topic-continuity/embedding-classifier.js.map +1 -0
- package/dist/eval/experiments/topic-continuity/hybrid-classifier.d.ts +68 -0
- package/dist/eval/experiments/topic-continuity/hybrid-classifier.d.ts.map +1 -0
- package/dist/eval/experiments/topic-continuity/hybrid-classifier.js +175 -0
- package/dist/eval/experiments/topic-continuity/hybrid-classifier.js.map +1 -0
- package/dist/eval/experiments/topic-continuity/index.d.ts +13 -0
- package/dist/eval/experiments/topic-continuity/index.d.ts.map +1 -0
- package/dist/eval/experiments/topic-continuity/index.js +17 -0
- package/dist/eval/experiments/topic-continuity/index.js.map +1 -0
- package/dist/eval/experiments/topic-continuity/labeler.d.ts +42 -0
- package/dist/eval/experiments/topic-continuity/labeler.d.ts.map +1 -0
- package/dist/eval/experiments/topic-continuity/labeler.js +253 -0
- package/dist/eval/experiments/topic-continuity/labeler.js.map +1 -0
- package/dist/eval/experiments/topic-continuity/lexical-features.d.ts +26 -0
- package/dist/eval/experiments/topic-continuity/lexical-features.d.ts.map +1 -0
- package/dist/eval/experiments/topic-continuity/lexical-features.js +58 -0
- package/dist/eval/experiments/topic-continuity/lexical-features.js.map +1 -0
- package/dist/eval/experiments/topic-continuity/run-experiment.d.ts +40 -0
- package/dist/eval/experiments/topic-continuity/run-experiment.d.ts.map +1 -0
- package/dist/eval/experiments/topic-continuity/run-experiment.js +379 -0
- package/dist/eval/experiments/topic-continuity/run-experiment.js.map +1 -0
- package/dist/eval/experiments/topic-continuity/types.d.ts +146 -0
- package/dist/eval/experiments/topic-continuity/types.d.ts.map +1 -0
- package/dist/eval/experiments/topic-continuity/types.js +9 -0
- package/dist/eval/experiments/topic-continuity/types.js.map +1 -0
- package/dist/eval/experiments/truncation.d.ts +21 -0
- package/dist/eval/experiments/truncation.d.ts.map +1 -0
- package/dist/eval/experiments/truncation.js +59 -0
- package/dist/eval/experiments/truncation.js.map +1 -0
- package/dist/eval/experiments/types.d.ts +37 -0
- package/dist/eval/experiments/types.d.ts.map +1 -0
- package/dist/eval/experiments/types.js +13 -0
- package/dist/eval/experiments/types.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts +10 -0
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js +229 -0
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts +12 -0
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js +316 -0
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts +19 -0
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.js +127 -0
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/index.d.ts +11 -0
- package/dist/eval/experiments/vector-decay-shapes/index.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/index.js +11 -0
- package/dist/eval/experiments/vector-decay-shapes/index.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts +14 -0
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js +274 -0
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/presets.d.ts +36 -0
- package/dist/eval/experiments/vector-decay-shapes/presets.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/presets.js +157 -0
- package/dist/eval/experiments/vector-decay-shapes/presets.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts +20 -0
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.js +504 -0
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.js.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/types.d.ts +111 -0
- package/dist/eval/experiments/vector-decay-shapes/types.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-shapes/types.js +15 -0
- package/dist/eval/experiments/vector-decay-shapes/types.js.map +1 -0
- package/dist/eval/experiments/vector-decay-sweep/index.d.ts +7 -0
- package/dist/eval/experiments/vector-decay-sweep/index.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-sweep/index.js +7 -0
- package/dist/eval/experiments/vector-decay-sweep/index.js.map +1 -0
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts +30 -0
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.js +378 -0
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.js.map +1 -0
- package/dist/eval/experiments/vector-decay-sweep/types.d.ts +109 -0
- package/dist/eval/experiments/vector-decay-sweep/types.d.ts.map +1 -0
- package/dist/eval/experiments/vector-decay-sweep/types.js +16 -0
- package/dist/eval/experiments/vector-decay-sweep/types.js.map +1 -0
- package/dist/eval/metrics.d.ts +45 -0
- package/dist/eval/metrics.d.ts.map +1 -0
- package/dist/eval/metrics.js +134 -0
- package/dist/eval/metrics.js.map +1 -0
- package/dist/hooks/claudemd-generator.d.ts +62 -0
- package/dist/hooks/claudemd-generator.d.ts.map +1 -0
- package/dist/hooks/claudemd-generator.js +220 -0
- package/dist/hooks/claudemd-generator.js.map +1 -0
- package/dist/hooks/hook-utils.d.ts +84 -0
- package/dist/hooks/hook-utils.d.ts.map +1 -0
- package/dist/hooks/hook-utils.js +187 -0
- package/dist/hooks/hook-utils.js.map +1 -0
- package/dist/hooks/index.d.ts +12 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +12 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/pre-compact.d.ts +58 -0
- package/dist/hooks/pre-compact.d.ts.map +1 -0
- package/dist/hooks/pre-compact.js +127 -0
- package/dist/hooks/pre-compact.js.map +1 -0
- package/dist/hooks/session-start.d.ts +62 -0
- package/dist/hooks/session-start.d.ts.map +1 -0
- package/dist/hooks/session-start.js +249 -0
- package/dist/hooks/session-start.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest/batch-ingest.d.ts +94 -0
- package/dist/ingest/batch-ingest.d.ts.map +1 -0
- package/dist/ingest/batch-ingest.js +167 -0
- package/dist/ingest/batch-ingest.js.map +1 -0
- package/dist/ingest/brief-debrief-detector.d.ts +74 -0
- package/dist/ingest/brief-debrief-detector.d.ts.map +1 -0
- package/dist/ingest/brief-debrief-detector.js +253 -0
- package/dist/ingest/brief-debrief-detector.js.map +1 -0
- package/dist/ingest/cross-session-linker.d.ts +39 -0
- package/dist/ingest/cross-session-linker.d.ts.map +1 -0
- package/dist/ingest/cross-session-linker.js +103 -0
- package/dist/ingest/cross-session-linker.js.map +1 -0
- package/dist/ingest/edge-creator.d.ts +62 -0
- package/dist/ingest/edge-creator.d.ts.map +1 -0
- package/dist/ingest/edge-creator.js +186 -0
- package/dist/ingest/edge-creator.js.map +1 -0
- package/dist/ingest/edge-detector.d.ts +37 -0
- package/dist/ingest/edge-detector.d.ts.map +1 -0
- package/dist/ingest/edge-detector.js +234 -0
- package/dist/ingest/edge-detector.js.map +1 -0
- package/dist/ingest/index.d.ts +14 -0
- package/dist/ingest/index.d.ts.map +1 -0
- package/dist/ingest/index.js +14 -0
- package/dist/ingest/index.js.map +1 -0
- package/dist/ingest/ingest-session.d.ts +83 -0
- package/dist/ingest/ingest-session.d.ts.map +1 -0
- package/dist/ingest/ingest-session.js +415 -0
- package/dist/ingest/ingest-session.js.map +1 -0
- package/dist/maintenance/index.d.ts +5 -0
- package/dist/maintenance/index.d.ts.map +1 -0
- package/dist/maintenance/index.js +5 -0
- package/dist/maintenance/index.js.map +1 -0
- package/dist/maintenance/scheduler.d.ts +79 -0
- package/dist/maintenance/scheduler.d.ts.map +1 -0
- package/dist/maintenance/scheduler.js +362 -0
- package/dist/maintenance/scheduler.js.map +1 -0
- package/dist/maintenance/tasks/cleanup-vectors.d.ts +10 -0
- package/dist/maintenance/tasks/cleanup-vectors.d.ts.map +1 -0
- package/dist/maintenance/tasks/cleanup-vectors.js +23 -0
- package/dist/maintenance/tasks/cleanup-vectors.js.map +1 -0
- package/dist/maintenance/tasks/index.d.ts +9 -0
- package/dist/maintenance/tasks/index.d.ts.map +1 -0
- package/dist/maintenance/tasks/index.js +9 -0
- package/dist/maintenance/tasks/index.js.map +1 -0
- package/dist/maintenance/tasks/prune-graph.d.ts +12 -0
- package/dist/maintenance/tasks/prune-graph.d.ts.map +1 -0
- package/dist/maintenance/tasks/prune-graph.js +23 -0
- package/dist/maintenance/tasks/prune-graph.js.map +1 -0
- package/dist/maintenance/tasks/scan-projects.d.ts +12 -0
- package/dist/maintenance/tasks/scan-projects.d.ts.map +1 -0
- package/dist/maintenance/tasks/scan-projects.js +31 -0
- package/dist/maintenance/tasks/scan-projects.js.map +1 -0
- package/dist/maintenance/tasks/update-clusters.d.ts +12 -0
- package/dist/maintenance/tasks/update-clusters.d.ts.map +1 -0
- package/dist/maintenance/tasks/update-clusters.js +41 -0
- package/dist/maintenance/tasks/update-clusters.js.map +1 -0
- package/dist/maintenance/tasks/vacuum.d.ts +10 -0
- package/dist/maintenance/tasks/vacuum.d.ts.map +1 -0
- package/dist/maintenance/tasks/vacuum.js +23 -0
- package/dist/maintenance/tasks/vacuum.js.map +1 -0
- package/dist/mcp/index.d.ts +7 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +90 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +395 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +52 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +292 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/models/device-detector.d.ts +32 -0
- package/dist/models/device-detector.d.ts.map +1 -0
- package/dist/models/device-detector.js +123 -0
- package/dist/models/device-detector.js.map +1 -0
- package/dist/models/embedder.d.ts +60 -0
- package/dist/models/embedder.d.ts.map +1 -0
- package/dist/models/embedder.js +171 -0
- package/dist/models/embedder.js.map +1 -0
- package/dist/models/model-registry.d.ts +25 -0
- package/dist/models/model-registry.d.ts.map +1 -0
- package/dist/models/model-registry.js +56 -0
- package/dist/models/model-registry.js.map +1 -0
- package/dist/parser/chunker.d.ts +74 -0
- package/dist/parser/chunker.d.ts.map +1 -0
- package/dist/parser/chunker.js +330 -0
- package/dist/parser/chunker.js.map +1 -0
- package/dist/parser/session-reader.d.ts +75 -0
- package/dist/parser/session-reader.d.ts.map +1 -0
- package/dist/parser/session-reader.js +198 -0
- package/dist/parser/session-reader.js.map +1 -0
- package/dist/parser/turn-assembler.d.ts +18 -0
- package/dist/parser/turn-assembler.d.ts.map +1 -0
- package/dist/parser/turn-assembler.js +150 -0
- package/dist/parser/turn-assembler.js.map +1 -0
- package/dist/parser/types.d.ts +124 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +8 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/report/reporter.d.ts +18 -0
- package/dist/report/reporter.d.ts.map +1 -0
- package/dist/report/reporter.js +121 -0
- package/dist/report/reporter.js.map +1 -0
- package/dist/retrieval/cluster-expander.d.ts +30 -0
- package/dist/retrieval/cluster-expander.d.ts.map +1 -0
- package/dist/retrieval/cluster-expander.js +87 -0
- package/dist/retrieval/cluster-expander.js.map +1 -0
- package/dist/retrieval/context-assembler.d.ts +89 -0
- package/dist/retrieval/context-assembler.d.ts.map +1 -0
- package/dist/retrieval/context-assembler.js +313 -0
- package/dist/retrieval/context-assembler.js.map +1 -0
- package/dist/retrieval/index.d.ts +12 -0
- package/dist/retrieval/index.d.ts.map +1 -0
- package/dist/retrieval/index.js +12 -0
- package/dist/retrieval/index.js.map +1 -0
- package/dist/retrieval/rrf.d.ts +25 -0
- package/dist/retrieval/rrf.d.ts.map +1 -0
- package/dist/retrieval/rrf.js +56 -0
- package/dist/retrieval/rrf.js.map +1 -0
- package/dist/retrieval/session-reconstructor.d.ts +79 -0
- package/dist/retrieval/session-reconstructor.d.ts.map +1 -0
- package/dist/retrieval/session-reconstructor.js +173 -0
- package/dist/retrieval/session-reconstructor.js.map +1 -0
- package/dist/retrieval/traverser.d.ts +66 -0
- package/dist/retrieval/traverser.d.ts.map +1 -0
- package/dist/retrieval/traverser.js +160 -0
- package/dist/retrieval/traverser.js.map +1 -0
- package/dist/storage/archive.d.ts +81 -0
- package/dist/storage/archive.d.ts.map +1 -0
- package/dist/storage/archive.js +204 -0
- package/dist/storage/archive.js.map +1 -0
- package/dist/storage/audit-log.d.ts +29 -0
- package/dist/storage/audit-log.d.ts.map +1 -0
- package/dist/storage/audit-log.js +69 -0
- package/dist/storage/audit-log.js.map +1 -0
- package/dist/storage/checkpoint-store.d.ts +38 -0
- package/dist/storage/checkpoint-store.d.ts.map +1 -0
- package/dist/storage/checkpoint-store.js +76 -0
- package/dist/storage/checkpoint-store.js.map +1 -0
- package/dist/storage/chunk-store.d.ts +111 -0
- package/dist/storage/chunk-store.d.ts.map +1 -0
- package/dist/storage/chunk-store.js +298 -0
- package/dist/storage/chunk-store.js.map +1 -0
- package/dist/storage/clock-store.d.ts +80 -0
- package/dist/storage/clock-store.d.ts.map +1 -0
- package/dist/storage/clock-store.js +155 -0
- package/dist/storage/clock-store.js.map +1 -0
- package/dist/storage/cluster-store.d.ts +63 -0
- package/dist/storage/cluster-store.d.ts.map +1 -0
- package/dist/storage/cluster-store.js +219 -0
- package/dist/storage/cluster-store.js.map +1 -0
- package/dist/storage/db.d.ts +57 -0
- package/dist/storage/db.d.ts.map +1 -0
- package/dist/storage/db.js +249 -0
- package/dist/storage/db.js.map +1 -0
- package/dist/storage/decay.d.ts +125 -0
- package/dist/storage/decay.d.ts.map +1 -0
- package/dist/storage/decay.js +276 -0
- package/dist/storage/decay.js.map +1 -0
- package/dist/storage/edge-store.d.ts +75 -0
- package/dist/storage/edge-store.d.ts.map +1 -0
- package/dist/storage/edge-store.js +259 -0
- package/dist/storage/edge-store.js.map +1 -0
- package/dist/storage/embedding-cache.d.ts +51 -0
- package/dist/storage/embedding-cache.d.ts.map +1 -0
- package/dist/storage/embedding-cache.js +155 -0
- package/dist/storage/embedding-cache.js.map +1 -0
- package/dist/storage/encryption.d.ts +55 -0
- package/dist/storage/encryption.d.ts.map +1 -0
- package/dist/storage/encryption.js +130 -0
- package/dist/storage/encryption.js.map +1 -0
- package/dist/storage/index.d.ts +15 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +20 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/keyword-store.d.ts +25 -0
- package/dist/storage/keyword-store.d.ts.map +1 -0
- package/dist/storage/keyword-store.js +104 -0
- package/dist/storage/keyword-store.js.map +1 -0
- package/dist/storage/migrations.d.ts +12 -0
- package/dist/storage/migrations.d.ts.map +1 -0
- package/dist/storage/migrations.js +345 -0
- package/dist/storage/migrations.js.map +1 -0
- package/dist/storage/pruner.d.ts +111 -0
- package/dist/storage/pruner.d.ts.map +1 -0
- package/dist/storage/pruner.js +280 -0
- package/dist/storage/pruner.js.map +1 -0
- package/dist/storage/schema-loader.d.ts +18 -0
- package/dist/storage/schema-loader.d.ts.map +1 -0
- package/dist/storage/schema-loader.js +62 -0
- package/dist/storage/schema-loader.js.map +1 -0
- package/dist/storage/schema.sql +133 -0
- package/dist/storage/types.d.ts +278 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +14 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/storage/vector-store.d.ts +213 -0
- package/dist/storage/vector-store.d.ts.map +1 -0
- package/dist/storage/vector-store.js +440 -0
- package/dist/storage/vector-store.js.map +1 -0
- package/dist/temporal/clock-compactor.d.ts +65 -0
- package/dist/temporal/clock-compactor.d.ts.map +1 -0
- package/dist/temporal/clock-compactor.js +157 -0
- package/dist/temporal/clock-compactor.js.map +1 -0
- package/dist/temporal/index.d.ts +6 -0
- package/dist/temporal/index.d.ts.map +1 -0
- package/dist/temporal/index.js +6 -0
- package/dist/temporal/index.js.map +1 -0
- package/dist/temporal/vector-clock.d.ts +143 -0
- package/dist/temporal/vector-clock.d.ts.map +1 -0
- package/dist/temporal/vector-clock.js +231 -0
- package/dist/temporal/vector-clock.js.map +1 -0
- package/dist/utils/angular-distance.d.ts +31 -0
- package/dist/utils/angular-distance.d.ts.map +1 -0
- package/dist/utils/angular-distance.js +61 -0
- package/dist/utils/angular-distance.js.map +1 -0
- package/dist/utils/array-utils.d.ts +28 -0
- package/dist/utils/array-utils.d.ts.map +1 -0
- package/dist/utils/array-utils.js +67 -0
- package/dist/utils/array-utils.js.map +1 -0
- package/dist/utils/embedding-utils.d.ts +25 -0
- package/dist/utils/embedding-utils.d.ts.map +1 -0
- package/dist/utils/embedding-utils.js +30 -0
- package/dist/utils/embedding-utils.js.map +1 -0
- package/dist/utils/errors.d.ts +143 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +220 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/keychain.d.ts +43 -0
- package/dist/utils/keychain.d.ts.map +1 -0
- package/dist/utils/keychain.js +82 -0
- package/dist/utils/keychain.js.map +1 -0
- package/dist/utils/logger.d.ts +50 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +104 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/secret-store.d.ts +110 -0
- package/dist/utils/secret-store.d.ts.map +1 -0
- package/dist/utils/secret-store.js +340 -0
- package/dist/utils/secret-store.js.map +1 -0
- package/dist/utils/secure-buffer.d.ts +66 -0
- package/dist/utils/secure-buffer.d.ts.map +1 -0
- package/dist/utils/secure-buffer.js +104 -0
- package/dist/utils/secure-buffer.js.map +1 -0
- package/dist/utils/token-counter.d.ts +13 -0
- package/dist/utils/token-counter.d.ts.map +1 -0
- package/dist/utils/token-counter.js +18 -0
- package/dist/utils/token-counter.js.map +1 -0
- package/package.json +110 -0
- package/src/dashboard/client/package-lock.json +3045 -0
- package/src/dashboard/client/package.json +30 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the storage layer.
|
|
3
|
+
*
|
|
4
|
+
* The storage layer provides persistence for the Causantic system.
|
|
5
|
+
* Key data structures include:
|
|
6
|
+
* - **Chunks**: Segments of conversation with metadata and vector clocks
|
|
7
|
+
* - **Edges**: Weighted directional connections between chunks
|
|
8
|
+
* - **Clusters**: Topic groupings of chunks (via HDBSCAN)
|
|
9
|
+
* - **Vector clocks**: For causality tracking and decay computation
|
|
10
|
+
*
|
|
11
|
+
* @module storage/types
|
|
12
|
+
*/
|
|
13
|
+
import type { VectorClock } from '../temporal/vector-clock.js';
|
|
14
|
+
/**
|
|
15
|
+
* Edge direction for graph traversal.
|
|
16
|
+
*
|
|
17
|
+
* The memory graph maintains bidirectional edges between chunks:
|
|
18
|
+
* - `backward`: Points from later → earlier chunks (used for recall)
|
|
19
|
+
* - `forward`: Points from earlier → later chunks (used for prediction)
|
|
20
|
+
*
|
|
21
|
+
* Each transition creates both a backward and forward edge.
|
|
22
|
+
*/
|
|
23
|
+
export type EdgeType = 'backward' | 'forward';
|
|
24
|
+
/**
|
|
25
|
+
* Reference types for edges.
|
|
26
|
+
*
|
|
27
|
+
* Indicates the evidence used to create the edge. Higher-evidence types
|
|
28
|
+
* receive higher initial weights:
|
|
29
|
+
*
|
|
30
|
+
* | Type | Weight | Description |
|
|
31
|
+
* |------|--------|-------------|
|
|
32
|
+
* | `file-path` | 1.0 | Shared file path reference |
|
|
33
|
+
* | `explicit-backref` | 0.9 | Explicit "the error", "that function" |
|
|
34
|
+
* | `error-fragment` | 0.9 | Discussing specific error message |
|
|
35
|
+
* | `brief` | 0.9 | Parent spawning sub-agent |
|
|
36
|
+
* | `debrief` | 0.9 | Sub-agent returning to parent |
|
|
37
|
+
* | `code-entity` | 0.8 | Shared function/class/variable name |
|
|
38
|
+
* | `tool-output` | 0.8 | Referencing tool results |
|
|
39
|
+
* | `cross-session` | 0.7 | Session continuation |
|
|
40
|
+
* | `adjacent` | 0.5 | Consecutive chunks (weak link) |
|
|
41
|
+
*/
|
|
42
|
+
export type ReferenceType = 'file-path' | 'code-entity' | 'explicit-backref' | 'error-fragment' | 'tool-output' | 'adjacent' | 'cross-session' | 'brief' | 'debrief';
|
|
43
|
+
/**
|
|
44
|
+
* A chunk stored in the database.
|
|
45
|
+
*
|
|
46
|
+
* Chunks are the fundamental unit of storage, representing segments of
|
|
47
|
+
* conversation. Each chunk contains one or more turns and is assigned
|
|
48
|
+
* a vector clock for causality tracking.
|
|
49
|
+
*/
|
|
50
|
+
export interface StoredChunk {
|
|
51
|
+
/** Unique identifier (UUID format) */
|
|
52
|
+
id: string;
|
|
53
|
+
/** Claude session ID this chunk belongs to */
|
|
54
|
+
sessionId: string;
|
|
55
|
+
/** Project slug (folder name) for grouping sessions */
|
|
56
|
+
sessionSlug: string;
|
|
57
|
+
/** Turn indices included in this chunk (0-based) */
|
|
58
|
+
turnIndices: number[];
|
|
59
|
+
/** ISO timestamp of first message in chunk */
|
|
60
|
+
startTime: string;
|
|
61
|
+
/** ISO timestamp of last message in chunk */
|
|
62
|
+
endTime: string;
|
|
63
|
+
/** Rendered text content of the chunk */
|
|
64
|
+
content: string;
|
|
65
|
+
/** Number of code blocks (```...```) in content */
|
|
66
|
+
codeBlockCount: number;
|
|
67
|
+
/** Number of tool use blocks in content */
|
|
68
|
+
toolUseCount: number;
|
|
69
|
+
/** Approximate token count for budget calculation */
|
|
70
|
+
approxTokens: number;
|
|
71
|
+
/** ISO timestamp when chunk was stored */
|
|
72
|
+
createdAt: string;
|
|
73
|
+
/** Agent ID for sub-agent chunks, 'ui' for main session */
|
|
74
|
+
agentId: string | null;
|
|
75
|
+
/** Vector clock at time of chunk creation (for decay) */
|
|
76
|
+
vectorClock: VectorClock | null;
|
|
77
|
+
/** Nesting depth: 0=main, 1=sub-agent, 2=nested sub-agent */
|
|
78
|
+
spawnDepth: number;
|
|
79
|
+
/** Full cwd path for project disambiguation (optional) */
|
|
80
|
+
projectPath: string | null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Input for creating a new chunk.
|
|
84
|
+
*
|
|
85
|
+
* Used when ingesting sessions. The `id` should be pre-generated to allow
|
|
86
|
+
* correlation with edge creation before database insertion.
|
|
87
|
+
*/
|
|
88
|
+
export interface ChunkInput {
|
|
89
|
+
/** Unique identifier (pre-generated UUID) */
|
|
90
|
+
id: string;
|
|
91
|
+
/** Claude session ID */
|
|
92
|
+
sessionId: string;
|
|
93
|
+
/** Project slug */
|
|
94
|
+
sessionSlug: string;
|
|
95
|
+
/** Turn indices included */
|
|
96
|
+
turnIndices: number[];
|
|
97
|
+
/** ISO start timestamp */
|
|
98
|
+
startTime: string;
|
|
99
|
+
/** ISO end timestamp */
|
|
100
|
+
endTime: string;
|
|
101
|
+
/** Rendered text content */
|
|
102
|
+
content: string;
|
|
103
|
+
/** Code block count */
|
|
104
|
+
codeBlockCount: number;
|
|
105
|
+
/** Tool use count */
|
|
106
|
+
toolUseCount: number;
|
|
107
|
+
/** Approximate tokens */
|
|
108
|
+
approxTokens: number;
|
|
109
|
+
/** Agent ID (optional, defaults to 'ui') */
|
|
110
|
+
agentId?: string;
|
|
111
|
+
/** Vector clock (optional, enables clock-based decay) */
|
|
112
|
+
vectorClock?: VectorClock;
|
|
113
|
+
/** Spawn depth (optional, defaults to 0) */
|
|
114
|
+
spawnDepth?: number;
|
|
115
|
+
/** Full cwd path for project disambiguation */
|
|
116
|
+
projectPath?: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* An edge stored in the database.
|
|
120
|
+
*
|
|
121
|
+
* Edges represent causal connections between chunks. They have:
|
|
122
|
+
* - An `initialWeight` set at creation based on reference type
|
|
123
|
+
* - A `vectorClock` for computing time-based decay
|
|
124
|
+
* - A `linkCount` that increases when the same edge is created multiple times
|
|
125
|
+
*/
|
|
126
|
+
export interface StoredEdge {
|
|
127
|
+
/** Unique identifier (UUID format) */
|
|
128
|
+
id: string;
|
|
129
|
+
/** Source chunk ID (where edge originates) */
|
|
130
|
+
sourceChunkId: string;
|
|
131
|
+
/** Target chunk ID (where edge points) */
|
|
132
|
+
targetChunkId: string;
|
|
133
|
+
/** Direction: backward (recall) or forward (predict) */
|
|
134
|
+
edgeType: EdgeType;
|
|
135
|
+
/** Type of evidence for this connection */
|
|
136
|
+
referenceType: ReferenceType | null;
|
|
137
|
+
/** Weight at creation time (0-1), before decay */
|
|
138
|
+
initialWeight: number;
|
|
139
|
+
/** ISO timestamp when edge was created */
|
|
140
|
+
createdAt: string;
|
|
141
|
+
/** JSON-serialized vector clock for decay computation */
|
|
142
|
+
vectorClock: string | null;
|
|
143
|
+
/** Times this edge was created (boosted on duplicate) */
|
|
144
|
+
linkCount: number;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Input for creating a new edge.
|
|
148
|
+
*
|
|
149
|
+
* When creating edges, you specify source, target, and type. The system
|
|
150
|
+
* generates an ID and sets createdAt. Use `createOrBoostEdges()` to
|
|
151
|
+
* increment linkCount if the same edge already exists.
|
|
152
|
+
*/
|
|
153
|
+
export interface EdgeInput {
|
|
154
|
+
/** Source chunk ID */
|
|
155
|
+
sourceChunkId: string;
|
|
156
|
+
/** Target chunk ID */
|
|
157
|
+
targetChunkId: string;
|
|
158
|
+
/** Direction: backward or forward */
|
|
159
|
+
edgeType: EdgeType;
|
|
160
|
+
/** Reference type for initial weight calculation */
|
|
161
|
+
referenceType?: ReferenceType;
|
|
162
|
+
/** Explicit weight (overrides type-based default) */
|
|
163
|
+
initialWeight: number;
|
|
164
|
+
/** Vector clock for decay computation */
|
|
165
|
+
vectorClock?: VectorClock;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* An edge with its computed weight at query time.
|
|
169
|
+
*
|
|
170
|
+
* During traversal, edge weights are computed by applying decay based on
|
|
171
|
+
* the reference clock. The effective weight determines traversal priority.
|
|
172
|
+
*
|
|
173
|
+
* Weight formula: `initialWeight × hopDecay × timeDecay`
|
|
174
|
+
*/
|
|
175
|
+
export interface WeightedEdge extends StoredEdge {
|
|
176
|
+
/** Computed weight after decay (0-1) */
|
|
177
|
+
weight: number;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* A topic cluster stored in the database.
|
|
181
|
+
*
|
|
182
|
+
* Clusters group semantically related chunks. Created by HDBSCAN clustering
|
|
183
|
+
* on chunk embeddings. Each cluster has:
|
|
184
|
+
* - A centroid vector (mean of member embeddings)
|
|
185
|
+
* - Exemplar IDs (chunks closest to centroid)
|
|
186
|
+
* - A membership hash for detecting when reclustering is needed
|
|
187
|
+
*/
|
|
188
|
+
export interface StoredCluster {
|
|
189
|
+
/** Unique identifier */
|
|
190
|
+
id: string;
|
|
191
|
+
/** Human-readable name (optional) */
|
|
192
|
+
name: string | null;
|
|
193
|
+
/** Description of cluster contents (optional) */
|
|
194
|
+
description: string | null;
|
|
195
|
+
/** Centroid vector (normalized mean of embeddings) */
|
|
196
|
+
centroid: number[] | null;
|
|
197
|
+
/** IDs of exemplar chunks (closest to centroid) */
|
|
198
|
+
exemplarIds: string[];
|
|
199
|
+
/** Hash of sorted member IDs (for change detection) */
|
|
200
|
+
membershipHash: string | null;
|
|
201
|
+
/** ISO timestamp when cluster was created */
|
|
202
|
+
createdAt: string;
|
|
203
|
+
/** ISO timestamp when cluster was last updated */
|
|
204
|
+
refreshedAt: string | null;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Input for creating or updating a cluster.
|
|
208
|
+
*
|
|
209
|
+
* All fields are optional for partial updates. Provide `id` to update
|
|
210
|
+
* an existing cluster; omit to create a new one.
|
|
211
|
+
*/
|
|
212
|
+
export interface ClusterInput {
|
|
213
|
+
/** ID for update, or undefined for create */
|
|
214
|
+
id?: string;
|
|
215
|
+
/** Human-readable name */
|
|
216
|
+
name?: string;
|
|
217
|
+
/** Description */
|
|
218
|
+
description?: string;
|
|
219
|
+
/** Centroid vector */
|
|
220
|
+
centroid?: number[];
|
|
221
|
+
/** Exemplar chunk IDs */
|
|
222
|
+
exemplarIds?: string[];
|
|
223
|
+
/** Membership hash */
|
|
224
|
+
membershipHash?: string;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Assignment of a chunk to a cluster.
|
|
228
|
+
*
|
|
229
|
+
* A chunk can belong to multiple clusters (soft clustering). The distance
|
|
230
|
+
* indicates how well the chunk fits the cluster (lower = better fit).
|
|
231
|
+
*/
|
|
232
|
+
export interface ChunkClusterAssignment {
|
|
233
|
+
/** Chunk being assigned */
|
|
234
|
+
chunkId: string;
|
|
235
|
+
/** Cluster to assign to */
|
|
236
|
+
clusterId: string;
|
|
237
|
+
/** Angular distance from chunk to cluster centroid (0-2) */
|
|
238
|
+
distance: number;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* A chunk with its accumulated weight from traversal.
|
|
242
|
+
*
|
|
243
|
+
* During graph traversal, chunks accumulate weight from all paths that
|
|
244
|
+
* reach them (sum rule). The depth is the minimum hop count across paths.
|
|
245
|
+
*/
|
|
246
|
+
export interface WeightedChunk {
|
|
247
|
+
/** Chunk identifier */
|
|
248
|
+
chunkId: string;
|
|
249
|
+
/** Accumulated weight from all paths (sum rule) */
|
|
250
|
+
weight: number;
|
|
251
|
+
/** Minimum depth across all paths reaching this chunk */
|
|
252
|
+
depth: number;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Result of a graph traversal operation.
|
|
256
|
+
*
|
|
257
|
+
* Contains weighted chunks sorted by weight descending, plus statistics
|
|
258
|
+
* about the traversal for debugging/monitoring.
|
|
259
|
+
*/
|
|
260
|
+
export interface TraversalResult {
|
|
261
|
+
/** Chunks reached, sorted by weight descending */
|
|
262
|
+
chunks: WeightedChunk[];
|
|
263
|
+
/** Number of path segments explored */
|
|
264
|
+
visited: number;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Result from vector similarity search.
|
|
268
|
+
*
|
|
269
|
+
* Vector search returns chunks sorted by angular distance to the query.
|
|
270
|
+
* Lower distance = higher similarity.
|
|
271
|
+
*/
|
|
272
|
+
export interface VectorSearchResult {
|
|
273
|
+
/** Chunk ID */
|
|
274
|
+
id: string;
|
|
275
|
+
/** Angular distance (0 = identical, 2 = opposite) */
|
|
276
|
+
distance: number;
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the storage layer.
|
|
3
|
+
*
|
|
4
|
+
* The storage layer provides persistence for the Causantic system.
|
|
5
|
+
* Key data structures include:
|
|
6
|
+
* - **Chunks**: Segments of conversation with metadata and vector clocks
|
|
7
|
+
* - **Edges**: Weighted directional connections between chunks
|
|
8
|
+
* - **Clusters**: Topic groupings of chunks (via HDBSCAN)
|
|
9
|
+
* - **Vector clocks**: For causality tracking and decay computation
|
|
10
|
+
*
|
|
11
|
+
* @module storage/types
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory vector store with SQLite persistence.
|
|
3
|
+
*
|
|
4
|
+
* Provides vector similarity search for chunk embeddings using angular distance.
|
|
5
|
+
* Embeddings are stored as Float32Array blobs in SQLite and loaded into memory
|
|
6
|
+
* on first access for fast brute-force search.
|
|
7
|
+
*
|
|
8
|
+
* ## Architecture
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* ┌─────────────────────────────────────────────────────────────┐
|
|
12
|
+
* │ VectorStore │
|
|
13
|
+
* │ ┌─────────────────────┐ ┌─────────────────────────────┐ │
|
|
14
|
+
* │ │ In-Memory Index │ │ SQLite Persistence │ │
|
|
15
|
+
* │ │ Map<id, number[]> │ ◄──┤ vectors (id, embedding, │ │
|
|
16
|
+
* │ └─────────────────────┘ │ last_accessed) │ │
|
|
17
|
+
* │ └─────────────────────────────┘ │
|
|
18
|
+
* └─────────────────────────────────────────────────────────────┘
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* ## TTL (Time To Live)
|
|
22
|
+
*
|
|
23
|
+
* Vectors have a `last_accessed` timestamp that is updated when they are
|
|
24
|
+
* returned from search. Vectors that haven't been accessed within the TTL
|
|
25
|
+
* period can be cleaned up by the maintenance task.
|
|
26
|
+
*
|
|
27
|
+
* This allows vectors to persist for semantic search even after their
|
|
28
|
+
* associated chunks are pruned from the causal graph, while still eventually
|
|
29
|
+
* cleaning up truly stale vectors.
|
|
30
|
+
*
|
|
31
|
+
* ## Usage
|
|
32
|
+
*
|
|
33
|
+
* ```typescript
|
|
34
|
+
* import { vectorStore } from './vector-store.js';
|
|
35
|
+
*
|
|
36
|
+
* // Insert an embedding
|
|
37
|
+
* await vectorStore.insert('chunk-123', embedding);
|
|
38
|
+
*
|
|
39
|
+
* // Search for similar vectors
|
|
40
|
+
* const results = await vectorStore.search(queryEmbedding, 10);
|
|
41
|
+
* // Returns: [{ id: 'chunk-456', distance: 0.15 }, ...]
|
|
42
|
+
* // (also updates last_accessed for returned vectors)
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* ## Distance Metric
|
|
46
|
+
*
|
|
47
|
+
* Uses angular distance (0 = identical, 2 = opposite):
|
|
48
|
+
* - `0.0`: Identical vectors
|
|
49
|
+
* - `0.5`: ~60° angle
|
|
50
|
+
* - `1.0`: Orthogonal (90°)
|
|
51
|
+
* - `2.0`: Opposite vectors
|
|
52
|
+
*
|
|
53
|
+
* ## Performance Notes
|
|
54
|
+
*
|
|
55
|
+
* - Initial load: O(n) to deserialize all vectors from SQLite
|
|
56
|
+
* - Insert: O(1) amortized (memory + single row insert)
|
|
57
|
+
* - Search: O(n) brute-force (sufficient for <100k vectors)
|
|
58
|
+
* - Memory: ~4KB per vector (1024 dimensions × 4 bytes)
|
|
59
|
+
*
|
|
60
|
+
* For larger scale, consider upgrading to LanceDB or FAISS.
|
|
61
|
+
*
|
|
62
|
+
* @module storage/vector-store
|
|
63
|
+
*/
|
|
64
|
+
import type { VectorSearchResult } from './types.js';
|
|
65
|
+
/**
|
|
66
|
+
* In-memory vector index backed by SQLite for persistence.
|
|
67
|
+
*
|
|
68
|
+
* Uses lazy loading — vectors are loaded from SQLite on first operation.
|
|
69
|
+
* All operations are async to support future migration to async storage backends.
|
|
70
|
+
*
|
|
71
|
+
* Thread safety: Single-threaded (Node.js). For concurrent access, use
|
|
72
|
+
* the singleton `vectorStore` export which ensures consistent state.
|
|
73
|
+
*/
|
|
74
|
+
export declare class VectorStore {
|
|
75
|
+
private vectors;
|
|
76
|
+
private loaded;
|
|
77
|
+
/** chunkId → projectSlug index for project-filtered search */
|
|
78
|
+
private chunkProjectIndex;
|
|
79
|
+
/**
|
|
80
|
+
* Load vectors from database into memory.
|
|
81
|
+
*/
|
|
82
|
+
load(): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Insert a vector.
|
|
85
|
+
*/
|
|
86
|
+
insert(id: string, embedding: number[]): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Insert multiple vectors in a transaction.
|
|
89
|
+
*/
|
|
90
|
+
insertBatch(items: Array<{
|
|
91
|
+
id: string;
|
|
92
|
+
embedding: number[];
|
|
93
|
+
}>): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Get a vector by ID.
|
|
96
|
+
*/
|
|
97
|
+
get(id: string): Promise<number[] | null>;
|
|
98
|
+
/**
|
|
99
|
+
* Search for similar vectors using angular distance.
|
|
100
|
+
*
|
|
101
|
+
* Uses brute-force search over all vectors in memory. For small to medium
|
|
102
|
+
* datasets (<100k vectors), this is fast enough. For larger datasets,
|
|
103
|
+
* consider approximate nearest neighbor (ANN) algorithms.
|
|
104
|
+
*
|
|
105
|
+
* Also updates `last_accessed` timestamp for returned vectors, keeping
|
|
106
|
+
* them alive for TTL purposes.
|
|
107
|
+
*
|
|
108
|
+
* @param query - Query embedding vector (must match stored dimensionality)
|
|
109
|
+
* @param limit - Maximum number of results to return
|
|
110
|
+
* @returns Results sorted by distance ascending (closest first)
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const results = await vectorStore.search(queryEmbedding, 10);
|
|
115
|
+
* for (const { id, distance } of results) {
|
|
116
|
+
* console.log(`${id}: distance=${distance.toFixed(3)}`);
|
|
117
|
+
* }
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
search(query: number[], limit: number): Promise<VectorSearchResult[]>;
|
|
121
|
+
/**
|
|
122
|
+
* Search within a subset of IDs.
|
|
123
|
+
* Also updates last_accessed for returned vectors.
|
|
124
|
+
*/
|
|
125
|
+
searchWithinIds(query: number[], candidateIds: string[], limit: number): Promise<VectorSearchResult[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Search for similar vectors filtered to specific project(s).
|
|
128
|
+
*
|
|
129
|
+
* Skips vectors not belonging to the specified project(s) during
|
|
130
|
+
* distance computation (more efficient than post-filtering).
|
|
131
|
+
*
|
|
132
|
+
* @param query - Query embedding vector
|
|
133
|
+
* @param projects - Single project slug or array of project slugs
|
|
134
|
+
* @param limit - Maximum results
|
|
135
|
+
* @returns Results sorted by distance ascending
|
|
136
|
+
*/
|
|
137
|
+
searchByProject(query: number[], projects: string | string[], limit: number): Promise<VectorSearchResult[]>;
|
|
138
|
+
/**
|
|
139
|
+
* Get the project slug for a chunk ID.
|
|
140
|
+
*/
|
|
141
|
+
getChunkProject(id: string): string | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* Delete a vector.
|
|
144
|
+
*/
|
|
145
|
+
delete(id: string): Promise<boolean>;
|
|
146
|
+
/**
|
|
147
|
+
* Delete multiple vectors.
|
|
148
|
+
*/
|
|
149
|
+
deleteBatch(ids: string[]): Promise<number>;
|
|
150
|
+
/**
|
|
151
|
+
* Get vector count.
|
|
152
|
+
*/
|
|
153
|
+
count(): Promise<number>;
|
|
154
|
+
/**
|
|
155
|
+
* Check if a vector exists.
|
|
156
|
+
*/
|
|
157
|
+
has(id: string): Promise<boolean>;
|
|
158
|
+
/**
|
|
159
|
+
* Clear all vectors (for testing).
|
|
160
|
+
*/
|
|
161
|
+
clear(): Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Get all vector IDs.
|
|
164
|
+
*/
|
|
165
|
+
getAllIds(): Promise<string[]>;
|
|
166
|
+
/**
|
|
167
|
+
* Get all vectors as an array (for clustering).
|
|
168
|
+
*/
|
|
169
|
+
getAllVectors(): Promise<Array<{
|
|
170
|
+
id: string;
|
|
171
|
+
embedding: number[];
|
|
172
|
+
}>>;
|
|
173
|
+
/**
|
|
174
|
+
* Reset loaded state (for testing).
|
|
175
|
+
*/
|
|
176
|
+
reset(): void;
|
|
177
|
+
/**
|
|
178
|
+
* Update last_accessed timestamp for vectors.
|
|
179
|
+
* Called when vectors are returned from search to keep them alive.
|
|
180
|
+
*/
|
|
181
|
+
private touchLastAccessed;
|
|
182
|
+
/**
|
|
183
|
+
* Mark a vector as orphaned (its associated chunk was deleted).
|
|
184
|
+
* The vector will be subject to TTL cleanup after this.
|
|
185
|
+
* Called by pruner when deleting orphaned chunks.
|
|
186
|
+
*/
|
|
187
|
+
markOrphaned(id: string): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* Mark multiple vectors as orphaned.
|
|
190
|
+
*/
|
|
191
|
+
markOrphanedBatch(ids: string[]): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Clean up expired orphaned vectors and their corresponding chunks.
|
|
194
|
+
* Removes vectors that are orphaned AND haven't been accessed within the TTL period.
|
|
195
|
+
* Also deletes the corresponding chunks (FK cascades handle cluster assignments and edges).
|
|
196
|
+
*
|
|
197
|
+
* @param ttlDays - Number of days after which orphaned vectors expire
|
|
198
|
+
* @returns Number of vectors deleted
|
|
199
|
+
*/
|
|
200
|
+
cleanupExpired(ttlDays: number): Promise<number>;
|
|
201
|
+
/**
|
|
202
|
+
* Get count of orphaned vectors.
|
|
203
|
+
*/
|
|
204
|
+
getOrphanedCount(): Promise<number>;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Singleton vector store instance.
|
|
208
|
+
*
|
|
209
|
+
* Use this for all vector operations to ensure consistent state.
|
|
210
|
+
* The instance lazy-loads vectors from SQLite on first operation.
|
|
211
|
+
*/
|
|
212
|
+
export declare const vectorStore: VectorStore;
|
|
213
|
+
//# sourceMappingURL=vector-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../src/storage/vector-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMrD;;;;;;;;GAQG;AAEH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB,CAAkC;IAE3D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsD3B;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB5D;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnF;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAK/C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsB3E;;;OAGG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAuBhC;;;;;;;;;;OAUG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAC3B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwBhC;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1C;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBjD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAK9B;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKpC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAQ1E;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C;;OAEG;IACG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD;;;;;;;OAOG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CtD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAU1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|