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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pruner.js","sourceRoot":"","sources":["../../src/storage/pruner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Clock compaction for reference clocks.
|
|
3
|
-
*
|
|
4
|
-
* Reference clocks accumulate agent entries over time. This module provides
|
|
5
|
-
* compaction to prune entries only when ALL edges referencing that agent
|
|
6
|
-
* have fully decayed.
|
|
7
|
-
*
|
|
8
|
-
* Why not prune by tick recency:
|
|
9
|
-
* An agent may not tick for a long time, but edges referencing it could still
|
|
10
|
-
* be queried. Pruning based on tick recency would break hop count calculation
|
|
11
|
-
* for those edges.
|
|
12
|
-
*/
|
|
13
|
-
import { type VectorClock } from './vector-clock.js';
|
|
14
|
-
import { type VectorDecayConfig } from '../storage/decay.js';
|
|
15
|
-
/**
|
|
16
|
-
* Result of clock compaction.
|
|
17
|
-
*/
|
|
18
|
-
export interface CompactionResult {
|
|
19
|
-
/** Agent IDs that were pruned */
|
|
20
|
-
prunedAgents: string[];
|
|
21
|
-
/** Number of agent entries remaining */
|
|
22
|
-
remainingAgents: number;
|
|
23
|
-
/** Duration of compaction in milliseconds */
|
|
24
|
-
durationMs: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Compact the reference clock for a project by removing agent entries
|
|
28
|
-
* that no longer have any live edges referencing them.
|
|
29
|
-
*
|
|
30
|
-
* @param projectSlug - Project identifier
|
|
31
|
-
* @param vectorConfig - Vector decay configuration (optional)
|
|
32
|
-
* @returns Compaction result
|
|
33
|
-
*/
|
|
34
|
-
export declare function compactReferenceClock(projectSlug: string, vectorConfig?: VectorDecayConfig): Promise<CompactionResult>;
|
|
35
|
-
/**
|
|
36
|
-
* Get statistics about clock entries for a project.
|
|
37
|
-
*
|
|
38
|
-
* @param projectSlug - Project identifier
|
|
39
|
-
* @returns Clock statistics
|
|
40
|
-
*/
|
|
41
|
-
export declare function getClockStats(projectSlug: string): {
|
|
42
|
-
agentCount: number;
|
|
43
|
-
totalTicks: number;
|
|
44
|
-
agents: Array<{
|
|
45
|
-
agentId: string;
|
|
46
|
-
ticks: number;
|
|
47
|
-
}>;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Estimate the "age" of edges in hop count terms.
|
|
51
|
-
* Returns distribution of edges by hop count.
|
|
52
|
-
*
|
|
53
|
-
* @param projectSlug - Project identifier
|
|
54
|
-
* @returns Histogram of hop counts
|
|
55
|
-
*/
|
|
56
|
-
export declare function getHopCountDistribution(projectSlug: string): Promise<Map<number, number>>;
|
|
57
|
-
/**
|
|
58
|
-
* Force refresh the reference clock by merging all agent clocks.
|
|
59
|
-
* Useful after data recovery or manual edits.
|
|
60
|
-
*
|
|
61
|
-
* @param projectSlug - Project identifier
|
|
62
|
-
* @returns The refreshed reference clock
|
|
63
|
-
*/
|
|
64
|
-
export declare function refreshReferenceClock(projectSlug: string): VectorClock;
|
|
65
|
-
//# sourceMappingURL=clock-compactor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clock-compactor.d.ts","sourceRoot":"","sources":["../../src/temporal/clock-compactor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAGnF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAyC3B;AA8CD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD,CAYA;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAsB9B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAYtE"}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Clock compaction for reference clocks.
|
|
3
|
-
*
|
|
4
|
-
* Reference clocks accumulate agent entries over time. This module provides
|
|
5
|
-
* compaction to prune entries only when ALL edges referencing that agent
|
|
6
|
-
* have fully decayed.
|
|
7
|
-
*
|
|
8
|
-
* Why not prune by tick recency:
|
|
9
|
-
* An agent may not tick for a long time, but edges referencing it could still
|
|
10
|
-
* be queried. Pruning based on tick recency would break hop count calculation
|
|
11
|
-
* for those edges.
|
|
12
|
-
*/
|
|
13
|
-
import { getDb } from '../storage/db.js';
|
|
14
|
-
import { getReferenceClock, setReferenceClock, getAllAgentClocks, } from '../storage/clock-store.js';
|
|
15
|
-
import { hopCount, deserialize, } from './vector-clock.js';
|
|
16
|
-
import { DEFAULT_VECTOR_DECAY } from '../storage/decay.js';
|
|
17
|
-
import { getConfig } from '../config/memory-config.js';
|
|
18
|
-
/**
|
|
19
|
-
* Compact the reference clock for a project by removing agent entries
|
|
20
|
-
* that no longer have any live edges referencing them.
|
|
21
|
-
*
|
|
22
|
-
* @param projectSlug - Project identifier
|
|
23
|
-
* @param vectorConfig - Vector decay configuration (optional)
|
|
24
|
-
* @returns Compaction result
|
|
25
|
-
*/
|
|
26
|
-
export async function compactReferenceClock(projectSlug, vectorConfig) {
|
|
27
|
-
const startTime = Date.now();
|
|
28
|
-
const config = vectorConfig ?? getConfig().vectorDecay ?? DEFAULT_VECTOR_DECAY;
|
|
29
|
-
const refClock = getReferenceClock(projectSlug);
|
|
30
|
-
const agentIds = Object.keys(refClock);
|
|
31
|
-
if (agentIds.length === 0) {
|
|
32
|
-
return {
|
|
33
|
-
prunedAgents: [],
|
|
34
|
-
remainingAgents: 0,
|
|
35
|
-
durationMs: Date.now() - startTime,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
const prunedAgents = [];
|
|
39
|
-
for (const agentId of agentIds) {
|
|
40
|
-
const hasLiveEdges = await hasEdgesReferencingAgent(projectSlug, agentId, refClock, config);
|
|
41
|
-
if (!hasLiveEdges) {
|
|
42
|
-
prunedAgents.push(agentId);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (prunedAgents.length > 0) {
|
|
46
|
-
// Remove pruned agents from reference clock
|
|
47
|
-
const newClock = {};
|
|
48
|
-
for (const [id, ticks] of Object.entries(refClock)) {
|
|
49
|
-
if (!prunedAgents.includes(id)) {
|
|
50
|
-
newClock[id] = ticks;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
setReferenceClock(projectSlug, newClock);
|
|
54
|
-
}
|
|
55
|
-
return {
|
|
56
|
-
prunedAgents,
|
|
57
|
-
remainingAgents: agentIds.length - prunedAgents.length,
|
|
58
|
-
durationMs: Date.now() - startTime,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Check if any live edges reference a specific agent in their vector clock.
|
|
63
|
-
*
|
|
64
|
-
* @param projectSlug - Project identifier
|
|
65
|
-
* @param agentId - Agent ID to check
|
|
66
|
-
* @param refClock - Current reference clock
|
|
67
|
-
* @param config - Vector decay configuration
|
|
68
|
-
* @returns true if at least one live edge references this agent
|
|
69
|
-
*/
|
|
70
|
-
async function hasEdgesReferencingAgent(projectSlug, agentId, refClock, config) {
|
|
71
|
-
const db = getDb();
|
|
72
|
-
// Find edges in this project whose vector_clock contains this agentId
|
|
73
|
-
// We use LIKE to find JSON containing the agent ID
|
|
74
|
-
const rows = db.prepare(`
|
|
75
|
-
SELECT e.vector_clock FROM edges e
|
|
76
|
-
JOIN chunks c ON e.source_chunk_id = c.id
|
|
77
|
-
WHERE c.session_slug = ?
|
|
78
|
-
AND e.vector_clock LIKE ?
|
|
79
|
-
`).all(projectSlug, `%"${agentId}":%`);
|
|
80
|
-
for (const row of rows) {
|
|
81
|
-
if (!row.vector_clock)
|
|
82
|
-
continue;
|
|
83
|
-
const edgeClock = deserialize(row.vector_clock);
|
|
84
|
-
if (!(agentId in edgeClock))
|
|
85
|
-
continue;
|
|
86
|
-
// Calculate if edge is still alive
|
|
87
|
-
const hops = hopCount(edgeClock, refClock);
|
|
88
|
-
const weight = Math.pow(config.weightPerHop, hops);
|
|
89
|
-
if (weight >= config.minWeight) {
|
|
90
|
-
return true; // At least one live edge references this agent
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return false; // No live edges reference this agent
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Get statistics about clock entries for a project.
|
|
97
|
-
*
|
|
98
|
-
* @param projectSlug - Project identifier
|
|
99
|
-
* @returns Clock statistics
|
|
100
|
-
*/
|
|
101
|
-
export function getClockStats(projectSlug) {
|
|
102
|
-
const refClock = getReferenceClock(projectSlug);
|
|
103
|
-
const agents = Object.entries(refClock).map(([agentId, ticks]) => ({
|
|
104
|
-
agentId,
|
|
105
|
-
ticks,
|
|
106
|
-
}));
|
|
107
|
-
return {
|
|
108
|
-
agentCount: agents.length,
|
|
109
|
-
totalTicks: agents.reduce((sum, a) => sum + a.ticks, 0),
|
|
110
|
-
agents: agents.sort((a, b) => b.ticks - a.ticks),
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Estimate the "age" of edges in hop count terms.
|
|
115
|
-
* Returns distribution of edges by hop count.
|
|
116
|
-
*
|
|
117
|
-
* @param projectSlug - Project identifier
|
|
118
|
-
* @returns Histogram of hop counts
|
|
119
|
-
*/
|
|
120
|
-
export async function getHopCountDistribution(projectSlug) {
|
|
121
|
-
const db = getDb();
|
|
122
|
-
const refClock = getReferenceClock(projectSlug);
|
|
123
|
-
const distribution = new Map();
|
|
124
|
-
const rows = db.prepare(`
|
|
125
|
-
SELECT e.vector_clock FROM edges e
|
|
126
|
-
JOIN chunks c ON e.source_chunk_id = c.id
|
|
127
|
-
WHERE c.session_slug = ?
|
|
128
|
-
AND e.vector_clock IS NOT NULL
|
|
129
|
-
`).all(projectSlug);
|
|
130
|
-
for (const row of rows) {
|
|
131
|
-
if (!row.vector_clock)
|
|
132
|
-
continue;
|
|
133
|
-
const edgeClock = deserialize(row.vector_clock);
|
|
134
|
-
const hops = hopCount(edgeClock, refClock);
|
|
135
|
-
distribution.set(hops, (distribution.get(hops) ?? 0) + 1);
|
|
136
|
-
}
|
|
137
|
-
return distribution;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Force refresh the reference clock by merging all agent clocks.
|
|
141
|
-
* Useful after data recovery or manual edits.
|
|
142
|
-
*
|
|
143
|
-
* @param projectSlug - Project identifier
|
|
144
|
-
* @returns The refreshed reference clock
|
|
145
|
-
*/
|
|
146
|
-
export function refreshReferenceClock(projectSlug) {
|
|
147
|
-
const agentClocks = getAllAgentClocks(projectSlug);
|
|
148
|
-
const refClock = {};
|
|
149
|
-
for (const [, clock] of agentClocks) {
|
|
150
|
-
for (const [agentId, ticks] of Object.entries(clock)) {
|
|
151
|
-
refClock[agentId] = Math.max(refClock[agentId] ?? 0, ticks);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
setReferenceClock(projectSlug, refClock);
|
|
155
|
-
return refClock;
|
|
156
|
-
}
|
|
157
|
-
//# sourceMappingURL=clock-compactor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clock-compactor.js","sourceRoot":"","sources":["../../src/temporal/clock-compactor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,QAAQ,EACR,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA0B,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAcvD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,YAAgC;IAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,YAAY,IAAI,SAAS,EAAE,CAAC,WAAW,IAAI,oBAAoB,CAAC;IAE/E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,CAAC;YAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE5F,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,4CAA4C;QAC5C,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QACD,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,YAAY;QACZ,eAAe,EAAE,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;QACtD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,wBAAwB,CACrC,WAAmB,EACnB,OAAe,EACf,QAAqB,EACrB,MAAyB;IAEzB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,sEAAsE;IACtE,mDAAmD;IACnD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,KAAK,CAAoC,CAAC;IAE1E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,SAAS;QAEhC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;YAAE,SAAS;QAEtC,mCAAmC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEnD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,CAAC,+CAA+C;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,qCAAqC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAK/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO;QACP,KAAK;KACN,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB;IAEnB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAoC,CAAC;IAEvD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,SAAS;QAEhC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE3C,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAgB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/temporal/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/temporal/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
package/dist/temporal/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/temporal/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vector clock implementation for D-T-D memory graph.
|
|
3
|
-
*
|
|
4
|
-
* D-T-D = Data-Transformation-Data: an abstract representation of any
|
|
5
|
-
* processing step as f(input) → output. The "T" can be any transformation:
|
|
6
|
-
* Claude reasoning, human thinking, tool execution, etc.
|
|
7
|
-
*
|
|
8
|
-
* This representation is conducive to graph-based reasoning without getting
|
|
9
|
-
* bogged down in compositional semantics, input/output types, or arities.
|
|
10
|
-
*
|
|
11
|
-
* Vector clocks capture logical causal distance (D-T-D hop count) instead of
|
|
12
|
-
* physical time. This is more meaningful for memory retrieval - especially
|
|
13
|
-
* with parallel thought streams that progress independently.
|
|
14
|
-
*
|
|
15
|
-
* Semantics:
|
|
16
|
-
* - Domain: Per-project (each project has its own clock set)
|
|
17
|
-
* - Entries: Per thought stream (main agent, human, each sub-agent)
|
|
18
|
-
* - Tick: Each D-T-D cycle increments that stream's clock entry
|
|
19
|
-
* - Reference clock: Element-wise max of all stream clocks
|
|
20
|
-
* - Sub-agent spawn: Inherits parent clock
|
|
21
|
-
* - Sub-agent debrief: Merges back via element-wise max
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* A vector clock maps agent IDs to their tick counts.
|
|
25
|
-
*/
|
|
26
|
-
export interface VectorClock {
|
|
27
|
-
[agentId: string]: number;
|
|
28
|
-
}
|
|
29
|
-
/** Main UI agent identifier */
|
|
30
|
-
export declare const MAIN_AGENT_ID = "ui";
|
|
31
|
-
/** Human user agent identifier */
|
|
32
|
-
export declare const HUMAN_AGENT_ID = "human";
|
|
33
|
-
/**
|
|
34
|
-
* Create an empty vector clock.
|
|
35
|
-
*/
|
|
36
|
-
export declare function createClock(): VectorClock;
|
|
37
|
-
/**
|
|
38
|
-
* Increment the tick count for a specific agent.
|
|
39
|
-
* Returns a new clock (immutable operation).
|
|
40
|
-
*
|
|
41
|
-
* @param clock - Current vector clock
|
|
42
|
-
* @param agentId - Agent to increment
|
|
43
|
-
* @returns New vector clock with incremented tick
|
|
44
|
-
*/
|
|
45
|
-
export declare function tick(clock: VectorClock, agentId: string): VectorClock;
|
|
46
|
-
/**
|
|
47
|
-
* Merge two vector clocks by taking the element-wise maximum.
|
|
48
|
-
* Used when:
|
|
49
|
-
* - Sub-agent inherits parent clock at spawn
|
|
50
|
-
* - Parent merges sub-agent clock at debrief
|
|
51
|
-
* - Computing reference clock from all agent clocks
|
|
52
|
-
*
|
|
53
|
-
* @param a - First vector clock
|
|
54
|
-
* @param b - Second vector clock
|
|
55
|
-
* @returns Merged vector clock with max of each entry
|
|
56
|
-
*/
|
|
57
|
-
export declare function merge(a: VectorClock, b: VectorClock): VectorClock;
|
|
58
|
-
/**
|
|
59
|
-
* Calculate the hop count (logical distance) between an edge's clock
|
|
60
|
-
* and the current reference clock.
|
|
61
|
-
*
|
|
62
|
-
* Only entries present in both clocks contribute to the sum:
|
|
63
|
-
* - Agents that didn't exist at edge creation (not in edgeClock) are skipped
|
|
64
|
-
* - Agents that have since terminated (not in refClock) contribute 0
|
|
65
|
-
*
|
|
66
|
-
* This represents how many D-T-D cycles have occurred in the thought streams
|
|
67
|
-
* that were active when the edge was created and still exist now.
|
|
68
|
-
*
|
|
69
|
-
* @param edgeClock - Vector clock stamped on the edge
|
|
70
|
-
* @param refClock - Current reference clock for the project
|
|
71
|
-
* @returns Total hop count (sum of per-agent differences for shared entries)
|
|
72
|
-
*/
|
|
73
|
-
export declare function hopCount(edgeClock: VectorClock, refClock: VectorClock): number;
|
|
74
|
-
/**
|
|
75
|
-
* Check if clock A happened before clock B.
|
|
76
|
-
* A happened before B if all entries in A are <= entries in B
|
|
77
|
-
* and at least one entry in A is < the corresponding entry in B.
|
|
78
|
-
*
|
|
79
|
-
* @param a - First vector clock
|
|
80
|
-
* @param b - Second vector clock
|
|
81
|
-
* @returns true if a happened before b
|
|
82
|
-
*/
|
|
83
|
-
export declare function happenedBefore(a: VectorClock, b: VectorClock): boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Check if two clocks are concurrent (neither happened before the other, and not equal).
|
|
86
|
-
*
|
|
87
|
-
* @param a - First vector clock
|
|
88
|
-
* @param b - Second vector clock
|
|
89
|
-
* @returns true if clocks are concurrent (not equal and incomparable)
|
|
90
|
-
*/
|
|
91
|
-
export declare function areConcurrent(a: VectorClock, b: VectorClock): boolean;
|
|
92
|
-
/**
|
|
93
|
-
* Compare two clocks and return their causal relationship.
|
|
94
|
-
*
|
|
95
|
-
* @param a - First vector clock
|
|
96
|
-
* @param b - Second vector clock
|
|
97
|
-
* @returns 'before' if a < b, 'after' if a > b, 'concurrent' if neither, 'equal' if same
|
|
98
|
-
*/
|
|
99
|
-
export declare function compare(a: VectorClock, b: VectorClock): 'before' | 'after' | 'concurrent' | 'equal';
|
|
100
|
-
/**
|
|
101
|
-
* Get the total number of ticks across all agents.
|
|
102
|
-
* Useful for rough ordering when vector clocks are concurrent.
|
|
103
|
-
*
|
|
104
|
-
* @param clock - Vector clock
|
|
105
|
-
* @returns Sum of all tick counts
|
|
106
|
-
*/
|
|
107
|
-
export declare function totalTicks(clock: VectorClock): number;
|
|
108
|
-
/**
|
|
109
|
-
* Serialize a vector clock to JSON string for database storage.
|
|
110
|
-
*
|
|
111
|
-
* @param clock - Vector clock to serialize
|
|
112
|
-
* @returns JSON string representation
|
|
113
|
-
*/
|
|
114
|
-
export declare function serialize(clock: VectorClock): string;
|
|
115
|
-
/**
|
|
116
|
-
* Deserialize a vector clock from JSON string.
|
|
117
|
-
*
|
|
118
|
-
* @param json - JSON string or null
|
|
119
|
-
* @returns Deserialized vector clock (empty if null or invalid)
|
|
120
|
-
*/
|
|
121
|
-
export declare function deserialize(json: string | null | undefined): VectorClock;
|
|
122
|
-
/**
|
|
123
|
-
* Clone a vector clock.
|
|
124
|
-
*
|
|
125
|
-
* @param clock - Clock to clone
|
|
126
|
-
* @returns New clock with same values
|
|
127
|
-
*/
|
|
128
|
-
export declare function clone(clock: VectorClock): VectorClock;
|
|
129
|
-
/**
|
|
130
|
-
* Check if a clock is empty (no ticks recorded).
|
|
131
|
-
*
|
|
132
|
-
* @param clock - Vector clock to check
|
|
133
|
-
* @returns true if clock has no entries or all entries are 0
|
|
134
|
-
*/
|
|
135
|
-
export declare function isEmpty(clock: VectorClock): boolean;
|
|
136
|
-
/**
|
|
137
|
-
* Get all agent IDs present in a clock.
|
|
138
|
-
*
|
|
139
|
-
* @param clock - Vector clock
|
|
140
|
-
* @returns Array of agent IDs
|
|
141
|
-
*/
|
|
142
|
-
export declare function getAgentIds(clock: VectorClock): string[];
|
|
143
|
-
//# sourceMappingURL=vector-clock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vector-clock.d.ts","sourceRoot":"","sources":["../../src/temporal/vector-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,+BAA+B;AAC/B,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,kCAAkC;AAClC,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;GAEG;AACH,wBAAgB,WAAW,IAAI,WAAW,CAEzC;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAErE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAMjE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,CAO9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAiBtE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAgBrE;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,GACb,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAe7C;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAmBxE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAGnD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,CAExD"}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vector clock implementation for D-T-D memory graph.
|
|
3
|
-
*
|
|
4
|
-
* D-T-D = Data-Transformation-Data: an abstract representation of any
|
|
5
|
-
* processing step as f(input) → output. The "T" can be any transformation:
|
|
6
|
-
* Claude reasoning, human thinking, tool execution, etc.
|
|
7
|
-
*
|
|
8
|
-
* This representation is conducive to graph-based reasoning without getting
|
|
9
|
-
* bogged down in compositional semantics, input/output types, or arities.
|
|
10
|
-
*
|
|
11
|
-
* Vector clocks capture logical causal distance (D-T-D hop count) instead of
|
|
12
|
-
* physical time. This is more meaningful for memory retrieval - especially
|
|
13
|
-
* with parallel thought streams that progress independently.
|
|
14
|
-
*
|
|
15
|
-
* Semantics:
|
|
16
|
-
* - Domain: Per-project (each project has its own clock set)
|
|
17
|
-
* - Entries: Per thought stream (main agent, human, each sub-agent)
|
|
18
|
-
* - Tick: Each D-T-D cycle increments that stream's clock entry
|
|
19
|
-
* - Reference clock: Element-wise max of all stream clocks
|
|
20
|
-
* - Sub-agent spawn: Inherits parent clock
|
|
21
|
-
* - Sub-agent debrief: Merges back via element-wise max
|
|
22
|
-
*/
|
|
23
|
-
import { createLogger } from '../utils/logger.js';
|
|
24
|
-
const log = createLogger('vector-clock');
|
|
25
|
-
/** Main UI agent identifier */
|
|
26
|
-
export const MAIN_AGENT_ID = 'ui';
|
|
27
|
-
/** Human user agent identifier */
|
|
28
|
-
export const HUMAN_AGENT_ID = 'human';
|
|
29
|
-
/**
|
|
30
|
-
* Create an empty vector clock.
|
|
31
|
-
*/
|
|
32
|
-
export function createClock() {
|
|
33
|
-
return {};
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Increment the tick count for a specific agent.
|
|
37
|
-
* Returns a new clock (immutable operation).
|
|
38
|
-
*
|
|
39
|
-
* @param clock - Current vector clock
|
|
40
|
-
* @param agentId - Agent to increment
|
|
41
|
-
* @returns New vector clock with incremented tick
|
|
42
|
-
*/
|
|
43
|
-
export function tick(clock, agentId) {
|
|
44
|
-
return { ...clock, [agentId]: (clock[agentId] ?? 0) + 1 };
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Merge two vector clocks by taking the element-wise maximum.
|
|
48
|
-
* Used when:
|
|
49
|
-
* - Sub-agent inherits parent clock at spawn
|
|
50
|
-
* - Parent merges sub-agent clock at debrief
|
|
51
|
-
* - Computing reference clock from all agent clocks
|
|
52
|
-
*
|
|
53
|
-
* @param a - First vector clock
|
|
54
|
-
* @param b - Second vector clock
|
|
55
|
-
* @returns Merged vector clock with max of each entry
|
|
56
|
-
*/
|
|
57
|
-
export function merge(a, b) {
|
|
58
|
-
const result = { ...a };
|
|
59
|
-
for (const [id, ticks] of Object.entries(b)) {
|
|
60
|
-
result[id] = Math.max(result[id] ?? 0, ticks);
|
|
61
|
-
}
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Calculate the hop count (logical distance) between an edge's clock
|
|
66
|
-
* and the current reference clock.
|
|
67
|
-
*
|
|
68
|
-
* Only entries present in both clocks contribute to the sum:
|
|
69
|
-
* - Agents that didn't exist at edge creation (not in edgeClock) are skipped
|
|
70
|
-
* - Agents that have since terminated (not in refClock) contribute 0
|
|
71
|
-
*
|
|
72
|
-
* This represents how many D-T-D cycles have occurred in the thought streams
|
|
73
|
-
* that were active when the edge was created and still exist now.
|
|
74
|
-
*
|
|
75
|
-
* @param edgeClock - Vector clock stamped on the edge
|
|
76
|
-
* @param refClock - Current reference clock for the project
|
|
77
|
-
* @returns Total hop count (sum of per-agent differences for shared entries)
|
|
78
|
-
*/
|
|
79
|
-
export function hopCount(edgeClock, refClock) {
|
|
80
|
-
let hops = 0;
|
|
81
|
-
for (const agentId of Object.keys(edgeClock)) {
|
|
82
|
-
// refClock[agentId] ?? 0: if agent terminated, contributes 0
|
|
83
|
-
hops += Math.max(0, (refClock[agentId] ?? 0) - edgeClock[agentId]);
|
|
84
|
-
}
|
|
85
|
-
return hops;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Check if clock A happened before clock B.
|
|
89
|
-
* A happened before B if all entries in A are <= entries in B
|
|
90
|
-
* and at least one entry in A is < the corresponding entry in B.
|
|
91
|
-
*
|
|
92
|
-
* @param a - First vector clock
|
|
93
|
-
* @param b - Second vector clock
|
|
94
|
-
* @returns true if a happened before b
|
|
95
|
-
*/
|
|
96
|
-
export function happenedBefore(a, b) {
|
|
97
|
-
const allKeys = new Set([...Object.keys(a), ...Object.keys(b)]);
|
|
98
|
-
let hasStrictlyLess = false;
|
|
99
|
-
for (const key of allKeys) {
|
|
100
|
-
const aVal = a[key] ?? 0;
|
|
101
|
-
const bVal = b[key] ?? 0;
|
|
102
|
-
if (aVal > bVal) {
|
|
103
|
-
return false; // a has a larger value, so a did not happen before b
|
|
104
|
-
}
|
|
105
|
-
if (aVal < bVal) {
|
|
106
|
-
hasStrictlyLess = true;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return hasStrictlyLess;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Check if two clocks are concurrent (neither happened before the other, and not equal).
|
|
113
|
-
*
|
|
114
|
-
* @param a - First vector clock
|
|
115
|
-
* @param b - Second vector clock
|
|
116
|
-
* @returns true if clocks are concurrent (not equal and incomparable)
|
|
117
|
-
*/
|
|
118
|
-
export function areConcurrent(a, b) {
|
|
119
|
-
// First check if they're equal
|
|
120
|
-
const allKeys = new Set([...Object.keys(a), ...Object.keys(b)]);
|
|
121
|
-
let hasAnyDifference = false;
|
|
122
|
-
for (const key of allKeys) {
|
|
123
|
-
if ((a[key] ?? 0) !== (b[key] ?? 0)) {
|
|
124
|
-
hasAnyDifference = true;
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if (!hasAnyDifference) {
|
|
129
|
-
return false; // Equal clocks are not concurrent
|
|
130
|
-
}
|
|
131
|
-
return !happenedBefore(a, b) && !happenedBefore(b, a);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Compare two clocks and return their causal relationship.
|
|
135
|
-
*
|
|
136
|
-
* @param a - First vector clock
|
|
137
|
-
* @param b - Second vector clock
|
|
138
|
-
* @returns 'before' if a < b, 'after' if a > b, 'concurrent' if neither, 'equal' if same
|
|
139
|
-
*/
|
|
140
|
-
export function compare(a, b) {
|
|
141
|
-
if (happenedBefore(a, b))
|
|
142
|
-
return 'before';
|
|
143
|
-
if (happenedBefore(b, a))
|
|
144
|
-
return 'after';
|
|
145
|
-
// Check if equal
|
|
146
|
-
const allKeys = new Set([...Object.keys(a), ...Object.keys(b)]);
|
|
147
|
-
let isEqual = true;
|
|
148
|
-
for (const key of allKeys) {
|
|
149
|
-
if ((a[key] ?? 0) !== (b[key] ?? 0)) {
|
|
150
|
-
isEqual = false;
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return isEqual ? 'equal' : 'concurrent';
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Get the total number of ticks across all agents.
|
|
158
|
-
* Useful for rough ordering when vector clocks are concurrent.
|
|
159
|
-
*
|
|
160
|
-
* @param clock - Vector clock
|
|
161
|
-
* @returns Sum of all tick counts
|
|
162
|
-
*/
|
|
163
|
-
export function totalTicks(clock) {
|
|
164
|
-
return Object.values(clock).reduce((sum, t) => sum + t, 0);
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Serialize a vector clock to JSON string for database storage.
|
|
168
|
-
*
|
|
169
|
-
* @param clock - Vector clock to serialize
|
|
170
|
-
* @returns JSON string representation
|
|
171
|
-
*/
|
|
172
|
-
export function serialize(clock) {
|
|
173
|
-
return JSON.stringify(clock);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Deserialize a vector clock from JSON string.
|
|
177
|
-
*
|
|
178
|
-
* @param json - JSON string or null
|
|
179
|
-
* @returns Deserialized vector clock (empty if null or invalid)
|
|
180
|
-
*/
|
|
181
|
-
export function deserialize(json) {
|
|
182
|
-
if (!json)
|
|
183
|
-
return {};
|
|
184
|
-
try {
|
|
185
|
-
const parsed = JSON.parse(json);
|
|
186
|
-
// Validate it's an object with number values
|
|
187
|
-
if (typeof parsed === 'object' && parsed !== null) {
|
|
188
|
-
const clock = {};
|
|
189
|
-
for (const [key, value] of Object.entries(parsed)) {
|
|
190
|
-
if (typeof value === 'number' && Number.isFinite(value) && value >= 0) {
|
|
191
|
-
clock[key] = value;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return clock;
|
|
195
|
-
}
|
|
196
|
-
return {};
|
|
197
|
-
}
|
|
198
|
-
catch (err) {
|
|
199
|
-
log.warn(`Failed to deserialize clock: ${json}`, { error: err instanceof Error ? err.message : String(err) });
|
|
200
|
-
return {};
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Clone a vector clock.
|
|
205
|
-
*
|
|
206
|
-
* @param clock - Clock to clone
|
|
207
|
-
* @returns New clock with same values
|
|
208
|
-
*/
|
|
209
|
-
export function clone(clock) {
|
|
210
|
-
return { ...clock };
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Check if a clock is empty (no ticks recorded).
|
|
214
|
-
*
|
|
215
|
-
* @param clock - Vector clock to check
|
|
216
|
-
* @returns true if clock has no entries or all entries are 0
|
|
217
|
-
*/
|
|
218
|
-
export function isEmpty(clock) {
|
|
219
|
-
const values = Object.values(clock);
|
|
220
|
-
return values.length === 0 || values.every((v) => v === 0);
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Get all agent IDs present in a clock.
|
|
224
|
-
*
|
|
225
|
-
* @param clock - Vector clock
|
|
226
|
-
* @returns Array of agent IDs
|
|
227
|
-
*/
|
|
228
|
-
export function getAgentIds(clock) {
|
|
229
|
-
return Object.keys(clock).filter((id) => clock[id] > 0);
|
|
230
|
-
}
|
|
231
|
-
//# sourceMappingURL=vector-clock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vector-clock.js","sourceRoot":"","sources":["../../src/temporal/vector-clock.ts"],"names":[],"mappings":"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"}
|