causantic 0.2.0 → 0.3.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/README.md +53 -66
- package/config.schema.json +12 -87
- package/dist/cli/commands/archive.d.ts.map +1 -1
- package/dist/cli/commands/archive.js.map +1 -1
- package/dist/cli/commands/benchmark-collection.d.ts.map +1 -1
- package/dist/cli/commands/benchmark-collection.js.map +1 -1
- package/dist/cli/commands/encryption.d.ts.map +1 -1
- package/dist/cli/commands/encryption.js.map +1 -1
- package/dist/cli/commands/hook.d.ts.map +1 -1
- package/dist/cli/commands/hook.js +8 -2
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +39 -32
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/maintenance.d.ts.map +1 -1
- package/dist/cli/commands/maintenance.js +10 -3
- package/dist/cli/commands/maintenance.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +3 -3
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/skill-templates.d.ts.map +1 -1
- package/dist/cli/skill-templates.js +223 -153
- package/dist/cli/skill-templates.js.map +1 -1
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +4 -1
- package/dist/cli/uninstall.js.map +1 -1
- package/dist/clusters/cluster-manager.d.ts +23 -0
- package/dist/clusters/cluster-manager.d.ts.map +1 -1
- package/dist/clusters/cluster-manager.js +69 -2
- package/dist/clusters/cluster-manager.js.map +1 -1
- package/dist/clusters/cluster-refresh.d.ts.map +1 -1
- package/dist/clusters/cluster-refresh.js +5 -1
- package/dist/clusters/cluster-refresh.js.map +1 -1
- package/dist/clusters/hdbscan/cluster-extraction.d.ts.map +1 -1
- package/dist/clusters/hdbscan/cluster-extraction.js +1 -2
- package/dist/clusters/hdbscan/cluster-extraction.js.map +1 -1
- package/dist/clusters/hdbscan/hierarchy.d.ts.map +1 -1
- package/dist/clusters/hdbscan/hierarchy.js +1 -3
- package/dist/clusters/hdbscan/hierarchy.js.map +1 -1
- package/dist/clusters/hdbscan/incremental.d.ts.map +1 -1
- package/dist/clusters/hdbscan/incremental.js.map +1 -1
- package/dist/clusters/hdbscan/probabilities.d.ts +1 -1
- package/dist/clusters/hdbscan/probabilities.d.ts.map +1 -1
- package/dist/clusters/hdbscan/probabilities.js +1 -1
- package/dist/clusters/hdbscan/probabilities.js.map +1 -1
- package/dist/clusters/hdbscan.d.ts.map +1 -1
- package/dist/clusters/hdbscan.js +3 -5
- package/dist/clusters/hdbscan.js.map +1 -1
- package/dist/config/loader.d.ts +10 -15
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +40 -71
- package/dist/config/loader.js.map +1 -1
- package/dist/config/memory-config.d.ts +2 -45
- package/dist/config/memory-config.d.ts.map +1 -1
- package/dist/config/memory-config.js +6 -109
- package/dist/config/memory-config.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/lexical-features.d.ts.map +1 -1
- package/dist/core/lexical-features.js +141 -20
- package/dist/core/lexical-features.js.map +1 -1
- package/dist/dashboard/client/assets/index-DdImwNQ0.css +1 -0
- package/dist/dashboard/client/assets/index-Ofx8zngH.js +166 -0
- package/dist/dashboard/client/index.html +2 -2
- package/dist/dashboard/routes/benchmark-collection.d.ts.map +1 -1
- package/dist/dashboard/routes/benchmark-collection.js +2 -6
- package/dist/dashboard/routes/benchmark-collection.js.map +1 -1
- package/dist/dashboard/routes/chain.d.ts +3 -0
- package/dist/dashboard/routes/chain.d.ts.map +1 -0
- package/dist/dashboard/routes/chain.js +74 -0
- package/dist/dashboard/routes/chain.js.map +1 -0
- package/dist/dashboard/routes/chunks.d.ts.map +1 -1
- package/dist/dashboard/routes/chunks.js +16 -1
- package/dist/dashboard/routes/chunks.js.map +1 -1
- package/dist/dashboard/routes/graph.d.ts.map +1 -1
- package/dist/dashboard/routes/graph.js.map +1 -1
- package/dist/dashboard/routes/search.d.ts.map +1 -1
- package/dist/dashboard/routes/search.js.map +1 -1
- package/dist/dashboard/routes/stats.d.ts.map +1 -1
- package/dist/dashboard/routes/stats.js +8 -6
- package/dist/dashboard/routes/stats.js.map +1 -1
- package/dist/dashboard/routes/timeline.d.ts +3 -0
- package/dist/dashboard/routes/timeline.d.ts.map +1 -0
- package/dist/dashboard/routes/timeline.js +90 -0
- package/dist/dashboard/routes/timeline.js.map +1 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +4 -0
- package/dist/dashboard/server.js.map +1 -1
- package/dist/eval/annotation-schema.d.ts.map +1 -1
- package/dist/eval/annotation-schema.js +2 -5
- package/dist/eval/annotation-schema.js.map +1 -1
- package/dist/eval/benchmark-runner.d.ts.map +1 -1
- package/dist/eval/benchmark-runner.js +2 -2
- package/dist/eval/benchmark-runner.js.map +1 -1
- package/dist/eval/cluster-evaluator.d.ts.map +1 -1
- package/dist/eval/cluster-evaluator.js.map +1 -1
- package/dist/eval/collection-benchmark/chain-quality.d.ts +15 -0
- package/dist/eval/collection-benchmark/chain-quality.d.ts.map +1 -0
- package/dist/eval/collection-benchmark/chain-quality.js +60 -0
- package/dist/eval/collection-benchmark/chain-quality.js.map +1 -0
- package/dist/eval/collection-benchmark/health.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/health.js +2 -2
- package/dist/eval/collection-benchmark/health.js.map +1 -1
- package/dist/eval/collection-benchmark/history.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/history.js +14 -11
- package/dist/eval/collection-benchmark/history.js.map +1 -1
- package/dist/eval/collection-benchmark/latency.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/latency.js +14 -11
- package/dist/eval/collection-benchmark/latency.js.map +1 -1
- package/dist/eval/collection-benchmark/reporter.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/reporter.js +18 -28
- package/dist/eval/collection-benchmark/reporter.js.map +1 -1
- package/dist/eval/collection-benchmark/retrieval.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/retrieval.js +14 -8
- package/dist/eval/collection-benchmark/retrieval.js.map +1 -1
- package/dist/eval/collection-benchmark/runner.d.ts +3 -3
- package/dist/eval/collection-benchmark/runner.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/runner.js +46 -37
- package/dist/eval/collection-benchmark/runner.js.map +1 -1
- package/dist/eval/collection-benchmark/sampler.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/sampler.js +14 -12
- package/dist/eval/collection-benchmark/sampler.js.map +1 -1
- package/dist/eval/collection-benchmark/tuning.d.ts.map +1 -1
- package/dist/eval/collection-benchmark/tuning.js +56 -71
- package/dist/eval/collection-benchmark/tuning.js.map +1 -1
- package/dist/eval/collection-benchmark/types.d.ts +12 -24
- package/dist/eval/collection-benchmark/types.d.ts.map +1 -1
- package/dist/eval/corpus-builder.d.ts.map +1 -1
- package/dist/eval/corpus-builder.js.map +1 -1
- package/dist/eval/experiments/boilerplate-filter.d.ts.map +1 -1
- package/dist/eval/experiments/boilerplate-filter.js.map +1 -1
- package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.d.ts.map +1 -1
- package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js +3 -5
- package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js.map +1 -1
- package/dist/eval/experiments/code-focused-mode.d.ts.map +1 -1
- package/dist/eval/experiments/code-focused-mode.js +1 -1
- package/dist/eval/experiments/code-focused-mode.js.map +1 -1
- package/dist/eval/experiments/edge-decay/decay-curves.d.ts +25 -19
- package/dist/eval/experiments/edge-decay/decay-curves.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/decay-curves.js +47 -40
- package/dist/eval/experiments/edge-decay/decay-curves.js.map +1 -1
- package/dist/eval/experiments/edge-decay/index.d.ts +6 -4
- package/dist/eval/experiments/edge-decay/index.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/index.js +5 -3
- package/dist/eval/experiments/edge-decay/index.js.map +1 -1
- package/dist/eval/experiments/edge-decay/presets.d.ts +14 -4
- package/dist/eval/experiments/edge-decay/presets.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/presets.js +73 -68
- package/dist/eval/experiments/edge-decay/presets.js.map +1 -1
- package/dist/eval/experiments/edge-decay/reference-extractor.d.ts +2 -1
- package/dist/eval/experiments/edge-decay/reference-extractor.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/reference-extractor.js +26 -40
- package/dist/eval/experiments/edge-decay/reference-extractor.js.map +1 -1
- package/dist/eval/experiments/edge-decay/reference-types.d.ts +24 -17
- package/dist/eval/experiments/edge-decay/reference-types.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/reference-types.js +3 -0
- package/dist/eval/experiments/edge-decay/reference-types.js.map +1 -1
- package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts +8 -8
- package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/retrieval-ranking.js +77 -133
- package/dist/eval/experiments/edge-decay/retrieval-ranking.js.map +1 -1
- package/dist/eval/experiments/edge-decay/run-experiments.d.ts +7 -3
- package/dist/eval/experiments/edge-decay/run-experiments.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/run-experiments.js +71 -52
- package/dist/eval/experiments/edge-decay/run-experiments.js.map +1 -1
- package/dist/eval/experiments/edge-decay/simulate.d.ts +1 -1
- package/dist/eval/experiments/edge-decay/simulate.d.ts.map +1 -1
- package/dist/eval/experiments/edge-decay/simulate.js +7 -19
- package/dist/eval/experiments/edge-decay/simulate.js.map +1 -1
- package/dist/eval/experiments/hdbscan-sweep.d.ts.map +1 -1
- package/dist/eval/experiments/hdbscan-sweep.js +2 -6
- package/dist/eval/experiments/hdbscan-sweep.js.map +1 -1
- package/dist/eval/experiments/single-model-run.d.ts.map +1 -1
- package/dist/eval/experiments/single-model-run.js +2 -2
- package/dist/eval/experiments/single-model-run.js.map +1 -1
- package/dist/eval/experiments/thinking-ablation.d.ts.map +1 -1
- package/dist/eval/experiments/thinking-ablation.js +1 -1
- package/dist/eval/experiments/thinking-ablation.js.map +1 -1
- package/dist/eval/experiments/topic-continuity/hybrid-classifier.d.ts.map +1 -1
- package/dist/eval/experiments/topic-continuity/hybrid-classifier.js +54 -6
- package/dist/eval/experiments/topic-continuity/hybrid-classifier.js.map +1 -1
- package/dist/eval/experiments/topic-continuity/labeler.d.ts.map +1 -1
- package/dist/eval/experiments/topic-continuity/labeler.js +1 -4
- package/dist/eval/experiments/topic-continuity/labeler.js.map +1 -1
- package/dist/eval/experiments/topic-continuity/run-experiment.d.ts.map +1 -1
- package/dist/eval/experiments/topic-continuity/run-experiment.js +5 -13
- package/dist/eval/experiments/topic-continuity/run-experiment.js.map +1 -1
- package/dist/eval/experiments/truncation.d.ts.map +1 -1
- package/dist/eval/experiments/truncation.js.map +1 -1
- package/dist/eval/experiments/types.d.ts.map +1 -1
- package/dist/eval/experiments/types.js.map +1 -1
- package/dist/eval/metrics.d.ts.map +1 -1
- package/dist/eval/metrics.js.map +1 -1
- package/dist/hooks/claudemd-generator.d.ts.map +1 -1
- package/dist/hooks/claudemd-generator.js +3 -4
- package/dist/hooks/claudemd-generator.js.map +1 -1
- package/dist/hooks/hook-utils.d.ts +16 -0
- package/dist/hooks/hook-utils.d.ts.map +1 -1
- package/dist/hooks/hook-utils.js +51 -2
- package/dist/hooks/hook-utils.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/pre-compact.d.ts.map +1 -1
- package/dist/hooks/pre-compact.js +6 -51
- package/dist/hooks/pre-compact.js.map +1 -1
- package/dist/hooks/session-end.d.ts +58 -0
- package/dist/hooks/session-end.d.ts.map +1 -0
- package/dist/hooks/session-end.js +82 -0
- package/dist/hooks/session-end.js.map +1 -0
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +3 -5
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/ingest/batch-ingest.d.ts.map +1 -1
- package/dist/ingest/batch-ingest.js.map +1 -1
- package/dist/ingest/brief-debrief-detector.d.ts +6 -13
- package/dist/ingest/brief-debrief-detector.d.ts.map +1 -1
- package/dist/ingest/brief-debrief-detector.js +9 -16
- package/dist/ingest/brief-debrief-detector.js.map +1 -1
- package/dist/ingest/cross-session-linker.d.ts +2 -1
- package/dist/ingest/cross-session-linker.d.ts.map +1 -1
- package/dist/ingest/cross-session-linker.js +17 -7
- package/dist/ingest/cross-session-linker.js.map +1 -1
- package/dist/ingest/edge-creator.d.ts +14 -40
- package/dist/ingest/edge-creator.d.ts.map +1 -1
- package/dist/ingest/edge-creator.js +34 -132
- package/dist/ingest/edge-creator.js.map +1 -1
- package/dist/ingest/edge-detector.d.ts +27 -12
- package/dist/ingest/edge-detector.d.ts.map +1 -1
- package/dist/ingest/edge-detector.js +68 -200
- package/dist/ingest/edge-detector.js.map +1 -1
- package/dist/ingest/index.d.ts +3 -3
- package/dist/ingest/index.d.ts.map +1 -1
- package/dist/ingest/index.js +3 -3
- package/dist/ingest/index.js.map +1 -1
- package/dist/ingest/ingest-session.d.ts +1 -8
- package/dist/ingest/ingest-session.d.ts.map +1 -1
- package/dist/ingest/ingest-session.js +54 -107
- package/dist/ingest/ingest-session.js.map +1 -1
- package/dist/ingest/rebuild-edges.d.ts +17 -0
- package/dist/ingest/rebuild-edges.d.ts.map +1 -0
- package/dist/ingest/rebuild-edges.js +97 -0
- package/dist/ingest/rebuild-edges.js.map +1 -0
- package/dist/maintenance/scheduler.d.ts +2 -3
- package/dist/maintenance/scheduler.d.ts.map +1 -1
- package/dist/maintenance/scheduler.js +14 -23
- package/dist/maintenance/scheduler.js.map +1 -1
- package/dist/maintenance/tasks/cleanup-vectors.d.ts +3 -1
- package/dist/maintenance/tasks/cleanup-vectors.d.ts.map +1 -1
- package/dist/maintenance/tasks/cleanup-vectors.js +6 -4
- package/dist/maintenance/tasks/cleanup-vectors.js.map +1 -1
- package/dist/maintenance/tasks/index.d.ts +0 -1
- package/dist/maintenance/tasks/index.d.ts.map +1 -1
- package/dist/maintenance/tasks/index.js +0 -1
- package/dist/maintenance/tasks/index.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +9 -8
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +5 -5
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +42 -36
- package/dist/mcp/tools.js.map +1 -1
- package/dist/models/device-detector.d.ts.map +1 -1
- package/dist/models/device-detector.js +20 -10
- package/dist/models/device-detector.js.map +1 -1
- package/dist/models/embedder.d.ts.map +1 -1
- package/dist/models/embedder.js +5 -2
- package/dist/models/embedder.js.map +1 -1
- package/dist/models/model-registry.d.ts.map +1 -1
- package/dist/models/model-registry.js.map +1 -1
- package/dist/parser/chunker.d.ts +5 -40
- package/dist/parser/chunker.d.ts.map +1 -1
- package/dist/parser/chunker.js +5 -111
- package/dist/parser/chunker.js.map +1 -1
- package/dist/parser/session-reader.d.ts.map +1 -1
- package/dist/parser/session-reader.js +3 -6
- package/dist/parser/session-reader.js.map +1 -1
- package/dist/parser/turn-assembler.d.ts.map +1 -1
- package/dist/parser/turn-assembler.js +0 -1
- package/dist/parser/turn-assembler.js.map +1 -1
- package/dist/parser/types.d.ts.map +1 -1
- package/dist/report/reporter.d.ts.map +1 -1
- package/dist/report/reporter.js +1 -3
- package/dist/report/reporter.js.map +1 -1
- package/dist/retrieval/chain-assembler.d.ts +58 -0
- package/dist/retrieval/chain-assembler.d.ts.map +1 -0
- package/dist/retrieval/chain-assembler.js +126 -0
- package/dist/retrieval/chain-assembler.js.map +1 -0
- package/dist/retrieval/chain-walker.d.ts +57 -0
- package/dist/retrieval/chain-walker.d.ts.map +1 -0
- package/dist/retrieval/chain-walker.js +121 -0
- package/dist/retrieval/chain-walker.js.map +1 -0
- package/dist/retrieval/cluster-expander.d.ts.map +1 -1
- package/dist/retrieval/cluster-expander.js +3 -3
- package/dist/retrieval/cluster-expander.js.map +1 -1
- package/dist/retrieval/context-assembler.d.ts +13 -36
- package/dist/retrieval/context-assembler.d.ts.map +1 -1
- package/dist/retrieval/context-assembler.js +50 -287
- package/dist/retrieval/context-assembler.js.map +1 -1
- package/dist/retrieval/index.d.ts +8 -4
- package/dist/retrieval/index.d.ts.map +1 -1
- package/dist/retrieval/index.js +7 -3
- package/dist/retrieval/index.js.map +1 -1
- package/dist/retrieval/rrf.d.ts.map +1 -1
- package/dist/retrieval/rrf.js +4 -2
- package/dist/retrieval/rrf.js.map +1 -1
- package/dist/retrieval/search-assembler.d.ts +59 -0
- package/dist/retrieval/search-assembler.d.ts.map +1 -0
- package/dist/retrieval/search-assembler.js +209 -0
- package/dist/retrieval/search-assembler.js.map +1 -0
- package/dist/retrieval/session-reconstructor.d.ts.map +1 -1
- package/dist/retrieval/session-reconstructor.js +9 -7
- package/dist/retrieval/session-reconstructor.js.map +1 -1
- package/dist/storage/archive.d.ts +0 -2
- package/dist/storage/archive.d.ts.map +1 -1
- package/dist/storage/archive.js +18 -12
- package/dist/storage/archive.js.map +1 -1
- package/dist/storage/checkpoint-store.d.ts +0 -1
- package/dist/storage/checkpoint-store.d.ts.map +1 -1
- package/dist/storage/checkpoint-store.js +5 -7
- package/dist/storage/checkpoint-store.js.map +1 -1
- package/dist/storage/chunk-store.d.ts.map +1 -1
- package/dist/storage/chunk-store.js +15 -17
- package/dist/storage/chunk-store.js.map +1 -1
- package/dist/storage/cluster-store.d.ts.map +1 -1
- package/dist/storage/cluster-store.js.map +1 -1
- package/dist/storage/db.d.ts.map +1 -1
- package/dist/storage/db.js.map +1 -1
- package/dist/storage/edge-store.d.ts +17 -30
- package/dist/storage/edge-store.d.ts.map +1 -1
- package/dist/storage/edge-store.js +43 -123
- package/dist/storage/edge-store.js.map +1 -1
- package/dist/storage/embedding-cache.d.ts.map +1 -1
- package/dist/storage/embedding-cache.js +1 -3
- package/dist/storage/embedding-cache.js.map +1 -1
- package/dist/storage/encryption.d.ts.map +1 -1
- package/dist/storage/encryption.js +4 -15
- package/dist/storage/encryption.js.map +1 -1
- package/dist/storage/index.d.ts +1 -4
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -5
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/keyword-store.d.ts.map +1 -1
- package/dist/storage/keyword-store.js +11 -7
- package/dist/storage/keyword-store.js.map +1 -1
- package/dist/storage/migrations.d.ts.map +1 -1
- package/dist/storage/migrations.js +56 -4
- package/dist/storage/migrations.js.map +1 -1
- package/dist/storage/schema.sql +8 -20
- package/dist/storage/types.d.ts +12 -26
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +1 -2
- package/dist/storage/types.js.map +1 -1
- package/dist/storage/vector-store.d.ts +9 -15
- package/dist/storage/vector-store.d.ts.map +1 -1
- package/dist/storage/vector-store.js +64 -43
- package/dist/storage/vector-store.js.map +1 -1
- package/dist/utils/angular-distance.d.ts.map +1 -1
- package/dist/utils/angular-distance.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/secret-store.d.ts.map +1 -1
- package/dist/utils/secret-store.js +17 -13
- package/dist/utils/secret-store.js.map +1 -1
- package/dist/utils/secure-buffer.d.ts.map +1 -1
- package/dist/utils/secure-buffer.js.map +1 -1
- package/package.json +7 -6
- package/src/dashboard/client/package-lock.json +3 -3
- package/src/dashboard/client/package.json +3 -3
- package/dist/dashboard/client/assets/index-CMUKy4f9.css +0 -1
- package/dist/dashboard/client/assets/index-esv8TpCN.js +0 -168
- package/dist/eval/collection-benchmark/graph-value.d.ts +0 -16
- package/dist/eval/collection-benchmark/graph-value.d.ts.map +0 -1
- package/dist/eval/collection-benchmark/graph-value.js +0 -162
- package/dist/eval/collection-benchmark/graph-value.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts +0 -10
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js +0 -229
- package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts +0 -12
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js +0 -316
- package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts +0 -19
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.js +0 -127
- package/dist/eval/experiments/vector-decay-shapes/hop-decay.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/index.d.ts +0 -11
- package/dist/eval/experiments/vector-decay-shapes/index.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/index.js +0 -11
- package/dist/eval/experiments/vector-decay-shapes/index.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts +0 -14
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js +0 -274
- package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/presets.d.ts +0 -36
- package/dist/eval/experiments/vector-decay-shapes/presets.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/presets.js +0 -157
- package/dist/eval/experiments/vector-decay-shapes/presets.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts +0 -20
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.js +0 -504
- package/dist/eval/experiments/vector-decay-shapes/run-experiment.js.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/types.d.ts +0 -111
- package/dist/eval/experiments/vector-decay-shapes/types.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-shapes/types.js +0 -15
- package/dist/eval/experiments/vector-decay-shapes/types.js.map +0 -1
- package/dist/eval/experiments/vector-decay-sweep/index.d.ts +0 -7
- package/dist/eval/experiments/vector-decay-sweep/index.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-sweep/index.js +0 -7
- package/dist/eval/experiments/vector-decay-sweep/index.js.map +0 -1
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts +0 -30
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.js +0 -378
- package/dist/eval/experiments/vector-decay-sweep/run-sweep.js.map +0 -1
- package/dist/eval/experiments/vector-decay-sweep/types.d.ts +0 -109
- package/dist/eval/experiments/vector-decay-sweep/types.d.ts.map +0 -1
- package/dist/eval/experiments/vector-decay-sweep/types.js +0 -16
- package/dist/eval/experiments/vector-decay-sweep/types.js.map +0 -1
- package/dist/maintenance/tasks/prune-graph.d.ts +0 -12
- package/dist/maintenance/tasks/prune-graph.d.ts.map +0 -1
- package/dist/maintenance/tasks/prune-graph.js +0 -23
- package/dist/maintenance/tasks/prune-graph.js.map +0 -1
- package/dist/retrieval/traverser.d.ts +0 -66
- package/dist/retrieval/traverser.d.ts.map +0 -1
- package/dist/retrieval/traverser.js +0 -160
- package/dist/retrieval/traverser.js.map +0 -1
- package/dist/storage/clock-store.d.ts +0 -80
- package/dist/storage/clock-store.d.ts.map +0 -1
- package/dist/storage/clock-store.js +0 -155
- package/dist/storage/clock-store.js.map +0 -1
- package/dist/storage/decay.d.ts +0 -125
- package/dist/storage/decay.d.ts.map +0 -1
- package/dist/storage/decay.js +0 -276
- package/dist/storage/decay.js.map +0 -1
- package/dist/storage/pruner.d.ts +0 -111
- package/dist/storage/pruner.d.ts.map +0 -1
- package/dist/storage/pruner.js +0 -280
- package/dist/storage/pruner.js.map +0 -1
- package/dist/temporal/clock-compactor.d.ts +0 -65
- package/dist/temporal/clock-compactor.d.ts.map +0 -1
- package/dist/temporal/clock-compactor.js +0 -157
- package/dist/temporal/clock-compactor.js.map +0 -1
- package/dist/temporal/index.d.ts +0 -6
- package/dist/temporal/index.d.ts.map +0 -1
- package/dist/temporal/index.js +0 -6
- package/dist/temporal/index.js.map +0 -1
- package/dist/temporal/vector-clock.d.ts +0 -143
- package/dist/temporal/vector-clock.d.ts.map +0 -1
- package/dist/temporal/vector-clock.js +0 -231
- package/dist/temporal/vector-clock.js.map +0 -1
- package/dist/utils/keychain.d.ts +0 -43
- package/dist/utils/keychain.d.ts.map +0 -1
- package/dist/utils/keychain.js +0 -82
- package/dist/utils/keychain.js.map +0 -1
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure search pipeline for semantic discovery.
|
|
3
|
+
*
|
|
4
|
+
* Pipeline: embed → [vector, keyword] → RRF → cluster expand → dedupe → recency → budget
|
|
5
|
+
*
|
|
6
|
+
* No graph traversal. Used for the `search` MCP tool and as fallback for episodic recall
|
|
7
|
+
* when no qualifying chain is found.
|
|
8
|
+
*/
|
|
9
|
+
import { vectorStore } from '../storage/vector-store.js';
|
|
10
|
+
import { getChunkById } from '../storage/chunk-store.js';
|
|
11
|
+
import { Embedder } from '../models/embedder.js';
|
|
12
|
+
import { getModel } from '../models/model-registry.js';
|
|
13
|
+
import { loadConfig, toRuntimeConfig } from '../config/loader.js';
|
|
14
|
+
import { approximateTokens } from '../utils/token-counter.js';
|
|
15
|
+
import { KeywordStore } from '../storage/keyword-store.js';
|
|
16
|
+
import { fuseRRF } from './rrf.js';
|
|
17
|
+
import { expandViaClusters } from './cluster-expander.js';
|
|
18
|
+
import { createLogger } from '../utils/logger.js';
|
|
19
|
+
const log = createLogger('search-assembler');
|
|
20
|
+
/**
|
|
21
|
+
* Shared embedder instance.
|
|
22
|
+
*/
|
|
23
|
+
let sharedEmbedder = null;
|
|
24
|
+
async function getEmbedder() {
|
|
25
|
+
if (!sharedEmbedder) {
|
|
26
|
+
sharedEmbedder = new Embedder();
|
|
27
|
+
await sharedEmbedder.load(getModel('jina-small'));
|
|
28
|
+
}
|
|
29
|
+
return sharedEmbedder;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Shared keyword store instance.
|
|
33
|
+
*/
|
|
34
|
+
let sharedKeywordStore = null;
|
|
35
|
+
function getKeywordStore() {
|
|
36
|
+
if (!sharedKeywordStore) {
|
|
37
|
+
sharedKeywordStore = new KeywordStore();
|
|
38
|
+
}
|
|
39
|
+
return sharedKeywordStore;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Run the search pipeline: embed → vector + keyword → RRF → cluster expand → budget.
|
|
43
|
+
*/
|
|
44
|
+
export async function searchContext(request) {
|
|
45
|
+
const startTime = Date.now();
|
|
46
|
+
const externalConfig = loadConfig();
|
|
47
|
+
const config = toRuntimeConfig(externalConfig);
|
|
48
|
+
const { query, currentSessionId, projectFilter, maxTokens = config.mcpMaxResponseTokens, vectorSearchLimit = 20, skipClusters = false, } = request;
|
|
49
|
+
const { hybridSearch, clusterExpansion } = config;
|
|
50
|
+
// 1. Embed query
|
|
51
|
+
const embedder = await getEmbedder();
|
|
52
|
+
const queryResult = await embedder.embed(query, true);
|
|
53
|
+
// 2. Vector + keyword search in parallel
|
|
54
|
+
const vectorSearchPromise = projectFilter
|
|
55
|
+
? vectorStore.searchByProject(queryResult.embedding, projectFilter, vectorSearchLimit)
|
|
56
|
+
: vectorStore.search(queryResult.embedding, vectorSearchLimit);
|
|
57
|
+
let keywordResults = [];
|
|
58
|
+
try {
|
|
59
|
+
const keywordStore = getKeywordStore();
|
|
60
|
+
keywordResults = projectFilter
|
|
61
|
+
? keywordStore.searchByProject(query, projectFilter, hybridSearch.keywordSearchLimit)
|
|
62
|
+
: keywordStore.search(query, hybridSearch.keywordSearchLimit);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
log.warn('Keyword search unavailable, falling back to vector-only', {
|
|
66
|
+
error: error.message,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const similar = await vectorSearchPromise;
|
|
70
|
+
if (similar.length === 0 && keywordResults.length === 0) {
|
|
71
|
+
return {
|
|
72
|
+
text: '',
|
|
73
|
+
tokenCount: 0,
|
|
74
|
+
chunks: [],
|
|
75
|
+
totalConsidered: 0,
|
|
76
|
+
durationMs: Date.now() - startTime,
|
|
77
|
+
queryEmbedding: queryResult.embedding,
|
|
78
|
+
seedIds: [],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// 3. Convert and fuse with RRF
|
|
82
|
+
const vectorItems = similar.map((s) => ({
|
|
83
|
+
chunkId: s.id,
|
|
84
|
+
score: Math.max(0, 1 - s.distance),
|
|
85
|
+
source: 'vector',
|
|
86
|
+
}));
|
|
87
|
+
const keywordItems = keywordResults.map((r) => ({
|
|
88
|
+
chunkId: r.id,
|
|
89
|
+
score: r.score,
|
|
90
|
+
source: 'keyword',
|
|
91
|
+
}));
|
|
92
|
+
const fusedResults = fuseRRF([
|
|
93
|
+
{ items: vectorItems, weight: hybridSearch.vectorWeight },
|
|
94
|
+
...(keywordItems.length > 0
|
|
95
|
+
? [{ items: keywordItems, weight: hybridSearch.keywordWeight }]
|
|
96
|
+
: []),
|
|
97
|
+
], hybridSearch.rrfK);
|
|
98
|
+
// 4. Cluster expansion
|
|
99
|
+
const expandedResults = skipClusters
|
|
100
|
+
? fusedResults
|
|
101
|
+
: expandViaClusters(fusedResults, clusterExpansion, projectFilter);
|
|
102
|
+
const sourceMap = new Map();
|
|
103
|
+
for (const item of expandedResults) {
|
|
104
|
+
if (item.source && !sourceMap.has(item.chunkId)) {
|
|
105
|
+
sourceMap.set(item.chunkId, item.source);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// 5. Extract top-5 seed IDs for chain walking
|
|
109
|
+
const seedIds = expandedResults.slice(0, 5).map((r) => r.chunkId);
|
|
110
|
+
// 6. Dedupe
|
|
111
|
+
const seen = new Set();
|
|
112
|
+
const deduped = expandedResults.filter((r) => {
|
|
113
|
+
if (seen.has(r.chunkId))
|
|
114
|
+
return false;
|
|
115
|
+
seen.add(r.chunkId);
|
|
116
|
+
return true;
|
|
117
|
+
});
|
|
118
|
+
// 7. Recency boost
|
|
119
|
+
if (currentSessionId) {
|
|
120
|
+
for (const item of deduped) {
|
|
121
|
+
const chunk = getChunkById(item.chunkId);
|
|
122
|
+
if (chunk && chunk.sessionId === currentSessionId) {
|
|
123
|
+
item.score *= 1.2;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
deduped.sort((a, b) => b.score - a.score);
|
|
127
|
+
}
|
|
128
|
+
// 8. Assemble within budget
|
|
129
|
+
const assembled = assembleWithinBudget(deduped, maxTokens, sourceMap);
|
|
130
|
+
return {
|
|
131
|
+
text: assembled.text,
|
|
132
|
+
tokenCount: assembled.tokenCount,
|
|
133
|
+
chunks: assembled.includedChunks,
|
|
134
|
+
totalConsidered: deduped.length,
|
|
135
|
+
durationMs: Date.now() - startTime,
|
|
136
|
+
queryEmbedding: queryResult.embedding,
|
|
137
|
+
seedIds,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Assemble text within token budget.
|
|
142
|
+
*/
|
|
143
|
+
function assembleWithinBudget(ranked, maxTokens, sourceMap) {
|
|
144
|
+
const parts = [];
|
|
145
|
+
const includedChunks = [];
|
|
146
|
+
let totalTokens = 0;
|
|
147
|
+
for (const item of ranked) {
|
|
148
|
+
const chunk = getChunkById(item.chunkId);
|
|
149
|
+
if (!chunk)
|
|
150
|
+
continue;
|
|
151
|
+
const chunkTokens = chunk.approxTokens || approximateTokens(chunk.content);
|
|
152
|
+
if (totalTokens + chunkTokens > maxTokens) {
|
|
153
|
+
const remainingTokens = maxTokens - totalTokens;
|
|
154
|
+
if (remainingTokens > 100) {
|
|
155
|
+
const truncated = truncateChunk(chunk.content, remainingTokens);
|
|
156
|
+
parts.push(formatChunkForOutput(chunk, truncated, item.score));
|
|
157
|
+
totalTokens += approximateTokens(truncated);
|
|
158
|
+
includedChunks.push({
|
|
159
|
+
id: chunk.id,
|
|
160
|
+
sessionSlug: chunk.sessionSlug,
|
|
161
|
+
weight: item.score,
|
|
162
|
+
preview: truncated.slice(0, 100) + '...',
|
|
163
|
+
source: sourceMap.get(chunk.id),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
parts.push(formatChunkForOutput(chunk, chunk.content, item.score));
|
|
169
|
+
totalTokens += chunkTokens;
|
|
170
|
+
includedChunks.push({
|
|
171
|
+
id: chunk.id,
|
|
172
|
+
sessionSlug: chunk.sessionSlug,
|
|
173
|
+
weight: item.score,
|
|
174
|
+
preview: chunk.content.slice(0, 100) + (chunk.content.length > 100 ? '...' : ''),
|
|
175
|
+
source: sourceMap.get(chunk.id),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
text: parts.join('\n\n---\n\n'),
|
|
180
|
+
tokenCount: totalTokens,
|
|
181
|
+
includedChunks,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function formatChunkForOutput(chunk, content, weight) {
|
|
185
|
+
const date = new Date(chunk.startTime).toLocaleDateString();
|
|
186
|
+
const relevance = (weight * 100).toFixed(0);
|
|
187
|
+
return `[Session: ${chunk.sessionSlug} | Date: ${date} | Relevance: ${relevance}%]\n${content}`;
|
|
188
|
+
}
|
|
189
|
+
function truncateChunk(content, maxTokens) {
|
|
190
|
+
const maxChars = maxTokens * 4;
|
|
191
|
+
if (content.length <= maxChars)
|
|
192
|
+
return content;
|
|
193
|
+
const truncated = content.slice(0, maxChars);
|
|
194
|
+
const lastNewline = truncated.lastIndexOf('\n\n');
|
|
195
|
+
if (lastNewline > maxChars * 0.5) {
|
|
196
|
+
return truncated.slice(0, lastNewline) + '\n\n...[truncated]';
|
|
197
|
+
}
|
|
198
|
+
return truncated + '\n...[truncated]';
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Cleanup shared resources.
|
|
202
|
+
*/
|
|
203
|
+
export async function disposeSearch() {
|
|
204
|
+
if (sharedEmbedder) {
|
|
205
|
+
await sharedEmbedder.dispose();
|
|
206
|
+
sharedEmbedder = null;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=search-assembler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-assembler.js","sourceRoot":"","sources":["../../src/retrieval/search-assembler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-reconstructor.d.ts","sourceRoot":"","sources":["../../src/retrieval/session-reconstructor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"session-reconstructor.d.ts","sourceRoot":"","sources":["../../src/retrieval/session-reconstructor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,GAAG;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAmCA;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,OAAO,GAClB;IAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CA2B7C;AAqBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAmCtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,GAAG,iBAAiB,CA+D7E"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Rebuilds session context by time range with token budgeting.
|
|
6
6
|
*/
|
|
7
7
|
import { getConfig } from '../config/memory-config.js';
|
|
8
|
-
import { getChunksByTimeRange, getPreviousSession
|
|
8
|
+
import { getChunksByTimeRange, getPreviousSession } from '../storage/chunk-store.js';
|
|
9
9
|
/**
|
|
10
10
|
* Resolve the time window from a ReconstructRequest into concrete from/to ISO dates.
|
|
11
11
|
*/
|
|
@@ -74,14 +74,16 @@ export function applyTokenBudget(chunks, maxTokens, keepNewest) {
|
|
|
74
74
|
*/
|
|
75
75
|
function formatDate(iso) {
|
|
76
76
|
const d = new Date(iso);
|
|
77
|
-
return d.toLocaleDateString('en-US', {
|
|
77
|
+
return (d.toLocaleDateString('en-US', {
|
|
78
78
|
month: 'short',
|
|
79
79
|
day: 'numeric',
|
|
80
|
-
}) +
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
}) +
|
|
81
|
+
', ' +
|
|
82
|
+
d.toLocaleTimeString('en-US', {
|
|
83
|
+
hour: 'numeric',
|
|
84
|
+
minute: '2-digit',
|
|
85
|
+
hour12: true,
|
|
86
|
+
}));
|
|
85
87
|
}
|
|
86
88
|
/**
|
|
87
89
|
* Format reconstruction result as text with session boundary markers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-reconstructor.js","sourceRoot":"","sources":["../../src/retrieval/session-reconstructor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"session-reconstructor.js","sourceRoot":"","sources":["../../src/retrieval/session-reconstructor.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,6 @@ export interface ExportedChunk {
|
|
|
20
20
|
startTime: string;
|
|
21
21
|
endTime: string;
|
|
22
22
|
turnIndices: number[];
|
|
23
|
-
vectorClock: Record<string, number>;
|
|
24
23
|
}
|
|
25
24
|
/** Edge data for export */
|
|
26
25
|
export interface ExportedEdge {
|
|
@@ -29,7 +28,6 @@ export interface ExportedEdge {
|
|
|
29
28
|
type: string;
|
|
30
29
|
referenceType: string;
|
|
31
30
|
weight: number;
|
|
32
|
-
vectorClock: Record<string, number>;
|
|
33
31
|
}
|
|
34
32
|
/** Cluster data for export */
|
|
35
33
|
export interface ExportedCluster {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/storage/archive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/storage/archive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,2BAA2B;AAC3B,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,iCAAiC;AACjC,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,qBAAqB;AACrB,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAqB;AACrB,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqIzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwFzE"}
|
package/dist/storage/archive.js
CHANGED
|
@@ -24,7 +24,7 @@ export async function exportArchive(options) {
|
|
|
24
24
|
const targetProjects = options.projects ?? allProjects;
|
|
25
25
|
// Export chunks
|
|
26
26
|
const chunksQuery = db.prepare(`
|
|
27
|
-
SELECT id, session_slug, content, start_time, end_time, turn_indices
|
|
27
|
+
SELECT id, session_slug, content, start_time, end_time, turn_indices
|
|
28
28
|
FROM chunks
|
|
29
29
|
WHERE session_slug IN (${targetProjects.map(() => '?').join(',')})
|
|
30
30
|
`);
|
|
@@ -36,7 +36,6 @@ export async function exportArchive(options) {
|
|
|
36
36
|
startTime: row.start_time,
|
|
37
37
|
endTime: row.end_time,
|
|
38
38
|
turnIndices: JSON.parse(row.turn_indices || '[]'),
|
|
39
|
-
vectorClock: JSON.parse(row.vector_clock || '{}'),
|
|
40
39
|
}));
|
|
41
40
|
// Apply redactions
|
|
42
41
|
if (options.redactPaths) {
|
|
@@ -54,7 +53,7 @@ export async function exportArchive(options) {
|
|
|
54
53
|
// Export edges
|
|
55
54
|
const chunkIds = chunks.map((c) => c.id);
|
|
56
55
|
const edgesQuery = db.prepare(`
|
|
57
|
-
SELECT source_id, target_id, type, reference_type, weight
|
|
56
|
+
SELECT source_id, target_id, type, reference_type, weight
|
|
58
57
|
FROM edges
|
|
59
58
|
WHERE source_id IN (${chunkIds.map(() => '?').join(',')})
|
|
60
59
|
`);
|
|
@@ -65,7 +64,6 @@ export async function exportArchive(options) {
|
|
|
65
64
|
type: row.type,
|
|
66
65
|
referenceType: row.reference_type,
|
|
67
66
|
weight: row.weight,
|
|
68
|
-
vectorClock: JSON.parse(row.vector_clock || '{}'),
|
|
69
67
|
}));
|
|
70
68
|
// Export clusters
|
|
71
69
|
const clustersQuery = db.prepare(`
|
|
@@ -113,7 +111,11 @@ export async function exportArchive(options) {
|
|
|
113
111
|
// Unencrypted
|
|
114
112
|
writeFileSync(options.outputPath, jsonData);
|
|
115
113
|
}
|
|
116
|
-
log.info('Export completed', {
|
|
114
|
+
log.info('Export completed', {
|
|
115
|
+
chunks: chunks.length,
|
|
116
|
+
edges: edges.length,
|
|
117
|
+
clusters: clusters.length,
|
|
118
|
+
});
|
|
117
119
|
}
|
|
118
120
|
/**
|
|
119
121
|
* Import memory data from an archive.
|
|
@@ -152,19 +154,19 @@ export async function importArchive(options) {
|
|
|
152
154
|
}
|
|
153
155
|
// Import chunks
|
|
154
156
|
const insertChunk = db.prepare(`
|
|
155
|
-
INSERT OR REPLACE INTO chunks (id, session_slug, content, start_time, end_time, turn_indices
|
|
156
|
-
VALUES (?, ?, ?, ?, ?,
|
|
157
|
+
INSERT OR REPLACE INTO chunks (id, session_slug, content, start_time, end_time, turn_indices)
|
|
158
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
157
159
|
`);
|
|
158
160
|
for (const chunk of archive.chunks) {
|
|
159
|
-
insertChunk.run(chunk.id, chunk.sessionSlug, chunk.content, chunk.startTime, chunk.endTime, JSON.stringify(chunk.turnIndices)
|
|
161
|
+
insertChunk.run(chunk.id, chunk.sessionSlug, chunk.content, chunk.startTime, chunk.endTime, JSON.stringify(chunk.turnIndices));
|
|
160
162
|
}
|
|
161
163
|
// Import edges
|
|
162
164
|
const insertEdge = db.prepare(`
|
|
163
|
-
INSERT OR REPLACE INTO edges (source_id, target_id, type, reference_type, weight
|
|
164
|
-
VALUES (?, ?, ?, ?,
|
|
165
|
+
INSERT OR REPLACE INTO edges (source_id, target_id, type, reference_type, weight)
|
|
166
|
+
VALUES (?, ?, ?, ?, ?)
|
|
165
167
|
`);
|
|
166
168
|
for (const edge of archive.edges) {
|
|
167
|
-
insertEdge.run(edge.source, edge.target, edge.type, edge.referenceType, edge.weight
|
|
169
|
+
insertEdge.run(edge.source, edge.target, edge.type, edge.referenceType, edge.weight);
|
|
168
170
|
}
|
|
169
171
|
// Import clusters
|
|
170
172
|
const insertCluster = db.prepare(`
|
|
@@ -183,7 +185,11 @@ export async function importArchive(options) {
|
|
|
183
185
|
}
|
|
184
186
|
});
|
|
185
187
|
transaction();
|
|
186
|
-
log.info('Import completed', {
|
|
188
|
+
log.info('Import completed', {
|
|
189
|
+
chunks: archive.chunks.length,
|
|
190
|
+
edges: archive.edges.length,
|
|
191
|
+
clusters: archive.clusters.length,
|
|
192
|
+
});
|
|
187
193
|
}
|
|
188
194
|
/**
|
|
189
195
|
* Redact file paths in content.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/storage/archive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEpC,6BAA6B;AAC7B,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,yCAAyC;AACzC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/storage/archive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEpC,6BAA6B;AAC7B,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,yCAAyC;AACzC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AA0E/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,sBAAsB;IACtB,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAE9E,CAAC;IACJ,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE9D,+BAA+B;IAC/B,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;IAEvD,gBAAgB;IAChB,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;;;6BAGJ,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;GACjE,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,cAAc,CAOpD,CAAC;IAEH,IAAI,MAAM,GAAoB,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACvD,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;KAClD,CAAC,CAAC,CAAC;IAEJ,mBAAmB;IACnB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,GAAG,KAAK;YACR,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,GAAG,KAAK;YACR,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,eAAe;IACf,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;0BAGN,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;GACxD,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAM5C,CAAC;IAEH,MAAM,KAAK,GAAmB,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,CAAC,SAAS;QACrB,MAAM,EAAE,GAAG,CAAC,SAAS;QACrB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC,CAAC,CAAC;IAEJ,kBAAkB;IAClB,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;;4BAIP,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;GAE1D,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAKlD,CAAC;IAEH,MAAM,QAAQ,GAAsB,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,cAAc,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;KACjD,CAAC,CAAC,CAAC;IAEJ,gBAAgB;IAChB,MAAM,OAAO,GAAY;QACvB,MAAM,EAAE,mBAAmB;QAC3B,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,QAAQ,EAAE;YACR,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,QAAQ,EAAE,cAAc;SACzB;QACD,MAAM;QACN,KAAK;QACL,QAAQ;KACT,CAAC;IAEF,YAAY;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAElD,eAAe;IACf,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,YAAY;QACZ,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5D,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,cAAc;QACd,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,QAAQ,EAAE,QAAQ,CAAC,MAAM;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpD,IAAI,QAAgB,CAAC;IAErB,qBAAqB;IACrB,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3D,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAC;IAEhD,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,oBAAoB;IACpB,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,sBAAsB;YACtB,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAE,CAAC;YAChD,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC;YACzC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,CAAC;YACtC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC;QACzC,CAAC;QAED,gBAAgB;QAChB,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAG9B,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,WAAW,CAAC,GAAG,CACb,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAClC,CAAC;QACJ,CAAC;QAED,eAAe;QACf,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAG7B,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvF,CAAC;QAED,kBAAkB;QAClB,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGhC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAG/B,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACjE,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC9C,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,WAAW,EAAE,CAAC;IAEd,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC7B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;QAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,kCAAkC;IAClC,MAAM,WAAW,GAAG,6DAA6D,CAAC;IAClF,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-store.d.ts","sourceRoot":"","sources":["../../src/storage/checkpoint-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"checkpoint-store.d.ts","sourceRoot":"","sources":["../../src/storage/checkpoint-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CA8B3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,GAAG,IAAI,CAevF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGxD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAGlE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA0BhF"}
|
|
@@ -11,7 +11,7 @@ export function getCheckpoint(sessionId) {
|
|
|
11
11
|
const db = getDb();
|
|
12
12
|
const row = db
|
|
13
13
|
.prepare(`
|
|
14
|
-
SELECT session_id, project_slug, last_turn_index, last_chunk_id,
|
|
14
|
+
SELECT session_id, project_slug, last_turn_index, last_chunk_id, file_mtime, updated_at
|
|
15
15
|
FROM ingestion_checkpoints WHERE session_id = ?
|
|
16
16
|
`)
|
|
17
17
|
.get(sessionId);
|
|
@@ -22,7 +22,6 @@ export function getCheckpoint(sessionId) {
|
|
|
22
22
|
projectSlug: row.project_slug,
|
|
23
23
|
lastTurnIndex: row.last_turn_index,
|
|
24
24
|
lastChunkId: row.last_chunk_id,
|
|
25
|
-
vectorClock: row.vector_clock,
|
|
26
25
|
fileMtime: row.file_mtime,
|
|
27
26
|
updatedAt: row.updated_at,
|
|
28
27
|
};
|
|
@@ -34,9 +33,9 @@ export function saveCheckpoint(checkpoint) {
|
|
|
34
33
|
const db = getDb();
|
|
35
34
|
db.prepare(`
|
|
36
35
|
INSERT OR REPLACE INTO ingestion_checkpoints
|
|
37
|
-
(session_id, project_slug, last_turn_index, last_chunk_id,
|
|
38
|
-
VALUES (?, ?, ?, ?, ?,
|
|
39
|
-
`).run(checkpoint.sessionId, checkpoint.projectSlug, checkpoint.lastTurnIndex, checkpoint.lastChunkId, checkpoint.
|
|
36
|
+
(session_id, project_slug, last_turn_index, last_chunk_id, file_mtime, updated_at)
|
|
37
|
+
VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
|
|
38
|
+
`).run(checkpoint.sessionId, checkpoint.projectSlug, checkpoint.lastTurnIndex, checkpoint.lastChunkId, checkpoint.fileMtime);
|
|
40
39
|
}
|
|
41
40
|
/**
|
|
42
41
|
* Delete an ingestion checkpoint.
|
|
@@ -59,7 +58,7 @@ export function getProjectCheckpoints(projectSlug) {
|
|
|
59
58
|
const db = getDb();
|
|
60
59
|
const rows = db
|
|
61
60
|
.prepare(`
|
|
62
|
-
SELECT session_id, project_slug, last_turn_index, last_chunk_id,
|
|
61
|
+
SELECT session_id, project_slug, last_turn_index, last_chunk_id, file_mtime, updated_at
|
|
63
62
|
FROM ingestion_checkpoints WHERE project_slug = ?
|
|
64
63
|
`)
|
|
65
64
|
.all(projectSlug);
|
|
@@ -68,7 +67,6 @@ export function getProjectCheckpoints(projectSlug) {
|
|
|
68
67
|
projectSlug: row.project_slug,
|
|
69
68
|
lastTurnIndex: row.last_turn_index,
|
|
70
69
|
lastChunkId: row.last_chunk_id,
|
|
71
|
-
vectorClock: row.vector_clock,
|
|
72
70
|
fileMtime: row.file_mtime,
|
|
73
71
|
updatedAt: row.updated_at,
|
|
74
72
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-store.js","sourceRoot":"","sources":["../../src/storage/checkpoint-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint-store.js","sourceRoot":"","sources":["../../src/storage/checkpoint-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;;;GAGH,CACE;SACA,GAAG,CAAC,SAAS,CASH,CAAC;IAEd,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkD;IAC/E,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,OAAO,CACR;;;;GAID,CACA,CAAC,GAAG,CACH,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,SAAS,CACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;GAGH,CACE;SACA,GAAG,CAAC,WAAW,CAOhB,CAAC;IAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-store.d.ts","sourceRoot":"","sources":["../../src/storage/chunk-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"chunk-store.d.ts","sourceRoot":"","sources":["../../src/storage/chunk-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CA+BrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAqC3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAS3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAY3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAOnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAOzE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,WAAW,EAAE,CAK5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAcnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CASlD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAMxC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAMlE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,EAAE,CA2BnD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,gBAAgB,GACtB,WAAW,EAAE,CAoBf;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CA2BhG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAkChG"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* CRUD operations for chunks.
|
|
3
3
|
*/
|
|
4
4
|
import { getDb, generateId } from './db.js';
|
|
5
|
-
import { serialize, deserialize } from '../temporal/vector-clock.js';
|
|
6
5
|
/**
|
|
7
6
|
* Insert a single chunk.
|
|
8
7
|
*/
|
|
@@ -13,10 +12,10 @@ export function insertChunk(chunk) {
|
|
|
13
12
|
INSERT INTO chunks (
|
|
14
13
|
id, session_id, session_slug, turn_indices, start_time, end_time,
|
|
15
14
|
content, code_block_count, tool_use_count, approx_tokens,
|
|
16
|
-
agent_id,
|
|
17
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
15
|
+
agent_id, spawn_depth, project_path
|
|
16
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
18
17
|
`);
|
|
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.
|
|
18
|
+
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.spawnDepth ?? 0, chunk.projectPath ?? null);
|
|
20
19
|
invalidateProjectsCache();
|
|
21
20
|
return id;
|
|
22
21
|
}
|
|
@@ -30,13 +29,13 @@ export function insertChunks(chunks) {
|
|
|
30
29
|
INSERT INTO chunks (
|
|
31
30
|
id, session_id, session_slug, turn_indices, start_time, end_time,
|
|
32
31
|
content, code_block_count, tool_use_count, approx_tokens,
|
|
33
|
-
agent_id,
|
|
34
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
32
|
+
agent_id, spawn_depth, project_path
|
|
33
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
35
34
|
`);
|
|
36
35
|
const insertMany = db.transaction((chunks) => {
|
|
37
36
|
for (const chunk of chunks) {
|
|
38
37
|
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.
|
|
38
|
+
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.spawnDepth ?? 0, chunk.projectPath ?? null);
|
|
40
39
|
ids.push(id);
|
|
41
40
|
}
|
|
42
41
|
});
|
|
@@ -64,7 +63,9 @@ export function getChunksByIds(ids) {
|
|
|
64
63
|
}
|
|
65
64
|
const db = getDb();
|
|
66
65
|
const placeholders = ids.map(() => '?').join(',');
|
|
67
|
-
const rows = db
|
|
66
|
+
const rows = db
|
|
67
|
+
.prepare(`SELECT * FROM chunks WHERE id IN (${placeholders})`)
|
|
68
|
+
.all(...ids);
|
|
68
69
|
return rows.map(rowToChunk);
|
|
69
70
|
}
|
|
70
71
|
/**
|
|
@@ -115,9 +116,7 @@ export function getChunksByCluster(clusterId) {
|
|
|
115
116
|
*/
|
|
116
117
|
export function isSessionIngested(sessionId) {
|
|
117
118
|
const db = getDb();
|
|
118
|
-
const row = db
|
|
119
|
-
.prepare('SELECT 1 FROM chunks WHERE session_id = ? LIMIT 1')
|
|
120
|
-
.get(sessionId);
|
|
119
|
+
const row = db.prepare('SELECT 1 FROM chunks WHERE session_id = ? LIMIT 1').get(sessionId);
|
|
121
120
|
return row !== undefined;
|
|
122
121
|
}
|
|
123
122
|
/**
|
|
@@ -161,9 +160,7 @@ export function getChunkCount() {
|
|
|
161
160
|
*/
|
|
162
161
|
export function getChunkIdsByProject(projectSlug) {
|
|
163
162
|
const db = getDb();
|
|
164
|
-
const rows = db
|
|
165
|
-
.prepare('SELECT id FROM chunks WHERE session_slug = ?')
|
|
166
|
-
.all(projectSlug);
|
|
163
|
+
const rows = db.prepare('SELECT id FROM chunks WHERE session_slug = ?').all(projectSlug);
|
|
167
164
|
return rows.map((r) => r.id);
|
|
168
165
|
}
|
|
169
166
|
/** Cached project list — invalidated on chunk insert. */
|
|
@@ -182,7 +179,8 @@ export function getDistinctProjects() {
|
|
|
182
179
|
if (cachedProjects)
|
|
183
180
|
return cachedProjects;
|
|
184
181
|
const db = getDb();
|
|
185
|
-
const rows = db
|
|
182
|
+
const rows = db
|
|
183
|
+
.prepare(`
|
|
186
184
|
SELECT
|
|
187
185
|
session_slug AS slug,
|
|
188
186
|
COUNT(*) AS chunkCount,
|
|
@@ -192,7 +190,8 @@ export function getDistinctProjects() {
|
|
|
192
190
|
WHERE session_slug != ''
|
|
193
191
|
GROUP BY session_slug
|
|
194
192
|
ORDER BY lastSeen DESC
|
|
195
|
-
`)
|
|
193
|
+
`)
|
|
194
|
+
.all();
|
|
196
195
|
cachedProjects = rows;
|
|
197
196
|
return rows;
|
|
198
197
|
}
|
|
@@ -290,7 +289,6 @@ function rowToChunk(row) {
|
|
|
290
289
|
approxTokens: row.approx_tokens,
|
|
291
290
|
createdAt: row.created_at,
|
|
292
291
|
agentId: row.agent_id,
|
|
293
|
-
vectorClock: row.vector_clock ? deserialize(row.vector_clock) : null,
|
|
294
292
|
spawnDepth: row.spawn_depth ?? 0,
|
|
295
293
|
projectPath: row.project_path,
|
|
296
294
|
};
|