@jamesaphoenix/tx-core 0.8.1 → 0.9.2
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/dist/db.d.ts +6 -6
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +29 -2
- package/dist/db.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/cycle-scan-service-impl.d.ts +28 -0
- package/dist/internal/cycle-scan-service-impl.d.ts.map +1 -0
- package/dist/internal/cycle-scan-service-impl.js +877 -0
- package/dist/internal/cycle-scan-service-impl.js.map +1 -0
- package/dist/internal/doc-service-impl.d.ts +42 -0
- package/dist/internal/doc-service-impl.d.ts.map +1 -0
- package/dist/internal/doc-service-impl.js +812 -0
- package/dist/internal/doc-service-impl.js.map +1 -0
- package/dist/internal/embedding-service-impl.d.ts +202 -0
- package/dist/internal/embedding-service-impl.d.ts.map +1 -0
- package/dist/internal/embedding-service-impl.js +466 -0
- package/dist/internal/embedding-service-impl.js.map +1 -0
- package/dist/internal/memory-service-impl.d.ts +49 -0
- package/dist/internal/memory-service-impl.d.ts.map +1 -0
- package/dist/internal/memory-service-impl.js +1061 -0
- package/dist/internal/memory-service-impl.js.map +1 -0
- package/dist/internal/spec-trace-service-impl.d.ts +50 -0
- package/dist/internal/spec-trace-service-impl.d.ts.map +1 -0
- package/dist/internal/spec-trace-service-impl.js +707 -0
- package/dist/internal/spec-trace-service-impl.js.map +1 -0
- package/dist/internal/sync/service-impl.d.ts +41 -0
- package/dist/internal/sync/service-impl.d.ts.map +1 -0
- package/dist/{services/sync-service.js → internal/sync/service-impl.js} +954 -499
- package/dist/internal/sync/service-impl.js.map +1 -0
- package/dist/layer.d.ts +8 -5
- package/dist/layer.d.ts.map +1 -1
- package/dist/layer.js +22 -10
- package/dist/layer.js.map +1 -1
- package/dist/mappers/anchor.d.ts.map +1 -1
- package/dist/mappers/anchor.js +5 -4
- package/dist/mappers/anchor.js.map +1 -1
- package/dist/mappers/attempt.d.ts.map +1 -1
- package/dist/mappers/attempt.js +2 -1
- package/dist/mappers/attempt.js.map +1 -1
- package/dist/mappers/candidate.d.ts.map +1 -1
- package/dist/mappers/candidate.js +2 -1
- package/dist/mappers/candidate.js.map +1 -1
- package/dist/mappers/claim.d.ts.map +1 -1
- package/dist/mappers/claim.js +2 -1
- package/dist/mappers/claim.js.map +1 -1
- package/dist/mappers/doc.d.ts.map +1 -1
- package/dist/mappers/doc.js +9 -8
- package/dist/mappers/doc.js.map +1 -1
- package/dist/mappers/edge.d.ts.map +1 -1
- package/dist/mappers/edge.js +4 -3
- package/dist/mappers/edge.js.map +1 -1
- package/dist/mappers/file-learning.d.ts.map +1 -1
- package/dist/mappers/file-learning.js +2 -1
- package/dist/mappers/file-learning.js.map +1 -1
- package/dist/mappers/index.d.ts +1 -0
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +2 -0
- package/dist/mappers/index.js.map +1 -1
- package/dist/mappers/learning.d.ts.map +1 -1
- package/dist/mappers/learning.js +4 -3
- package/dist/mappers/learning.js.map +1 -1
- package/dist/mappers/memory.d.ts.map +1 -1
- package/dist/mappers/memory.js +7 -6
- package/dist/mappers/memory.js.map +1 -1
- package/dist/mappers/orchestrator-state.d.ts.map +1 -1
- package/dist/mappers/orchestrator-state.js +2 -1
- package/dist/mappers/orchestrator-state.js.map +1 -1
- package/dist/mappers/pin.d.ts.map +1 -1
- package/dist/mappers/pin.js +2 -1
- package/dist/mappers/pin.js.map +1 -1
- package/dist/mappers/run.d.ts.map +1 -1
- package/dist/mappers/run.js +4 -3
- package/dist/mappers/run.js.map +1 -1
- package/dist/mappers/spec-trace.d.ts +11 -0
- package/dist/mappers/spec-trace.d.ts.map +1 -0
- package/dist/mappers/spec-trace.js +59 -0
- package/dist/mappers/spec-trace.js.map +1 -0
- package/dist/mappers/task.d.ts.map +1 -1
- package/dist/mappers/task.js +4 -4
- package/dist/mappers/task.js.map +1 -1
- package/dist/mappers/worker.d.ts.map +1 -1
- package/dist/mappers/worker.js +2 -1
- package/dist/mappers/worker.js.map +1 -1
- package/dist/migrations-embedded.d.ts.map +1 -1
- package/dist/migrations-embedded.js +15 -0
- package/dist/migrations-embedded.js.map +1 -1
- package/dist/repo/anchor-repo.d.ts +2 -2
- package/dist/repo/anchor-repo.d.ts.map +1 -1
- package/dist/repo/anchor-repo.js +18 -17
- package/dist/repo/anchor-repo.js.map +1 -1
- package/dist/repo/attempt-repo.d.ts.map +1 -1
- package/dist/repo/attempt-repo.js +11 -10
- package/dist/repo/attempt-repo.js.map +1 -1
- package/dist/repo/candidate-repo.d.ts.map +1 -1
- package/dist/repo/candidate-repo.js +8 -7
- package/dist/repo/candidate-repo.js.map +1 -1
- package/dist/repo/claim-repo.d.ts +4 -4
- package/dist/repo/claim-repo.d.ts.map +1 -1
- package/dist/repo/claim-repo.js +14 -13
- package/dist/repo/claim-repo.js.map +1 -1
- package/dist/repo/compaction-repo.d.ts +4 -4
- package/dist/repo/compaction-repo.d.ts.map +1 -1
- package/dist/repo/compaction-repo.js +7 -6
- package/dist/repo/compaction-repo.js.map +1 -1
- package/dist/repo/deduplication-repo.d.ts.map +1 -1
- package/dist/repo/deduplication-repo.js +80 -57
- package/dist/repo/deduplication-repo.js.map +1 -1
- package/dist/repo/dep-repo.d.ts.map +1 -1
- package/dist/repo/dep-repo.js +90 -88
- package/dist/repo/dep-repo.js.map +1 -1
- package/dist/repo/doc-repo.d.ts +2 -63
- package/dist/repo/doc-repo.d.ts.map +1 -1
- package/dist/repo/doc-repo.js +6 -4
- package/dist/repo/doc-repo.js.map +1 -1
- package/dist/repo/doc-repo.types.d.ts +64 -0
- package/dist/repo/doc-repo.types.d.ts.map +1 -0
- package/dist/repo/doc-repo.types.js +2 -0
- package/dist/repo/doc-repo.types.js.map +1 -0
- package/dist/repo/edge-repo.d.ts.map +1 -1
- package/dist/repo/edge-repo.js +91 -81
- package/dist/repo/edge-repo.js.map +1 -1
- package/dist/repo/file-learning-repo.d.ts.map +1 -1
- package/dist/repo/file-learning-repo.js +7 -6
- package/dist/repo/file-learning-repo.js.map +1 -1
- package/dist/repo/guard-repo.d.ts +4 -4
- package/dist/repo/guard-repo.d.ts.map +1 -1
- package/dist/repo/guard-repo.js +8 -7
- package/dist/repo/guard-repo.js.map +1 -1
- package/dist/repo/index.d.ts +1 -0
- package/dist/repo/index.d.ts.map +1 -1
- package/dist/repo/index.js +1 -0
- package/dist/repo/index.js.map +1 -1
- package/dist/repo/label-repo.d.ts +4 -4
- package/dist/repo/label-repo.d.ts.map +1 -1
- package/dist/repo/label-repo.js +9 -8
- package/dist/repo/label-repo.js.map +1 -1
- package/dist/repo/learning-repo.d.ts +2 -2
- package/dist/repo/learning-repo.d.ts.map +1 -1
- package/dist/repo/learning-repo.js +37 -31
- package/dist/repo/learning-repo.js.map +1 -1
- package/dist/repo/memory-repo/document.d.ts +4 -0
- package/dist/repo/memory-repo/document.d.ts.map +1 -0
- package/dist/repo/memory-repo/document.js +205 -0
- package/dist/repo/memory-repo/document.js.map +1 -0
- package/dist/repo/memory-repo/link.d.ts +4 -0
- package/dist/repo/memory-repo/link.d.ts.map +1 -0
- package/dist/repo/memory-repo/link.js +124 -0
- package/dist/repo/memory-repo/link.js.map +1 -0
- package/dist/repo/memory-repo/property.d.ts +4 -0
- package/dist/repo/memory-repo/property.d.ts.map +1 -0
- package/dist/repo/memory-repo/property.js +56 -0
- package/dist/repo/memory-repo/property.js.map +1 -0
- package/dist/repo/memory-repo/shared.d.ts +28 -0
- package/dist/repo/memory-repo/shared.d.ts.map +1 -0
- package/dist/repo/memory-repo/shared.js +63 -0
- package/dist/repo/memory-repo/shared.js.map +1 -0
- package/dist/repo/memory-repo/source.d.ts +4 -0
- package/dist/repo/memory-repo/source.d.ts.map +1 -0
- package/dist/repo/memory-repo/source.js +58 -0
- package/dist/repo/memory-repo/source.js.map +1 -0
- package/dist/repo/memory-repo.d.ts +14 -10
- package/dist/repo/memory-repo.d.ts.map +1 -1
- package/dist/repo/memory-repo.js +8 -527
- package/dist/repo/memory-repo.js.map +1 -1
- package/dist/repo/message-repo.d.ts.map +1 -1
- package/dist/repo/message-repo.js +9 -8
- package/dist/repo/message-repo.js.map +1 -1
- package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
- package/dist/repo/orchestrator-state-repo.js +2 -1
- package/dist/repo/orchestrator-state-repo.js.map +1 -1
- package/dist/repo/pin-repo.d.ts.map +1 -1
- package/dist/repo/pin-repo.js +5 -4
- package/dist/repo/pin-repo.js.map +1 -1
- package/dist/repo/run-repo.d.ts.map +1 -1
- package/dist/repo/run-repo.js +11 -10
- package/dist/repo/run-repo.js.map +1 -1
- package/dist/repo/spec-trace-repo.d.ts +9 -0
- package/dist/repo/spec-trace-repo.d.ts.map +1 -0
- package/dist/repo/spec-trace-repo.filter.d.ts +3 -0
- package/dist/repo/spec-trace-repo.filter.d.ts.map +1 -0
- package/dist/repo/spec-trace-repo.filter.js +13 -0
- package/dist/repo/spec-trace-repo.filter.js.map +1 -0
- package/dist/repo/spec-trace-repo.js +323 -0
- package/dist/repo/spec-trace-repo.js.map +1 -0
- package/dist/repo/spec-trace-repo.types.d.ts +60 -0
- package/dist/repo/spec-trace-repo.types.d.ts.map +1 -0
- package/dist/repo/spec-trace-repo.types.js +2 -0
- package/dist/repo/spec-trace-repo.types.js.map +1 -0
- package/dist/repo/task-repo/factory.d.ts +4 -0
- package/dist/repo/task-repo/factory.d.ts.map +1 -0
- package/dist/repo/task-repo/factory.js +7 -0
- package/dist/repo/task-repo/factory.js.map +1 -0
- package/dist/repo/task-repo/read.d.ts +6 -0
- package/dist/repo/task-repo/read.d.ts.map +1 -0
- package/dist/repo/task-repo/read.js +332 -0
- package/dist/repo/task-repo/read.js.map +1 -0
- package/dist/repo/task-repo/shared.d.ts +10 -0
- package/dist/repo/task-repo/shared.d.ts.map +1 -0
- package/dist/repo/task-repo/shared.js +29 -0
- package/dist/repo/task-repo/shared.js.map +1 -0
- package/dist/repo/task-repo/write.d.ts +6 -0
- package/dist/repo/task-repo/write.d.ts.map +1 -0
- package/dist/repo/task-repo/write.js +182 -0
- package/dist/repo/task-repo/write.js.map +1 -0
- package/dist/repo/task-repo.d.ts +5 -4
- package/dist/repo/task-repo.d.ts.map +1 -1
- package/dist/repo/task-repo.js +2 -520
- package/dist/repo/task-repo.js.map +1 -1
- package/dist/repo/tracked-project-repo.d.ts.map +1 -1
- package/dist/repo/tracked-project-repo.js +6 -5
- package/dist/repo/tracked-project-repo.js.map +1 -1
- package/dist/repo/worker-repo.d.ts.map +1 -1
- package/dist/repo/worker-repo.js +60 -47
- package/dist/repo/worker-repo.js.map +1 -1
- package/dist/schemas/index.d.ts +4 -2
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +2 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/sync-events.d.ts +25 -0
- package/dist/schemas/sync-events.d.ts.map +1 -0
- package/dist/schemas/sync-events.js +23 -0
- package/dist/schemas/sync-events.js.map +1 -0
- package/dist/schemas/sync.d.ts +20 -10
- package/dist/schemas/sync.d.ts.map +1 -1
- package/dist/schemas/sync.js +10 -4
- package/dist/schemas/sync.js.map +1 -1
- package/dist/services/agent-service.d.ts +4 -4
- package/dist/services/agent-service.d.ts.map +1 -1
- package/dist/services/agent-service.js.map +1 -1
- package/dist/services/anchor/anchor-service-core-ops.d.ts +125 -0
- package/dist/services/anchor/anchor-service-core-ops.d.ts.map +1 -0
- package/dist/services/anchor/anchor-service-core-ops.js +41 -0
- package/dist/services/anchor/anchor-service-core-ops.js.map +1 -0
- package/dist/services/anchor/anchor-service-deps.d.ts +10 -0
- package/dist/services/anchor/anchor-service-deps.d.ts.map +1 -0
- package/dist/services/anchor/anchor-service-deps.js +2 -0
- package/dist/services/anchor/anchor-service-deps.js.map +1 -0
- package/dist/services/anchor/anchor-service-ops.d.ts +296 -0
- package/dist/services/anchor/anchor-service-ops.d.ts.map +1 -0
- package/dist/services/anchor/anchor-service-ops.js +9 -0
- package/dist/services/anchor/anchor-service-ops.js.map +1 -0
- package/dist/services/anchor/anchor-service-state-ops.d.ts +116 -0
- package/dist/services/anchor/anchor-service-state-ops.d.ts.map +1 -0
- package/dist/services/anchor/anchor-service-state-ops.js +150 -0
- package/dist/services/anchor/anchor-service-state-ops.js.map +1 -0
- package/dist/services/anchor/anchor-service-validation.d.ts +7 -0
- package/dist/services/anchor/anchor-service-validation.d.ts.map +1 -0
- package/dist/services/anchor/anchor-service-validation.js +114 -0
- package/dist/services/anchor/anchor-service-validation.js.map +1 -0
- package/dist/services/anchor/anchor-service-verification-ops.d.ts +71 -0
- package/dist/services/anchor/anchor-service-verification-ops.d.ts.map +1 -0
- package/dist/services/anchor/anchor-service-verification-ops.js +169 -0
- package/dist/services/anchor/anchor-service-verification-ops.js.map +1 -0
- package/dist/services/anchor/anchor-verification-batch.d.ts +12 -0
- package/dist/services/anchor/anchor-verification-batch.d.ts.map +1 -0
- package/dist/services/anchor/anchor-verification-batch.js +109 -0
- package/dist/services/anchor/anchor-verification-batch.js.map +1 -0
- package/dist/services/anchor/anchor-verification-single.d.ts +7 -0
- package/dist/services/anchor/anchor-verification-single.d.ts.map +1 -0
- package/dist/services/anchor/anchor-verification-single.js +407 -0
- package/dist/services/anchor/anchor-verification-single.js.map +1 -0
- package/dist/services/anchor/anchor-verification-utils.d.ts +19 -0
- package/dist/services/anchor/anchor-verification-utils.d.ts.map +1 -0
- package/dist/services/anchor/anchor-verification-utils.js +107 -0
- package/dist/services/anchor/anchor-verification-utils.js.map +1 -0
- package/dist/services/anchor-service.d.ts +12 -90
- package/dist/services/anchor-service.d.ts.map +1 -1
- package/dist/services/anchor-service.js +5 -530
- package/dist/services/anchor-service.js.map +1 -1
- package/dist/services/anchor-verification.d.ts +9 -60
- package/dist/services/anchor-verification.d.ts.map +1 -1
- package/dist/services/anchor-verification.js +5 -796
- package/dist/services/anchor-verification.js.map +1 -1
- package/dist/services/ast-grep-service/patterns.d.ts +90 -0
- package/dist/services/ast-grep-service/patterns.d.ts.map +1 -0
- package/dist/services/ast-grep-service/patterns.js +261 -0
- package/dist/services/ast-grep-service/patterns.js.map +1 -0
- package/dist/services/ast-grep-service.d.ts +2 -13
- package/dist/services/ast-grep-service.d.ts.map +1 -1
- package/dist/services/ast-grep-service.js +3 -261
- package/dist/services/ast-grep-service.js.map +1 -1
- package/dist/services/auto-sync-service.d.ts +3 -3
- package/dist/services/auto-sync-service.d.ts.map +1 -1
- package/dist/services/auto-sync-service.js +12 -13
- package/dist/services/auto-sync-service.js.map +1 -1
- package/dist/services/compaction-service.d.ts +6 -6
- package/dist/services/compaction-service.d.ts.map +1 -1
- package/dist/services/compaction-service.js +11 -7
- package/dist/services/compaction-service.js.map +1 -1
- package/dist/services/cycle-scan-service.d.ts +1 -27
- package/dist/services/cycle-scan-service.d.ts.map +1 -1
- package/dist/services/cycle-scan-service.js +1 -876
- package/dist/services/cycle-scan-service.js.map +1 -1
- package/dist/services/daemon-service/process.d.ts +93 -0
- package/dist/services/daemon-service/process.d.ts.map +1 -0
- package/dist/services/daemon-service/process.js +325 -0
- package/dist/services/daemon-service/process.js.map +1 -0
- package/dist/services/daemon-service/templates.d.ts +88 -0
- package/dist/services/daemon-service/templates.d.ts.map +1 -0
- package/dist/services/daemon-service/templates.js +119 -0
- package/dist/services/daemon-service/templates.js.map +1 -0
- package/dist/services/daemon-service.d.ts +8 -160
- package/dist/services/daemon-service.d.ts.map +1 -1
- package/dist/services/daemon-service.js +4 -440
- package/dist/services/daemon-service.js.map +1 -1
- package/dist/services/doc-service.d.ts +1 -41
- package/dist/services/doc-service.d.ts.map +1 -1
- package/dist/services/doc-service.js +1 -780
- package/dist/services/doc-service.js.map +1 -1
- package/dist/services/edge-service.d.ts +6 -6
- package/dist/services/edge-service.d.ts.map +1 -1
- package/dist/services/edge-service.js.map +1 -1
- package/dist/services/embedding-service.d.ts +1 -201
- package/dist/services/embedding-service.d.ts.map +1 -1
- package/dist/services/embedding-service.js +1 -465
- package/dist/services/embedding-service.js.map +1 -1
- package/dist/services/feedback-tracker.d.ts +2 -2
- package/dist/services/feedback-tracker.d.ts.map +1 -1
- package/dist/services/feedback-tracker.js.map +1 -1
- package/dist/services/file-watcher-service/shared.d.ts +76 -0
- package/dist/services/file-watcher-service/shared.d.ts.map +1 -0
- package/dist/services/file-watcher-service/shared.js +43 -0
- package/dist/services/file-watcher-service/shared.js.map +1 -0
- package/dist/services/file-watcher-service.d.ts +2 -42
- package/dist/services/file-watcher-service.d.ts.map +1 -1
- package/dist/services/file-watcher-service.js +1 -46
- package/dist/services/file-watcher-service.js.map +1 -1
- package/dist/services/graph-expansion/from-files.d.ts +14 -0
- package/dist/services/graph-expansion/from-files.d.ts.map +1 -0
- package/dist/services/graph-expansion/from-files.js +187 -0
- package/dist/services/graph-expansion/from-files.js.map +1 -0
- package/dist/services/graph-expansion/live.d.ts +11 -0
- package/dist/services/graph-expansion/live.d.ts.map +1 -0
- package/dist/services/graph-expansion/live.js +263 -0
- package/dist/services/graph-expansion/live.js.map +1 -0
- package/dist/services/graph-expansion.d.ts +17 -20
- package/dist/services/graph-expansion.d.ts.map +1 -1
- package/dist/services/graph-expansion.js +2 -439
- package/dist/services/graph-expansion.js.map +1 -1
- package/dist/services/guard-service.d.ts +2 -2
- package/dist/services/guard-service.d.ts.map +1 -1
- package/dist/services/guard-service.js.map +1 -1
- package/dist/services/index.d.ts +3 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/learning-service.d.ts +4 -4
- package/dist/services/learning-service.d.ts.map +1 -1
- package/dist/services/learning-service.js.map +1 -1
- package/dist/services/llm-service.d.ts +4 -4
- package/dist/services/llm-service.d.ts.map +1 -1
- package/dist/services/llm-service.js.map +1 -1
- package/dist/services/memory-retriever-service.d.ts.map +1 -1
- package/dist/services/memory-retriever-service.js.map +1 -1
- package/dist/services/memory-service.d.ts +1 -48
- package/dist/services/memory-service.d.ts.map +1 -1
- package/dist/services/memory-service.js +1 -1060
- package/dist/services/memory-service.js.map +1 -1
- package/dist/services/migration-service.d.ts +6 -6
- package/dist/services/migration-service.d.ts.map +1 -1
- package/dist/services/migration-service.js +6 -2
- package/dist/services/migration-service.js.map +1 -1
- package/dist/services/orchestrator-service.d.ts +2 -2
- package/dist/services/orchestrator-service.d.ts.map +1 -1
- package/dist/services/orchestrator-service.js.map +1 -1
- package/dist/services/pin-service.d.ts.map +1 -1
- package/dist/services/pin-service.js +21 -28
- package/dist/services/pin-service.js.map +1 -1
- package/dist/services/promotion-service.d.ts +4 -4
- package/dist/services/promotion-service.d.ts.map +1 -1
- package/dist/services/promotion-service.js.map +1 -1
- package/dist/services/query-expansion-service.d.ts +2 -2
- package/dist/services/query-expansion-service.d.ts.map +1 -1
- package/dist/services/query-expansion-service.js.map +1 -1
- package/dist/services/reflect-service.d.ts +6 -6
- package/dist/services/reflect-service.d.ts.map +1 -1
- package/dist/services/reflect-service.js.map +1 -1
- package/dist/services/reranker-service.d.ts +2 -2
- package/dist/services/reranker-service.d.ts.map +1 -1
- package/dist/services/reranker-service.js.map +1 -1
- package/dist/services/retriever-scoring.d.ts +52 -0
- package/dist/services/retriever-scoring.d.ts.map +1 -0
- package/dist/services/retriever-scoring.js +146 -0
- package/dist/services/retriever-scoring.js.map +1 -0
- package/dist/services/retriever-service.d.ts.map +1 -1
- package/dist/services/retriever-service.js +1 -191
- package/dist/services/retriever-service.js.map +1 -1
- package/dist/services/run-heartbeat-service.d.ts +10 -10
- package/dist/services/run-heartbeat-service.d.ts.map +1 -1
- package/dist/services/run-heartbeat-service.js.map +1 -1
- package/dist/services/score-service.d.ts +2 -2
- package/dist/services/score-service.d.ts.map +1 -1
- package/dist/services/score-service.js.map +1 -1
- package/dist/services/spec-trace-service.d.ts +2 -0
- package/dist/services/spec-trace-service.d.ts.map +1 -0
- package/dist/services/spec-trace-service.js +2 -0
- package/dist/services/spec-trace-service.js.map +1 -0
- package/dist/services/stream-service.d.ts +31 -0
- package/dist/services/stream-service.d.ts.map +1 -0
- package/dist/services/stream-service.js +162 -0
- package/dist/services/stream-service.js.map +1 -0
- package/dist/services/swarm-verification/shared.d.ts +71 -0
- package/dist/services/swarm-verification/shared.d.ts.map +1 -0
- package/dist/services/swarm-verification/shared.js +108 -0
- package/dist/services/swarm-verification/shared.js.map +1 -0
- package/dist/services/swarm-verification.d.ts +4 -68
- package/dist/services/swarm-verification.d.ts.map +1 -1
- package/dist/services/swarm-verification.js +2 -122
- package/dist/services/swarm-verification.js.map +1 -1
- package/dist/services/sync/converters.d.ts +63 -0
- package/dist/services/sync/converters.d.ts.map +1 -0
- package/dist/services/sync/converters.js +253 -0
- package/dist/services/sync/converters.js.map +1 -0
- package/dist/services/sync/entity-export.d.ts +22 -0
- package/dist/services/sync/entity-export.d.ts.map +1 -0
- package/dist/services/sync/entity-export.js +15 -0
- package/dist/services/sync/entity-export.js.map +1 -0
- package/dist/services/sync/entity-import.d.ts +22 -0
- package/dist/services/sync/entity-import.d.ts.map +1 -0
- package/dist/services/sync/entity-import.js +15 -0
- package/dist/services/sync/entity-import.js.map +1 -0
- package/dist/services/sync/file-utils.d.ts +23 -0
- package/dist/services/sync/file-utils.d.ts.map +1 -0
- package/dist/services/sync/file-utils.js +97 -0
- package/dist/services/sync/file-utils.js.map +1 -0
- package/dist/services/sync/index.d.ts +3 -0
- package/dist/services/sync/index.d.ts.map +1 -0
- package/dist/services/sync/index.js +2 -0
- package/dist/services/sync/index.js.map +1 -0
- package/dist/services/sync/service.d.ts +2 -0
- package/dist/services/sync/service.d.ts.map +1 -0
- package/dist/services/sync/service.js +2 -0
- package/dist/services/sync/service.js.map +1 -0
- package/dist/services/sync/sync-helpers.d.ts +54 -0
- package/dist/services/sync/sync-helpers.d.ts.map +1 -0
- package/dist/services/sync/sync-helpers.js +245 -0
- package/dist/services/sync/sync-helpers.js.map +1 -0
- package/dist/services/sync/types.d.ts +104 -0
- package/dist/services/sync/types.d.ts.map +1 -0
- package/dist/services/sync/types.js +5 -0
- package/dist/services/sync/types.js.map +1 -0
- package/dist/services/task-service/internals.d.ts +36 -0
- package/dist/services/task-service/internals.d.ts.map +1 -0
- package/dist/services/task-service/internals.js +270 -0
- package/dist/services/task-service/internals.js.map +1 -0
- package/dist/services/task-service.d.ts +2 -1
- package/dist/services/task-service.d.ts.map +1 -1
- package/dist/services/task-service.js +28 -236
- package/dist/services/task-service.js.map +1 -1
- package/dist/services/tracing-service.d.ts +2 -2
- package/dist/services/tracing-service.d.ts.map +1 -1
- package/dist/services/tracing-service.js.map +1 -1
- package/dist/services/transcript-adapter.d.ts +6 -6
- package/dist/services/transcript-adapter.d.ts.map +1 -1
- package/dist/services/transcript-adapter.js +3 -8
- package/dist/services/transcript-adapter.js.map +1 -1
- package/dist/services/validation-service.d.ts +8 -8
- package/dist/services/validation-service.d.ts.map +1 -1
- package/dist/services/validation-service.js.map +1 -1
- package/dist/services/verify-service.d.ts +2 -2
- package/dist/services/verify-service.d.ts.map +1 -1
- package/dist/services/verify-service.js.map +1 -1
- package/dist/services/worker-process/runtime.d.ts +51 -0
- package/dist/services/worker-process/runtime.d.ts.map +1 -0
- package/dist/services/worker-process/runtime.js +150 -0
- package/dist/services/worker-process/runtime.js.map +1 -0
- package/dist/services/worker-process.d.ts +3 -18
- package/dist/services/worker-process.d.ts.map +1 -1
- package/dist/services/worker-process.js +3 -173
- package/dist/services/worker-process.js.map +1 -1
- package/dist/services/worker-service.d.ts +6 -6
- package/dist/services/worker-service.d.ts.map +1 -1
- package/dist/services/worker-service.js.map +1 -1
- package/dist/utils/db-result.d.ts +14 -0
- package/dist/utils/db-result.d.ts.map +1 -0
- package/dist/utils/db-result.js +37 -0
- package/dist/utils/db-result.js.map +1 -0
- package/dist/utils/doc-renderer.d.ts +10 -10
- package/dist/utils/doc-renderer.d.ts.map +1 -1
- package/dist/utils/doc-renderer.js.map +1 -1
- package/dist/utils/ears-validator.d.ts +2 -2
- package/dist/utils/ears-validator.d.ts.map +1 -1
- package/dist/utils/ears-validator.js.map +1 -1
- package/dist/utils/file-path.d.ts +27 -0
- package/dist/utils/file-path.d.ts.map +1 -0
- package/dist/utils/file-path.js +77 -0
- package/dist/utils/file-path.js.map +1 -0
- package/dist/utils/glob.d.ts +2 -11
- package/dist/utils/glob.d.ts.map +1 -1
- package/dist/utils/glob.js +22 -13
- package/dist/utils/glob.js.map +1 -1
- package/dist/utils/spec-discovery.d.ts +34 -0
- package/dist/utils/spec-discovery.d.ts.map +1 -0
- package/dist/utils/spec-discovery.js +344 -0
- package/dist/utils/spec-discovery.js.map +1 -0
- package/dist/utils/toml-config.d.ts +7 -2
- package/dist/utils/toml-config.d.ts.map +1 -1
- package/dist/utils/toml-config.js +106 -2
- package/dist/utils/toml-config.js.map +1 -1
- package/dist/utils/ulid.d.ts +8 -0
- package/dist/utils/ulid.d.ts.map +1 -0
- package/dist/utils/ulid.js +30 -0
- package/dist/utils/ulid.js.map +1 -0
- package/dist/worker/hooks.d.ts +10 -10
- package/dist/worker/hooks.d.ts.map +1 -1
- package/dist/worker/run-worker.d.ts.map +1 -1
- package/dist/worker/run-worker.js.map +1 -1
- package/migrations/033_sync_events.sql +33 -0
- package/migrations/034_spec_test_traceability.sql +51 -0
- package/migrations/035_anchor_schema_repair.sql +82 -0
- package/package.json +4 -3
- package/dist/services/sync-service.d.ts +0 -247
- package/dist/services/sync-service.d.ts.map +0 -1
- package/dist/services/sync-service.js.map +0 -1
package/dist/repo/memory-repo.js
CHANGED
|
@@ -6,551 +6,32 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Context, Effect, Layer } from "effect";
|
|
8
8
|
import { SqliteClient } from "../db.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* Use 900 to leave headroom for other parameters in the query.
|
|
14
|
-
*/
|
|
15
|
-
const MAX_SQL_VARIABLES = 900;
|
|
16
|
-
/**
|
|
17
|
-
* Chunk an array into batches that fit within SQLite's variable limit.
|
|
18
|
-
*/
|
|
19
|
-
const chunkBySqlLimit = (items, maxPerChunk = MAX_SQL_VARIABLES) => {
|
|
20
|
-
const chunks = [];
|
|
21
|
-
for (let i = 0; i < items.length; i += maxPerChunk) {
|
|
22
|
-
chunks.push(items.slice(i, i + maxPerChunk));
|
|
23
|
-
}
|
|
24
|
-
return chunks;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* All memory document columns EXCEPT embedding.
|
|
28
|
-
* Avoids loading ~6KB Float32Array per doc for listing/search operations.
|
|
29
|
-
*/
|
|
30
|
-
const COLS_NO_EMBEDDING = "id, file_path, root_dir, title, content, frontmatter, tags, file_hash, file_mtime, created_at, indexed_at";
|
|
31
|
-
/**
|
|
32
|
-
* Same columns but table-qualified with `d.` prefix for JOINs.
|
|
33
|
-
*/
|
|
34
|
-
const COLS_NO_EMBEDDING_QUALIFIED = "d.id, d.file_path, d.root_dir, d.title, d.content, d.frontmatter, d.tags, d.file_hash, d.file_mtime, d.created_at, d.indexed_at";
|
|
35
|
-
/**
|
|
36
|
-
* Build a three-tier FTS5 query for optimal relevance.
|
|
37
|
-
* Reuses the same pattern from learning-repo.ts.
|
|
38
|
-
* Uses Unicode property escapes (\p{L}, \p{N}) so diacritics, CJK, etc. are preserved.
|
|
39
|
-
*/
|
|
40
|
-
const buildFTS5Query = (query) => {
|
|
41
|
-
const sanitized = query.replace(/[^\p{L}\p{N}\s']/gu, "").trim();
|
|
42
|
-
const terms = sanitized
|
|
43
|
-
.split(/\s+/)
|
|
44
|
-
.filter(t => t.length >= 2);
|
|
45
|
-
if (terms.length === 0)
|
|
46
|
-
return "";
|
|
47
|
-
if (terms.length === 1) {
|
|
48
|
-
return `"${terms[0].replace(/"/g, '""')}"`;
|
|
49
|
-
}
|
|
50
|
-
const quoted = terms.map(t => `"${t.replace(/"/g, '""')}"`);
|
|
51
|
-
const phrase = `"${terms.join(" ").replace(/"/g, '""')}"`;
|
|
52
|
-
const near = `NEAR(${quoted.join(" ")}, 10)`;
|
|
53
|
-
const or = quoted.join(" OR ");
|
|
54
|
-
return `(${phrase}) OR (${near}) OR (${or})`;
|
|
55
|
-
};
|
|
56
|
-
// =============================================================================
|
|
57
|
-
// MemoryDocumentRepository
|
|
58
|
-
// =============================================================================
|
|
9
|
+
import { createMemoryDocumentRepository } from "./memory-repo/document.js";
|
|
10
|
+
import { createMemoryLinkRepository } from "./memory-repo/link.js";
|
|
11
|
+
import { createMemoryPropertyRepository } from "./memory-repo/property.js";
|
|
12
|
+
import { createMemorySourceRepository } from "./memory-repo/source.js";
|
|
59
13
|
export class MemoryDocumentRepository extends Context.Tag("MemoryDocumentRepository")() {
|
|
60
14
|
}
|
|
61
15
|
export const MemoryDocumentRepositoryLive = Layer.effect(MemoryDocumentRepository, Effect.gen(function* () {
|
|
62
16
|
const db = yield* SqliteClient;
|
|
63
|
-
return
|
|
64
|
-
upsertDocument: (doc) => Effect.try({
|
|
65
|
-
try: () => {
|
|
66
|
-
// Wrap DELETE + INSERT in a transaction to prevent FTS desync if a crash
|
|
67
|
-
// occurs between the two statements. DELETE fires memory_fts_ad,
|
|
68
|
-
// INSERT fires memory_fts_ai — both must succeed atomically.
|
|
69
|
-
db.exec("BEGIN IMMEDIATE");
|
|
70
|
-
try {
|
|
71
|
-
db.prepare("DELETE FROM memory_documents WHERE file_path = ? AND root_dir = ?").run(doc.filePath, doc.rootDir);
|
|
72
|
-
db.prepare(`
|
|
73
|
-
INSERT INTO memory_documents (id, file_path, root_dir, title, content, frontmatter, tags, file_hash, file_mtime, created_at, indexed_at)
|
|
74
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
75
|
-
`).run(doc.id, doc.filePath, doc.rootDir, doc.title, doc.content, doc.frontmatter, doc.tags, doc.fileHash, doc.fileMtime, doc.createdAt, doc.indexedAt);
|
|
76
|
-
db.exec("COMMIT");
|
|
77
|
-
}
|
|
78
|
-
catch (e) {
|
|
79
|
-
db.exec("ROLLBACK");
|
|
80
|
-
throw e;
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
84
|
-
}),
|
|
85
|
-
findById: (id) => Effect.try({
|
|
86
|
-
try: () => {
|
|
87
|
-
const row = db.prepare(`SELECT ${COLS_NO_EMBEDDING} FROM memory_documents WHERE id = ?`).get(id);
|
|
88
|
-
return row ? rowToMemoryDocumentWithoutEmbedding(row) : null;
|
|
89
|
-
},
|
|
90
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
91
|
-
}),
|
|
92
|
-
findByPath: (filePath, rootDir) => Effect.try({
|
|
93
|
-
try: () => {
|
|
94
|
-
const row = db.prepare(`SELECT ${COLS_NO_EMBEDDING} FROM memory_documents WHERE file_path = ? AND root_dir = ?`).get(filePath, rootDir);
|
|
95
|
-
return row ? rowToMemoryDocumentWithoutEmbedding(row) : null;
|
|
96
|
-
},
|
|
97
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
98
|
-
}),
|
|
99
|
-
findByHash: (hash) => Effect.try({
|
|
100
|
-
try: () => {
|
|
101
|
-
const rows = db.prepare(`SELECT ${COLS_NO_EMBEDDING} FROM memory_documents WHERE file_hash = ?`).all(hash);
|
|
102
|
-
return rows.map(rowToMemoryDocumentWithoutEmbedding);
|
|
103
|
-
},
|
|
104
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
105
|
-
}),
|
|
106
|
-
searchBM25: (query, limit) => Effect.try({
|
|
107
|
-
try: () => {
|
|
108
|
-
const ftsQuery = buildFTS5Query(query);
|
|
109
|
-
if (!ftsQuery)
|
|
110
|
-
return [];
|
|
111
|
-
// Cap limit to prevent unbounded queries.
|
|
112
|
-
// Callers are responsible for over-fetching (e.g. limit * 3) when needed.
|
|
113
|
-
const safeLimit = Math.min(Math.max(1, limit), 1000);
|
|
114
|
-
const rows = db.prepare(`
|
|
115
|
-
SELECT ${COLS_NO_EMBEDDING_QUALIFIED}, bm25(memory_fts) as bm25_score
|
|
116
|
-
FROM memory_documents d
|
|
117
|
-
JOIN memory_fts ON d.rowid = memory_fts.rowid
|
|
118
|
-
WHERE memory_fts MATCH ?
|
|
119
|
-
ORDER BY bm25_score ASC -- Most negative = most relevant in FTS5
|
|
120
|
-
LIMIT ?
|
|
121
|
-
`).all(ftsQuery, safeLimit);
|
|
122
|
-
if (rows.length === 0)
|
|
123
|
-
return [];
|
|
124
|
-
// FTS5 bm25() returns negative values (more negative = more relevant).
|
|
125
|
-
// Negate to get positive scores, then normalize to [0, 1] range.
|
|
126
|
-
const scores = rows.map(r => -r.bm25_score);
|
|
127
|
-
const maxScore = scores[0]; // First row is most relevant (most negative bm25)
|
|
128
|
-
const normalizer = maxScore > 0 ? maxScore : 1;
|
|
129
|
-
return rows.map((row, idx) => ({
|
|
130
|
-
document: rowToMemoryDocumentWithoutEmbedding(row),
|
|
131
|
-
score: Math.max(0, Math.min(1.0, scores[idx] / normalizer))
|
|
132
|
-
}));
|
|
133
|
-
},
|
|
134
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
135
|
-
}),
|
|
136
|
-
findWithEmbeddings: (limit) => Effect.try({
|
|
137
|
-
try: () => {
|
|
138
|
-
// ORDER BY id for deterministic results (no recency bias, but stable across calls)
|
|
139
|
-
const rows = db.prepare(`SELECT * FROM memory_documents WHERE embedding IS NOT NULL ORDER BY id ASC LIMIT ?`).all(limit);
|
|
140
|
-
return rows.map(rowToMemoryDocument);
|
|
141
|
-
},
|
|
142
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
143
|
-
}),
|
|
144
|
-
listAll: (filter) => Effect.try({
|
|
145
|
-
try: () => {
|
|
146
|
-
let sql = `SELECT ${COLS_NO_EMBEDDING} FROM memory_documents`;
|
|
147
|
-
const params = [];
|
|
148
|
-
const conditions = [];
|
|
149
|
-
if (filter?.rootDir) {
|
|
150
|
-
conditions.push("root_dir = ?");
|
|
151
|
-
params.push(filter.rootDir);
|
|
152
|
-
}
|
|
153
|
-
if (filter?.tags && filter.tags.length > 0) {
|
|
154
|
-
// Use json_each for correct tag matching (avoids substring false positives)
|
|
155
|
-
for (const tag of filter.tags) {
|
|
156
|
-
conditions.push(`EXISTS (SELECT 1 FROM json_each(tags) WHERE json_each.value = ?)`);
|
|
157
|
-
params.push(tag);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
if (conditions.length > 0) {
|
|
161
|
-
sql += " WHERE " + conditions.join(" AND ");
|
|
162
|
-
}
|
|
163
|
-
sql += " ORDER BY indexed_at DESC LIMIT 10000";
|
|
164
|
-
const rows = db.prepare(sql).all(...params);
|
|
165
|
-
return rows.map(rowToMemoryDocumentWithoutEmbedding);
|
|
166
|
-
},
|
|
167
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
168
|
-
}),
|
|
169
|
-
deleteByRootDir: (rootDir) => Effect.try({
|
|
170
|
-
try: () => {
|
|
171
|
-
db.exec("BEGIN IMMEDIATE");
|
|
172
|
-
try {
|
|
173
|
-
// Null out target_doc_id for incoming links BEFORE deleting documents
|
|
174
|
-
// (no FK on target_doc_id, so CASCADE won't handle this)
|
|
175
|
-
db.prepare(`UPDATE memory_links SET target_doc_id = NULL
|
|
176
|
-
WHERE target_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
|
|
177
|
-
// Delete outgoing links FROM docs being removed (prevents phantom backlinks)
|
|
178
|
-
db.prepare(`DELETE FROM memory_links
|
|
179
|
-
WHERE source_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
|
|
180
|
-
const result = db.prepare("DELETE FROM memory_documents WHERE root_dir = ?").run(rootDir);
|
|
181
|
-
db.exec("COMMIT");
|
|
182
|
-
return result.changes;
|
|
183
|
-
}
|
|
184
|
-
catch (e) {
|
|
185
|
-
db.exec("ROLLBACK");
|
|
186
|
-
throw e;
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
190
|
-
}),
|
|
191
|
-
deleteById: (id) => Effect.try({
|
|
192
|
-
try: () => {
|
|
193
|
-
db.exec("BEGIN IMMEDIATE");
|
|
194
|
-
try {
|
|
195
|
-
// Null out target_doc_id for incoming links before deleting the document
|
|
196
|
-
db.prepare("UPDATE memory_links SET target_doc_id = NULL WHERE target_doc_id = ?").run(id);
|
|
197
|
-
// Delete outgoing links explicitly (consistent with deleteByRootDir/removeSource)
|
|
198
|
-
db.prepare("DELETE FROM memory_links WHERE source_doc_id = ?").run(id);
|
|
199
|
-
db.prepare("DELETE FROM memory_documents WHERE id = ?").run(id);
|
|
200
|
-
db.exec("COMMIT");
|
|
201
|
-
}
|
|
202
|
-
catch (e) {
|
|
203
|
-
db.exec("ROLLBACK");
|
|
204
|
-
throw e;
|
|
205
|
-
}
|
|
206
|
-
},
|
|
207
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
208
|
-
}),
|
|
209
|
-
deleteByPaths: (rootDir, paths) => Effect.try({
|
|
210
|
-
try: () => {
|
|
211
|
-
if (paths.length === 0)
|
|
212
|
-
return 0;
|
|
213
|
-
let total = 0;
|
|
214
|
-
db.exec("BEGIN IMMEDIATE");
|
|
215
|
-
try {
|
|
216
|
-
for (const chunk of chunkBySqlLimit(paths)) {
|
|
217
|
-
const placeholders = chunk.map(() => "?").join(", ");
|
|
218
|
-
// Null out target_doc_id for incoming links before deleting documents
|
|
219
|
-
db.prepare(`UPDATE memory_links SET target_doc_id = NULL
|
|
220
|
-
WHERE target_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ? AND file_path IN (${placeholders}))`).run(rootDir, ...chunk);
|
|
221
|
-
// Delete outgoing links explicitly (consistent with deleteByRootDir/removeSource)
|
|
222
|
-
db.prepare(`DELETE FROM memory_links
|
|
223
|
-
WHERE source_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ? AND file_path IN (${placeholders}))`).run(rootDir, ...chunk);
|
|
224
|
-
const result = db.prepare(`DELETE FROM memory_documents WHERE root_dir = ? AND file_path IN (${placeholders})`).run(rootDir, ...chunk);
|
|
225
|
-
total += result.changes;
|
|
226
|
-
}
|
|
227
|
-
db.exec("COMMIT");
|
|
228
|
-
}
|
|
229
|
-
catch (e) {
|
|
230
|
-
db.exec("ROLLBACK");
|
|
231
|
-
throw e;
|
|
232
|
-
}
|
|
233
|
-
return total;
|
|
234
|
-
},
|
|
235
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
236
|
-
}),
|
|
237
|
-
updateFileHash: (id, hash) => Effect.try({
|
|
238
|
-
try: () => {
|
|
239
|
-
const result = db.prepare("UPDATE memory_documents SET file_hash = ? WHERE id = ?").run(hash, id);
|
|
240
|
-
if (result.changes === 0) {
|
|
241
|
-
throw new Error(`updateFileHash: no document found with id=${id}`);
|
|
242
|
-
}
|
|
243
|
-
},
|
|
244
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
245
|
-
}),
|
|
246
|
-
updateEmbedding: (id, embedding) => Effect.try({
|
|
247
|
-
try: () => {
|
|
248
|
-
const result = db.prepare("UPDATE memory_documents SET embedding = ? WHERE id = ?").run(float32ArrayToBuffer(embedding), id);
|
|
249
|
-
if (result.changes === 0) {
|
|
250
|
-
throw new Error(`updateEmbedding: no document found with id=${id}`);
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
254
|
-
}),
|
|
255
|
-
count: () => Effect.try({
|
|
256
|
-
try: () => {
|
|
257
|
-
const result = db.prepare("SELECT COUNT(*) as cnt FROM memory_documents").get();
|
|
258
|
-
return result.cnt;
|
|
259
|
-
},
|
|
260
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
261
|
-
}),
|
|
262
|
-
countWithEmbeddings: () => Effect.try({
|
|
263
|
-
try: () => {
|
|
264
|
-
const result = db.prepare("SELECT COUNT(*) as cnt FROM memory_documents WHERE embedding IS NOT NULL").get();
|
|
265
|
-
return result.cnt;
|
|
266
|
-
},
|
|
267
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
268
|
-
}),
|
|
269
|
-
listPathsByRootDir: (rootDir) => Effect.try({
|
|
270
|
-
try: () => {
|
|
271
|
-
const rows = db.prepare("SELECT file_path FROM memory_documents WHERE root_dir = ?").all(rootDir);
|
|
272
|
-
return rows.map(r => r.file_path);
|
|
273
|
-
},
|
|
274
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
275
|
-
}),
|
|
276
|
-
};
|
|
17
|
+
return createMemoryDocumentRepository(db);
|
|
277
18
|
}));
|
|
278
|
-
// =============================================================================
|
|
279
|
-
// MemoryLinkRepository
|
|
280
|
-
// =============================================================================
|
|
281
19
|
export class MemoryLinkRepository extends Context.Tag("MemoryLinkRepository")() {
|
|
282
20
|
}
|
|
283
21
|
export const MemoryLinkRepositoryLive = Layer.effect(MemoryLinkRepository, Effect.gen(function* () {
|
|
284
22
|
const db = yield* SqliteClient;
|
|
285
|
-
return
|
|
286
|
-
insertLinks: (links) => Effect.try({
|
|
287
|
-
try: () => {
|
|
288
|
-
if (links.length === 0)
|
|
289
|
-
return;
|
|
290
|
-
db.exec("BEGIN IMMEDIATE");
|
|
291
|
-
try {
|
|
292
|
-
const stmt = db.prepare("INSERT OR IGNORE INTO memory_links (source_doc_id, target_ref, link_type, created_at) VALUES (?, ?, ?, ?)");
|
|
293
|
-
const now = new Date().toISOString();
|
|
294
|
-
for (const link of links) {
|
|
295
|
-
stmt.run(link.sourceDocId, link.targetRef, link.linkType, now);
|
|
296
|
-
}
|
|
297
|
-
db.exec("COMMIT");
|
|
298
|
-
}
|
|
299
|
-
catch (e) {
|
|
300
|
-
db.exec("ROLLBACK");
|
|
301
|
-
throw e;
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
305
|
-
}),
|
|
306
|
-
findOutgoing: (docId) => Effect.try({
|
|
307
|
-
try: () => {
|
|
308
|
-
const rows = db.prepare("SELECT * FROM memory_links WHERE source_doc_id = ? ORDER BY id").all(docId);
|
|
309
|
-
return rows.map(rowToMemoryLink);
|
|
310
|
-
},
|
|
311
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
312
|
-
}),
|
|
313
|
-
findIncoming: (docId) => Effect.try({
|
|
314
|
-
try: () => {
|
|
315
|
-
const rows = db.prepare("SELECT * FROM memory_links WHERE target_doc_id = ? ORDER BY id").all(docId);
|
|
316
|
-
return rows.map(rowToMemoryLink);
|
|
317
|
-
},
|
|
318
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
319
|
-
}),
|
|
320
|
-
deleteBySource: (docId) => Effect.try({
|
|
321
|
-
try: () => {
|
|
322
|
-
db.exec("BEGIN IMMEDIATE");
|
|
323
|
-
try {
|
|
324
|
-
db.prepare("DELETE FROM memory_links WHERE source_doc_id = ?").run(docId);
|
|
325
|
-
db.exec("COMMIT");
|
|
326
|
-
}
|
|
327
|
-
catch (e) {
|
|
328
|
-
db.exec("ROLLBACK");
|
|
329
|
-
throw e;
|
|
330
|
-
}
|
|
331
|
-
},
|
|
332
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
333
|
-
}),
|
|
334
|
-
resolveTargets: () => Effect.try({
|
|
335
|
-
try: () => {
|
|
336
|
-
// Resolve unresolved target_refs by exact title match or file path match.
|
|
337
|
-
// Two-step approach: SELECT unresolved links, then UPDATE each with best match.
|
|
338
|
-
// Both steps inside one transaction to prevent TOCTOU races.
|
|
339
|
-
db.exec("BEGIN IMMEDIATE");
|
|
340
|
-
try {
|
|
341
|
-
const unresolved = db.prepare("SELECT id, source_doc_id, target_ref FROM memory_links WHERE target_doc_id IS NULL").all();
|
|
342
|
-
if (unresolved.length === 0) {
|
|
343
|
-
db.exec("COMMIT");
|
|
344
|
-
return 0;
|
|
345
|
-
}
|
|
346
|
-
// For each unresolved link, find the best matching document
|
|
347
|
-
// Priority: exact file_path > file_path + .md > title match
|
|
348
|
-
// Tiebreaker: indexed_at ASC then id ASC for deterministic resolution
|
|
349
|
-
// Case-insensitive matching: wikilinks like [[my doc]] must resolve
|
|
350
|
-
// to titles like "My Doc" or file paths like "My Doc.md"
|
|
351
|
-
const findBest = db.prepare(`
|
|
352
|
-
SELECT d.id FROM memory_documents d
|
|
353
|
-
WHERE LOWER(d.file_path) = LOWER(?) OR LOWER(d.file_path) = LOWER(? || '.md') OR LOWER(d.title) = LOWER(?)
|
|
354
|
-
ORDER BY
|
|
355
|
-
CASE
|
|
356
|
-
WHEN LOWER(d.file_path) = LOWER(?) THEN 0
|
|
357
|
-
WHEN LOWER(d.file_path) = LOWER(? || '.md') THEN 1
|
|
358
|
-
ELSE 2
|
|
359
|
-
END,
|
|
360
|
-
d.indexed_at ASC,
|
|
361
|
-
d.id ASC
|
|
362
|
-
LIMIT 1
|
|
363
|
-
`);
|
|
364
|
-
const updateStmt = db.prepare("UPDATE memory_links SET target_doc_id = ? WHERE id = ? AND target_doc_id IS NULL");
|
|
365
|
-
let resolved = 0;
|
|
366
|
-
for (const link of unresolved) {
|
|
367
|
-
const match = findBest.get(link.target_ref, link.target_ref, link.target_ref, link.target_ref, link.target_ref);
|
|
368
|
-
// Skip self-links: a document should not link to itself
|
|
369
|
-
if (match && match.id !== link.source_doc_id) {
|
|
370
|
-
updateStmt.run(match.id, link.id);
|
|
371
|
-
resolved++;
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
db.exec("COMMIT");
|
|
375
|
-
return resolved;
|
|
376
|
-
}
|
|
377
|
-
catch (e) {
|
|
378
|
-
db.exec("ROLLBACK");
|
|
379
|
-
throw e;
|
|
380
|
-
}
|
|
381
|
-
},
|
|
382
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
383
|
-
}),
|
|
384
|
-
insertExplicit: (sourceId, targetRef) => Effect.try({
|
|
385
|
-
try: () => {
|
|
386
|
-
// Wrap INSERT + resolution UPDATE in a transaction to prevent
|
|
387
|
-
// partial failure leaving a permanently-unresolved link row.
|
|
388
|
-
db.exec("BEGIN IMMEDIATE");
|
|
389
|
-
try {
|
|
390
|
-
const now = new Date().toISOString();
|
|
391
|
-
db.prepare("INSERT OR IGNORE INTO memory_links (source_doc_id, target_ref, link_type, created_at) VALUES (?, ?, 'explicit', ?)").run(sourceId, targetRef, now);
|
|
392
|
-
// Attempt immediate resolution so explicit links work without a full index() run
|
|
393
|
-
// Case-insensitive matching (same as resolveTargets)
|
|
394
|
-
const match = db.prepare(`
|
|
395
|
-
SELECT d.id FROM memory_documents d
|
|
396
|
-
WHERE LOWER(d.file_path) = LOWER(?) OR LOWER(d.file_path) = LOWER(? || '.md') OR LOWER(d.title) = LOWER(?)
|
|
397
|
-
ORDER BY
|
|
398
|
-
CASE
|
|
399
|
-
WHEN LOWER(d.file_path) = LOWER(?) THEN 0
|
|
400
|
-
WHEN LOWER(d.file_path) = LOWER(? || '.md') THEN 1
|
|
401
|
-
ELSE 2
|
|
402
|
-
END,
|
|
403
|
-
d.indexed_at ASC, d.id ASC
|
|
404
|
-
LIMIT 1
|
|
405
|
-
`).get(targetRef, targetRef, targetRef, targetRef, targetRef);
|
|
406
|
-
if (match && match.id !== sourceId) {
|
|
407
|
-
db.prepare("UPDATE memory_links SET target_doc_id = ? WHERE source_doc_id = ? AND target_ref = ? AND link_type = 'explicit'").run(match.id, sourceId, targetRef);
|
|
408
|
-
}
|
|
409
|
-
db.exec("COMMIT");
|
|
410
|
-
}
|
|
411
|
-
catch (e) {
|
|
412
|
-
db.exec("ROLLBACK");
|
|
413
|
-
throw e;
|
|
414
|
-
}
|
|
415
|
-
},
|
|
416
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
417
|
-
}),
|
|
418
|
-
count: () => Effect.try({
|
|
419
|
-
try: () => {
|
|
420
|
-
const result = db.prepare("SELECT COUNT(*) as cnt FROM memory_links").get();
|
|
421
|
-
return result.cnt;
|
|
422
|
-
},
|
|
423
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
424
|
-
}),
|
|
425
|
-
};
|
|
23
|
+
return createMemoryLinkRepository(db);
|
|
426
24
|
}));
|
|
427
|
-
// =============================================================================
|
|
428
|
-
// MemoryPropertyRepository
|
|
429
|
-
// =============================================================================
|
|
430
25
|
export class MemoryPropertyRepository extends Context.Tag("MemoryPropertyRepository")() {
|
|
431
26
|
}
|
|
432
27
|
export const MemoryPropertyRepositoryLive = Layer.effect(MemoryPropertyRepository, Effect.gen(function* () {
|
|
433
28
|
const db = yield* SqliteClient;
|
|
434
|
-
return
|
|
435
|
-
setProperty: (docId, key, value) => Effect.try({
|
|
436
|
-
try: () => {
|
|
437
|
-
db.prepare("INSERT INTO memory_properties (doc_id, key, value) VALUES (?, ?, ?) ON CONFLICT(doc_id, key) DO UPDATE SET value = excluded.value").run(docId, key, value);
|
|
438
|
-
},
|
|
439
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
440
|
-
}),
|
|
441
|
-
getProperty: (docId, key) => Effect.try({
|
|
442
|
-
try: () => {
|
|
443
|
-
const row = db.prepare("SELECT * FROM memory_properties WHERE doc_id = ? AND key = ?").get(docId, key);
|
|
444
|
-
return row ? rowToMemoryProperty(row) : null;
|
|
445
|
-
},
|
|
446
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
447
|
-
}),
|
|
448
|
-
getProperties: (docId) => Effect.try({
|
|
449
|
-
try: () => {
|
|
450
|
-
const rows = db.prepare("SELECT * FROM memory_properties WHERE doc_id = ? ORDER BY key").all(docId);
|
|
451
|
-
return rows.map(rowToMemoryProperty);
|
|
452
|
-
},
|
|
453
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
454
|
-
}),
|
|
455
|
-
deleteProperty: (docId, key) => Effect.try({
|
|
456
|
-
try: () => {
|
|
457
|
-
db.prepare("DELETE FROM memory_properties WHERE doc_id = ? AND key = ?").run(docId, key);
|
|
458
|
-
},
|
|
459
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
460
|
-
}),
|
|
461
|
-
syncFromFrontmatter: (docId, properties) => Effect.try({
|
|
462
|
-
try: () => {
|
|
463
|
-
db.exec("BEGIN IMMEDIATE");
|
|
464
|
-
try {
|
|
465
|
-
// Delete existing properties for this doc
|
|
466
|
-
db.prepare("DELETE FROM memory_properties WHERE doc_id = ?").run(docId);
|
|
467
|
-
// Insert new ones
|
|
468
|
-
const stmt = db.prepare("INSERT INTO memory_properties (doc_id, key, value) VALUES (?, ?, ?)");
|
|
469
|
-
for (const [key, value] of Object.entries(properties)) {
|
|
470
|
-
stmt.run(docId, key, String(value));
|
|
471
|
-
}
|
|
472
|
-
db.exec("COMMIT");
|
|
473
|
-
}
|
|
474
|
-
catch (e) {
|
|
475
|
-
db.exec("ROLLBACK");
|
|
476
|
-
throw e;
|
|
477
|
-
}
|
|
478
|
-
},
|
|
479
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
480
|
-
}),
|
|
481
|
-
findByProperty: (key, value) => Effect.try({
|
|
482
|
-
try: () => {
|
|
483
|
-
const rows = value !== undefined
|
|
484
|
-
? db.prepare("SELECT doc_id FROM memory_properties WHERE key = ? AND value = ?").all(key, value)
|
|
485
|
-
: db.prepare("SELECT doc_id FROM memory_properties WHERE key = ?").all(key);
|
|
486
|
-
return rows.map(r => r.doc_id);
|
|
487
|
-
},
|
|
488
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
489
|
-
}),
|
|
490
|
-
};
|
|
29
|
+
return createMemoryPropertyRepository(db);
|
|
491
30
|
}));
|
|
492
|
-
// =============================================================================
|
|
493
|
-
// MemorySourceRepository
|
|
494
|
-
// =============================================================================
|
|
495
31
|
export class MemorySourceRepository extends Context.Tag("MemorySourceRepository")() {
|
|
496
32
|
}
|
|
497
33
|
export const MemorySourceRepositoryLive = Layer.effect(MemorySourceRepository, Effect.gen(function* () {
|
|
498
34
|
const db = yield* SqliteClient;
|
|
499
|
-
return
|
|
500
|
-
addSource: (rootDir, label) => Effect.try({
|
|
501
|
-
try: () => {
|
|
502
|
-
const now = new Date().toISOString();
|
|
503
|
-
db.exec("BEGIN IMMEDIATE");
|
|
504
|
-
try {
|
|
505
|
-
db.prepare("INSERT INTO memory_sources (root_dir, label, created_at) VALUES (?, ?, ?) ON CONFLICT(root_dir) DO UPDATE SET label = excluded.label").run(rootDir, label ?? null, now);
|
|
506
|
-
const row = db.prepare("SELECT * FROM memory_sources WHERE root_dir = ?").get(rootDir);
|
|
507
|
-
db.exec("COMMIT");
|
|
508
|
-
return rowToMemorySource(row);
|
|
509
|
-
}
|
|
510
|
-
catch (e) {
|
|
511
|
-
db.exec("ROLLBACK");
|
|
512
|
-
throw e;
|
|
513
|
-
}
|
|
514
|
-
},
|
|
515
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
516
|
-
}),
|
|
517
|
-
removeSource: (rootDir) => Effect.try({
|
|
518
|
-
try: () => {
|
|
519
|
-
// Atomic removal: null-out incoming links → delete outgoing links → delete documents → delete source
|
|
520
|
-
// All in one transaction to prevent orphaned rows if index() runs concurrently
|
|
521
|
-
db.exec("BEGIN IMMEDIATE");
|
|
522
|
-
try {
|
|
523
|
-
// Null-out incoming target_doc_id references (other sources linking TO docs in this source)
|
|
524
|
-
db.prepare(`UPDATE memory_links SET target_doc_id = NULL
|
|
525
|
-
WHERE target_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
|
|
526
|
-
// Delete outgoing links FROM docs in this source (prevents phantom backlinks)
|
|
527
|
-
db.prepare(`DELETE FROM memory_links
|
|
528
|
-
WHERE source_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
|
|
529
|
-
db.prepare("DELETE FROM memory_documents WHERE root_dir = ?").run(rootDir);
|
|
530
|
-
db.prepare("DELETE FROM memory_sources WHERE root_dir = ?").run(rootDir);
|
|
531
|
-
db.exec("COMMIT");
|
|
532
|
-
}
|
|
533
|
-
catch (e) {
|
|
534
|
-
db.exec("ROLLBACK");
|
|
535
|
-
throw e;
|
|
536
|
-
}
|
|
537
|
-
},
|
|
538
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
539
|
-
}),
|
|
540
|
-
listSources: () => Effect.try({
|
|
541
|
-
try: () => {
|
|
542
|
-
const rows = db.prepare("SELECT * FROM memory_sources ORDER BY created_at").all();
|
|
543
|
-
return rows.map(rowToMemorySource);
|
|
544
|
-
},
|
|
545
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
546
|
-
}),
|
|
547
|
-
findSource: (rootDir) => Effect.try({
|
|
548
|
-
try: () => {
|
|
549
|
-
const row = db.prepare("SELECT * FROM memory_sources WHERE root_dir = ?").get(rootDir);
|
|
550
|
-
return row ? rowToMemorySource(row) : null;
|
|
551
|
-
},
|
|
552
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
553
|
-
}),
|
|
554
|
-
};
|
|
35
|
+
return createMemorySourceRepository(db);
|
|
555
36
|
}));
|
|
556
37
|
//# sourceMappingURL=memory-repo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-repo.js","sourceRoot":"","sources":["../../src/repo/memory-repo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-repo.js","sourceRoot":"","sources":["../../src/repo/memory-repo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AA4CtE,MAAM,OAAO,wBAAyB,SAAQ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAGlF;CAAG;AAEN,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CACtD,wBAAwB,EACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,8BAA8B,CAAC,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CACH,CAAA;AAYD,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAG1E;CAAG;AAEN,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAClD,oBAAoB,EACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,0BAA0B,CAAC,EAAE,CAAC,CAAA;AACvC,CAAC,CAAC,CACH,CAAA;AAWD,MAAM,OAAO,wBAAyB,SAAQ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAGlF;CAAG;AAEN,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CACtD,wBAAwB,EACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,8BAA8B,CAAC,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CACH,CAAA;AASD,MAAM,OAAO,sBAAuB,SAAQ,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAG9E;CAAG;AAEN,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC,MAAM,CACpD,sBAAsB,EACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,4BAA4B,CAAC,EAAE,CAAC,CAAA;AACzC,CAAC,CAAC,CACH,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-repo.d.ts","sourceRoot":"","sources":["../../src/repo/message-repo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;;
|
|
1
|
+
{"version":3,"file":"message-repo.d.ts","sourceRoot":"","sources":["../../src/repo/message-repo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;;IAMlD,4CAA4C;qBAC3B,CAAC,MAAM,EAAE;QACxB,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAE3C;;;OAGG;4BACqB,CAAC,MAAM,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAEtD,mCAAmC;uBAChB,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,aAAa,CAAC;IAE/E,sCAAsC;wBAClB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAE1F,uDAAuD;iCAC1B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEvG,mEAAmE;kCACrC,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAEzG,6CAA6C;4BACrB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAE7E,qDAAqD;0BAC/B,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEjF,2CAA2C;2BACpB,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAhDpF,qBAAa,iBAAkB,SAAQ,sBAkDpC;CAAG;AAEN,eAAO,MAAM,qBAAqB,qDA8KjC,CAAA"}
|