@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-heartbeat-service.d.ts","sourceRoot":"","sources":["../../src/services/run-heartbeat-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAY,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAU,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,
|
|
1
|
+
{"version":3,"file":"run-heartbeat-service.d.ts","sourceRoot":"","sources":["../../src/services/run-heartbeat-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-heartbeat-service.js","sourceRoot":"","sources":["../../src/services/run-heartbeat-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"run-heartbeat-service.js","sourceRoot":"","sources":["../../src/services/run-heartbeat-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import type { Task, TaskId } from "@jamesaphoenix/tx-types";
|
|
|
7
7
|
/**
|
|
8
8
|
* Score breakdown showing each adjustment factor (for CLI display)
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export type ScoreBreakdown = {
|
|
11
11
|
readonly baseScore: number;
|
|
12
12
|
readonly blockingBonus: number;
|
|
13
13
|
readonly blockingCount: number;
|
|
@@ -17,7 +17,7 @@ export interface ScoreBreakdown {
|
|
|
17
17
|
readonly depth: number;
|
|
18
18
|
readonly blockedPenalty: number;
|
|
19
19
|
readonly finalScore: number;
|
|
20
|
-
}
|
|
20
|
+
};
|
|
21
21
|
declare const ScoreService_base: Context.TagClass<ScoreService, "ScoreService", {
|
|
22
22
|
/**
|
|
23
23
|
* Calculate the final score with dynamic adjustments
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-service.d.ts","sourceRoot":"","sources":["../../src/services/score-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE3D;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"score-service.d.ts","sourceRoot":"","sources":["../../src/services/score-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE3D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC;;IAK3B;;OAEG;wBACiB,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAExE;;OAEG;4BACqB,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAEhG;;OAEG;2BACoB,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;IAEnF;;OAEG;+BACwB,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,GAAG,aAAa,CAAC;;AArB/G,qBAAa,YAAa,SAAQ,iBAuB/B;CAAG;AAEN,eAAO,MAAM,gBAAgB,4FAoG5B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-service.js","sourceRoot":"","sources":["../../src/services/score-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAiB,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"score-service.js","sourceRoot":"","sources":["../../src/services/score-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-trace-service.d.ts","sourceRoot":"","sources":["../../src/services/spec-trace-service.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-trace-service.js","sourceRoot":"","sources":["../../src/services/spec-trace-service.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { SqliteClient } from "../db.js";
|
|
3
|
+
import { DatabaseError, ValidationError } from "../errors.js";
|
|
4
|
+
export type StreamInfo = {
|
|
5
|
+
readonly streamId: string;
|
|
6
|
+
readonly configPath: string;
|
|
7
|
+
readonly eventsDir: string;
|
|
8
|
+
readonly name: string | null;
|
|
9
|
+
readonly createdAt: string;
|
|
10
|
+
readonly lastSeq: number;
|
|
11
|
+
readonly nextSeq: number;
|
|
12
|
+
};
|
|
13
|
+
export type StreamProgress = {
|
|
14
|
+
readonly streamId: string;
|
|
15
|
+
readonly lastSeq: number;
|
|
16
|
+
readonly lastEventAt: string | null;
|
|
17
|
+
};
|
|
18
|
+
declare const StreamService_base: Context.TagClass<StreamService, "StreamService", {
|
|
19
|
+
readonly getInfo: () => Effect.Effect<StreamInfo, DatabaseError | ValidationError>;
|
|
20
|
+
readonly reserveSeq: (count: number) => Effect.Effect<{
|
|
21
|
+
streamId: string;
|
|
22
|
+
startSeq: number;
|
|
23
|
+
}, DatabaseError | ValidationError>;
|
|
24
|
+
readonly touchStream: (streamId: string, lastSeq: number, lastEventAt?: string | null) => Effect.Effect<void, DatabaseError>;
|
|
25
|
+
readonly listProgress: () => Effect.Effect<readonly StreamProgress[], DatabaseError>;
|
|
26
|
+
}>;
|
|
27
|
+
export declare class StreamService extends StreamService_base {
|
|
28
|
+
}
|
|
29
|
+
export declare const StreamServiceLive: Layer.Layer<StreamService, never, SqliteClient>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=stream-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-service.d.ts","sourceRoot":"","sources":["../../src/services/stream-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAA;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAQ7D,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AAE5B,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAC,CAAC;;sBA+DjB,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,GAAG,eAAe,CAAC;yBAC7D,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,aAAa,GAAG,eAAe,CAAC;0BACxG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;2BACrG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,cAAc,EAAE,EAAE,aAAa,CAAC;;AANxF,qBAAa,aAAc,SAAQ,kBAQhC;CAAG;AAEN,eAAO,MAAM,iBAAiB,iDAmI7B,CAAA"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Schema } from "effect";
|
|
2
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
|
+
import { dirname, resolve } from "node:path";
|
|
4
|
+
import { SqliteClient } from "../db.js";
|
|
5
|
+
import { DatabaseError, ValidationError } from "../errors.js";
|
|
6
|
+
import { StreamConfigSchema } from "../schemas/sync-events.js";
|
|
7
|
+
import { resolvePathWithin } from "../utils/file-path.js";
|
|
8
|
+
import { generateUlid } from "../utils/ulid.js";
|
|
9
|
+
const DEFAULT_STREAM_CONFIG_PATH = ".tx/stream.json";
|
|
10
|
+
const DEFAULT_STREAMS_DIR = ".tx/streams";
|
|
11
|
+
const validateProjectPath = (path) => Effect.gen(function* () {
|
|
12
|
+
const projectRoot = process.cwd();
|
|
13
|
+
const resolved = resolvePathWithin(projectRoot, path, { useRealpath: true });
|
|
14
|
+
if (!resolved) {
|
|
15
|
+
return yield* Effect.fail(new ValidationError({
|
|
16
|
+
reason: `Path traversal rejected for '${path}': escapes project directory '${projectRoot}'`
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
return resolved;
|
|
20
|
+
});
|
|
21
|
+
const ensureConfigFile = (path) => Effect.gen(function* () {
|
|
22
|
+
const now = new Date().toISOString();
|
|
23
|
+
const readExisting = yield* Effect.tryPromise({
|
|
24
|
+
try: () => readFile(path, "utf-8"),
|
|
25
|
+
catch: (cause) => cause
|
|
26
|
+
}).pipe(Effect.either);
|
|
27
|
+
if (readExisting._tag === "Right") {
|
|
28
|
+
const parsed = yield* Effect.try({
|
|
29
|
+
try: () => JSON.parse(readExisting.right),
|
|
30
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
31
|
+
});
|
|
32
|
+
const config = yield* Effect.try({
|
|
33
|
+
try: () => Schema.decodeUnknownSync(StreamConfigSchema)(parsed),
|
|
34
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
stream_id: config.stream_id,
|
|
38
|
+
created_at: config.created_at,
|
|
39
|
+
name: config.name
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const config = {
|
|
43
|
+
stream_id: generateUlid(),
|
|
44
|
+
created_at: now,
|
|
45
|
+
};
|
|
46
|
+
yield* Effect.tryPromise({
|
|
47
|
+
try: async () => {
|
|
48
|
+
await mkdir(dirname(path), { recursive: true });
|
|
49
|
+
await writeFile(path, `${JSON.stringify(config, null, 2)}\n`, "utf-8");
|
|
50
|
+
},
|
|
51
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
52
|
+
});
|
|
53
|
+
return config;
|
|
54
|
+
});
|
|
55
|
+
export class StreamService extends Context.Tag("StreamService")() {
|
|
56
|
+
}
|
|
57
|
+
export const StreamServiceLive = Layer.effect(StreamService, Effect.gen(function* () {
|
|
58
|
+
const db = yield* SqliteClient;
|
|
59
|
+
const getConfigAndPath = () => Effect.gen(function* () {
|
|
60
|
+
const configPath = yield* validateProjectPath(DEFAULT_STREAM_CONFIG_PATH);
|
|
61
|
+
const streamsRoot = yield* validateProjectPath(DEFAULT_STREAMS_DIR);
|
|
62
|
+
const config = yield* ensureConfigFile(configPath);
|
|
63
|
+
const eventsDir = resolve(streamsRoot, config.stream_id);
|
|
64
|
+
yield* Effect.tryPromise({
|
|
65
|
+
try: async () => {
|
|
66
|
+
await mkdir(eventsDir, { recursive: true });
|
|
67
|
+
},
|
|
68
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
69
|
+
});
|
|
70
|
+
return { configPath, streamsRoot, eventsDir, config };
|
|
71
|
+
});
|
|
72
|
+
const ensureStreamRow = (streamId, createdAt, name) => Effect.try({
|
|
73
|
+
try: () => {
|
|
74
|
+
db.prepare(`INSERT INTO sync_streams (stream_id, name, created_at, last_seq)
|
|
75
|
+
VALUES (?, ?, ?, 0)
|
|
76
|
+
ON CONFLICT(stream_id) DO NOTHING`).run(streamId, name ?? null, createdAt);
|
|
77
|
+
},
|
|
78
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
79
|
+
});
|
|
80
|
+
const getInfo = () => Effect.gen(function* () {
|
|
81
|
+
const { configPath, eventsDir, config } = yield* getConfigAndPath();
|
|
82
|
+
yield* ensureStreamRow(config.stream_id, config.created_at, config.name);
|
|
83
|
+
const row = yield* Effect.try({
|
|
84
|
+
try: () => db.prepare("SELECT name, last_seq FROM sync_streams WHERE stream_id = ?").get(config.stream_id),
|
|
85
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
86
|
+
});
|
|
87
|
+
const lastSeq = row?.last_seq ?? 0;
|
|
88
|
+
return {
|
|
89
|
+
streamId: config.stream_id,
|
|
90
|
+
configPath,
|
|
91
|
+
eventsDir,
|
|
92
|
+
name: row?.name ?? config.name ?? null,
|
|
93
|
+
createdAt: config.created_at,
|
|
94
|
+
lastSeq,
|
|
95
|
+
nextSeq: lastSeq + 1,
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
getInfo,
|
|
100
|
+
reserveSeq: (count) => Effect.gen(function* () {
|
|
101
|
+
if (!Number.isInteger(count) || count < 1) {
|
|
102
|
+
return yield* Effect.fail(new ValidationError({ reason: "count must be >= 1" }));
|
|
103
|
+
}
|
|
104
|
+
const info = yield* getInfo();
|
|
105
|
+
const transactionResult = yield* Effect.try({
|
|
106
|
+
try: () => {
|
|
107
|
+
db.exec("BEGIN IMMEDIATE");
|
|
108
|
+
try {
|
|
109
|
+
const row = db.prepare("SELECT last_seq FROM sync_streams WHERE stream_id = ?").get(info.streamId);
|
|
110
|
+
const current = row?.last_seq ?? 0;
|
|
111
|
+
const start = current + 1;
|
|
112
|
+
const nextLast = current + count;
|
|
113
|
+
db.prepare("UPDATE sync_streams SET last_seq = ? WHERE stream_id = ?").run(nextLast, info.streamId);
|
|
114
|
+
db.exec("COMMIT");
|
|
115
|
+
return { _tag: "success", startSeq: start };
|
|
116
|
+
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
try {
|
|
119
|
+
db.exec("ROLLBACK");
|
|
120
|
+
}
|
|
121
|
+
catch { /* ignore */ }
|
|
122
|
+
return { _tag: "failure", error: e };
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
126
|
+
});
|
|
127
|
+
if (transactionResult._tag === "failure") {
|
|
128
|
+
return yield* Effect.fail(new DatabaseError({ cause: transactionResult.error }));
|
|
129
|
+
}
|
|
130
|
+
const startSeq = transactionResult.startSeq;
|
|
131
|
+
return { streamId: info.streamId, startSeq };
|
|
132
|
+
}),
|
|
133
|
+
touchStream: (streamId, lastSeq, lastEventAt) => Effect.try({
|
|
134
|
+
try: () => {
|
|
135
|
+
db.prepare(`INSERT INTO sync_streams (stream_id, created_at, last_seq, last_event_at)
|
|
136
|
+
VALUES (?, datetime('now'), ?, ?)
|
|
137
|
+
ON CONFLICT(stream_id) DO UPDATE SET
|
|
138
|
+
last_seq = CASE
|
|
139
|
+
WHEN excluded.last_seq > sync_streams.last_seq THEN excluded.last_seq
|
|
140
|
+
ELSE sync_streams.last_seq
|
|
141
|
+
END,
|
|
142
|
+
last_event_at = CASE
|
|
143
|
+
WHEN excluded.last_event_at IS NOT NULL THEN excluded.last_event_at
|
|
144
|
+
ELSE sync_streams.last_event_at
|
|
145
|
+
END`).run(streamId, lastSeq, lastEventAt ?? null);
|
|
146
|
+
},
|
|
147
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
148
|
+
}),
|
|
149
|
+
listProgress: () => Effect.try({
|
|
150
|
+
try: () => {
|
|
151
|
+
const rows = db.prepare("SELECT stream_id, last_seq, last_event_at FROM sync_streams ORDER BY stream_id").all();
|
|
152
|
+
return rows.map((row) => ({
|
|
153
|
+
streamId: row.stream_id,
|
|
154
|
+
lastSeq: row.last_seq,
|
|
155
|
+
lastEventAt: row.last_event_at,
|
|
156
|
+
}));
|
|
157
|
+
},
|
|
158
|
+
catch: (cause) => new DatabaseError({ cause })
|
|
159
|
+
})
|
|
160
|
+
};
|
|
161
|
+
}));
|
|
162
|
+
//# sourceMappingURL=stream-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-service.js","sourceRoot":"","sources":["../../src/services/stream-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { ValidationError } from "../../errors.js";
|
|
3
|
+
import type { AnchorStatus } from "@jamesaphoenix/tx-types";
|
|
4
|
+
import type { VerificationResult, VerifyOptions } from "../anchor-verification.js";
|
|
5
|
+
/** Default batch size per agent (PRD-017: batches of 10) */
|
|
6
|
+
export declare const DEFAULT_BATCH_SIZE = 10;
|
|
7
|
+
/** Maximum concurrent agents (PRD-017: up to 4) */
|
|
8
|
+
export declare const MAX_CONCURRENT_AGENTS = 4;
|
|
9
|
+
/** Minimum batch size to trigger swarm (sequential is fine for small batches) */
|
|
10
|
+
export declare const SWARM_THRESHOLD = 20;
|
|
11
|
+
/** A batch of anchor IDs to verify */
|
|
12
|
+
export type VerificationBatch = {
|
|
13
|
+
readonly batchId: number;
|
|
14
|
+
readonly anchorIds: readonly number[];
|
|
15
|
+
};
|
|
16
|
+
/** Result of a single agent's verification of a batch */
|
|
17
|
+
export type BatchResult = {
|
|
18
|
+
readonly batchId: number;
|
|
19
|
+
readonly results: readonly VerificationResult[];
|
|
20
|
+
readonly duration: number;
|
|
21
|
+
readonly errors: number;
|
|
22
|
+
};
|
|
23
|
+
/** Swarm verification metrics */
|
|
24
|
+
export type SwarmMetrics = {
|
|
25
|
+
readonly totalAnchors: number;
|
|
26
|
+
readonly totalBatches: number;
|
|
27
|
+
readonly agentsUsed: number;
|
|
28
|
+
readonly duration: number;
|
|
29
|
+
readonly agentDurations: readonly number[];
|
|
30
|
+
readonly unchanged: number;
|
|
31
|
+
readonly selfHealed: number;
|
|
32
|
+
readonly drifted: number;
|
|
33
|
+
readonly invalid: number;
|
|
34
|
+
readonly errors: number;
|
|
35
|
+
readonly needsReview: number;
|
|
36
|
+
};
|
|
37
|
+
/** Complete swarm verification result */
|
|
38
|
+
export type SwarmVerificationResult = {
|
|
39
|
+
readonly metrics: SwarmMetrics;
|
|
40
|
+
readonly results: readonly VerificationResult[];
|
|
41
|
+
readonly reviewRequired: readonly number[];
|
|
42
|
+
};
|
|
43
|
+
/** Options for swarm verification */
|
|
44
|
+
export type SwarmVerifyOptions = VerifyOptions & {
|
|
45
|
+
readonly batchSize?: number;
|
|
46
|
+
readonly maxConcurrent?: number;
|
|
47
|
+
readonly forceSwarm?: boolean;
|
|
48
|
+
};
|
|
49
|
+
/** Majority vote result for an anchor */
|
|
50
|
+
export type VoteResult = {
|
|
51
|
+
readonly anchorId: number;
|
|
52
|
+
readonly votes: Map<AnchorStatus | "error", number>;
|
|
53
|
+
readonly consensus: AnchorStatus | null;
|
|
54
|
+
readonly needsReview: boolean;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Partition anchor IDs into batches.
|
|
58
|
+
*/
|
|
59
|
+
export declare const partitionIntoBatches: (anchorIds: readonly number[], batchSize: number) => VerificationBatch[];
|
|
60
|
+
/**
|
|
61
|
+
* Calculate majority vote for conflicting results on the same anchor.
|
|
62
|
+
*/
|
|
63
|
+
export declare const calculateMajorityVote: (results: readonly VerificationResult[]) => Effect.Effect<VoteResult, ValidationError>;
|
|
64
|
+
/**
|
|
65
|
+
* Aggregate batch results into final metrics.
|
|
66
|
+
*/
|
|
67
|
+
export declare const aggregateResults: (batchResults: readonly BatchResult[], startTime: number, agentCount: number) => {
|
|
68
|
+
metrics: Omit<SwarmMetrics, "needsReview">;
|
|
69
|
+
results: VerificationResult[];
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/services/swarm-verification/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { ValidationError } from "../../errors.js";
|
|
3
|
+
/** Default batch size per agent (PRD-017: batches of 10) */
|
|
4
|
+
export const DEFAULT_BATCH_SIZE = 10;
|
|
5
|
+
/** Maximum concurrent agents (PRD-017: up to 4) */
|
|
6
|
+
export const MAX_CONCURRENT_AGENTS = 4;
|
|
7
|
+
/** Minimum batch size to trigger swarm (sequential is fine for small batches) */
|
|
8
|
+
export const SWARM_THRESHOLD = 20;
|
|
9
|
+
/**
|
|
10
|
+
* Partition anchor IDs into batches.
|
|
11
|
+
*/
|
|
12
|
+
export const partitionIntoBatches = (anchorIds, batchSize) => {
|
|
13
|
+
const batches = [];
|
|
14
|
+
for (let i = 0; i < anchorIds.length; i += batchSize) {
|
|
15
|
+
batches.push({
|
|
16
|
+
batchId: batches.length,
|
|
17
|
+
anchorIds: anchorIds.slice(i, i + batchSize)
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return batches;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Calculate majority vote for conflicting results on the same anchor.
|
|
24
|
+
*/
|
|
25
|
+
export const calculateMajorityVote = (results) => Effect.gen(function* () {
|
|
26
|
+
if (results.length === 0) {
|
|
27
|
+
return yield* Effect.fail(new ValidationError({
|
|
28
|
+
reason: "Cannot calculate majority vote with empty results"
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
const anchorId = results[0].anchorId;
|
|
32
|
+
const votes = new Map();
|
|
33
|
+
for (const result of results) {
|
|
34
|
+
const status = result.newStatus;
|
|
35
|
+
votes.set(status, (votes.get(status) ?? 0) + 1);
|
|
36
|
+
}
|
|
37
|
+
let maxVotes = 0;
|
|
38
|
+
let consensus = null;
|
|
39
|
+
let tieCount = 0;
|
|
40
|
+
for (const [status, count] of votes) {
|
|
41
|
+
if (status === "error")
|
|
42
|
+
continue;
|
|
43
|
+
if (count > maxVotes) {
|
|
44
|
+
maxVotes = count;
|
|
45
|
+
consensus = status;
|
|
46
|
+
tieCount = 1;
|
|
47
|
+
}
|
|
48
|
+
else if (count === maxVotes) {
|
|
49
|
+
tieCount++;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const needsReview = tieCount > 1;
|
|
53
|
+
return {
|
|
54
|
+
anchorId,
|
|
55
|
+
votes,
|
|
56
|
+
consensus: needsReview ? null : consensus,
|
|
57
|
+
needsReview
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Aggregate batch results into final metrics.
|
|
62
|
+
*/
|
|
63
|
+
export const aggregateResults = (batchResults, startTime, agentCount) => {
|
|
64
|
+
let unchanged = 0;
|
|
65
|
+
let selfHealed = 0;
|
|
66
|
+
let drifted = 0;
|
|
67
|
+
let invalid = 0;
|
|
68
|
+
let errors = 0;
|
|
69
|
+
const allResults = [];
|
|
70
|
+
const agentDurations = [];
|
|
71
|
+
for (const batch of batchResults) {
|
|
72
|
+
agentDurations.push(batch.duration);
|
|
73
|
+
errors += batch.errors;
|
|
74
|
+
for (const result of batch.results) {
|
|
75
|
+
allResults.push(result);
|
|
76
|
+
switch (result.action) {
|
|
77
|
+
case "unchanged":
|
|
78
|
+
unchanged++;
|
|
79
|
+
break;
|
|
80
|
+
case "self_healed":
|
|
81
|
+
selfHealed++;
|
|
82
|
+
break;
|
|
83
|
+
case "drifted":
|
|
84
|
+
drifted++;
|
|
85
|
+
break;
|
|
86
|
+
case "invalidated":
|
|
87
|
+
invalid++;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
metrics: {
|
|
94
|
+
totalAnchors: allResults.length + errors,
|
|
95
|
+
totalBatches: batchResults.length,
|
|
96
|
+
agentsUsed: agentCount,
|
|
97
|
+
duration: Date.now() - startTime,
|
|
98
|
+
agentDurations,
|
|
99
|
+
unchanged,
|
|
100
|
+
selfHealed,
|
|
101
|
+
drifted,
|
|
102
|
+
invalid,
|
|
103
|
+
errors
|
|
104
|
+
},
|
|
105
|
+
results: allResults
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/services/swarm-verification/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,62 +9,11 @@
|
|
|
9
9
|
* @see docs/prd/PRD-017-invalidation-maintenance.md - IM-004: Bulk invalidation via agent swarm
|
|
10
10
|
*/
|
|
11
11
|
import { Context, Effect, Layer } from "effect";
|
|
12
|
-
import { AnchorVerificationService
|
|
12
|
+
import { AnchorVerificationService } from "./anchor-verification.js";
|
|
13
13
|
import { AnchorRepository } from "../repo/anchor-repo.js";
|
|
14
|
-
import { DatabaseError
|
|
15
|
-
import type
|
|
16
|
-
|
|
17
|
-
export interface VerificationBatch {
|
|
18
|
-
readonly batchId: number;
|
|
19
|
-
readonly anchorIds: readonly number[];
|
|
20
|
-
}
|
|
21
|
-
/** Result of a single agent's verification of a batch */
|
|
22
|
-
export interface BatchResult {
|
|
23
|
-
readonly batchId: number;
|
|
24
|
-
readonly results: readonly VerificationResult[];
|
|
25
|
-
readonly duration: number;
|
|
26
|
-
readonly errors: number;
|
|
27
|
-
}
|
|
28
|
-
/** Swarm verification metrics */
|
|
29
|
-
export interface SwarmMetrics {
|
|
30
|
-
readonly totalAnchors: number;
|
|
31
|
-
readonly totalBatches: number;
|
|
32
|
-
readonly agentsUsed: number;
|
|
33
|
-
readonly duration: number;
|
|
34
|
-
/** Time spent per agent (for load balancing analysis) */
|
|
35
|
-
readonly agentDurations: readonly number[];
|
|
36
|
-
/** Counts by action type */
|
|
37
|
-
readonly unchanged: number;
|
|
38
|
-
readonly selfHealed: number;
|
|
39
|
-
readonly drifted: number;
|
|
40
|
-
readonly invalid: number;
|
|
41
|
-
readonly errors: number;
|
|
42
|
-
/** Edge cases requiring human review (tie votes) */
|
|
43
|
-
readonly needsReview: number;
|
|
44
|
-
}
|
|
45
|
-
/** Complete swarm verification result */
|
|
46
|
-
export interface SwarmVerificationResult {
|
|
47
|
-
readonly metrics: SwarmMetrics;
|
|
48
|
-
readonly results: readonly VerificationResult[];
|
|
49
|
-
/** Anchor IDs that require human review due to tie votes */
|
|
50
|
-
readonly reviewRequired: readonly number[];
|
|
51
|
-
}
|
|
52
|
-
/** Options for swarm verification */
|
|
53
|
-
export interface SwarmVerifyOptions extends VerifyOptions {
|
|
54
|
-
/** Batch size per agent (default: 10) */
|
|
55
|
-
readonly batchSize?: number;
|
|
56
|
-
/** Max concurrent agents (default: 4) */
|
|
57
|
-
readonly maxConcurrent?: number;
|
|
58
|
-
/** Force swarm even for small batches */
|
|
59
|
-
readonly forceSwarm?: boolean;
|
|
60
|
-
}
|
|
61
|
-
/** Majority vote result for an anchor */
|
|
62
|
-
export interface VoteResult {
|
|
63
|
-
readonly anchorId: number;
|
|
64
|
-
readonly votes: Map<AnchorStatus | "error", number>;
|
|
65
|
-
readonly consensus: AnchorStatus | null;
|
|
66
|
-
readonly needsReview: boolean;
|
|
67
|
-
}
|
|
14
|
+
import { DatabaseError } from "../errors.js";
|
|
15
|
+
import { type SwarmVerifyOptions, type SwarmVerificationResult } from "./swarm-verification/shared.js";
|
|
16
|
+
export { calculateMajorityVote, type VerificationBatch, type BatchResult, type SwarmMetrics, type SwarmVerificationResult, type SwarmVerifyOptions, type VoteResult, } from "./swarm-verification/shared.js";
|
|
68
17
|
declare const SwarmVerificationService_base: Context.TagClass<SwarmVerificationService, "SwarmVerificationService", {
|
|
69
18
|
/**
|
|
70
19
|
* Verify anchors using concurrent agents.
|
|
@@ -87,18 +36,5 @@ declare const SwarmVerificationService_base: Context.TagClass<SwarmVerificationS
|
|
|
87
36
|
}>;
|
|
88
37
|
export declare class SwarmVerificationService extends SwarmVerificationService_base {
|
|
89
38
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Calculate majority vote for conflicting results on the same anchor.
|
|
92
|
-
* Used when multiple agents verify the same anchor (edge cases).
|
|
93
|
-
*
|
|
94
|
-
* Rules (per PRD-017):
|
|
95
|
-
* - If 3/4 agents say valid, it's valid
|
|
96
|
-
* - Tie = mark for human review
|
|
97
|
-
*
|
|
98
|
-
* Exported for use in LLM-assisted verification scenarios where multiple
|
|
99
|
-
* agents may verify the same anchor for edge cases.
|
|
100
|
-
*/
|
|
101
|
-
export declare const calculateMajorityVote: (results: readonly VerificationResult[]) => Effect.Effect<VoteResult, ValidationError>;
|
|
102
39
|
export declare const SwarmVerificationServiceLive: Layer.Layer<SwarmVerificationService, never, AnchorRepository | AnchorVerificationService>;
|
|
103
|
-
export {};
|
|
104
40
|
//# sourceMappingURL=swarm-verification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm-verification.d.ts","sourceRoot":"","sources":["../../src/services/swarm-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA6B,MAAM,QAAQ,CAAA;AAC1E,OAAO,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"swarm-verification.d.ts","sourceRoot":"","sources":["../../src/services/swarm-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA6B,MAAM,QAAQ,CAAA;AAC1E,OAAO,EAAE,yBAAyB,EAA+C,MAAM,0BAA0B,CAAA;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,UAAU,GAChB,MAAM,gCAAgC,CAAA;;IASnC;;;OAGG;4BACqB,CACtB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,CAAC,EAAE,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;IAE1D;;OAEG;wBACiB,CAClB,OAAO,CAAC,EAAE,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;IAE1D;;OAEG;yBACkB,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;IAE1D;;;OAGG;iCAC0B,CAC3B,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,CAAC,EAAE,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;;AAlC9D,qBAAa,wBAAyB,SAAQ,6BAoC3C;CAAG;AAMN,eAAO,MAAM,4BAA4B,4FAoUxC,CAAA"}
|