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
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Graph traversal with decay-weighted edges.
|
|
3
|
-
*
|
|
4
|
-
* Uses sum-product rules analogous to Feynman path integrals:
|
|
5
|
-
* - Product: Weights multiply along each path
|
|
6
|
-
* - Sum: Multiple paths to the same node accumulate
|
|
7
|
-
* - Convergence: Cycles naturally attenuate (no explicit detection needed)
|
|
8
|
-
*
|
|
9
|
-
* Since edge weights are in (0,1], path products decrease with length.
|
|
10
|
-
* The minWeight threshold prunes paths that have attenuated below relevance,
|
|
11
|
-
* which naturally handles cycle convergence.
|
|
12
|
-
*/
|
|
13
|
-
import type { DecayModelConfig } from '../core/decay-types.js';
|
|
14
|
-
import type { WeightedChunk, TraversalResult, StoredChunk } from '../storage/types.js';
|
|
15
|
-
import type { VectorClock } from '../temporal/vector-clock.js';
|
|
16
|
-
/**
|
|
17
|
-
* Options for graph traversal.
|
|
18
|
-
* Direction-specific decay curves are automatically applied:
|
|
19
|
-
* - Backward: Linear (dies@10) for 4-20 hop range
|
|
20
|
-
* - Forward: Delayed linear (5h, dies@20) for 1-20 hop range
|
|
21
|
-
*/
|
|
22
|
-
export interface TraversalOptions {
|
|
23
|
-
/** Maximum traversal depth. Default: from config. */
|
|
24
|
-
maxDepth?: number;
|
|
25
|
-
/** Minimum weight threshold. Default: from config. */
|
|
26
|
-
minWeight?: number;
|
|
27
|
-
/** Time-based decay configuration (fallback for edges without vector clocks). */
|
|
28
|
-
decayConfig?: DecayModelConfig;
|
|
29
|
-
/** Traversal direction. Determines which decay curve is used. */
|
|
30
|
-
direction: 'backward' | 'forward';
|
|
31
|
-
/** Reference clock for vector clock-based decay (optional). */
|
|
32
|
-
referenceClock?: VectorClock;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Traverse the graph from a starting chunk using sum-product rules.
|
|
36
|
-
*
|
|
37
|
-
* Weights multiply along paths (product) and accumulate when multiple
|
|
38
|
-
* paths reach the same node (sum). Cycles are handled naturally by
|
|
39
|
-
* convergence — since weights are <1, cyclic paths attenuate geometrically
|
|
40
|
-
* and are pruned when they fall below minWeight.
|
|
41
|
-
*
|
|
42
|
-
* @param startChunkId - Starting chunk ID
|
|
43
|
-
* @param queryTime - Query time in milliseconds (for decay calculation)
|
|
44
|
-
* @param options - Traversal options
|
|
45
|
-
* @returns Traversal result with weighted chunks
|
|
46
|
-
*/
|
|
47
|
-
export declare function traverse(startChunkId: string, queryTime: number, options: TraversalOptions): Promise<TraversalResult>;
|
|
48
|
-
/**
|
|
49
|
-
* Traverse from multiple starting points and merge results.
|
|
50
|
-
* Useful for starting from vector search results.
|
|
51
|
-
*/
|
|
52
|
-
export declare function traverseMultiple(startChunkIds: string[], startWeights: number[], queryTime: number, options: TraversalOptions): Promise<TraversalResult>;
|
|
53
|
-
/**
|
|
54
|
-
* Get chunks with their content from traversal results.
|
|
55
|
-
*/
|
|
56
|
-
export declare function resolveChunks(traversalResult: TraversalResult): Array<{
|
|
57
|
-
chunk: StoredChunk;
|
|
58
|
-
weight: number;
|
|
59
|
-
depth: number;
|
|
60
|
-
}>;
|
|
61
|
-
/**
|
|
62
|
-
* Deduplicate and re-rank weighted chunks.
|
|
63
|
-
* Combines duplicate entries and applies additional scoring.
|
|
64
|
-
*/
|
|
65
|
-
export declare function dedupeAndRank(chunks: WeightedChunk[]): WeightedChunk[];
|
|
66
|
-
//# sourceMappingURL=traverser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traverser.d.ts","sourceRoot":"","sources":["../../src/retrieval/traverser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAY,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,iEAAiE;IACjE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAClC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,QAAQ,CAC5B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAyE1B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EAAE,EACvB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CA0C1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,eAAe,GAC/B,KAAK,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAe9D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAmBtE"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Graph traversal with decay-weighted edges.
|
|
3
|
-
*
|
|
4
|
-
* Uses sum-product rules analogous to Feynman path integrals:
|
|
5
|
-
* - Product: Weights multiply along each path
|
|
6
|
-
* - Sum: Multiple paths to the same node accumulate
|
|
7
|
-
* - Convergence: Cycles naturally attenuate (no explicit detection needed)
|
|
8
|
-
*
|
|
9
|
-
* Since edge weights are in (0,1], path products decrease with length.
|
|
10
|
-
* The minWeight threshold prunes paths that have attenuated below relevance,
|
|
11
|
-
* which naturally handles cycle convergence.
|
|
12
|
-
*/
|
|
13
|
-
import { getWeightedEdges } from '../storage/edge-store.js';
|
|
14
|
-
import { getChunkById } from '../storage/chunk-store.js';
|
|
15
|
-
import { getConfig } from '../config/memory-config.js';
|
|
16
|
-
/**
|
|
17
|
-
* Traverse the graph from a starting chunk using sum-product rules.
|
|
18
|
-
*
|
|
19
|
-
* Weights multiply along paths (product) and accumulate when multiple
|
|
20
|
-
* paths reach the same node (sum). Cycles are handled naturally by
|
|
21
|
-
* convergence — since weights are <1, cyclic paths attenuate geometrically
|
|
22
|
-
* and are pruned when they fall below minWeight.
|
|
23
|
-
*
|
|
24
|
-
* @param startChunkId - Starting chunk ID
|
|
25
|
-
* @param queryTime - Query time in milliseconds (for decay calculation)
|
|
26
|
-
* @param options - Traversal options
|
|
27
|
-
* @returns Traversal result with weighted chunks
|
|
28
|
-
*/
|
|
29
|
-
export async function traverse(startChunkId, queryTime, options) {
|
|
30
|
-
const config = getConfig();
|
|
31
|
-
const { maxDepth = config.maxTraversalDepth, minWeight = config.minSignalThreshold, direction, referenceClock, } = options;
|
|
32
|
-
// Select time-based decay config as fallback (for edges without vector clocks)
|
|
33
|
-
const decayConfig = options.decayConfig ?? (direction === 'backward' ? config.shortRangeDecay : config.forwardDecay);
|
|
34
|
-
// Accumulate weights across all paths (sum rule)
|
|
35
|
-
const accumulatedWeights = new Map();
|
|
36
|
-
const minDepths = new Map();
|
|
37
|
-
let pathsExplored = 0;
|
|
38
|
-
async function visit(chunkId, depth, pathWeight) {
|
|
39
|
-
// Prune paths that have attenuated below threshold (convergence criterion)
|
|
40
|
-
// Since edge weights are <1, cyclic paths naturally attenuate until pruned
|
|
41
|
-
if (pathWeight < minWeight)
|
|
42
|
-
return;
|
|
43
|
-
if (depth > maxDepth)
|
|
44
|
-
return;
|
|
45
|
-
pathsExplored++;
|
|
46
|
-
// Accumulate this path's weight contribution (sum rule)
|
|
47
|
-
const existingWeight = accumulatedWeights.get(chunkId) ?? 0;
|
|
48
|
-
accumulatedWeights.set(chunkId, existingWeight + pathWeight);
|
|
49
|
-
// Track minimum depth for reporting
|
|
50
|
-
const existingDepth = minDepths.get(chunkId) ?? Infinity;
|
|
51
|
-
minDepths.set(chunkId, Math.min(existingDepth, depth));
|
|
52
|
-
// Get weighted edges from this chunk
|
|
53
|
-
const edges = getWeightedEdges(chunkId, queryTime, decayConfig, direction, referenceClock);
|
|
54
|
-
for (const edge of edges) {
|
|
55
|
-
// Compute new path weight (product rule)
|
|
56
|
-
const newWeight = pathWeight * edge.weight;
|
|
57
|
-
// Recursively visit — cycles naturally attenuate via weight products <1
|
|
58
|
-
await visit(edge.targetChunkId, depth + 1, newWeight);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// Start traversal from the given chunk
|
|
62
|
-
await visit(startChunkId, 0, 1.0);
|
|
63
|
-
// Convert accumulated weights to results
|
|
64
|
-
const results = [];
|
|
65
|
-
for (const [chunkId, weight] of accumulatedWeights) {
|
|
66
|
-
if (chunkId !== startChunkId) { // Exclude start node from results
|
|
67
|
-
results.push({
|
|
68
|
-
chunkId,
|
|
69
|
-
weight,
|
|
70
|
-
depth: minDepths.get(chunkId) ?? 0,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Sort by weight descending
|
|
75
|
-
results.sort((a, b) => b.weight - a.weight);
|
|
76
|
-
return {
|
|
77
|
-
chunks: results,
|
|
78
|
-
visited: pathsExplored,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Traverse from multiple starting points and merge results.
|
|
83
|
-
* Useful for starting from vector search results.
|
|
84
|
-
*/
|
|
85
|
-
export async function traverseMultiple(startChunkIds, startWeights, queryTime, options) {
|
|
86
|
-
// Track all visited and accumulated weights
|
|
87
|
-
const globalWeights = new Map();
|
|
88
|
-
const globalDepths = new Map();
|
|
89
|
-
let totalVisited = 0;
|
|
90
|
-
for (let i = 0; i < startChunkIds.length; i++) {
|
|
91
|
-
const startId = startChunkIds[i];
|
|
92
|
-
const startWeight = startWeights[i] ?? 1.0;
|
|
93
|
-
// Adjust options with starting weight
|
|
94
|
-
const result = await traverse(startId, queryTime, options);
|
|
95
|
-
totalVisited += result.visited;
|
|
96
|
-
// Merge results, accumulating weights
|
|
97
|
-
for (const chunk of result.chunks) {
|
|
98
|
-
const scaledWeight = chunk.weight * startWeight;
|
|
99
|
-
const existingWeight = globalWeights.get(chunk.chunkId) ?? 0;
|
|
100
|
-
globalWeights.set(chunk.chunkId, existingWeight + scaledWeight);
|
|
101
|
-
// Keep minimum depth
|
|
102
|
-
const existingDepth = globalDepths.get(chunk.chunkId) ?? Infinity;
|
|
103
|
-
globalDepths.set(chunk.chunkId, Math.min(existingDepth, chunk.depth));
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// Convert to array and sort
|
|
107
|
-
const chunks = [];
|
|
108
|
-
for (const [chunkId, weight] of globalWeights) {
|
|
109
|
-
chunks.push({
|
|
110
|
-
chunkId,
|
|
111
|
-
weight,
|
|
112
|
-
depth: globalDepths.get(chunkId) ?? 0,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
chunks.sort((a, b) => b.weight - a.weight);
|
|
116
|
-
return {
|
|
117
|
-
chunks,
|
|
118
|
-
visited: totalVisited,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Get chunks with their content from traversal results.
|
|
123
|
-
*/
|
|
124
|
-
export function resolveChunks(traversalResult) {
|
|
125
|
-
const resolved = [];
|
|
126
|
-
for (const wc of traversalResult.chunks) {
|
|
127
|
-
const chunk = getChunkById(wc.chunkId);
|
|
128
|
-
if (chunk) {
|
|
129
|
-
resolved.push({
|
|
130
|
-
chunk,
|
|
131
|
-
weight: wc.weight,
|
|
132
|
-
depth: wc.depth,
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return resolved;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Deduplicate and re-rank weighted chunks.
|
|
140
|
-
* Combines duplicate entries and applies additional scoring.
|
|
141
|
-
*/
|
|
142
|
-
export function dedupeAndRank(chunks) {
|
|
143
|
-
const byId = new Map();
|
|
144
|
-
for (const chunk of chunks) {
|
|
145
|
-
const existing = byId.get(chunk.chunkId);
|
|
146
|
-
if (existing) {
|
|
147
|
-
// Combine weights (sum with diminishing returns)
|
|
148
|
-
existing.weight = existing.weight + chunk.weight * 0.5;
|
|
149
|
-
// Keep minimum depth
|
|
150
|
-
existing.depth = Math.min(existing.depth, chunk.depth);
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
byId.set(chunk.chunkId, { ...chunk });
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
const deduped = Array.from(byId.values());
|
|
157
|
-
deduped.sort((a, b) => b.weight - a.weight);
|
|
158
|
-
return deduped;
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=traverser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traverser.js","sourceRoot":"","sources":["../../src/retrieval/traverser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Persistence layer for vector clocks.
|
|
3
|
-
*
|
|
4
|
-
* Stores and retrieves vector clocks from SQLite for:
|
|
5
|
-
* - Reference clocks (per project): Element-wise max of all agent clocks
|
|
6
|
-
* - Agent clocks (per project + agent): Current clock state for each agent
|
|
7
|
-
*/
|
|
8
|
-
import { type VectorClock } from '../temporal/vector-clock.js';
|
|
9
|
-
/**
|
|
10
|
-
* Get the reference clock for a project.
|
|
11
|
-
* The reference clock is the element-wise max of all agent clocks,
|
|
12
|
-
* representing the "current time" for decay calculation.
|
|
13
|
-
*
|
|
14
|
-
* @param projectSlug - Project identifier
|
|
15
|
-
* @returns Current reference clock (empty if none stored)
|
|
16
|
-
*/
|
|
17
|
-
export declare function getReferenceClock(projectSlug: string): VectorClock;
|
|
18
|
-
/**
|
|
19
|
-
* Set the reference clock for a project.
|
|
20
|
-
*
|
|
21
|
-
* @param projectSlug - Project identifier
|
|
22
|
-
* @param clock - New reference clock
|
|
23
|
-
*/
|
|
24
|
-
export declare function setReferenceClock(projectSlug: string, clock: VectorClock): void;
|
|
25
|
-
/**
|
|
26
|
-
* Get the clock for a specific agent within a project.
|
|
27
|
-
*
|
|
28
|
-
* @param projectSlug - Project identifier
|
|
29
|
-
* @param agentId - Agent identifier (e.g., 'ui', 'human', or sub-agent ID)
|
|
30
|
-
* @returns Agent's current clock (empty if none stored)
|
|
31
|
-
*/
|
|
32
|
-
export declare function getAgentClock(projectSlug: string, agentId: string): VectorClock;
|
|
33
|
-
/**
|
|
34
|
-
* Update the clock for a specific agent and refresh the reference clock.
|
|
35
|
-
* The reference clock is automatically updated to be the merge of all agent clocks.
|
|
36
|
-
*
|
|
37
|
-
* @param projectSlug - Project identifier
|
|
38
|
-
* @param agentId - Agent identifier
|
|
39
|
-
* @param clock - New clock state for this agent
|
|
40
|
-
*/
|
|
41
|
-
export declare function updateAgentClock(projectSlug: string, agentId: string, clock: VectorClock): void;
|
|
42
|
-
/**
|
|
43
|
-
* Get all agent clocks for a project.
|
|
44
|
-
*
|
|
45
|
-
* @param projectSlug - Project identifier
|
|
46
|
-
* @returns Map of agentId → clock
|
|
47
|
-
*/
|
|
48
|
-
export declare function getAllAgentClocks(projectSlug: string): Map<string, VectorClock>;
|
|
49
|
-
/**
|
|
50
|
-
* Rebuild the reference clock from all agent clocks.
|
|
51
|
-
* Useful after data recovery or manual edits.
|
|
52
|
-
*
|
|
53
|
-
* @param projectSlug - Project identifier
|
|
54
|
-
* @returns The newly computed reference clock
|
|
55
|
-
*/
|
|
56
|
-
export declare function rebuildReferenceClock(projectSlug: string): VectorClock;
|
|
57
|
-
/**
|
|
58
|
-
* Delete all clocks for a project.
|
|
59
|
-
* Used when clearing project data.
|
|
60
|
-
*
|
|
61
|
-
* @param projectSlug - Project identifier
|
|
62
|
-
* @returns Number of records deleted
|
|
63
|
-
*/
|
|
64
|
-
export declare function deleteProjectClocks(projectSlug: string): number;
|
|
65
|
-
/**
|
|
66
|
-
* Get the last update time for a clock.
|
|
67
|
-
*
|
|
68
|
-
* @param projectSlug - Project identifier
|
|
69
|
-
* @param agentId - Agent identifier (optional, for reference clock if omitted)
|
|
70
|
-
* @returns ISO timestamp of last update, or null if not found
|
|
71
|
-
*/
|
|
72
|
-
export declare function getClockUpdateTime(projectSlug: string, agentId?: string): string | null;
|
|
73
|
-
/**
|
|
74
|
-
* Check if a project has any stored clocks.
|
|
75
|
-
*
|
|
76
|
-
* @param projectSlug - Project identifier
|
|
77
|
-
* @returns true if project has stored clocks
|
|
78
|
-
*/
|
|
79
|
-
export declare function hasProjectClocks(projectSlug: string): boolean;
|
|
80
|
-
//# sourceMappingURL=clock-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clock-store.d.ts","sourceRoot":"","sources":["../../src/storage/clock-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,6BAA6B,CAAC;AAErC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAQlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAU/E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAQ/E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAgB/F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAkB/E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQ7D"}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Persistence layer for vector clocks.
|
|
3
|
-
*
|
|
4
|
-
* Stores and retrieves vector clocks from SQLite for:
|
|
5
|
-
* - Reference clocks (per project): Element-wise max of all agent clocks
|
|
6
|
-
* - Agent clocks (per project + agent): Current clock state for each agent
|
|
7
|
-
*/
|
|
8
|
-
import { getDb } from './db.js';
|
|
9
|
-
import { serialize, deserialize, merge, createClock, } from '../temporal/vector-clock.js';
|
|
10
|
-
/**
|
|
11
|
-
* Get the reference clock for a project.
|
|
12
|
-
* The reference clock is the element-wise max of all agent clocks,
|
|
13
|
-
* representing the "current time" for decay calculation.
|
|
14
|
-
*
|
|
15
|
-
* @param projectSlug - Project identifier
|
|
16
|
-
* @returns Current reference clock (empty if none stored)
|
|
17
|
-
*/
|
|
18
|
-
export function getReferenceClock(projectSlug) {
|
|
19
|
-
const db = getDb();
|
|
20
|
-
const row = db
|
|
21
|
-
.prepare('SELECT clock_data FROM vector_clocks WHERE id = ? AND project_slug = ?')
|
|
22
|
-
.get(`project:${projectSlug}`, projectSlug);
|
|
23
|
-
return row ? deserialize(row.clock_data) : createClock();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Set the reference clock for a project.
|
|
27
|
-
*
|
|
28
|
-
* @param projectSlug - Project identifier
|
|
29
|
-
* @param clock - New reference clock
|
|
30
|
-
*/
|
|
31
|
-
export function setReferenceClock(projectSlug, clock) {
|
|
32
|
-
const db = getDb();
|
|
33
|
-
db.prepare(`
|
|
34
|
-
INSERT INTO vector_clocks (id, project_slug, clock_data, updated_at)
|
|
35
|
-
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
|
|
36
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
37
|
-
clock_data = excluded.clock_data,
|
|
38
|
-
updated_at = CURRENT_TIMESTAMP
|
|
39
|
-
`).run(`project:${projectSlug}`, projectSlug, serialize(clock));
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Get the clock for a specific agent within a project.
|
|
43
|
-
*
|
|
44
|
-
* @param projectSlug - Project identifier
|
|
45
|
-
* @param agentId - Agent identifier (e.g., 'ui', 'human', or sub-agent ID)
|
|
46
|
-
* @returns Agent's current clock (empty if none stored)
|
|
47
|
-
*/
|
|
48
|
-
export function getAgentClock(projectSlug, agentId) {
|
|
49
|
-
const db = getDb();
|
|
50
|
-
const row = db
|
|
51
|
-
.prepare('SELECT clock_data FROM vector_clocks WHERE id = ? AND project_slug = ?')
|
|
52
|
-
.get(`agent:${projectSlug}:${agentId}`, projectSlug);
|
|
53
|
-
return row ? deserialize(row.clock_data) : createClock();
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Update the clock for a specific agent and refresh the reference clock.
|
|
57
|
-
* The reference clock is automatically updated to be the merge of all agent clocks.
|
|
58
|
-
*
|
|
59
|
-
* @param projectSlug - Project identifier
|
|
60
|
-
* @param agentId - Agent identifier
|
|
61
|
-
* @param clock - New clock state for this agent
|
|
62
|
-
*/
|
|
63
|
-
export function updateAgentClock(projectSlug, agentId, clock) {
|
|
64
|
-
const db = getDb();
|
|
65
|
-
// Store the agent's clock
|
|
66
|
-
db.prepare(`
|
|
67
|
-
INSERT INTO vector_clocks (id, project_slug, clock_data, updated_at)
|
|
68
|
-
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
|
|
69
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
70
|
-
clock_data = excluded.clock_data,
|
|
71
|
-
updated_at = CURRENT_TIMESTAMP
|
|
72
|
-
`).run(`agent:${projectSlug}:${agentId}`, projectSlug, serialize(clock));
|
|
73
|
-
// Update reference clock (merge with existing)
|
|
74
|
-
const currentRef = getReferenceClock(projectSlug);
|
|
75
|
-
const newRef = merge(currentRef, clock);
|
|
76
|
-
setReferenceClock(projectSlug, newRef);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Get all agent clocks for a project.
|
|
80
|
-
*
|
|
81
|
-
* @param projectSlug - Project identifier
|
|
82
|
-
* @returns Map of agentId → clock
|
|
83
|
-
*/
|
|
84
|
-
export function getAllAgentClocks(projectSlug) {
|
|
85
|
-
const db = getDb();
|
|
86
|
-
const rows = db
|
|
87
|
-
.prepare('SELECT id, clock_data FROM vector_clocks WHERE project_slug = ? AND id LIKE ?')
|
|
88
|
-
.all(projectSlug, `agent:${projectSlug}:%`);
|
|
89
|
-
const result = new Map();
|
|
90
|
-
const prefix = `agent:${projectSlug}:`;
|
|
91
|
-
for (const row of rows) {
|
|
92
|
-
if (row.id.startsWith(prefix)) {
|
|
93
|
-
const agentId = row.id.slice(prefix.length);
|
|
94
|
-
result.set(agentId, deserialize(row.clock_data));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Rebuild the reference clock from all agent clocks.
|
|
101
|
-
* Useful after data recovery or manual edits.
|
|
102
|
-
*
|
|
103
|
-
* @param projectSlug - Project identifier
|
|
104
|
-
* @returns The newly computed reference clock
|
|
105
|
-
*/
|
|
106
|
-
export function rebuildReferenceClock(projectSlug) {
|
|
107
|
-
const agentClocks = getAllAgentClocks(projectSlug);
|
|
108
|
-
let ref = createClock();
|
|
109
|
-
for (const clock of agentClocks.values()) {
|
|
110
|
-
ref = merge(ref, clock);
|
|
111
|
-
}
|
|
112
|
-
setReferenceClock(projectSlug, ref);
|
|
113
|
-
return ref;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Delete all clocks for a project.
|
|
117
|
-
* Used when clearing project data.
|
|
118
|
-
*
|
|
119
|
-
* @param projectSlug - Project identifier
|
|
120
|
-
* @returns Number of records deleted
|
|
121
|
-
*/
|
|
122
|
-
export function deleteProjectClocks(projectSlug) {
|
|
123
|
-
const db = getDb();
|
|
124
|
-
const result = db.prepare('DELETE FROM vector_clocks WHERE project_slug = ?').run(projectSlug);
|
|
125
|
-
return result.changes;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Get the last update time for a clock.
|
|
129
|
-
*
|
|
130
|
-
* @param projectSlug - Project identifier
|
|
131
|
-
* @param agentId - Agent identifier (optional, for reference clock if omitted)
|
|
132
|
-
* @returns ISO timestamp of last update, or null if not found
|
|
133
|
-
*/
|
|
134
|
-
export function getClockUpdateTime(projectSlug, agentId) {
|
|
135
|
-
const db = getDb();
|
|
136
|
-
const id = agentId ? `agent:${projectSlug}:${agentId}` : `project:${projectSlug}`;
|
|
137
|
-
const row = db
|
|
138
|
-
.prepare('SELECT updated_at FROM vector_clocks WHERE id = ?')
|
|
139
|
-
.get(id);
|
|
140
|
-
return row?.updated_at ?? null;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Check if a project has any stored clocks.
|
|
144
|
-
*
|
|
145
|
-
* @param projectSlug - Project identifier
|
|
146
|
-
* @returns true if project has stored clocks
|
|
147
|
-
*/
|
|
148
|
-
export function hasProjectClocks(projectSlug) {
|
|
149
|
-
const db = getDb();
|
|
150
|
-
const row = db
|
|
151
|
-
.prepare('SELECT 1 FROM vector_clocks WHERE project_slug = ? LIMIT 1')
|
|
152
|
-
.get(projectSlug);
|
|
153
|
-
return row !== undefined;
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=clock-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clock-store.js","sourceRoot":"","sources":["../../src/storage/clock-store.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/decay.d.ts
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decay weight calculation for edges.
|
|
3
|
-
* Supports both time-based decay (legacy) and vector clock-based decay.
|
|
4
|
-
*/
|
|
5
|
-
import type { DecayModelConfig } from '../core/decay-types.js';
|
|
6
|
-
import { type VectorClock } from '../temporal/vector-clock.js';
|
|
7
|
-
/**
|
|
8
|
-
* Edge direction for hop decay.
|
|
9
|
-
*/
|
|
10
|
-
export type EdgeDirection = 'backward' | 'forward';
|
|
11
|
-
/**
|
|
12
|
-
* Hop decay curve type.
|
|
13
|
-
*/
|
|
14
|
-
export type HopDecayType = 'exponential' | 'linear' | 'delayed-linear';
|
|
15
|
-
/**
|
|
16
|
-
* Configuration for hop-based decay curves.
|
|
17
|
-
* Different curves are optimal for different directions:
|
|
18
|
-
* - Backward (4-20 hops): Linear dies@10 (MRR=0.688)
|
|
19
|
-
* - Forward (1-20 hops): Delayed linear 5h/dies@20 (MRR=0.849)
|
|
20
|
-
*/
|
|
21
|
-
export interface HopDecayConfig {
|
|
22
|
-
/** Decay curve type */
|
|
23
|
-
type: HopDecayType;
|
|
24
|
-
/** For exponential: weight = weightPerHop^hops */
|
|
25
|
-
weightPerHop?: number;
|
|
26
|
-
/** For linear/delayed-linear: decay rate per hop */
|
|
27
|
-
decayPerHop?: number;
|
|
28
|
-
/** For delayed-linear: hold full weight for N hops */
|
|
29
|
-
holdHops?: number;
|
|
30
|
-
/** Minimum weight before edge is considered dead */
|
|
31
|
-
minWeight: number;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Backward hop decay: Linear (dies@10)
|
|
35
|
-
* Optimal for retrieving causally-related context 4-20 hops back.
|
|
36
|
-
* MRR=0.688 (+35% vs exponential 0.80)
|
|
37
|
-
*/
|
|
38
|
-
export declare const BACKWARD_HOP_DECAY: HopDecayConfig;
|
|
39
|
-
/**
|
|
40
|
-
* Forward hop decay: Delayed linear (5-hop hold, dies@20)
|
|
41
|
-
* Optimal for predicting future context 1-20 hops forward.
|
|
42
|
-
* MRR=0.849 (+271% vs exponential 0.80)
|
|
43
|
-
*/
|
|
44
|
-
export declare const FORWARD_HOP_DECAY: HopDecayConfig;
|
|
45
|
-
/**
|
|
46
|
-
* Legacy configuration for vector clock-based decay (exponential only).
|
|
47
|
-
* @deprecated Use HopDecayConfig with direction-specific curves instead.
|
|
48
|
-
*/
|
|
49
|
-
export interface VectorDecayConfig {
|
|
50
|
-
/** Weight multiplier per hop (e.g., 0.85 = 15% decay per hop) */
|
|
51
|
-
weightPerHop: number;
|
|
52
|
-
/** Minimum weight before edge is considered dead */
|
|
53
|
-
minWeight: number;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Default vector decay configuration (legacy exponential).
|
|
57
|
-
* @deprecated Use BACKWARD_HOP_DECAY or FORWARD_HOP_DECAY instead.
|
|
58
|
-
*/
|
|
59
|
-
export declare const DEFAULT_VECTOR_DECAY: VectorDecayConfig;
|
|
60
|
-
/**
|
|
61
|
-
* Calculate hop-based decay weight using direction-specific curves.
|
|
62
|
-
*
|
|
63
|
-
* @param hops - Number of hops from reference point
|
|
64
|
-
* @param config - Hop decay configuration
|
|
65
|
-
* @returns Weight value (0 to 1), or 0 if below minWeight
|
|
66
|
-
*/
|
|
67
|
-
export declare function calculateHopDecayWeight(hops: number, config: HopDecayConfig): number;
|
|
68
|
-
/**
|
|
69
|
-
* Calculate decay weight for an edge based on direction.
|
|
70
|
-
*
|
|
71
|
-
* @param edgeClock - Vector clock stamped on the edge
|
|
72
|
-
* @param referenceClock - Current reference clock for the project
|
|
73
|
-
* @param direction - Edge direction ('backward' or 'forward')
|
|
74
|
-
* @returns Weight value (0 to 1), or 0 if below minWeight
|
|
75
|
-
*/
|
|
76
|
-
export declare function calculateDirectionalDecayWeight(edgeClock: VectorClock, referenceClock: VectorClock, direction: EdgeDirection): number;
|
|
77
|
-
/**
|
|
78
|
-
* Calculate decay weight based on vector clock hop count.
|
|
79
|
-
* @deprecated Use calculateDirectionalDecayWeight for direction-specific curves.
|
|
80
|
-
*
|
|
81
|
-
* @param edgeClock - Vector clock stamped on the edge
|
|
82
|
-
* @param referenceClock - Current reference clock for the project
|
|
83
|
-
* @param config - Vector decay configuration
|
|
84
|
-
* @returns Weight value (0 to 1), or 0 if below minWeight
|
|
85
|
-
*/
|
|
86
|
-
export declare function calculateVectorDecayWeight(edgeClock: VectorClock, referenceClock: VectorClock, config?: VectorDecayConfig): number;
|
|
87
|
-
/**
|
|
88
|
-
* Calculate decay weight with fallback for legacy edges.
|
|
89
|
-
* Uses vector clock decay if available, falls back to time-based decay.
|
|
90
|
-
*
|
|
91
|
-
* @param edgeClockJson - JSON serialized vector clock (may be null for legacy edges)
|
|
92
|
-
* @param referenceClock - Current reference clock for the project
|
|
93
|
-
* @param direction - Edge direction for curve selection
|
|
94
|
-
* @param createdAtMs - Edge creation time in milliseconds (for fallback)
|
|
95
|
-
* @param queryTimeMs - Query time in milliseconds (for fallback)
|
|
96
|
-
* @param timeConfig - Time-based decay configuration (for fallback)
|
|
97
|
-
* @returns Computed weight value
|
|
98
|
-
*/
|
|
99
|
-
export declare function calculateDecayWeightWithFallback(edgeClockJson: string | null, referenceClock: VectorClock, direction: EdgeDirection, createdAtMs: number, queryTimeMs: number, timeConfig: DecayModelConfig): number;
|
|
100
|
-
/**
|
|
101
|
-
* @deprecated Use calculateDecayWeightWithFallback with direction parameter.
|
|
102
|
-
*/
|
|
103
|
-
export declare function calculateDecayWeightWithFallbackLegacy(edgeClockJson: string | null, referenceClock: VectorClock, vectorConfig: VectorDecayConfig, createdAtMs: number, queryTimeMs: number, timeConfig: DecayModelConfig): number;
|
|
104
|
-
/**
|
|
105
|
-
* Calculate boosted weight for edges with multiple links.
|
|
106
|
-
* Edges that have been created multiple times (same source/target pair)
|
|
107
|
-
* get a boost to resist decay.
|
|
108
|
-
*
|
|
109
|
-
* @param baseWeight - Base weight after decay
|
|
110
|
-
* @param linkCount - Number of times this edge was created
|
|
111
|
-
* @returns Boosted weight
|
|
112
|
-
*/
|
|
113
|
-
export declare function applyLinkBoost(baseWeight: number, linkCount: number): number;
|
|
114
|
-
/**
|
|
115
|
-
* Calculate the decay weight at a given age.
|
|
116
|
-
* @param config - Decay model configuration
|
|
117
|
-
* @param ageMs - Age of the edge in milliseconds
|
|
118
|
-
* @returns Weight value (0 to initialWeight)
|
|
119
|
-
*/
|
|
120
|
-
export declare function calculateDecayWeight(config: DecayModelConfig, ageMs: number): number;
|
|
121
|
-
/**
|
|
122
|
-
* Calculate the time when weight reaches zero (or null if asymptotic).
|
|
123
|
-
*/
|
|
124
|
-
export declare function getDeathTime(config: DecayModelConfig): number | null;
|
|
125
|
-
//# sourceMappingURL=decay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|