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,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CRUD operations for chunks.
|
|
3
|
+
*/
|
|
4
|
+
import { getDb, generateId } from './db.js';
|
|
5
|
+
import { serialize, deserialize } from '../temporal/vector-clock.js';
|
|
6
|
+
/**
|
|
7
|
+
* Insert a single chunk.
|
|
8
|
+
*/
|
|
9
|
+
export function insertChunk(chunk) {
|
|
10
|
+
const db = getDb();
|
|
11
|
+
const id = chunk.id || generateId();
|
|
12
|
+
const stmt = db.prepare(`
|
|
13
|
+
INSERT INTO chunks (
|
|
14
|
+
id, session_id, session_slug, turn_indices, start_time, end_time,
|
|
15
|
+
content, code_block_count, tool_use_count, approx_tokens,
|
|
16
|
+
agent_id, vector_clock, spawn_depth, project_path
|
|
17
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
18
|
+
`);
|
|
19
|
+
stmt.run(id, chunk.sessionId, chunk.sessionSlug, JSON.stringify(chunk.turnIndices), chunk.startTime, chunk.endTime, chunk.content, chunk.codeBlockCount, chunk.toolUseCount, chunk.approxTokens, chunk.agentId ?? null, chunk.vectorClock ? serialize(chunk.vectorClock) : null, chunk.spawnDepth ?? 0, chunk.projectPath ?? null);
|
|
20
|
+
invalidateProjectsCache();
|
|
21
|
+
return id;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Insert multiple chunks in a transaction.
|
|
25
|
+
*/
|
|
26
|
+
export function insertChunks(chunks) {
|
|
27
|
+
const db = getDb();
|
|
28
|
+
const ids = [];
|
|
29
|
+
const stmt = db.prepare(`
|
|
30
|
+
INSERT INTO chunks (
|
|
31
|
+
id, session_id, session_slug, turn_indices, start_time, end_time,
|
|
32
|
+
content, code_block_count, tool_use_count, approx_tokens,
|
|
33
|
+
agent_id, vector_clock, spawn_depth, project_path
|
|
34
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
35
|
+
`);
|
|
36
|
+
const insertMany = db.transaction((chunks) => {
|
|
37
|
+
for (const chunk of chunks) {
|
|
38
|
+
const id = chunk.id || generateId();
|
|
39
|
+
stmt.run(id, chunk.sessionId, chunk.sessionSlug, JSON.stringify(chunk.turnIndices), chunk.startTime, chunk.endTime, chunk.content, chunk.codeBlockCount, chunk.toolUseCount, chunk.approxTokens, chunk.agentId ?? null, chunk.vectorClock ? serialize(chunk.vectorClock) : null, chunk.spawnDepth ?? 0, chunk.projectPath ?? null);
|
|
40
|
+
ids.push(id);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
insertMany(chunks);
|
|
44
|
+
invalidateProjectsCache();
|
|
45
|
+
return ids;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get a chunk by ID.
|
|
49
|
+
*/
|
|
50
|
+
export function getChunkById(id) {
|
|
51
|
+
const db = getDb();
|
|
52
|
+
const row = db.prepare('SELECT * FROM chunks WHERE id = ?').get(id);
|
|
53
|
+
if (!row) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return rowToChunk(row);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get multiple chunks by ID.
|
|
60
|
+
*/
|
|
61
|
+
export function getChunksByIds(ids) {
|
|
62
|
+
if (ids.length === 0) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
const db = getDb();
|
|
66
|
+
const placeholders = ids.map(() => '?').join(',');
|
|
67
|
+
const rows = db.prepare(`SELECT * FROM chunks WHERE id IN (${placeholders})`).all(...ids);
|
|
68
|
+
return rows.map(rowToChunk);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get all chunks for a session.
|
|
72
|
+
*/
|
|
73
|
+
export function getChunksBySession(sessionId) {
|
|
74
|
+
const db = getDb();
|
|
75
|
+
const rows = db
|
|
76
|
+
.prepare('SELECT * FROM chunks WHERE session_id = ? ORDER BY start_time')
|
|
77
|
+
.all(sessionId);
|
|
78
|
+
return rows.map(rowToChunk);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get all chunks for a session by slug.
|
|
82
|
+
*/
|
|
83
|
+
export function getChunksBySessionSlug(sessionSlug) {
|
|
84
|
+
const db = getDb();
|
|
85
|
+
const rows = db
|
|
86
|
+
.prepare('SELECT * FROM chunks WHERE session_slug = ? ORDER BY start_time')
|
|
87
|
+
.all(sessionSlug);
|
|
88
|
+
return rows.map(rowToChunk);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get all chunks.
|
|
92
|
+
*/
|
|
93
|
+
export function getAllChunks() {
|
|
94
|
+
const db = getDb();
|
|
95
|
+
const rows = db.prepare('SELECT * FROM chunks ORDER BY start_time').all();
|
|
96
|
+
return rows.map(rowToChunk);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get chunks by cluster.
|
|
100
|
+
*/
|
|
101
|
+
export function getChunksByCluster(clusterId) {
|
|
102
|
+
const db = getDb();
|
|
103
|
+
const rows = db
|
|
104
|
+
.prepare(`
|
|
105
|
+
SELECT c.* FROM chunks c
|
|
106
|
+
JOIN chunk_clusters cc ON c.id = cc.chunk_id
|
|
107
|
+
WHERE cc.cluster_id = ?
|
|
108
|
+
ORDER BY cc.distance
|
|
109
|
+
`)
|
|
110
|
+
.all(clusterId);
|
|
111
|
+
return rows.map(rowToChunk);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check if a session has already been ingested.
|
|
115
|
+
*/
|
|
116
|
+
export function isSessionIngested(sessionId) {
|
|
117
|
+
const db = getDb();
|
|
118
|
+
const row = db
|
|
119
|
+
.prepare('SELECT 1 FROM chunks WHERE session_id = ? LIMIT 1')
|
|
120
|
+
.get(sessionId);
|
|
121
|
+
return row !== undefined;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Delete a chunk by ID.
|
|
125
|
+
*/
|
|
126
|
+
export function deleteChunk(id) {
|
|
127
|
+
const db = getDb();
|
|
128
|
+
const result = db.prepare('DELETE FROM chunks WHERE id = ?').run(id);
|
|
129
|
+
return result.changes > 0;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Delete multiple chunks by ID.
|
|
133
|
+
*/
|
|
134
|
+
export function deleteChunks(ids) {
|
|
135
|
+
if (ids.length === 0) {
|
|
136
|
+
return 0;
|
|
137
|
+
}
|
|
138
|
+
const db = getDb();
|
|
139
|
+
const placeholders = ids.map(() => '?').join(',');
|
|
140
|
+
const result = db.prepare(`DELETE FROM chunks WHERE id IN (${placeholders})`).run(...ids);
|
|
141
|
+
return result.changes;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get unique session IDs.
|
|
145
|
+
*/
|
|
146
|
+
export function getSessionIds() {
|
|
147
|
+
const db = getDb();
|
|
148
|
+
const rows = db.prepare('SELECT DISTINCT session_id FROM chunks').all();
|
|
149
|
+
return rows.map((r) => r.session_id);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get chunk count.
|
|
153
|
+
*/
|
|
154
|
+
export function getChunkCount() {
|
|
155
|
+
const db = getDb();
|
|
156
|
+
const row = db.prepare('SELECT COUNT(*) as count FROM chunks').get();
|
|
157
|
+
return row.count;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get chunk IDs for a specific project slug.
|
|
161
|
+
*/
|
|
162
|
+
export function getChunkIdsByProject(projectSlug) {
|
|
163
|
+
const db = getDb();
|
|
164
|
+
const rows = db
|
|
165
|
+
.prepare('SELECT id FROM chunks WHERE session_slug = ?')
|
|
166
|
+
.all(projectSlug);
|
|
167
|
+
return rows.map((r) => r.id);
|
|
168
|
+
}
|
|
169
|
+
/** Cached project list — invalidated on chunk insert. */
|
|
170
|
+
let cachedProjects = null;
|
|
171
|
+
/**
|
|
172
|
+
* Invalidate the projects cache. Called after chunk inserts.
|
|
173
|
+
*/
|
|
174
|
+
export function invalidateProjectsCache() {
|
|
175
|
+
cachedProjects = null;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get distinct projects with chunk counts and date ranges.
|
|
179
|
+
* Results are cached at module level; cache invalidated on chunk insert.
|
|
180
|
+
*/
|
|
181
|
+
export function getDistinctProjects() {
|
|
182
|
+
if (cachedProjects)
|
|
183
|
+
return cachedProjects;
|
|
184
|
+
const db = getDb();
|
|
185
|
+
const rows = db.prepare(`
|
|
186
|
+
SELECT
|
|
187
|
+
session_slug AS slug,
|
|
188
|
+
COUNT(*) AS chunkCount,
|
|
189
|
+
MIN(start_time) AS firstSeen,
|
|
190
|
+
MAX(start_time) AS lastSeen
|
|
191
|
+
FROM chunks
|
|
192
|
+
WHERE session_slug != ''
|
|
193
|
+
GROUP BY session_slug
|
|
194
|
+
ORDER BY lastSeen DESC
|
|
195
|
+
`).all();
|
|
196
|
+
cachedProjects = rows;
|
|
197
|
+
return rows;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Get chunks for a project within a time range.
|
|
201
|
+
* Uses the composite index on (session_slug, start_time).
|
|
202
|
+
*/
|
|
203
|
+
export function getChunksByTimeRange(project, from, to, opts) {
|
|
204
|
+
const db = getDb();
|
|
205
|
+
let sql = `SELECT * FROM chunks WHERE session_slug = ? AND start_time >= ? AND start_time < ?`;
|
|
206
|
+
const params = [project, from, to];
|
|
207
|
+
if (opts?.sessionId) {
|
|
208
|
+
sql += ' AND session_id = ?';
|
|
209
|
+
params.push(opts.sessionId);
|
|
210
|
+
}
|
|
211
|
+
sql += ' ORDER BY start_time ASC';
|
|
212
|
+
if (opts?.limit) {
|
|
213
|
+
sql += ' LIMIT ?';
|
|
214
|
+
params.push(opts.limit);
|
|
215
|
+
}
|
|
216
|
+
const rows = db.prepare(sql).all(...params);
|
|
217
|
+
return rows.map(rowToChunk);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* List sessions for a project with aggregated metadata.
|
|
221
|
+
* Optionally filtered by time range.
|
|
222
|
+
*/
|
|
223
|
+
export function getSessionsForProject(project, from, to) {
|
|
224
|
+
const db = getDb();
|
|
225
|
+
let sql = `
|
|
226
|
+
SELECT
|
|
227
|
+
session_id AS sessionId,
|
|
228
|
+
MIN(start_time) AS firstChunkTime,
|
|
229
|
+
MAX(end_time) AS lastChunkTime,
|
|
230
|
+
COUNT(*) AS chunkCount,
|
|
231
|
+
COALESCE(SUM(approx_tokens), 0) AS totalTokens
|
|
232
|
+
FROM chunks
|
|
233
|
+
WHERE session_slug = ?
|
|
234
|
+
`;
|
|
235
|
+
const params = [project];
|
|
236
|
+
if (from) {
|
|
237
|
+
sql += ' AND start_time >= ?';
|
|
238
|
+
params.push(from);
|
|
239
|
+
}
|
|
240
|
+
if (to) {
|
|
241
|
+
sql += ' AND start_time < ?';
|
|
242
|
+
params.push(to);
|
|
243
|
+
}
|
|
244
|
+
sql += ' GROUP BY session_id ORDER BY firstChunkTime DESC';
|
|
245
|
+
return db.prepare(sql).all(...params);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Find the most recent session before a given session.
|
|
249
|
+
* Uses the composite index for efficient lookup.
|
|
250
|
+
*/
|
|
251
|
+
export function getPreviousSession(project, currentSessionId) {
|
|
252
|
+
const db = getDb();
|
|
253
|
+
// Get the current session's earliest start_time
|
|
254
|
+
const current = db
|
|
255
|
+
.prepare('SELECT MIN(start_time) AS minTime FROM chunks WHERE session_id = ? AND session_slug = ?')
|
|
256
|
+
.get(currentSessionId, project);
|
|
257
|
+
if (!current?.minTime)
|
|
258
|
+
return null;
|
|
259
|
+
// Find the latest session that ended before the current session started
|
|
260
|
+
const row = db
|
|
261
|
+
.prepare(`
|
|
262
|
+
SELECT
|
|
263
|
+
session_id AS sessionId,
|
|
264
|
+
MIN(start_time) AS firstChunkTime,
|
|
265
|
+
MAX(end_time) AS lastChunkTime,
|
|
266
|
+
COUNT(*) AS chunkCount,
|
|
267
|
+
COALESCE(SUM(approx_tokens), 0) AS totalTokens
|
|
268
|
+
FROM chunks
|
|
269
|
+
WHERE session_slug = ?
|
|
270
|
+
AND session_id != ?
|
|
271
|
+
AND end_time <= ?
|
|
272
|
+
GROUP BY session_id
|
|
273
|
+
ORDER BY lastChunkTime DESC
|
|
274
|
+
LIMIT 1
|
|
275
|
+
`)
|
|
276
|
+
.get(project, currentSessionId, current.minTime);
|
|
277
|
+
return row ?? null;
|
|
278
|
+
}
|
|
279
|
+
function rowToChunk(row) {
|
|
280
|
+
return {
|
|
281
|
+
id: row.id,
|
|
282
|
+
sessionId: row.session_id,
|
|
283
|
+
sessionSlug: row.session_slug,
|
|
284
|
+
turnIndices: JSON.parse(row.turn_indices),
|
|
285
|
+
startTime: row.start_time,
|
|
286
|
+
endTime: row.end_time,
|
|
287
|
+
content: row.content,
|
|
288
|
+
codeBlockCount: row.code_block_count,
|
|
289
|
+
toolUseCount: row.tool_use_count,
|
|
290
|
+
approxTokens: row.approx_tokens,
|
|
291
|
+
createdAt: row.created_at,
|
|
292
|
+
agentId: row.agent_id,
|
|
293
|
+
vectorClock: row.vector_clock ? deserialize(row.vector_clock) : null,
|
|
294
|
+
spawnDepth: row.spawn_depth ?? 0,
|
|
295
|
+
projectPath: row.project_path,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=chunk-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-store.js","sourceRoot":"","sources":["../../src/storage/chunk-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAMvB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CACN,EAAE,EACF,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,WAAW,EACjB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,OAAO,IAAI,IAAI,EACrB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EACvD,KAAK,CAAC,UAAU,IAAI,CAAC,EACrB,KAAK,CAAC,WAAW,IAAI,IAAI,CAC1B,CAAC;IAEF,uBAAuB,EAAE,CAAC;IAE1B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAMvB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,MAAoB,EAAE,EAAE;QACzD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CACN,EAAE,EACF,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,WAAW,EACjB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,OAAO,IAAI,IAAI,EACrB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EACvD,KAAK,CAAC,UAAU,IAAI,CAAC,EACrB,KAAK,CAAC,WAAW,IAAI,IAAI,CAC1B,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,MAAM,CAAC,CAAC;IACnB,uBAAuB,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAA2B,CAAC;IAE9F,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAa;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAiB,CAAC;IAE1G,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,+DAA+D,CAAC;SACxE,GAAG,CAAC,SAAS,CAAiB,CAAC;IAElC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,iEAAiE,CAAC;SAC1E,GAAG,CAAC,WAAW,CAAiB,CAAC;IAEpC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAkB,CAAC;IAE1F,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;;;GAKH,CACE;SACA,GAAG,CAAC,SAAS,CAAiB,CAAC;IAElC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,mDAAmD,CAAC;SAC5D,GAAG,CAAC,SAAS,CAA8B,CAAC;IAE/C,OAAO,GAAG,KAAK,SAAS,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAa;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAA8B,CAAC;IACpG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAuB,CAAC;IAC1F,OAAO,GAAG,CAAC,KAAK,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,8CAA8C,CAAC;SACvD,GAAG,CAAC,WAAW,CAAqB,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC;AAYD,yDAAyD;AACzD,IAAI,cAAc,GAAyB,IAAI,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;GAUvB,CAAC,CAAC,GAAG,EAKJ,CAAC;IAEH,cAAc,GAAG,IAAI,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC;AAqBD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,IAAY,EACZ,EAAU,EACV,IAAuB;IAEvB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,IAAI,GAAG,GAAG,oFAAoF,CAAC;IAC/F,MAAM,MAAM,GAAc,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9C,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;QACpB,GAAG,IAAI,qBAAqB,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,IAAI,0BAA0B,CAAC;IAElC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;QAChB,GAAG,IAAI,UAAU,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAiB,CAAC;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,IAAa,EACb,EAAW;IAEX,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,IAAI,GAAG,GAAG;;;;;;;;;GAST,CAAC;IACF,MAAM,MAAM,GAAc,CAAC,OAAO,CAAC,CAAC;IAEpC,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,IAAI,sBAAsB,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,EAAE,EAAE,CAAC;QACP,GAAG,IAAI,qBAAqB,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,GAAG,IAAI,mDAAmD,CAAC;IAE3D,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,gBAAwB;IAExB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,gDAAgD;IAChD,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CAAC,yFAAyF,CAAC;SAClG,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAA2C,CAAC;IAE5E,IAAI,CAAC,OAAO,EAAE,OAAO;QAAE,OAAO,IAAI,CAAC;IAEnC,wEAAwE;IACxE,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC;;;;;;;;;;;;;;KAcR,CAAC;SACD,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAA4B,CAAC;IAE9E,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAwBD,SAAS,UAAU,CAAC,GAAe;IACjC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAa;QACrD,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QACpE,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,YAAY;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistence layer for vector clocks.
|
|
3
|
+
*
|
|
4
|
+
* Stores and retrieves vector clocks from SQLite for:
|
|
5
|
+
* - Reference clocks (per project): Element-wise max of all agent clocks
|
|
6
|
+
* - Agent clocks (per project + agent): Current clock state for each agent
|
|
7
|
+
*/
|
|
8
|
+
import { type VectorClock } from '../temporal/vector-clock.js';
|
|
9
|
+
/**
|
|
10
|
+
* Get the reference clock for a project.
|
|
11
|
+
* The reference clock is the element-wise max of all agent clocks,
|
|
12
|
+
* representing the "current time" for decay calculation.
|
|
13
|
+
*
|
|
14
|
+
* @param projectSlug - Project identifier
|
|
15
|
+
* @returns Current reference clock (empty if none stored)
|
|
16
|
+
*/
|
|
17
|
+
export declare function getReferenceClock(projectSlug: string): VectorClock;
|
|
18
|
+
/**
|
|
19
|
+
* Set the reference clock for a project.
|
|
20
|
+
*
|
|
21
|
+
* @param projectSlug - Project identifier
|
|
22
|
+
* @param clock - New reference clock
|
|
23
|
+
*/
|
|
24
|
+
export declare function setReferenceClock(projectSlug: string, clock: VectorClock): void;
|
|
25
|
+
/**
|
|
26
|
+
* Get the clock for a specific agent within a project.
|
|
27
|
+
*
|
|
28
|
+
* @param projectSlug - Project identifier
|
|
29
|
+
* @param agentId - Agent identifier (e.g., 'ui', 'human', or sub-agent ID)
|
|
30
|
+
* @returns Agent's current clock (empty if none stored)
|
|
31
|
+
*/
|
|
32
|
+
export declare function getAgentClock(projectSlug: string, agentId: string): VectorClock;
|
|
33
|
+
/**
|
|
34
|
+
* Update the clock for a specific agent and refresh the reference clock.
|
|
35
|
+
* The reference clock is automatically updated to be the merge of all agent clocks.
|
|
36
|
+
*
|
|
37
|
+
* @param projectSlug - Project identifier
|
|
38
|
+
* @param agentId - Agent identifier
|
|
39
|
+
* @param clock - New clock state for this agent
|
|
40
|
+
*/
|
|
41
|
+
export declare function updateAgentClock(projectSlug: string, agentId: string, clock: VectorClock): void;
|
|
42
|
+
/**
|
|
43
|
+
* Get all agent clocks for a project.
|
|
44
|
+
*
|
|
45
|
+
* @param projectSlug - Project identifier
|
|
46
|
+
* @returns Map of agentId → clock
|
|
47
|
+
*/
|
|
48
|
+
export declare function getAllAgentClocks(projectSlug: string): Map<string, VectorClock>;
|
|
49
|
+
/**
|
|
50
|
+
* Rebuild the reference clock from all agent clocks.
|
|
51
|
+
* Useful after data recovery or manual edits.
|
|
52
|
+
*
|
|
53
|
+
* @param projectSlug - Project identifier
|
|
54
|
+
* @returns The newly computed reference clock
|
|
55
|
+
*/
|
|
56
|
+
export declare function rebuildReferenceClock(projectSlug: string): VectorClock;
|
|
57
|
+
/**
|
|
58
|
+
* Delete all clocks for a project.
|
|
59
|
+
* Used when clearing project data.
|
|
60
|
+
*
|
|
61
|
+
* @param projectSlug - Project identifier
|
|
62
|
+
* @returns Number of records deleted
|
|
63
|
+
*/
|
|
64
|
+
export declare function deleteProjectClocks(projectSlug: string): number;
|
|
65
|
+
/**
|
|
66
|
+
* Get the last update time for a clock.
|
|
67
|
+
*
|
|
68
|
+
* @param projectSlug - Project identifier
|
|
69
|
+
* @param agentId - Agent identifier (optional, for reference clock if omitted)
|
|
70
|
+
* @returns ISO timestamp of last update, or null if not found
|
|
71
|
+
*/
|
|
72
|
+
export declare function getClockUpdateTime(projectSlug: string, agentId?: string): string | null;
|
|
73
|
+
/**
|
|
74
|
+
* Check if a project has any stored clocks.
|
|
75
|
+
*
|
|
76
|
+
* @param projectSlug - Project identifier
|
|
77
|
+
* @returns true if project has stored clocks
|
|
78
|
+
*/
|
|
79
|
+
export declare function hasProjectClocks(projectSlug: string): boolean;
|
|
80
|
+
//# sourceMappingURL=clock-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock-store.d.ts","sourceRoot":"","sources":["../../src/storage/clock-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,6BAA6B,CAAC;AAErC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAQlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAU/E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAQ/E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAgB/F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAkB/E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQ7D"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistence layer for vector clocks.
|
|
3
|
+
*
|
|
4
|
+
* Stores and retrieves vector clocks from SQLite for:
|
|
5
|
+
* - Reference clocks (per project): Element-wise max of all agent clocks
|
|
6
|
+
* - Agent clocks (per project + agent): Current clock state for each agent
|
|
7
|
+
*/
|
|
8
|
+
import { getDb } from './db.js';
|
|
9
|
+
import { serialize, deserialize, merge, createClock, } from '../temporal/vector-clock.js';
|
|
10
|
+
/**
|
|
11
|
+
* Get the reference clock for a project.
|
|
12
|
+
* The reference clock is the element-wise max of all agent clocks,
|
|
13
|
+
* representing the "current time" for decay calculation.
|
|
14
|
+
*
|
|
15
|
+
* @param projectSlug - Project identifier
|
|
16
|
+
* @returns Current reference clock (empty if none stored)
|
|
17
|
+
*/
|
|
18
|
+
export function getReferenceClock(projectSlug) {
|
|
19
|
+
const db = getDb();
|
|
20
|
+
const row = db
|
|
21
|
+
.prepare('SELECT clock_data FROM vector_clocks WHERE id = ? AND project_slug = ?')
|
|
22
|
+
.get(`project:${projectSlug}`, projectSlug);
|
|
23
|
+
return row ? deserialize(row.clock_data) : createClock();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Set the reference clock for a project.
|
|
27
|
+
*
|
|
28
|
+
* @param projectSlug - Project identifier
|
|
29
|
+
* @param clock - New reference clock
|
|
30
|
+
*/
|
|
31
|
+
export function setReferenceClock(projectSlug, clock) {
|
|
32
|
+
const db = getDb();
|
|
33
|
+
db.prepare(`
|
|
34
|
+
INSERT INTO vector_clocks (id, project_slug, clock_data, updated_at)
|
|
35
|
+
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
|
|
36
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
37
|
+
clock_data = excluded.clock_data,
|
|
38
|
+
updated_at = CURRENT_TIMESTAMP
|
|
39
|
+
`).run(`project:${projectSlug}`, projectSlug, serialize(clock));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get the clock for a specific agent within a project.
|
|
43
|
+
*
|
|
44
|
+
* @param projectSlug - Project identifier
|
|
45
|
+
* @param agentId - Agent identifier (e.g., 'ui', 'human', or sub-agent ID)
|
|
46
|
+
* @returns Agent's current clock (empty if none stored)
|
|
47
|
+
*/
|
|
48
|
+
export function getAgentClock(projectSlug, agentId) {
|
|
49
|
+
const db = getDb();
|
|
50
|
+
const row = db
|
|
51
|
+
.prepare('SELECT clock_data FROM vector_clocks WHERE id = ? AND project_slug = ?')
|
|
52
|
+
.get(`agent:${projectSlug}:${agentId}`, projectSlug);
|
|
53
|
+
return row ? deserialize(row.clock_data) : createClock();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Update the clock for a specific agent and refresh the reference clock.
|
|
57
|
+
* The reference clock is automatically updated to be the merge of all agent clocks.
|
|
58
|
+
*
|
|
59
|
+
* @param projectSlug - Project identifier
|
|
60
|
+
* @param agentId - Agent identifier
|
|
61
|
+
* @param clock - New clock state for this agent
|
|
62
|
+
*/
|
|
63
|
+
export function updateAgentClock(projectSlug, agentId, clock) {
|
|
64
|
+
const db = getDb();
|
|
65
|
+
// Store the agent's clock
|
|
66
|
+
db.prepare(`
|
|
67
|
+
INSERT INTO vector_clocks (id, project_slug, clock_data, updated_at)
|
|
68
|
+
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
|
|
69
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
70
|
+
clock_data = excluded.clock_data,
|
|
71
|
+
updated_at = CURRENT_TIMESTAMP
|
|
72
|
+
`).run(`agent:${projectSlug}:${agentId}`, projectSlug, serialize(clock));
|
|
73
|
+
// Update reference clock (merge with existing)
|
|
74
|
+
const currentRef = getReferenceClock(projectSlug);
|
|
75
|
+
const newRef = merge(currentRef, clock);
|
|
76
|
+
setReferenceClock(projectSlug, newRef);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get all agent clocks for a project.
|
|
80
|
+
*
|
|
81
|
+
* @param projectSlug - Project identifier
|
|
82
|
+
* @returns Map of agentId → clock
|
|
83
|
+
*/
|
|
84
|
+
export function getAllAgentClocks(projectSlug) {
|
|
85
|
+
const db = getDb();
|
|
86
|
+
const rows = db
|
|
87
|
+
.prepare('SELECT id, clock_data FROM vector_clocks WHERE project_slug = ? AND id LIKE ?')
|
|
88
|
+
.all(projectSlug, `agent:${projectSlug}:%`);
|
|
89
|
+
const result = new Map();
|
|
90
|
+
const prefix = `agent:${projectSlug}:`;
|
|
91
|
+
for (const row of rows) {
|
|
92
|
+
if (row.id.startsWith(prefix)) {
|
|
93
|
+
const agentId = row.id.slice(prefix.length);
|
|
94
|
+
result.set(agentId, deserialize(row.clock_data));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Rebuild the reference clock from all agent clocks.
|
|
101
|
+
* Useful after data recovery or manual edits.
|
|
102
|
+
*
|
|
103
|
+
* @param projectSlug - Project identifier
|
|
104
|
+
* @returns The newly computed reference clock
|
|
105
|
+
*/
|
|
106
|
+
export function rebuildReferenceClock(projectSlug) {
|
|
107
|
+
const agentClocks = getAllAgentClocks(projectSlug);
|
|
108
|
+
let ref = createClock();
|
|
109
|
+
for (const clock of agentClocks.values()) {
|
|
110
|
+
ref = merge(ref, clock);
|
|
111
|
+
}
|
|
112
|
+
setReferenceClock(projectSlug, ref);
|
|
113
|
+
return ref;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Delete all clocks for a project.
|
|
117
|
+
* Used when clearing project data.
|
|
118
|
+
*
|
|
119
|
+
* @param projectSlug - Project identifier
|
|
120
|
+
* @returns Number of records deleted
|
|
121
|
+
*/
|
|
122
|
+
export function deleteProjectClocks(projectSlug) {
|
|
123
|
+
const db = getDb();
|
|
124
|
+
const result = db.prepare('DELETE FROM vector_clocks WHERE project_slug = ?').run(projectSlug);
|
|
125
|
+
return result.changes;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get the last update time for a clock.
|
|
129
|
+
*
|
|
130
|
+
* @param projectSlug - Project identifier
|
|
131
|
+
* @param agentId - Agent identifier (optional, for reference clock if omitted)
|
|
132
|
+
* @returns ISO timestamp of last update, or null if not found
|
|
133
|
+
*/
|
|
134
|
+
export function getClockUpdateTime(projectSlug, agentId) {
|
|
135
|
+
const db = getDb();
|
|
136
|
+
const id = agentId ? `agent:${projectSlug}:${agentId}` : `project:${projectSlug}`;
|
|
137
|
+
const row = db
|
|
138
|
+
.prepare('SELECT updated_at FROM vector_clocks WHERE id = ?')
|
|
139
|
+
.get(id);
|
|
140
|
+
return row?.updated_at ?? null;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Check if a project has any stored clocks.
|
|
144
|
+
*
|
|
145
|
+
* @param projectSlug - Project identifier
|
|
146
|
+
* @returns true if project has stored clocks
|
|
147
|
+
*/
|
|
148
|
+
export function hasProjectClocks(projectSlug) {
|
|
149
|
+
const db = getDb();
|
|
150
|
+
const row = db
|
|
151
|
+
.prepare('SELECT 1 FROM vector_clocks WHERE project_slug = ? LIMIT 1')
|
|
152
|
+
.get(projectSlug);
|
|
153
|
+
return row !== undefined;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=clock-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock-store.js","sourceRoot":"","sources":["../../src/storage/clock-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CRUD operations for clusters and chunk-cluster assignments.
|
|
3
|
+
*/
|
|
4
|
+
import type { StoredCluster, ClusterInput, ChunkClusterAssignment } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Create or update a cluster.
|
|
7
|
+
*/
|
|
8
|
+
export declare function upsertCluster(input: ClusterInput): string;
|
|
9
|
+
/**
|
|
10
|
+
* Get a cluster by ID.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getClusterById(id: string): StoredCluster | null;
|
|
13
|
+
/**
|
|
14
|
+
* Get all clusters.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getAllClusters(): StoredCluster[];
|
|
17
|
+
/**
|
|
18
|
+
* Get clusters that need refresh (stale descriptions).
|
|
19
|
+
* A cluster is stale if its membership_hash doesn't match current members
|
|
20
|
+
* or if it has never been refreshed.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getStaleClusters(maxAge?: number): StoredCluster[];
|
|
23
|
+
/**
|
|
24
|
+
* Assign a chunk to a cluster.
|
|
25
|
+
*/
|
|
26
|
+
export declare function assignChunkToCluster(chunkId: string, clusterId: string, distance: number): void;
|
|
27
|
+
/**
|
|
28
|
+
* Assign multiple chunks to clusters in a transaction.
|
|
29
|
+
*/
|
|
30
|
+
export declare function assignChunksToClusters(assignments: ChunkClusterAssignment[]): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get cluster assignments for a chunk.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getChunkClusterAssignments(chunkId: string): ChunkClusterAssignment[];
|
|
35
|
+
/**
|
|
36
|
+
* Get all chunk IDs in a cluster.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getClusterChunkIds(clusterId: string): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Remove all cluster assignments for a chunk.
|
|
41
|
+
*/
|
|
42
|
+
export declare function removeChunkAssignments(chunkId: string): number;
|
|
43
|
+
/**
|
|
44
|
+
* Remove all assignments for a cluster.
|
|
45
|
+
*/
|
|
46
|
+
export declare function clearClusterAssignments(clusterId: string): number;
|
|
47
|
+
/**
|
|
48
|
+
* Delete a cluster and its assignments.
|
|
49
|
+
*/
|
|
50
|
+
export declare function deleteCluster(id: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Delete all clusters and assignments.
|
|
53
|
+
*/
|
|
54
|
+
export declare function clearAllClusters(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Get cluster count.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getClusterCount(): number;
|
|
59
|
+
/**
|
|
60
|
+
* Compute membership hash for staleness detection.
|
|
61
|
+
*/
|
|
62
|
+
export declare function computeMembershipHash(chunkIds: string[]): string;
|
|
63
|
+
//# sourceMappingURL=cluster-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster-store.d.ts","sourceRoot":"","sources":["../../src/storage/cluster-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEtF;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAgEzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAS/D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,aAAa,EAAE,CAIhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAcjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAelF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAWpF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAO9D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAUjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAIxC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAKhE"}
|