@jamesaphoenix/tx-core 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +3 -2
- 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,466 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { EmbeddingUnavailableError } from "../errors.js";
|
|
3
|
-
/**
|
|
4
|
-
* Model dimensions for OpenAI text-embedding-3 models.
|
|
5
|
-
* @see https://platform.openai.com/docs/models/embeddings
|
|
6
|
-
*/
|
|
7
|
-
const OPENAI_MODEL_DIMENSIONS = {
|
|
8
|
-
"text-embedding-3-small": 1536,
|
|
9
|
-
"text-embedding-3-large": 3072,
|
|
10
|
-
"text-embedding-ada-002": 1536 // Legacy model
|
|
11
|
-
};
|
|
12
|
-
const DEFAULT_LOCAL_EMBEDDING_MODEL_URI = "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf";
|
|
13
|
-
const DEFAULT_LOCAL_EMBEDDING_DIMENSIONS = 768;
|
|
14
|
-
// =============================================================================
|
|
15
|
-
// Dimension Validation
|
|
16
|
-
// =============================================================================
|
|
17
|
-
/**
|
|
18
|
-
* Validates that an embedding vector has the expected number of dimensions.
|
|
19
|
-
* This prevents silent data corruption when switching embedding providers
|
|
20
|
-
* (e.g., 256-dim local to 1536-dim OpenAI) without re-embedding existing data.
|
|
21
|
-
*
|
|
22
|
-
* @internal Exported for testing purposes
|
|
23
|
-
*/
|
|
24
|
-
export const validateEmbeddingDimensions = (vector, expectedDimensions) => {
|
|
25
|
-
if (vector.length !== expectedDimensions) {
|
|
26
|
-
return Effect.fail(new EmbeddingUnavailableError({
|
|
27
|
-
reason: `Embedding dimension mismatch: expected ${expectedDimensions}, got ${vector.length}. This may indicate a provider change without re-embedding.`
|
|
28
|
-
}));
|
|
29
|
-
}
|
|
30
|
-
return Effect.succeed(vector);
|
|
31
|
-
};
|
|
32
|
-
// =============================================================================
|
|
33
|
-
// Runtime Interface Validators
|
|
34
|
-
// =============================================================================
|
|
35
|
-
/**
|
|
36
|
-
* Validates that an object conforms to the Llama interface we depend on.
|
|
37
|
-
* This guards against API changes in node-llama-cpp breaking at runtime.
|
|
38
|
-
* @internal Exported for testing purposes
|
|
39
|
-
*/
|
|
40
|
-
export function isValidLlama(obj) {
|
|
41
|
-
return (obj !== null &&
|
|
42
|
-
typeof obj === "object" &&
|
|
43
|
-
"loadModel" in obj &&
|
|
44
|
-
typeof obj.loadModel === "function");
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Validates that an object conforms to the LlamaModel interface we depend on.
|
|
48
|
-
* @internal Exported for testing purposes
|
|
49
|
-
*/
|
|
50
|
-
export function isValidLlamaModel(obj) {
|
|
51
|
-
return (obj !== null &&
|
|
52
|
-
typeof obj === "object" &&
|
|
53
|
-
"createEmbeddingContext" in obj &&
|
|
54
|
-
typeof obj.createEmbeddingContext === "function");
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Validates that an object conforms to the LlamaEmbeddingContext interface we depend on.
|
|
58
|
-
* @internal Exported for testing purposes
|
|
59
|
-
*/
|
|
60
|
-
export function isValidLlamaEmbeddingContext(obj) {
|
|
61
|
-
return (obj !== null &&
|
|
62
|
-
typeof obj === "object" &&
|
|
63
|
-
"getEmbeddingFor" in obj &&
|
|
64
|
-
typeof obj.getEmbeddingFor === "function");
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Validates that an object conforms to the OpenAIClient interface we depend on.
|
|
68
|
-
* This guards against API changes in the openai package breaking at runtime.
|
|
69
|
-
* @internal Exported for testing purposes
|
|
70
|
-
*/
|
|
71
|
-
export function isValidOpenAIClient(obj) {
|
|
72
|
-
return (obj !== null &&
|
|
73
|
-
typeof obj === "object" &&
|
|
74
|
-
"embeddings" in obj &&
|
|
75
|
-
typeof obj.embeddings === "object" &&
|
|
76
|
-
obj.embeddings !== null &&
|
|
77
|
-
"create" in obj.embeddings &&
|
|
78
|
-
typeof obj.embeddings.create === "function");
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* EmbeddingService provides vector embeddings for text using local models.
|
|
82
|
-
*
|
|
83
|
-
* Design: DD-010 specifies lazy-loading with node-llama-cpp and embeddinggemma-300M GGUF model.
|
|
84
|
-
* The service gracefully degrades when the model is unavailable.
|
|
85
|
-
*/
|
|
86
|
-
export class EmbeddingService extends Context.Tag("EmbeddingService")() {
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Noop fallback - always returns failure.
|
|
90
|
-
* Used when node-llama-cpp is not available or embeddings are disabled.
|
|
91
|
-
*/
|
|
92
|
-
export const EmbeddingServiceNoop = Layer.succeed(EmbeddingService, {
|
|
93
|
-
embed: () => Effect.fail(new EmbeddingUnavailableError({ reason: "No embedding model configured" })),
|
|
94
|
-
embedBatch: () => Effect.fail(new EmbeddingUnavailableError({ reason: "No embedding model configured" })),
|
|
95
|
-
isAvailable: () => Effect.succeed(false),
|
|
96
|
-
dimensions: 0
|
|
97
|
-
});
|
|
98
|
-
/**
|
|
99
|
-
* Live implementation with node-llama-cpp.
|
|
100
|
-
* Lazy-loads the model on first use and caches the context.
|
|
101
|
-
*/
|
|
102
|
-
export const EmbeddingServiceLive = Layer.scoped(EmbeddingService, Effect.gen(function* () {
|
|
103
|
-
const localModelUri = yield* Config.string("TX_LOCAL_EMBEDDING_MODEL_URI").pipe(Config.withDefault(DEFAULT_LOCAL_EMBEDDING_MODEL_URI), Effect.mapError(() => new EmbeddingUnavailableError({
|
|
104
|
-
reason: "Failed to read TX_LOCAL_EMBEDDING_MODEL_URI config"
|
|
105
|
-
})));
|
|
106
|
-
const localModelDirectory = yield* Config.string("TX_LOCAL_EMBEDDING_MODEL_DIR").pipe(Effect.option);
|
|
107
|
-
const localModelDownloadRaw = yield* Config.string("TX_LOCAL_EMBEDDING_DOWNLOAD").pipe(Config.withDefault("0"), Effect.mapError(() => new EmbeddingUnavailableError({
|
|
108
|
-
reason: "Failed to read TX_LOCAL_EMBEDDING_DOWNLOAD config"
|
|
109
|
-
})));
|
|
110
|
-
const localDimensionsRaw = yield* Config.string("TX_LOCAL_EMBEDDING_DIMENSIONS").pipe(Config.withDefault(String(DEFAULT_LOCAL_EMBEDDING_DIMENSIONS)), Effect.mapError(() => new EmbeddingUnavailableError({
|
|
111
|
-
reason: "Failed to read TX_LOCAL_EMBEDDING_DIMENSIONS config"
|
|
112
|
-
})));
|
|
113
|
-
const localModelAutoDownload = ["1", "true", "yes", "on"].includes(localModelDownloadRaw.trim().toLowerCase());
|
|
114
|
-
const localEmbeddingDimensions = Number.parseInt(localDimensionsRaw.trim(), 10);
|
|
115
|
-
if (Number.isNaN(localEmbeddingDimensions) ||
|
|
116
|
-
localEmbeddingDimensions <= 0) {
|
|
117
|
-
return yield* Effect.fail(new EmbeddingUnavailableError({
|
|
118
|
-
reason: `Invalid TX_LOCAL_EMBEDDING_DIMENSIONS value "${localDimensionsRaw}". ` +
|
|
119
|
-
`Expected a positive integer (for embeddinggemma, use 768).`,
|
|
120
|
-
}));
|
|
121
|
-
}
|
|
122
|
-
// State for lazy-loaded context
|
|
123
|
-
const stateRef = yield* Ref.make({
|
|
124
|
-
context: null,
|
|
125
|
-
lastActivity: Date.now()
|
|
126
|
-
});
|
|
127
|
-
/**
|
|
128
|
-
* Ensure the embedding context is loaded.
|
|
129
|
-
* Lazy-loads node-llama-cpp and the model on first call.
|
|
130
|
-
*/
|
|
131
|
-
const ensureContext = Effect.gen(function* () {
|
|
132
|
-
const state = yield* Ref.get(stateRef);
|
|
133
|
-
if (state.context) {
|
|
134
|
-
yield* Ref.update(stateRef, s => ({ ...s, lastActivity: Date.now() }));
|
|
135
|
-
return state.context;
|
|
136
|
-
}
|
|
137
|
-
// Lazy load node-llama-cpp
|
|
138
|
-
const nodeLlamaCpp = yield* Effect.tryPromise({
|
|
139
|
-
try: async () => {
|
|
140
|
-
const mod = await import("node-llama-cpp");
|
|
141
|
-
return mod;
|
|
142
|
-
},
|
|
143
|
-
catch: () => new EmbeddingUnavailableError({ reason: "node-llama-cpp not installed" })
|
|
144
|
-
});
|
|
145
|
-
// Get llama instance with runtime validation
|
|
146
|
-
const llamaRaw = yield* Effect.tryPromise({
|
|
147
|
-
try: () => nodeLlamaCpp.getLlama(),
|
|
148
|
-
catch: (e) => new EmbeddingUnavailableError({ reason: `Failed to initialize llama: ${String(e)}` })
|
|
149
|
-
});
|
|
150
|
-
if (!isValidLlama(llamaRaw)) {
|
|
151
|
-
return yield* Effect.fail(new EmbeddingUnavailableError({
|
|
152
|
-
reason: "node-llama-cpp getLlama() returned incompatible interface - missing loadModel method"
|
|
153
|
-
}));
|
|
154
|
-
}
|
|
155
|
-
const llama = llamaRaw;
|
|
156
|
-
// Resolve local path from model URI/path before loading.
|
|
157
|
-
const modelPath = yield* Effect.tryPromise({
|
|
158
|
-
try: async () => {
|
|
159
|
-
if (typeof nodeLlamaCpp.resolveModelFile !== "function") {
|
|
160
|
-
return localModelUri;
|
|
161
|
-
}
|
|
162
|
-
const resolveOptions = {
|
|
163
|
-
download: localModelAutoDownload ? "auto" : false,
|
|
164
|
-
cli: false,
|
|
165
|
-
};
|
|
166
|
-
if (Option.isSome(localModelDirectory)) {
|
|
167
|
-
resolveOptions.directory = localModelDirectory.value;
|
|
168
|
-
}
|
|
169
|
-
return await nodeLlamaCpp.resolveModelFile(localModelUri, resolveOptions);
|
|
170
|
-
},
|
|
171
|
-
catch: (e) => new EmbeddingUnavailableError({
|
|
172
|
-
reason: `Failed to resolve local embedding model from URI/path ` +
|
|
173
|
-
`"${localModelUri}": ${String(e)}. ` +
|
|
174
|
-
`Set TX_LOCAL_EMBEDDING_DOWNLOAD=1 to auto-download, or point TX_LOCAL_EMBEDDING_MODEL_URI to an existing .gguf file.`,
|
|
175
|
-
}),
|
|
176
|
-
});
|
|
177
|
-
// Load model - uses HuggingFace model spec format
|
|
178
|
-
const modelRaw = yield* Effect.tryPromise({
|
|
179
|
-
try: () => llama.loadModel({ modelPath }),
|
|
180
|
-
catch: (e) => new EmbeddingUnavailableError({ reason: `Failed to load model: ${String(e)}` })
|
|
181
|
-
});
|
|
182
|
-
if (!isValidLlamaModel(modelRaw)) {
|
|
183
|
-
return yield* Effect.fail(new EmbeddingUnavailableError({
|
|
184
|
-
reason: "node-llama-cpp loadModel() returned incompatible interface - missing createEmbeddingContext method"
|
|
185
|
-
}));
|
|
186
|
-
}
|
|
187
|
-
const model = modelRaw;
|
|
188
|
-
// Create embedding context
|
|
189
|
-
const contextRaw = yield* Effect.tryPromise({
|
|
190
|
-
try: () => model.createEmbeddingContext({ threads: 4 }),
|
|
191
|
-
catch: (e) => new EmbeddingUnavailableError({ reason: `Failed to create embedding context: ${String(e)}` })
|
|
192
|
-
});
|
|
193
|
-
if (!isValidLlamaEmbeddingContext(contextRaw)) {
|
|
194
|
-
return yield* Effect.fail(new EmbeddingUnavailableError({
|
|
195
|
-
reason: "node-llama-cpp createEmbeddingContext() returned incompatible interface - missing getEmbeddingFor method"
|
|
196
|
-
}));
|
|
197
|
-
}
|
|
198
|
-
const context = contextRaw;
|
|
199
|
-
yield* Ref.set(stateRef, { context, lastActivity: Date.now() });
|
|
200
|
-
return context;
|
|
201
|
-
});
|
|
202
|
-
/**
|
|
203
|
-
* Format text for query embeddings (search queries).
|
|
204
|
-
* Uses Nomic-style task prefixes for better semantic matching.
|
|
205
|
-
*/
|
|
206
|
-
const formatQuery = (text) => `task: search result | query: ${text}`;
|
|
207
|
-
/**
|
|
208
|
-
* Format text for document embeddings (stored documents).
|
|
209
|
-
*/
|
|
210
|
-
const formatDoc = (text) => `text: ${text}`;
|
|
211
|
-
return {
|
|
212
|
-
embed: (text) => Effect.gen(function* () {
|
|
213
|
-
const ctx = yield* ensureContext;
|
|
214
|
-
const result = yield* Effect.tryPromise({
|
|
215
|
-
try: () => ctx.getEmbeddingFor(formatQuery(text)),
|
|
216
|
-
catch: (e) => new EmbeddingUnavailableError({ reason: `Embedding failed: ${String(e)}` })
|
|
217
|
-
});
|
|
218
|
-
return yield* validateEmbeddingDimensions(new Float32Array(result.vector), localEmbeddingDimensions);
|
|
219
|
-
}),
|
|
220
|
-
embedBatch: (texts) => Effect.gen(function* () {
|
|
221
|
-
const ctx = yield* ensureContext;
|
|
222
|
-
const results = [];
|
|
223
|
-
for (const text of texts) {
|
|
224
|
-
const result = yield* Effect.tryPromise({
|
|
225
|
-
try: () => ctx.getEmbeddingFor(formatDoc(text)),
|
|
226
|
-
catch: (e) => new EmbeddingUnavailableError({ reason: `Batch embedding failed: ${String(e)}` })
|
|
227
|
-
});
|
|
228
|
-
yield* Ref.update(stateRef, s => ({ ...s, lastActivity: Date.now() }));
|
|
229
|
-
const validated = yield* validateEmbeddingDimensions(new Float32Array(result.vector), localEmbeddingDimensions);
|
|
230
|
-
results.push(validated);
|
|
231
|
-
}
|
|
232
|
-
return results;
|
|
233
|
-
}),
|
|
234
|
-
isAvailable: () => Effect.succeed(true),
|
|
235
|
-
dimensions: localEmbeddingDimensions
|
|
236
|
-
};
|
|
237
|
-
}));
|
|
238
|
-
/**
|
|
239
|
-
* OpenAI implementation using text-embedding-3 models.
|
|
240
|
-
* Uses OPENAI_API_KEY from environment and optional TX_OPENAI_EMBEDDING_MODEL config.
|
|
241
|
-
*
|
|
242
|
-
* Supported models:
|
|
243
|
-
* - text-embedding-3-small (1536 dimensions, default)
|
|
244
|
-
* - text-embedding-3-large (3072 dimensions)
|
|
245
|
-
* - text-embedding-ada-002 (1536 dimensions, legacy)
|
|
246
|
-
*/
|
|
247
|
-
export const EmbeddingServiceOpenAI = Layer.effect(EmbeddingService, Effect.gen(function* () {
|
|
248
|
-
// Read API key from environment
|
|
249
|
-
const apiKey = yield* Config.string("OPENAI_API_KEY").pipe(Effect.mapError(() => new EmbeddingUnavailableError({
|
|
250
|
-
reason: "OPENAI_API_KEY environment variable is not set"
|
|
251
|
-
})));
|
|
252
|
-
// Read model from environment with default
|
|
253
|
-
const model = yield* Config.string("TX_OPENAI_EMBEDDING_MODEL").pipe(Config.withDefault("text-embedding-3-small"), Effect.mapError(() => new EmbeddingUnavailableError({
|
|
254
|
-
reason: "Failed to read TX_OPENAI_EMBEDDING_MODEL config"
|
|
255
|
-
})));
|
|
256
|
-
// Determine dimensions based on model
|
|
257
|
-
const dimensions = OPENAI_MODEL_DIMENSIONS[model] ?? 1536;
|
|
258
|
-
// Lazy-load client
|
|
259
|
-
let client = null;
|
|
260
|
-
const ensureClient = Effect.gen(function* () {
|
|
261
|
-
if (client)
|
|
262
|
-
return client;
|
|
263
|
-
// Dynamic import of OpenAI SDK (optional peer dependency)
|
|
264
|
-
const OpenAI = yield* Effect.tryPromise({
|
|
265
|
-
try: async () => {
|
|
266
|
-
// @ts-expect-error - openai is an optional peer dependency
|
|
267
|
-
const mod = await import("openai");
|
|
268
|
-
return mod.default;
|
|
269
|
-
},
|
|
270
|
-
catch: () => new EmbeddingUnavailableError({
|
|
271
|
-
reason: "openai package is not installed"
|
|
272
|
-
})
|
|
273
|
-
});
|
|
274
|
-
const clientRaw = new OpenAI({ apiKey });
|
|
275
|
-
if (!isValidOpenAIClient(clientRaw)) {
|
|
276
|
-
return yield* Effect.fail(new EmbeddingUnavailableError({
|
|
277
|
-
reason: "OpenAI SDK returned incompatible interface - missing embeddings.create method"
|
|
278
|
-
}));
|
|
279
|
-
}
|
|
280
|
-
client = clientRaw;
|
|
281
|
-
return client;
|
|
282
|
-
});
|
|
283
|
-
return {
|
|
284
|
-
embed: (text) => Effect.gen(function* () {
|
|
285
|
-
const openai = yield* ensureClient;
|
|
286
|
-
const response = yield* Effect.tryPromise({
|
|
287
|
-
try: () => openai.embeddings.create({
|
|
288
|
-
model,
|
|
289
|
-
input: text
|
|
290
|
-
}),
|
|
291
|
-
catch: (e) => new EmbeddingUnavailableError({
|
|
292
|
-
reason: `OpenAI embedding failed: ${String(e)}`
|
|
293
|
-
})
|
|
294
|
-
});
|
|
295
|
-
if (!response.data[0]?.embedding) {
|
|
296
|
-
return yield* Effect.fail(new EmbeddingUnavailableError({
|
|
297
|
-
reason: "OpenAI returned empty embedding"
|
|
298
|
-
}));
|
|
299
|
-
}
|
|
300
|
-
return yield* validateEmbeddingDimensions(new Float32Array(response.data[0].embedding), dimensions);
|
|
301
|
-
}),
|
|
302
|
-
embedBatch: (texts) => Effect.gen(function* () {
|
|
303
|
-
if (texts.length === 0) {
|
|
304
|
-
return [];
|
|
305
|
-
}
|
|
306
|
-
const openai = yield* ensureClient;
|
|
307
|
-
// OpenAI supports batch embedding via array input
|
|
308
|
-
const response = yield* Effect.tryPromise({
|
|
309
|
-
try: () => openai.embeddings.create({
|
|
310
|
-
model,
|
|
311
|
-
input: [...texts] // Convert readonly to mutable
|
|
312
|
-
}),
|
|
313
|
-
catch: (e) => new EmbeddingUnavailableError({
|
|
314
|
-
reason: `OpenAI batch embedding failed: ${String(e)}`
|
|
315
|
-
})
|
|
316
|
-
});
|
|
317
|
-
// Sort by index to ensure correct order
|
|
318
|
-
const sorted = [...response.data].sort((a, b) => a.index - b.index);
|
|
319
|
-
const results = [];
|
|
320
|
-
for (const item of sorted) {
|
|
321
|
-
const validated = yield* validateEmbeddingDimensions(new Float32Array(item.embedding), dimensions);
|
|
322
|
-
results.push(validated);
|
|
323
|
-
}
|
|
324
|
-
return results;
|
|
325
|
-
}),
|
|
326
|
-
isAvailable: () => Effect.succeed(true),
|
|
327
|
-
dimensions
|
|
328
|
-
};
|
|
329
|
-
}));
|
|
330
|
-
/**
|
|
331
|
-
* Auto-detecting layer that selects the appropriate embedding backend.
|
|
332
|
-
*
|
|
333
|
-
* Priority:
|
|
334
|
-
* 1. TX_EMBEDDER env var override ("openai", "local", "noop")
|
|
335
|
-
* 2. OPENAI_API_KEY set → Use OpenAI (text-embedding-3-small)
|
|
336
|
-
* 3. node-llama-cpp available → Use local embeddings
|
|
337
|
-
* 4. Neither available → Use Noop (graceful degradation)
|
|
338
|
-
*/
|
|
339
|
-
export const EmbeddingServiceAuto = Layer.unwrapEffect(Effect.gen(function* () {
|
|
340
|
-
// Check for TX_EMBEDDER override first
|
|
341
|
-
const embedderOverride = yield* Config.string("TX_EMBEDDER").pipe(Effect.option);
|
|
342
|
-
if (Option.isSome(embedderOverride)) {
|
|
343
|
-
const override = embedderOverride.value.toLowerCase().trim();
|
|
344
|
-
switch (override) {
|
|
345
|
-
case "openai":
|
|
346
|
-
yield* Effect.logDebug("EmbeddingService: Using OpenAI (TX_EMBEDDER override)");
|
|
347
|
-
return EmbeddingServiceOpenAI;
|
|
348
|
-
case "local":
|
|
349
|
-
yield* Effect.logDebug("EmbeddingService: Using local node-llama-cpp (TX_EMBEDDER override)");
|
|
350
|
-
return EmbeddingServiceLive;
|
|
351
|
-
case "noop":
|
|
352
|
-
yield* Effect.logDebug("EmbeddingService: Using noop (TX_EMBEDDER override)");
|
|
353
|
-
return EmbeddingServiceNoop;
|
|
354
|
-
default:
|
|
355
|
-
// Invalid override value - continue with auto-detection
|
|
356
|
-
yield* Effect.logDebug(`EmbeddingService: Invalid TX_EMBEDDER value "${override}", falling back to auto-detection`);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
// Check for OpenAI API key
|
|
360
|
-
const openaiKey = yield* Config.string("OPENAI_API_KEY").pipe(Effect.option);
|
|
361
|
-
if (Option.isSome(openaiKey) && openaiKey.value.trim().length > 0) {
|
|
362
|
-
yield* Effect.logDebug("EmbeddingService: Using OpenAI (OPENAI_API_KEY detected)");
|
|
363
|
-
return EmbeddingServiceOpenAI;
|
|
364
|
-
}
|
|
365
|
-
// Fall back to node-llama-cpp if available
|
|
366
|
-
const llamaAvailable = yield* Effect.tryPromise({
|
|
367
|
-
try: async () => {
|
|
368
|
-
await import("node-llama-cpp");
|
|
369
|
-
return true;
|
|
370
|
-
},
|
|
371
|
-
catch: () => false
|
|
372
|
-
}).pipe(Effect.catchAll(() => Effect.succeed(false)));
|
|
373
|
-
if (llamaAvailable) {
|
|
374
|
-
yield* Effect.logDebug("EmbeddingService: Using local node-llama-cpp (package available)");
|
|
375
|
-
return EmbeddingServiceLive;
|
|
376
|
-
}
|
|
377
|
-
yield* Effect.logDebug("EmbeddingService: Using noop (no embedder available)");
|
|
378
|
-
return EmbeddingServiceNoop;
|
|
379
|
-
}));
|
|
380
|
-
/**
|
|
381
|
-
* Create an EmbeddingService layer from a custom embedder configuration.
|
|
382
|
-
*
|
|
383
|
-
* This factory allows SDK users to integrate any embedding provider
|
|
384
|
-
* (OpenAI, Cohere, local models, etc.) by providing simple async functions.
|
|
385
|
-
*
|
|
386
|
-
* @param config - Configuration with embed function and dimensions
|
|
387
|
-
* @returns An Effect Layer providing EmbeddingService
|
|
388
|
-
*
|
|
389
|
-
* @example
|
|
390
|
-
* ```typescript
|
|
391
|
-
* import { createEmbedderLayer, makeMinimalLayer } from "@jamesaphoenix/tx-core"
|
|
392
|
-
* import { Layer, Effect } from "effect"
|
|
393
|
-
*
|
|
394
|
-
* // Create custom embedder layer
|
|
395
|
-
* const myEmbedder = createEmbedderLayer({
|
|
396
|
-
* embed: async (text) => callMyEmbeddingAPI(text),
|
|
397
|
-
* dimensions: 768,
|
|
398
|
-
* name: "my-custom-embedder"
|
|
399
|
-
* })
|
|
400
|
-
*
|
|
401
|
-
* // Use with tx application layer
|
|
402
|
-
* const appLayer = makeMinimalLayer(":memory:").pipe(
|
|
403
|
-
* Layer.provideMerge(myEmbedder)
|
|
404
|
-
* )
|
|
405
|
-
*
|
|
406
|
-
* // Run effects with custom embedder
|
|
407
|
-
* const program = Effect.gen(function* () {
|
|
408
|
-
* const embedding = yield* EmbeddingService
|
|
409
|
-
* const vector = yield* embedding.embed("Hello world")
|
|
410
|
-
* console.log(`Vector dimensions: ${vector.length}`)
|
|
411
|
-
* })
|
|
412
|
-
*
|
|
413
|
-
* Effect.runPromise(program.pipe(Effect.provide(appLayer)))
|
|
414
|
-
* ```
|
|
415
|
-
*/
|
|
416
|
-
export const createEmbedderLayer = (config) => {
|
|
417
|
-
const embedderName = config.name ?? "custom-embedder";
|
|
418
|
-
return Layer.succeed(EmbeddingService, {
|
|
419
|
-
embed: (text) => Effect.gen(function* () {
|
|
420
|
-
const vector = yield* Effect.tryPromise({
|
|
421
|
-
try: () => config.embed(text),
|
|
422
|
-
catch: (error) => new EmbeddingUnavailableError({
|
|
423
|
-
reason: `${embedderName} embed failed: ${String(error)}`
|
|
424
|
-
})
|
|
425
|
-
});
|
|
426
|
-
return yield* validateEmbeddingDimensions(vector, config.dimensions);
|
|
427
|
-
}),
|
|
428
|
-
embedBatch: (texts) => {
|
|
429
|
-
// Use custom batch implementation if provided
|
|
430
|
-
if (config.embedBatch) {
|
|
431
|
-
return Effect.gen(function* () {
|
|
432
|
-
const vectors = yield* Effect.tryPromise({
|
|
433
|
-
try: () => config.embedBatch(texts),
|
|
434
|
-
catch: (error) => new EmbeddingUnavailableError({
|
|
435
|
-
reason: `${embedderName} embedBatch failed: ${String(error)}`
|
|
436
|
-
})
|
|
437
|
-
});
|
|
438
|
-
const results = [];
|
|
439
|
-
for (const vector of vectors) {
|
|
440
|
-
const validated = yield* validateEmbeddingDimensions(vector, config.dimensions);
|
|
441
|
-
results.push(validated);
|
|
442
|
-
}
|
|
443
|
-
return results;
|
|
444
|
-
});
|
|
445
|
-
}
|
|
446
|
-
// Fall back to sequential embed calls
|
|
447
|
-
return Effect.gen(function* () {
|
|
448
|
-
const results = [];
|
|
449
|
-
for (const text of texts) {
|
|
450
|
-
const embedding = yield* Effect.tryPromise({
|
|
451
|
-
try: () => config.embed(text),
|
|
452
|
-
catch: (error) => new EmbeddingUnavailableError({
|
|
453
|
-
reason: `${embedderName} embed failed: ${String(error)}`
|
|
454
|
-
})
|
|
455
|
-
});
|
|
456
|
-
const validated = yield* validateEmbeddingDimensions(embedding, config.dimensions);
|
|
457
|
-
results.push(validated);
|
|
458
|
-
}
|
|
459
|
-
return results;
|
|
460
|
-
});
|
|
461
|
-
},
|
|
462
|
-
isAvailable: () => Effect.succeed(true),
|
|
463
|
-
dimensions: config.dimensions
|
|
464
|
-
});
|
|
465
|
-
};
|
|
1
|
+
export * from "../internal/embedding-service-impl.js";
|
|
466
2
|
//# sourceMappingURL=embedding-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA"}
|
|
@@ -4,10 +4,10 @@ import { EdgeService } from "./edge-service.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Input for recording which learnings were used in a run.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export type LearningUsageFeedback = {
|
|
8
8
|
readonly id: number;
|
|
9
9
|
readonly helpful: boolean;
|
|
10
|
-
}
|
|
10
|
+
};
|
|
11
11
|
declare const FeedbackTrackerService_base: Context.TagClass<FeedbackTrackerService, "FeedbackTrackerService", {
|
|
12
12
|
/**
|
|
13
13
|
* Record which learnings were shown to an agent and whether they were helpful.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-tracker.d.ts","sourceRoot":"","sources":["../../src/services/feedback-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"feedback-tracker.d.ts","sourceRoot":"","sources":["../../src/services/feedback-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAAC;;IAYzB;;;;;;OAMG;0BACmB,CACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,qBAAqB,EAAE,KACxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAEvC;;;;;;OAMG;+BACwB,CACzB,UAAU,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEzC;;;;;;OAMG;gCACyB,CAC1B,WAAW,EAAE,SAAS,MAAM,EAAE,KAC3B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC;;AA1ClE;;;;;;GAMG;AACH,qBAAa,sBAAuB,SAAQ,2BAqCzC;CAAG;AAUN;;;GAGG;AACH,eAAO,MAAM,0BAA0B,mDAUtC,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,yDA0FtC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-tracker.js","sourceRoot":"","sources":["../../src/services/feedback-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"feedback-tracker.js","sourceRoot":"","sources":["../../src/services/feedback-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type of file event detected by the watcher.
|
|
3
|
+
*/
|
|
4
|
+
export type FileEventType = "add" | "change" | "delete";
|
|
5
|
+
/**
|
|
6
|
+
* Represents a file system event detected by the watcher.
|
|
7
|
+
*/
|
|
8
|
+
export type FileEvent = {
|
|
9
|
+
/** Type of the event */
|
|
10
|
+
readonly type: FileEventType;
|
|
11
|
+
/** Absolute path to the file */
|
|
12
|
+
readonly path: string;
|
|
13
|
+
/** Timestamp when the event was detected */
|
|
14
|
+
readonly timestamp: Date;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Configuration options for the file watcher.
|
|
18
|
+
*/
|
|
19
|
+
export type FileWatcherConfig = {
|
|
20
|
+
/** Glob patterns to watch (e.g., "~/.claude/projects/** /*.jsonl") */
|
|
21
|
+
readonly patterns: readonly string[];
|
|
22
|
+
/** Debounce delay in milliseconds for rapid file changes */
|
|
23
|
+
readonly debounceMs?: number;
|
|
24
|
+
/** Whether to emit events for existing files on start (default: false) */
|
|
25
|
+
readonly ignoreInitial?: boolean;
|
|
26
|
+
/** Polling interval in milliseconds (for network drives, etc.) */
|
|
27
|
+
readonly pollInterval?: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Status information for the file watcher.
|
|
31
|
+
*/
|
|
32
|
+
export type FileWatcherStatus = {
|
|
33
|
+
/** Whether the watcher is currently running */
|
|
34
|
+
readonly running: boolean;
|
|
35
|
+
/** Paths/patterns currently being watched */
|
|
36
|
+
readonly watchedPaths: readonly string[];
|
|
37
|
+
/** Timestamp when the watcher was started (null if not running) */
|
|
38
|
+
readonly startedAt: Date | null;
|
|
39
|
+
/** Number of events processed since start */
|
|
40
|
+
readonly eventsProcessed: number;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Internal state for the FileWatcherServiceLive implementation.
|
|
44
|
+
*/
|
|
45
|
+
export type FileWatcherState = {
|
|
46
|
+
/** Whether the watcher is running */
|
|
47
|
+
running: boolean;
|
|
48
|
+
/** Chokidar watcher instance */
|
|
49
|
+
watcher: import("chokidar").FSWatcher | null;
|
|
50
|
+
/** Currently watched paths/patterns */
|
|
51
|
+
watchedPaths: readonly string[];
|
|
52
|
+
/** Timestamp when the watcher started */
|
|
53
|
+
startedAt: Date | null;
|
|
54
|
+
/** Number of events processed */
|
|
55
|
+
eventsProcessed: number;
|
|
56
|
+
/** Per-path debounce timers for coalescing rapid events */
|
|
57
|
+
debounceTimers: Map<string, ReturnType<typeof setTimeout>>;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Expand tilde (~) to the user's home directory.
|
|
61
|
+
*/
|
|
62
|
+
export declare const expandTilde: (path: string) => string;
|
|
63
|
+
/**
|
|
64
|
+
* Extract the base directory from a glob pattern.
|
|
65
|
+
* For "~/.claude/projects/** /*.jsonl", returns the expanded "~/.claude/projects".
|
|
66
|
+
* For paths without globs, returns the path as-is.
|
|
67
|
+
*/
|
|
68
|
+
export declare const extractBaseDir: (pattern: string) => string;
|
|
69
|
+
/**
|
|
70
|
+
* Check if a file path matches a glob-like pattern.
|
|
71
|
+
* Simple implementation supporting:
|
|
72
|
+
* - ** for any directory depth
|
|
73
|
+
* - * for any characters in a filename
|
|
74
|
+
*/
|
|
75
|
+
export declare const matchesPattern: (filePath: string, pattern: string) => boolean;
|
|
76
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/services/file-watcher-service/shared.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEvD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CACzB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,gCAAgC;IAChC,OAAO,EAAE,OAAO,UAAU,EAAE,SAAS,GAAG,IAAI,CAAA;IAC5C,uCAAuC;IACvC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,yCAAyC;IACzC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;CAC3D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAE1C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAShD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,OAgBlE,CAAA"}
|