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 @@
|
|
|
1
|
+
{"version":3,"file":"decay.d.ts","sourceRoot":"","sources":["../../src/storage/decay.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AAEtF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAIhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAK/B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAGlC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CA6BpF;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,WAAW,EAC3B,SAAS,EAAE,aAAa,GACvB,MAAM,CAIR;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,WAAW,EAC3B,MAAM,GAAE,iBAAwC,GAC/C,MAAM,CAIR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,WAAW,EAC3B,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,gBAAgB,GAC3B,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,sCAAsC,CACpD,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,WAAW,EAC3B,YAAY,EAAE,iBAAiB,EAC/B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,gBAAgB,GAC3B,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBpF;AAsED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAkCpE"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decay weight calculation for edges.
|
|
3
|
+
* Supports both time-based decay (legacy) and vector clock-based decay.
|
|
4
|
+
*/
|
|
5
|
+
import { hopCount, deserialize } from '../temporal/vector-clock.js';
|
|
6
|
+
/**
|
|
7
|
+
* Backward hop decay: Linear (dies@10)
|
|
8
|
+
* Optimal for retrieving causally-related context 4-20 hops back.
|
|
9
|
+
* MRR=0.688 (+35% vs exponential 0.80)
|
|
10
|
+
*/
|
|
11
|
+
export const BACKWARD_HOP_DECAY = {
|
|
12
|
+
type: 'linear',
|
|
13
|
+
decayPerHop: 0.1, // weight = max(0, 1 - hops * 0.1), dies at 10 hops
|
|
14
|
+
minWeight: 0.01,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Forward hop decay: Delayed linear (5-hop hold, dies@20)
|
|
18
|
+
* Optimal for predicting future context 1-20 hops forward.
|
|
19
|
+
* MRR=0.849 (+271% vs exponential 0.80)
|
|
20
|
+
*/
|
|
21
|
+
export const FORWARD_HOP_DECAY = {
|
|
22
|
+
type: 'delayed-linear',
|
|
23
|
+
holdHops: 5, // Full weight for first 5 hops
|
|
24
|
+
decayPerHop: 0.067, // Then linear decay, dies at ~20 hops
|
|
25
|
+
minWeight: 0.01,
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Default vector decay configuration (legacy exponential).
|
|
29
|
+
* @deprecated Use BACKWARD_HOP_DECAY or FORWARD_HOP_DECAY instead.
|
|
30
|
+
*/
|
|
31
|
+
export const DEFAULT_VECTOR_DECAY = {
|
|
32
|
+
weightPerHop: 0.80,
|
|
33
|
+
minWeight: 0.01,
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Calculate hop-based decay weight using direction-specific curves.
|
|
37
|
+
*
|
|
38
|
+
* @param hops - Number of hops from reference point
|
|
39
|
+
* @param config - Hop decay configuration
|
|
40
|
+
* @returns Weight value (0 to 1), or 0 if below minWeight
|
|
41
|
+
*/
|
|
42
|
+
export function calculateHopDecayWeight(hops, config) {
|
|
43
|
+
let weight;
|
|
44
|
+
switch (config.type) {
|
|
45
|
+
case 'exponential': {
|
|
46
|
+
const wph = config.weightPerHop ?? 0.80;
|
|
47
|
+
weight = Math.pow(wph, hops);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
case 'linear': {
|
|
51
|
+
const rate = config.decayPerHop ?? 0.1;
|
|
52
|
+
weight = Math.max(0, 1 - hops * rate);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
case 'delayed-linear': {
|
|
56
|
+
const hold = config.holdHops ?? 0;
|
|
57
|
+
const rate = config.decayPerHop ?? 0.067;
|
|
58
|
+
if (hops < hold) {
|
|
59
|
+
weight = 1;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
weight = Math.max(0, 1 - (hops - hold) * rate);
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
weight = 1;
|
|
68
|
+
}
|
|
69
|
+
return weight >= config.minWeight ? weight : 0;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Calculate decay weight for an edge based on direction.
|
|
73
|
+
*
|
|
74
|
+
* @param edgeClock - Vector clock stamped on the edge
|
|
75
|
+
* @param referenceClock - Current reference clock for the project
|
|
76
|
+
* @param direction - Edge direction ('backward' or 'forward')
|
|
77
|
+
* @returns Weight value (0 to 1), or 0 if below minWeight
|
|
78
|
+
*/
|
|
79
|
+
export function calculateDirectionalDecayWeight(edgeClock, referenceClock, direction) {
|
|
80
|
+
const hops = hopCount(edgeClock, referenceClock);
|
|
81
|
+
const config = direction === 'backward' ? BACKWARD_HOP_DECAY : FORWARD_HOP_DECAY;
|
|
82
|
+
return calculateHopDecayWeight(hops, config);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Calculate decay weight based on vector clock hop count.
|
|
86
|
+
* @deprecated Use calculateDirectionalDecayWeight for direction-specific curves.
|
|
87
|
+
*
|
|
88
|
+
* @param edgeClock - Vector clock stamped on the edge
|
|
89
|
+
* @param referenceClock - Current reference clock for the project
|
|
90
|
+
* @param config - Vector decay configuration
|
|
91
|
+
* @returns Weight value (0 to 1), or 0 if below minWeight
|
|
92
|
+
*/
|
|
93
|
+
export function calculateVectorDecayWeight(edgeClock, referenceClock, config = DEFAULT_VECTOR_DECAY) {
|
|
94
|
+
const hops = hopCount(edgeClock, referenceClock);
|
|
95
|
+
const weight = Math.pow(config.weightPerHop, hops);
|
|
96
|
+
return weight >= config.minWeight ? weight : 0;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Calculate decay weight with fallback for legacy edges.
|
|
100
|
+
* Uses vector clock decay if available, falls back to time-based decay.
|
|
101
|
+
*
|
|
102
|
+
* @param edgeClockJson - JSON serialized vector clock (may be null for legacy edges)
|
|
103
|
+
* @param referenceClock - Current reference clock for the project
|
|
104
|
+
* @param direction - Edge direction for curve selection
|
|
105
|
+
* @param createdAtMs - Edge creation time in milliseconds (for fallback)
|
|
106
|
+
* @param queryTimeMs - Query time in milliseconds (for fallback)
|
|
107
|
+
* @param timeConfig - Time-based decay configuration (for fallback)
|
|
108
|
+
* @returns Computed weight value
|
|
109
|
+
*/
|
|
110
|
+
export function calculateDecayWeightWithFallback(edgeClockJson, referenceClock, direction, createdAtMs, queryTimeMs, timeConfig) {
|
|
111
|
+
// Try vector clock decay first
|
|
112
|
+
if (edgeClockJson) {
|
|
113
|
+
const edgeClock = deserialize(edgeClockJson);
|
|
114
|
+
if (Object.keys(edgeClock).length > 0) {
|
|
115
|
+
return calculateDirectionalDecayWeight(edgeClock, referenceClock, direction);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Fallback to time-based decay
|
|
119
|
+
return calculateDecayWeight(timeConfig, queryTimeMs - createdAtMs);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* @deprecated Use calculateDecayWeightWithFallback with direction parameter.
|
|
123
|
+
*/
|
|
124
|
+
export function calculateDecayWeightWithFallbackLegacy(edgeClockJson, referenceClock, vectorConfig, createdAtMs, queryTimeMs, timeConfig) {
|
|
125
|
+
if (edgeClockJson) {
|
|
126
|
+
const edgeClock = deserialize(edgeClockJson);
|
|
127
|
+
if (Object.keys(edgeClock).length > 0) {
|
|
128
|
+
return calculateVectorDecayWeight(edgeClock, referenceClock, vectorConfig);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return calculateDecayWeight(timeConfig, queryTimeMs - createdAtMs);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Calculate boosted weight for edges with multiple links.
|
|
135
|
+
* Edges that have been created multiple times (same source/target pair)
|
|
136
|
+
* get a boost to resist decay.
|
|
137
|
+
*
|
|
138
|
+
* @param baseWeight - Base weight after decay
|
|
139
|
+
* @param linkCount - Number of times this edge was created
|
|
140
|
+
* @returns Boosted weight
|
|
141
|
+
*/
|
|
142
|
+
export function applyLinkBoost(baseWeight, linkCount) {
|
|
143
|
+
if (linkCount <= 1)
|
|
144
|
+
return baseWeight;
|
|
145
|
+
// Logarithmic boost: 5 links = ~1.16x, 10 links = ~1.23x
|
|
146
|
+
const boostFactor = 1 + Math.log(linkCount) * 0.1;
|
|
147
|
+
return baseWeight * boostFactor;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Calculate the decay weight at a given age.
|
|
151
|
+
* @param config - Decay model configuration
|
|
152
|
+
* @param ageMs - Age of the edge in milliseconds
|
|
153
|
+
* @returns Weight value (0 to initialWeight)
|
|
154
|
+
*/
|
|
155
|
+
export function calculateDecayWeight(config, ageMs) {
|
|
156
|
+
if (ageMs < 0) {
|
|
157
|
+
return config.initialWeight ?? 1.0;
|
|
158
|
+
}
|
|
159
|
+
switch (config.type) {
|
|
160
|
+
case 'linear':
|
|
161
|
+
return calculateLinear(config, ageMs);
|
|
162
|
+
case 'delayed-linear':
|
|
163
|
+
return calculateDelayedLinear(config, ageMs);
|
|
164
|
+
case 'multi-linear':
|
|
165
|
+
return calculateMultiLinear(config, ageMs);
|
|
166
|
+
case 'exponential':
|
|
167
|
+
return calculateExponential(config, ageMs);
|
|
168
|
+
case 'power-law':
|
|
169
|
+
return calculatePowerLaw(config, ageMs);
|
|
170
|
+
default:
|
|
171
|
+
return config.initialWeight ?? 1.0;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Simple linear decay: w(t) = w0 - rate * t
|
|
176
|
+
*/
|
|
177
|
+
function calculateLinear(config, ageMs) {
|
|
178
|
+
const w0 = config.initialWeight ?? 1.0;
|
|
179
|
+
const rate = config.decayRate ?? 0;
|
|
180
|
+
const weight = w0 - rate * ageMs;
|
|
181
|
+
return Math.max(0, weight);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Delayed linear: hold at w0 for holdPeriod, then linear decay.
|
|
185
|
+
* w(t) = w0 if t < hold, else w0 - rate * (t - hold)
|
|
186
|
+
*/
|
|
187
|
+
function calculateDelayedLinear(config, ageMs) {
|
|
188
|
+
const w0 = config.initialWeight ?? 1.0;
|
|
189
|
+
const hold = config.holdPeriodMs ?? 0;
|
|
190
|
+
const rate = config.decayRate ?? 0;
|
|
191
|
+
if (ageMs < hold) {
|
|
192
|
+
return w0;
|
|
193
|
+
}
|
|
194
|
+
const decayTime = ageMs - hold;
|
|
195
|
+
const weight = w0 - rate * decayTime;
|
|
196
|
+
return Math.max(0, weight);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Multi-linear: sum of multiple decay tiers.
|
|
200
|
+
* Each tier has its own hold period and decay rate.
|
|
201
|
+
*/
|
|
202
|
+
function calculateMultiLinear(config, ageMs) {
|
|
203
|
+
const tiers = config.tiers ?? [];
|
|
204
|
+
let totalWeight = 0;
|
|
205
|
+
for (const tier of tiers) {
|
|
206
|
+
if (ageMs < tier.holdPeriodMs) {
|
|
207
|
+
totalWeight += tier.initialWeight;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
const decayTime = ageMs - tier.holdPeriodMs;
|
|
211
|
+
const weight = tier.initialWeight - tier.decayRatePerMs * decayTime;
|
|
212
|
+
totalWeight += Math.max(0, weight);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return totalWeight;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Exponential decay: w(t) = w0 * e^(-rate * t)
|
|
219
|
+
*/
|
|
220
|
+
function calculateExponential(config, ageMs) {
|
|
221
|
+
const w0 = config.initialWeight ?? 1.0;
|
|
222
|
+
const rate = config.decayRate ?? 0;
|
|
223
|
+
return w0 * Math.exp(-rate * ageMs);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Power law decay: w(t) = w0 / (1 + k*t)^alpha
|
|
227
|
+
*/
|
|
228
|
+
function calculatePowerLaw(config, ageMs) {
|
|
229
|
+
const w0 = config.initialWeight ?? 1.0;
|
|
230
|
+
const k = config.decayRate ?? 0;
|
|
231
|
+
const alpha = config.powerExponent ?? 1.0;
|
|
232
|
+
return w0 / Math.pow(1 + k * ageMs, alpha);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Calculate the time when weight reaches zero (or null if asymptotic).
|
|
236
|
+
*/
|
|
237
|
+
export function getDeathTime(config) {
|
|
238
|
+
switch (config.type) {
|
|
239
|
+
case 'linear': {
|
|
240
|
+
const w0 = config.initialWeight ?? 1.0;
|
|
241
|
+
const rate = config.decayRate ?? 0;
|
|
242
|
+
if (rate <= 0)
|
|
243
|
+
return null;
|
|
244
|
+
return w0 / rate;
|
|
245
|
+
}
|
|
246
|
+
case 'delayed-linear': {
|
|
247
|
+
const w0 = config.initialWeight ?? 1.0;
|
|
248
|
+
const hold = config.holdPeriodMs ?? 0;
|
|
249
|
+
const rate = config.decayRate ?? 0;
|
|
250
|
+
if (rate <= 0)
|
|
251
|
+
return null;
|
|
252
|
+
return hold + w0 / rate;
|
|
253
|
+
}
|
|
254
|
+
case 'multi-linear': {
|
|
255
|
+
const tiers = config.tiers ?? [];
|
|
256
|
+
if (tiers.length === 0)
|
|
257
|
+
return 0;
|
|
258
|
+
// Find the tier that dies last
|
|
259
|
+
let maxDeathTime = 0;
|
|
260
|
+
for (const tier of tiers) {
|
|
261
|
+
if (tier.decayRatePerMs <= 0)
|
|
262
|
+
return null;
|
|
263
|
+
const deathTime = tier.holdPeriodMs + tier.initialWeight / tier.decayRatePerMs;
|
|
264
|
+
maxDeathTime = Math.max(maxDeathTime, deathTime);
|
|
265
|
+
}
|
|
266
|
+
return maxDeathTime;
|
|
267
|
+
}
|
|
268
|
+
case 'exponential':
|
|
269
|
+
case 'power-law':
|
|
270
|
+
// Asymptotic - never reaches exactly zero
|
|
271
|
+
return null;
|
|
272
|
+
default:
|
|
273
|
+
return null;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=decay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decay.js","sourceRoot":"","sources":["../../src/storage/decay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CRUD operations for edges with decay weight calculation.
|
|
3
|
+
*/
|
|
4
|
+
import type { DecayModelConfig } from '../core/decay-types.js';
|
|
5
|
+
import type { StoredEdge, EdgeInput, WeightedEdge, EdgeType } from './types.js';
|
|
6
|
+
import type { VectorClock } from '../temporal/vector-clock.js';
|
|
7
|
+
/**
|
|
8
|
+
* Create a single edge.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createEdge(edge: EdgeInput): string;
|
|
11
|
+
/**
|
|
12
|
+
* Create multiple edges in a transaction.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createEdges(edges: EdgeInput[]): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Create or boost an edge.
|
|
17
|
+
* If an edge with the same source, target, type, and reference already exists,
|
|
18
|
+
* boost it instead of creating a duplicate.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createOrBoostEdge(edge: EdgeInput): string;
|
|
21
|
+
/**
|
|
22
|
+
* Create or boost multiple edges in a transaction.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createOrBoostEdges(edges: EdgeInput[]): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Get an edge by ID.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getEdgeById(id: string): StoredEdge | null;
|
|
29
|
+
/**
|
|
30
|
+
* Get outgoing edges from a chunk.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getOutgoingEdges(chunkId: string, edgeType?: EdgeType): StoredEdge[];
|
|
33
|
+
/**
|
|
34
|
+
* Get incoming edges to a chunk.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getIncomingEdges(chunkId: string, edgeType?: EdgeType): StoredEdge[];
|
|
37
|
+
/**
|
|
38
|
+
* Get weighted edges with decay applied at query time.
|
|
39
|
+
* Filters out edges with weight <= 0 (dead edges).
|
|
40
|
+
* Uses direction-specific decay curves:
|
|
41
|
+
* - Backward: Linear (dies@10) for 4-20 hop range
|
|
42
|
+
* - Forward: Delayed linear (5h, dies@20) for 1-20 hop range
|
|
43
|
+
*
|
|
44
|
+
* @param chunkId - Source chunk ID
|
|
45
|
+
* @param queryTime - Query time in milliseconds (for time-based decay fallback)
|
|
46
|
+
* @param decayConfig - Time-based decay configuration (for fallback)
|
|
47
|
+
* @param edgeType - Optional edge type filter (also determines decay curve)
|
|
48
|
+
* @param referenceClock - Current reference clock for vector decay (optional)
|
|
49
|
+
*/
|
|
50
|
+
export declare function getWeightedEdges(chunkId: string, queryTime: number, decayConfig: DecayModelConfig, edgeType?: EdgeType, referenceClock?: VectorClock): WeightedEdge[];
|
|
51
|
+
/**
|
|
52
|
+
* Check if a chunk has any edges (for orphan detection).
|
|
53
|
+
*/
|
|
54
|
+
export declare function hasAnyEdges(chunkId: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Delete an edge by ID.
|
|
57
|
+
*/
|
|
58
|
+
export declare function deleteEdge(id: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Delete multiple edges by ID.
|
|
61
|
+
*/
|
|
62
|
+
export declare function deleteEdges(ids: string[]): number;
|
|
63
|
+
/**
|
|
64
|
+
* Delete all edges for a chunk.
|
|
65
|
+
*/
|
|
66
|
+
export declare function deleteEdgesForChunk(chunkId: string): number;
|
|
67
|
+
/**
|
|
68
|
+
* Get edge count.
|
|
69
|
+
*/
|
|
70
|
+
export declare function getEdgeCount(): number;
|
|
71
|
+
/**
|
|
72
|
+
* Get all edges (for debugging/export).
|
|
73
|
+
*/
|
|
74
|
+
export declare function getAllEdges(): StoredEdge[];
|
|
75
|
+
//# sourceMappingURL=edge-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-store.d.ts","sourceRoot":"","sources":["../../src/storage/edge-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAU/D;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAyBlD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAgCxD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAyCzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAY/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CASzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,EAAE,CAanF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,EAAE,CAanF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,gBAAgB,EAC7B,QAAQ,CAAC,EAAE,QAAQ,EACnB,cAAc,CAAC,EAAE,WAAW,GAC3B,YAAY,EAAE,CAyDhB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAapD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CASjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAI1C"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CRUD operations for edges with decay weight calculation.
|
|
3
|
+
*/
|
|
4
|
+
import { getDb, generateId } from './db.js';
|
|
5
|
+
import { serialize as serializeClock, deserialize as deserializeClock, merge as mergeClock } from '../temporal/vector-clock.js';
|
|
6
|
+
import { calculateDecayWeight, calculateDecayWeightWithFallback, applyLinkBoost, } from './decay.js';
|
|
7
|
+
/**
|
|
8
|
+
* Create a single edge.
|
|
9
|
+
*/
|
|
10
|
+
export function createEdge(edge) {
|
|
11
|
+
const db = getDb();
|
|
12
|
+
const id = generateId();
|
|
13
|
+
const createdAt = new Date().toISOString();
|
|
14
|
+
const stmt = db.prepare(`
|
|
15
|
+
INSERT INTO edges (
|
|
16
|
+
id, source_chunk_id, target_chunk_id, edge_type,
|
|
17
|
+
reference_type, initial_weight, created_at, vector_clock, link_count
|
|
18
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
19
|
+
`);
|
|
20
|
+
stmt.run(id, edge.sourceChunkId, edge.targetChunkId, edge.edgeType, edge.referenceType ?? null, edge.initialWeight, createdAt, edge.vectorClock ? serializeClock(edge.vectorClock) : null, 1);
|
|
21
|
+
return id;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create multiple edges in a transaction.
|
|
25
|
+
*/
|
|
26
|
+
export function createEdges(edges) {
|
|
27
|
+
const db = getDb();
|
|
28
|
+
const ids = [];
|
|
29
|
+
const createdAt = new Date().toISOString();
|
|
30
|
+
const stmt = db.prepare(`
|
|
31
|
+
INSERT INTO edges (
|
|
32
|
+
id, source_chunk_id, target_chunk_id, edge_type,
|
|
33
|
+
reference_type, initial_weight, created_at, vector_clock, link_count
|
|
34
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
35
|
+
`);
|
|
36
|
+
const insertMany = db.transaction((edges) => {
|
|
37
|
+
for (const edge of edges) {
|
|
38
|
+
const id = generateId();
|
|
39
|
+
stmt.run(id, edge.sourceChunkId, edge.targetChunkId, edge.edgeType, edge.referenceType ?? null, edge.initialWeight, createdAt, edge.vectorClock ? serializeClock(edge.vectorClock) : null, 1);
|
|
40
|
+
ids.push(id);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
insertMany(edges);
|
|
44
|
+
return ids;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create or boost an edge.
|
|
48
|
+
* If an edge with the same source, target, type, and reference already exists,
|
|
49
|
+
* boost it instead of creating a duplicate.
|
|
50
|
+
*/
|
|
51
|
+
export function createOrBoostEdge(edge) {
|
|
52
|
+
const db = getDb();
|
|
53
|
+
// Check for existing edge
|
|
54
|
+
const existing = db.prepare(`
|
|
55
|
+
SELECT id, initial_weight, link_count, vector_clock FROM edges
|
|
56
|
+
WHERE source_chunk_id = ? AND target_chunk_id = ?
|
|
57
|
+
AND edge_type = ? AND (reference_type = ? OR (reference_type IS NULL AND ? IS NULL))
|
|
58
|
+
`).get(edge.sourceChunkId, edge.targetChunkId, edge.edgeType, edge.referenceType ?? null, edge.referenceType ?? null);
|
|
59
|
+
if (existing) {
|
|
60
|
+
// Boost: increment link_count, update clock to more recent, add diminishing weight
|
|
61
|
+
const newClock = edge.vectorClock
|
|
62
|
+
? mergeClock(deserializeClock(existing.vector_clock), edge.vectorClock)
|
|
63
|
+
: existing.vector_clock;
|
|
64
|
+
const boostWeight = edge.initialWeight * 0.1; // Diminishing boost per additional link
|
|
65
|
+
db.prepare(`
|
|
66
|
+
UPDATE edges SET
|
|
67
|
+
link_count = link_count + 1,
|
|
68
|
+
vector_clock = ?,
|
|
69
|
+
initial_weight = initial_weight + ?
|
|
70
|
+
WHERE id = ?
|
|
71
|
+
`).run(newClock ? (typeof newClock === 'string' ? newClock : serializeClock(newClock)) : null, boostWeight, existing.id);
|
|
72
|
+
return existing.id;
|
|
73
|
+
}
|
|
74
|
+
// Create new edge
|
|
75
|
+
return createEdge(edge);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create or boost multiple edges in a transaction.
|
|
79
|
+
*/
|
|
80
|
+
export function createOrBoostEdges(edges) {
|
|
81
|
+
const db = getDb();
|
|
82
|
+
const ids = [];
|
|
83
|
+
const transaction = db.transaction((edges) => {
|
|
84
|
+
for (const edge of edges) {
|
|
85
|
+
ids.push(createOrBoostEdge(edge));
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
transaction(edges);
|
|
89
|
+
return ids;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get an edge by ID.
|
|
93
|
+
*/
|
|
94
|
+
export function getEdgeById(id) {
|
|
95
|
+
const db = getDb();
|
|
96
|
+
const row = db.prepare('SELECT * FROM edges WHERE id = ?').get(id);
|
|
97
|
+
if (!row) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
return rowToEdge(row);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get outgoing edges from a chunk.
|
|
104
|
+
*/
|
|
105
|
+
export function getOutgoingEdges(chunkId, edgeType) {
|
|
106
|
+
const db = getDb();
|
|
107
|
+
let query = 'SELECT * FROM edges WHERE source_chunk_id = ?';
|
|
108
|
+
const params = [chunkId];
|
|
109
|
+
if (edgeType) {
|
|
110
|
+
query += ' AND edge_type = ?';
|
|
111
|
+
params.push(edgeType);
|
|
112
|
+
}
|
|
113
|
+
const rows = db.prepare(query).all(...params);
|
|
114
|
+
return rows.map(rowToEdge);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get incoming edges to a chunk.
|
|
118
|
+
*/
|
|
119
|
+
export function getIncomingEdges(chunkId, edgeType) {
|
|
120
|
+
const db = getDb();
|
|
121
|
+
let query = 'SELECT * FROM edges WHERE target_chunk_id = ?';
|
|
122
|
+
const params = [chunkId];
|
|
123
|
+
if (edgeType) {
|
|
124
|
+
query += ' AND edge_type = ?';
|
|
125
|
+
params.push(edgeType);
|
|
126
|
+
}
|
|
127
|
+
const rows = db.prepare(query).all(...params);
|
|
128
|
+
return rows.map(rowToEdge);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get weighted edges with decay applied at query time.
|
|
132
|
+
* Filters out edges with weight <= 0 (dead edges).
|
|
133
|
+
* Uses direction-specific decay curves:
|
|
134
|
+
* - Backward: Linear (dies@10) for 4-20 hop range
|
|
135
|
+
* - Forward: Delayed linear (5h, dies@20) for 1-20 hop range
|
|
136
|
+
*
|
|
137
|
+
* @param chunkId - Source chunk ID
|
|
138
|
+
* @param queryTime - Query time in milliseconds (for time-based decay fallback)
|
|
139
|
+
* @param decayConfig - Time-based decay configuration (for fallback)
|
|
140
|
+
* @param edgeType - Optional edge type filter (also determines decay curve)
|
|
141
|
+
* @param referenceClock - Current reference clock for vector decay (optional)
|
|
142
|
+
*/
|
|
143
|
+
export function getWeightedEdges(chunkId, queryTime, decayConfig, edgeType, referenceClock) {
|
|
144
|
+
const edges = getOutgoingEdges(chunkId, edgeType);
|
|
145
|
+
const result = [];
|
|
146
|
+
const deadEdgeIds = [];
|
|
147
|
+
const useVectorClock = referenceClock && Object.keys(referenceClock).length > 0;
|
|
148
|
+
for (const edge of edges) {
|
|
149
|
+
let weight;
|
|
150
|
+
// Determine decay direction from edge type
|
|
151
|
+
const direction = edge.edgeType === 'forward' ? 'forward' : 'backward';
|
|
152
|
+
if (useVectorClock && edge.vectorClock) {
|
|
153
|
+
// Use direction-specific vector clock decay
|
|
154
|
+
weight = edge.initialWeight * calculateDecayWeightWithFallback(edge.vectorClock, referenceClock, direction, new Date(edge.createdAt).getTime(), queryTime, decayConfig);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// Fall back to time-based decay
|
|
158
|
+
const createdAt = new Date(edge.createdAt).getTime();
|
|
159
|
+
const age = queryTime - createdAt;
|
|
160
|
+
const decayedWeight = calculateDecayWeight(decayConfig, age);
|
|
161
|
+
weight = edge.initialWeight * decayedWeight;
|
|
162
|
+
}
|
|
163
|
+
// Apply link boost for edges created multiple times
|
|
164
|
+
if (edge.linkCount > 1) {
|
|
165
|
+
weight = applyLinkBoost(weight, edge.linkCount);
|
|
166
|
+
}
|
|
167
|
+
if (weight <= 0) {
|
|
168
|
+
deadEdgeIds.push(edge.id);
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
result.push({
|
|
172
|
+
...edge,
|
|
173
|
+
weight,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
// Queue dead edges for lazy pruning (import at runtime to avoid circular deps)
|
|
177
|
+
if (deadEdgeIds.length > 0) {
|
|
178
|
+
import('./pruner.js').then(({ pruner }) => {
|
|
179
|
+
for (const id of deadEdgeIds) {
|
|
180
|
+
pruner.queueEdgePrune(id);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Check if a chunk has any edges (for orphan detection).
|
|
188
|
+
*/
|
|
189
|
+
export function hasAnyEdges(chunkId) {
|
|
190
|
+
const db = getDb();
|
|
191
|
+
const row = db
|
|
192
|
+
.prepare(`
|
|
193
|
+
SELECT 1 FROM edges
|
|
194
|
+
WHERE source_chunk_id = ? OR target_chunk_id = ?
|
|
195
|
+
LIMIT 1
|
|
196
|
+
`)
|
|
197
|
+
.get(chunkId, chunkId);
|
|
198
|
+
return row !== undefined;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Delete an edge by ID.
|
|
202
|
+
*/
|
|
203
|
+
export function deleteEdge(id) {
|
|
204
|
+
const db = getDb();
|
|
205
|
+
const result = db.prepare('DELETE FROM edges WHERE id = ?').run(id);
|
|
206
|
+
return result.changes > 0;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Delete multiple edges by ID.
|
|
210
|
+
*/
|
|
211
|
+
export function deleteEdges(ids) {
|
|
212
|
+
if (ids.length === 0) {
|
|
213
|
+
return 0;
|
|
214
|
+
}
|
|
215
|
+
const db = getDb();
|
|
216
|
+
const placeholders = ids.map(() => '?').join(',');
|
|
217
|
+
const result = db.prepare(`DELETE FROM edges WHERE id IN (${placeholders})`).run(...ids);
|
|
218
|
+
return result.changes;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Delete all edges for a chunk.
|
|
222
|
+
*/
|
|
223
|
+
export function deleteEdgesForChunk(chunkId) {
|
|
224
|
+
const db = getDb();
|
|
225
|
+
const result = db
|
|
226
|
+
.prepare('DELETE FROM edges WHERE source_chunk_id = ? OR target_chunk_id = ?')
|
|
227
|
+
.run(chunkId, chunkId);
|
|
228
|
+
return result.changes;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get edge count.
|
|
232
|
+
*/
|
|
233
|
+
export function getEdgeCount() {
|
|
234
|
+
const db = getDb();
|
|
235
|
+
const row = db.prepare('SELECT COUNT(*) as count FROM edges').get();
|
|
236
|
+
return row.count;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Get all edges (for debugging/export).
|
|
240
|
+
*/
|
|
241
|
+
export function getAllEdges() {
|
|
242
|
+
const db = getDb();
|
|
243
|
+
const rows = db.prepare('SELECT * FROM edges ORDER BY created_at').all();
|
|
244
|
+
return rows.map(rowToEdge);
|
|
245
|
+
}
|
|
246
|
+
function rowToEdge(row) {
|
|
247
|
+
return {
|
|
248
|
+
id: row.id,
|
|
249
|
+
sourceChunkId: row.source_chunk_id,
|
|
250
|
+
targetChunkId: row.target_chunk_id,
|
|
251
|
+
edgeType: row.edge_type,
|
|
252
|
+
referenceType: row.reference_type,
|
|
253
|
+
initialWeight: row.initial_weight,
|
|
254
|
+
createdAt: row.created_at,
|
|
255
|
+
vectorClock: row.vector_clock,
|
|
256
|
+
linkCount: row.link_count ?? 1,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=edge-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-store.js","sourceRoot":"","sources":["../../src/storage/edge-store.ts"],"names":[],"mappings":"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"}
|