@claudexor/daemon 3.24.0 → 4.0.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/account-resets.d.ts +39 -0
- package/dist/account-resets.d.ts.map +1 -0
- package/dist/account-resets.js +174 -0
- package/dist/account-resets.js.map +1 -0
- package/dist/client.d.ts +25 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +55 -51
- package/dist/client.js.map +1 -1
- package/dist/command-authority.d.ts +11 -8
- package/dist/command-authority.d.ts.map +1 -1
- package/dist/command-authority.js +5 -6
- package/dist/command-authority.js.map +1 -1
- package/dist/command-list-projection.d.ts +0 -1
- package/dist/command-list-projection.d.ts.map +1 -1
- package/dist/command-list-projection.js +0 -6
- package/dist/command-list-projection.js.map +1 -1
- package/dist/command-list-select.d.ts +0 -4
- package/dist/command-list-select.d.ts.map +1 -1
- package/dist/command-list-select.js +1 -115
- package/dist/command-list-select.js.map +1 -1
- package/dist/command-retention.d.ts +7 -19
- package/dist/command-retention.d.ts.map +1 -1
- package/dist/command-retention.js +1 -117
- package/dist/command-retention.js.map +1 -1
- package/dist/command-rpc.d.ts +4 -1
- package/dist/command-rpc.d.ts.map +1 -1
- package/dist/command-rpc.js +12 -1
- package/dist/command-rpc.js.map +1 -1
- package/dist/command-store.d.ts +15 -52
- package/dist/command-store.d.ts.map +1 -1
- package/dist/command-store.js +5 -493
- package/dist/command-store.js.map +1 -1
- package/dist/daemon-health.d.ts +56 -8
- package/dist/daemon-health.d.ts.map +1 -1
- package/dist/daemon-health.js +44 -9
- package/dist/daemon-health.js.map +1 -1
- package/dist/daemon-local-client.d.ts +28 -0
- package/dist/daemon-local-client.d.ts.map +1 -0
- package/dist/daemon-local-client.js +55 -0
- package/dist/daemon-local-client.js.map +1 -0
- package/dist/delivery-command.d.ts +4 -4
- package/dist/delivery-command.d.ts.map +1 -1
- package/dist/delivery-command.js.map +1 -1
- package/dist/index.d.ts +24 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -8
- package/dist/index.js.map +1 -1
- package/dist/interactions.d.ts +12 -28
- package/dist/interactions.d.ts.map +1 -1
- package/dist/interactions.js +22 -123
- package/dist/interactions.js.map +1 -1
- package/dist/job-admission.d.ts +26 -0
- package/dist/job-admission.d.ts.map +1 -0
- package/dist/job-admission.js +67 -0
- package/dist/job-admission.js.map +1 -0
- package/dist/job-record.d.ts.map +1 -1
- package/dist/job-record.js +5 -1
- package/dist/job-record.js.map +1 -1
- package/dist/journal-fold-policy.d.ts +1 -1
- package/dist/journal-fold-policy.d.ts.map +1 -1
- package/dist/journal-fold-policy.js +26 -2
- package/dist/journal-fold-policy.js.map +1 -1
- package/dist/journal-recovery-files.d.ts +1 -41
- package/dist/journal-recovery-files.d.ts.map +1 -1
- package/dist/journal-recovery-files.js +2 -340
- package/dist/journal-recovery-files.js.map +1 -1
- package/dist/loop-facts.d.ts +28 -0
- package/dist/loop-facts.d.ts.map +1 -0
- package/dist/loop-facts.js +97 -0
- package/dist/loop-facts.js.map +1 -0
- package/dist/memory-facts.d.ts +2 -0
- package/dist/memory-facts.d.ts.map +1 -1
- package/dist/memory-facts.js +5 -0
- package/dist/memory-facts.js.map +1 -1
- package/dist/model-operations.d.ts +11 -4
- package/dist/model-operations.d.ts.map +1 -1
- package/dist/model-operations.js +68 -38
- package/dist/model-operations.js.map +1 -1
- package/dist/operator-decisions.d.ts +15 -25
- package/dist/operator-decisions.d.ts.map +1 -1
- package/dist/operator-decisions.js +5 -84
- package/dist/operator-decisions.js.map +1 -1
- package/dist/projects.d.ts +42 -41
- package/dist/projects.d.ts.map +1 -1
- package/dist/projects.js +46 -184
- package/dist/projects.js.map +1 -1
- package/dist/quota-poll-lanes.d.ts +5 -3
- package/dist/quota-poll-lanes.d.ts.map +1 -1
- package/dist/quota-poll-lanes.js +16 -6
- package/dist/quota-poll-lanes.js.map +1 -1
- package/dist/quota-refresh-batches.d.ts +26 -0
- package/dist/quota-refresh-batches.d.ts.map +1 -0
- package/dist/quota-refresh-batches.js +83 -0
- package/dist/quota-refresh-batches.js.map +1 -0
- package/dist/quota-registry-replay.d.ts +19 -0
- package/dist/quota-registry-replay.d.ts.map +1 -0
- package/dist/quota-registry-replay.js +106 -0
- package/dist/quota-registry-replay.js.map +1 -0
- package/dist/quota-registry-support.d.ts +4 -1
- package/dist/quota-registry-support.d.ts.map +1 -1
- package/dist/quota-registry-support.js +15 -2
- package/dist/quota-registry-support.js.map +1 -1
- package/dist/quota-registry.d.ts +381 -7
- package/dist/quota-registry.d.ts.map +1 -1
- package/dist/quota-registry.js +111 -149
- package/dist/quota-registry.js.map +1 -1
- package/dist/quota-resources.d.ts +105 -0
- package/dist/quota-resources.d.ts.map +1 -0
- package/dist/quota-resources.js +153 -0
- package/dist/quota-resources.js.map +1 -0
- package/dist/runless-turn-recovery.d.ts +2 -9
- package/dist/runless-turn-recovery.d.ts.map +1 -1
- package/dist/runless-turn-recovery.js +0 -14
- package/dist/runless-turn-recovery.js.map +1 -1
- package/dist/server.d.ts +23 -22
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +74 -84
- package/dist/server.js.map +1 -1
- package/dist/store/blob-files.d.ts +71 -0
- package/dist/store/blob-files.d.ts.map +1 -0
- package/dist/store/blob-files.js +160 -0
- package/dist/store/blob-files.js.map +1 -0
- package/dist/store/command-prune.d.ts +37 -0
- package/dist/store/command-prune.d.ts.map +1 -0
- package/dist/store/command-prune.js +123 -0
- package/dist/store/command-prune.js.map +1 -0
- package/dist/store/command-queries.d.ts +41 -0
- package/dist/store/command-queries.d.ts.map +1 -0
- package/dist/store/command-queries.js +186 -0
- package/dist/store/command-queries.js.map +1 -0
- package/dist/store/command-rows.d.ts +66 -0
- package/dist/store/command-rows.d.ts.map +1 -0
- package/dist/store/command-rows.js +141 -0
- package/dist/store/command-rows.js.map +1 -0
- package/dist/store/commands.d.ts +49 -0
- package/dist/store/commands.d.ts.map +1 -0
- package/dist/store/commands.js +247 -0
- package/dist/store/commands.js.map +1 -0
- package/dist/store/cursors.d.ts +33 -0
- package/dist/store/cursors.d.ts.map +1 -0
- package/dist/store/cursors.js +82 -0
- package/dist/store/cursors.js.map +1 -0
- package/dist/store/engine-recovery-files.d.ts +14 -0
- package/dist/store/engine-recovery-files.d.ts.map +1 -0
- package/dist/store/engine-recovery-files.js +53 -0
- package/dist/store/engine-recovery-files.js.map +1 -0
- package/dist/store/engine-state-recovery.d.ts +71 -0
- package/dist/store/engine-state-recovery.d.ts.map +1 -0
- package/dist/store/engine-state-recovery.js +318 -0
- package/dist/store/engine-state-recovery.js.map +1 -0
- package/dist/store/errors.d.ts +80 -0
- package/dist/store/errors.d.ts.map +1 -0
- package/dist/store/errors.js +130 -0
- package/dist/store/errors.js.map +1 -0
- package/dist/store/event-store.d.ts +52 -0
- package/dist/store/event-store.d.ts.map +1 -0
- package/dist/store/event-store.js +117 -0
- package/dist/store/event-store.js.map +1 -0
- package/dist/store/external-files.d.ts +40 -0
- package/dist/store/external-files.d.ts.map +1 -0
- package/dist/store/external-files.js +90 -0
- package/dist/store/external-files.js.map +1 -0
- package/dist/store/flusher-protocol.d.ts +82 -0
- package/dist/store/flusher-protocol.d.ts.map +1 -0
- package/dist/store/flusher-protocol.js +23 -0
- package/dist/store/flusher-protocol.js.map +1 -0
- package/dist/store/flusher-worker.d.ts +24 -0
- package/dist/store/flusher-worker.d.ts.map +1 -0
- package/dist/store/flusher-worker.js +185 -0
- package/dist/store/flusher-worker.js.map +1 -0
- package/dist/store/flusher.d.ts +87 -0
- package/dist/store/flusher.d.ts.map +1 -0
- package/dist/store/flusher.js +264 -0
- package/dist/store/flusher.js.map +1 -0
- package/dist/store/generations.d.ts +43 -0
- package/dist/store/generations.d.ts.map +1 -0
- package/dist/store/generations.js +143 -0
- package/dist/store/generations.js.map +1 -0
- package/dist/store/idempotency.d.ts +25 -0
- package/dist/store/idempotency.d.ts.map +1 -0
- package/dist/store/idempotency.js +53 -0
- package/dist/store/idempotency.js.map +1 -0
- package/dist/store/import-context.d.ts +22 -0
- package/dist/store/import-context.d.ts.map +1 -0
- package/dist/store/import-context.js +87 -0
- package/dist/store/import-context.js.map +1 -0
- package/dist/store/import-discovery.d.ts +6 -0
- package/dist/store/import-discovery.d.ts.map +1 -0
- package/dist/store/import-discovery.js +66 -0
- package/dist/store/import-discovery.js.map +1 -0
- package/dist/store/import-records.d.ts +6 -0
- package/dist/store/import-records.d.ts.map +1 -0
- package/dist/store/import-records.js +191 -0
- package/dist/store/import-records.js.map +1 -0
- package/dist/store/import-resources.d.ts +14 -0
- package/dist/store/import-resources.d.ts.map +1 -0
- package/dist/store/import-resources.js +197 -0
- package/dist/store/import-resources.js.map +1 -0
- package/dist/store/import-source.d.ts +24 -0
- package/dist/store/import-source.d.ts.map +1 -0
- package/dist/store/import-source.js +65 -0
- package/dist/store/import-source.js.map +1 -0
- package/dist/store/import-verify.d.ts +6 -0
- package/dist/store/import-verify.d.ts.map +1 -0
- package/dist/store/import-verify.js +97 -0
- package/dist/store/import-verify.js.map +1 -0
- package/dist/store/import-worker.d.ts +18 -0
- package/dist/store/import-worker.d.ts.map +1 -0
- package/dist/store/import-worker.js +69 -0
- package/dist/store/import-worker.js.map +1 -0
- package/dist/store/importer.d.ts +42 -0
- package/dist/store/importer.d.ts.map +1 -0
- package/dist/store/importer.js +239 -0
- package/dist/store/importer.js.map +1 -0
- package/dist/store/interactions.d.ts +22 -0
- package/dist/store/interactions.d.ts.map +1 -0
- package/dist/store/interactions.js +82 -0
- package/dist/store/interactions.js.map +1 -0
- package/dist/store/legacy-journal/frame-codec.d.ts +94 -0
- package/dist/store/legacy-journal/frame-codec.d.ts.map +1 -0
- package/dist/store/legacy-journal/frame-codec.js +352 -0
- package/dist/store/legacy-journal/frame-codec.js.map +1 -0
- package/dist/store/legacy-journal/frame-reader.d.ts +30 -0
- package/dist/store/legacy-journal/frame-reader.d.ts.map +1 -0
- package/dist/store/legacy-journal/frame-reader.js +97 -0
- package/dist/store/legacy-journal/frame-reader.js.map +1 -0
- package/dist/store/legacy-journal/journal-fold.d.ts +47 -0
- package/dist/store/legacy-journal/journal-fold.d.ts.map +1 -0
- package/dist/store/legacy-journal/journal-fold.js +81 -0
- package/dist/store/legacy-journal/journal-fold.js.map +1 -0
- package/dist/store/legacy-journal/journal-partition.d.ts +2 -0
- package/dist/store/legacy-journal/journal-partition.d.ts.map +1 -0
- package/dist/store/legacy-journal/journal-partition.js +10 -0
- package/dist/store/legacy-journal/journal-partition.js.map +1 -0
- package/dist/store/legacy-journal/read-only-preparation.d.ts +48 -0
- package/dist/store/legacy-journal/read-only-preparation.d.ts.map +1 -0
- package/dist/store/legacy-journal/read-only-preparation.js +430 -0
- package/dist/store/legacy-journal/read-only-preparation.js.map +1 -0
- package/dist/store/maintenance-worker.d.ts +5 -0
- package/dist/store/maintenance-worker.d.ts.map +1 -0
- package/dist/store/maintenance-worker.js +175 -0
- package/dist/store/maintenance-worker.js.map +1 -0
- package/dist/store/maintenance.d.ts +124 -0
- package/dist/store/maintenance.d.ts.map +1 -0
- package/dist/store/maintenance.js +197 -0
- package/dist/store/maintenance.js.map +1 -0
- package/dist/store/mutation.d.ts +34 -0
- package/dist/store/mutation.d.ts.map +1 -0
- package/dist/store/mutation.js +85 -0
- package/dist/store/mutation.js.map +1 -0
- package/dist/store/obligations.d.ts +101 -0
- package/dist/store/obligations.d.ts.map +1 -0
- package/dist/store/obligations.js +226 -0
- package/dist/store/obligations.js.map +1 -0
- package/dist/store/operator-decisions.d.ts +23 -0
- package/dist/store/operator-decisions.d.ts.map +1 -0
- package/dist/store/operator-decisions.js +68 -0
- package/dist/store/operator-decisions.js.map +1 -0
- package/dist/store/owner-generations.d.ts +33 -0
- package/dist/store/owner-generations.d.ts.map +1 -0
- package/dist/store/owner-generations.js +63 -0
- package/dist/store/owner-generations.js.map +1 -0
- package/dist/store/partitions.d.ts +37 -0
- package/dist/store/partitions.d.ts.map +1 -0
- package/dist/store/partitions.js +68 -0
- package/dist/store/partitions.js.map +1 -0
- package/dist/store/pragmas.d.ts +32 -0
- package/dist/store/pragmas.d.ts.map +1 -0
- package/dist/store/pragmas.js +65 -0
- package/dist/store/pragmas.js.map +1 -0
- package/dist/store/project-router.d.ts +325 -0
- package/dist/store/project-router.d.ts.map +1 -0
- package/dist/store/project-router.js +298 -0
- package/dist/store/project-router.js.map +1 -0
- package/dist/store/projects.d.ts +36 -0
- package/dist/store/projects.d.ts.map +1 -0
- package/dist/store/projects.js +238 -0
- package/dist/store/projects.js.map +1 -0
- package/dist/store/publish-blob.d.ts +20 -0
- package/dist/store/publish-blob.d.ts.map +1 -0
- package/dist/store/publish-blob.js +158 -0
- package/dist/store/publish-blob.js.map +1 -0
- package/dist/store/purge-files.d.ts +30 -0
- package/dist/store/purge-files.d.ts.map +1 -0
- package/dist/store/purge-files.js +79 -0
- package/dist/store/purge-files.js.map +1 -0
- package/dist/store/resource-rows.d.ts +40 -0
- package/dist/store/resource-rows.d.ts.map +1 -0
- package/dist/store/resource-rows.js +103 -0
- package/dist/store/resource-rows.js.map +1 -0
- package/dist/store/resources.d.ts +67 -0
- package/dist/store/resources.d.ts.map +1 -0
- package/dist/store/resources.js +147 -0
- package/dist/store/resources.js.map +1 -0
- package/dist/store/retention.d.ts +91 -0
- package/dist/store/retention.d.ts.map +1 -0
- package/dist/store/retention.js +169 -0
- package/dist/store/retention.js.map +1 -0
- package/dist/store/run-events.d.ts +14 -0
- package/dist/store/run-events.d.ts.map +1 -0
- package/dist/store/run-events.js +35 -0
- package/dist/store/run-events.js.map +1 -0
- package/dist/store/runtime.d.ts +24 -0
- package/dist/store/runtime.d.ts.map +1 -0
- package/dist/store/runtime.js +67 -0
- package/dist/store/runtime.js.map +1 -0
- package/dist/store/schema.d.ts +33 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +187 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/setup-bindings.d.ts +20 -0
- package/dist/store/setup-bindings.d.ts.map +1 -0
- package/dist/store/setup-bindings.js +52 -0
- package/dist/store/setup-bindings.js.map +1 -0
- package/dist/store/sql-command-router.d.ts +79 -0
- package/dist/store/sql-command-router.d.ts.map +1 -0
- package/dist/store/sql-command-router.js +92 -0
- package/dist/store/sql-command-router.js.map +1 -0
- package/dist/store/sql-daemon-services.d.ts +61 -0
- package/dist/store/sql-daemon-services.d.ts.map +1 -0
- package/dist/store/sql-daemon-services.js +124 -0
- package/dist/store/sql-daemon-services.js.map +1 -0
- package/dist/store/sql-recovery-export.d.ts +8 -0
- package/dist/store/sql-recovery-export.d.ts.map +1 -0
- package/dist/store/sql-recovery-export.js +110 -0
- package/dist/store/sql-recovery-export.js.map +1 -0
- package/dist/store/sql-recovery-inspection.d.ts +22 -0
- package/dist/store/sql-recovery-inspection.d.ts.map +1 -0
- package/dist/store/sql-recovery-inspection.js +88 -0
- package/dist/store/sql-recovery-inspection.js.map +1 -0
- package/dist/store/sql-recovery.d.ts +69 -0
- package/dist/store/sql-recovery.d.ts.map +1 -0
- package/dist/store/sql-recovery.js +169 -0
- package/dist/store/sql-recovery.js.map +1 -0
- package/dist/store/sql-validation.d.ts +9 -0
- package/dist/store/sql-validation.d.ts.map +1 -0
- package/dist/store/sql-validation.js +103 -0
- package/dist/store/sql-validation.js.map +1 -0
- package/dist/store/statement-observer.d.ts +7 -0
- package/dist/store/statement-observer.d.ts.map +1 -0
- package/dist/store/statement-observer.js +44 -0
- package/dist/store/statement-observer.js.map +1 -0
- package/dist/store/store.d.ts +110 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +296 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/terminal-files.d.ts +21 -0
- package/dist/store/terminal-files.d.ts.map +1 -0
- package/dist/store/terminal-files.js +115 -0
- package/dist/store/terminal-files.js.map +1 -0
- package/dist/store/thread-replay.d.ts +12 -0
- package/dist/store/thread-replay.d.ts.map +1 -0
- package/dist/store/thread-replay.js +49 -0
- package/dist/store/thread-replay.js.map +1 -0
- package/dist/store/thread-rows.d.ts +25 -0
- package/dist/store/thread-rows.d.ts.map +1 -0
- package/dist/store/thread-rows.js +141 -0
- package/dist/store/thread-rows.js.map +1 -0
- package/dist/store/threads.d.ts +105 -0
- package/dist/store/threads.d.ts.map +1 -0
- package/dist/store/threads.js +423 -0
- package/dist/store/threads.js.map +1 -0
- package/dist/store/upload-binding-retention.d.ts +26 -0
- package/dist/store/upload-binding-retention.d.ts.map +1 -0
- package/dist/store/upload-binding-retention.js +142 -0
- package/dist/store/upload-binding-retention.js.map +1 -0
- package/dist/store/uploads.d.ts +30 -0
- package/dist/store/uploads.d.ts.map +1 -0
- package/dist/store/uploads.js +238 -0
- package/dist/store/uploads.js.map +1 -0
- package/dist/store-contracts.d.ts +181 -0
- package/dist/store-contracts.d.ts.map +1 -0
- package/dist/store-contracts.js +2 -0
- package/dist/store-contracts.js.map +1 -0
- package/dist/terminal-authority.d.ts +9 -0
- package/dist/terminal-authority.d.ts.map +1 -1
- package/dist/terminal-authority.js +103 -1
- package/dist/terminal-authority.js.map +1 -1
- package/dist/thread-lane-checkpoints.d.ts +0 -2
- package/dist/thread-lane-checkpoints.d.ts.map +1 -1
- package/dist/thread-lane-checkpoints.js +0 -4
- package/dist/thread-lane-checkpoints.js.map +1 -1
- package/dist/thread-store-support.d.ts +1 -27
- package/dist/thread-store-support.d.ts.map +1 -1
- package/dist/thread-store-support.js +0 -63
- package/dist/thread-store-support.js.map +1 -1
- package/dist/threads.d.ts +1 -113
- package/dist/threads.d.ts.map +1 -1
- package/dist/threads.js +1 -379
- package/dist/threads.js.map +1 -1
- package/package.json +9 -7
- package/dist/command-activity.d.ts +0 -14
- package/dist/command-activity.d.ts.map +0 -1
- package/dist/command-activity.js +0 -16
- package/dist/command-activity.js.map +0 -1
- package/dist/journal-events.d.ts +0 -4
- package/dist/journal-events.d.ts.map +0 -1
- package/dist/journal-events.js +0 -23
- package/dist/journal-events.js.map +0 -1
- package/dist/journal-maintenance.d.ts +0 -50
- package/dist/journal-maintenance.d.ts.map +0 -1
- package/dist/journal-maintenance.js +0 -162
- package/dist/journal-maintenance.js.map +0 -1
- package/dist/journal-manager-journal.d.ts +0 -18
- package/dist/journal-manager-journal.d.ts.map +0 -1
- package/dist/journal-manager-journal.js +0 -25
- package/dist/journal-manager-journal.js.map +0 -1
- package/dist/journal-manager-lifecycle.d.ts +0 -11
- package/dist/journal-manager-lifecycle.d.ts.map +0 -1
- package/dist/journal-manager-lifecycle.js +0 -2
- package/dist/journal-manager-lifecycle.js.map +0 -1
- package/dist/journal-manager.d.ts +0 -99
- package/dist/journal-manager.d.ts.map +0 -1
- package/dist/journal-manager.js +0 -559
- package/dist/journal-manager.js.map +0 -1
- package/dist/journal-prepared-operation.d.ts +0 -53
- package/dist/journal-prepared-operation.d.ts.map +0 -1
- package/dist/journal-prepared-operation.js +0 -158
- package/dist/journal-prepared-operation.js.map +0 -1
- package/dist/journal-projection-slot.d.ts +0 -28
- package/dist/journal-projection-slot.d.ts.map +0 -1
- package/dist/journal-projection-slot.js +0 -71
- package/dist/journal-projection-slot.js.map +0 -1
- package/dist/journal-projection.d.ts +0 -13
- package/dist/journal-projection.d.ts.map +0 -1
- package/dist/journal-projection.js +0 -2
- package/dist/journal-projection.js.map +0 -1
- package/dist/partition-accounts.d.ts +0 -27
- package/dist/partition-accounts.d.ts.map +0 -1
- package/dist/partition-accounts.js +0 -21
- package/dist/partition-accounts.js.map +0 -1
- package/dist/project-partition-preparation.d.ts +0 -87
- package/dist/project-partition-preparation.d.ts.map +0 -1
- package/dist/project-partition-preparation.js +0 -273
- package/dist/project-partition-preparation.js.map +0 -1
- package/dist/project-partitions.d.ts +0 -214
- package/dist/project-partitions.d.ts.map +0 -1
- package/dist/project-partitions.js +0 -486
- package/dist/project-partitions.js.map +0 -1
- package/dist/project-remove.d.ts +0 -11
- package/dist/project-remove.d.ts.map +0 -1
- package/dist/project-remove.js +0 -65
- package/dist/project-remove.js.map +0 -1
- package/dist/project-thread-listing.d.ts +0 -14
- package/dist/project-thread-listing.d.ts.map +0 -1
- package/dist/project-thread-listing.js +0 -37
- package/dist/project-thread-listing.js.map +0 -1
- package/dist/quota-projection.d.ts +0 -11
- package/dist/quota-projection.d.ts.map +0 -1
- package/dist/quota-projection.js +0 -10
- package/dist/quota-projection.js.map +0 -1
- package/dist/resource-store.d.ts +0 -39
- package/dist/resource-store.d.ts.map +0 -1
- package/dist/resource-store.js +0 -464
- package/dist/resource-store.js.map +0 -1
- package/dist/run-event-terminal-index.d.ts +0 -13
- package/dist/run-event-terminal-index.d.ts.map +0 -1
- package/dist/run-event-terminal-index.js +0 -38
- package/dist/run-event-terminal-index.js.map +0 -1
- package/dist/run-events.d.ts +0 -17
- package/dist/run-events.d.ts.map +0 -1
- package/dist/run-events.js +0 -31
- package/dist/run-events.js.map +0 -1
- package/dist/thread-head-ping.d.ts +0 -35
- package/dist/thread-head-ping.d.ts.map +0 -1
- package/dist/thread-head-ping.js +0 -67
- package/dist/thread-head-ping.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { RunTelemetry, type RunFacts } from "@claudexor/schema";
|
|
2
|
+
import { appendLine } from "@claudexor/util";
|
|
3
|
+
import { writeExternalFile } from "./external-files.js";
|
|
4
|
+
import type { Obligations } from "./obligations.js";
|
|
5
|
+
import type { EngineStore } from "./store.js";
|
|
6
|
+
/** One handler for all partitions. SQL already owns the terminal; file repair
|
|
7
|
+
* never inserts another terminal or changes its outcome. */
|
|
8
|
+
export declare class SqlTerminalFiles {
|
|
9
|
+
private readonly store;
|
|
10
|
+
private readonly obligations;
|
|
11
|
+
private readonly io;
|
|
12
|
+
constructor(store: EngineStore, obligations: Obligations, io?: {
|
|
13
|
+
write?: typeof writeExternalFile;
|
|
14
|
+
append?: typeof appendLine;
|
|
15
|
+
});
|
|
16
|
+
pending(runIdOrCommandId: string): boolean;
|
|
17
|
+
materialize(runId: string): void;
|
|
18
|
+
prepareRecoveryTelemetry(runDir: string, facts: RunFacts): RunTelemetry | null;
|
|
19
|
+
private write;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=terminal-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-files.d.ts","sourceRoot":"","sources":["../../src/store/terminal-files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA8B,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AAQvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAoC,MAAM,kBAAkB,CAAC;AAEtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;4DAC4D;AAC5D,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAHrB,YACmB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,WAAW,EACxB,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,iBAAiB,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,UAAU,CAAA;KAAO,EAG3F;IAED,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAMzC;IAED,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAO/B;IAED,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAS7E;IAED,OAAO,CAAC,KAAK;CAoEd"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { RunTelemetry, validateRunFactsInvariants } from "@claudexor/schema";
|
|
4
|
+
import { appendLine, hashJson } from "@claudexor/util";
|
|
5
|
+
import { parse as parseYaml } from "yaml";
|
|
6
|
+
import { lstatOrNull, normalizedTerminalEvents, recoveredTerminalFacts, } from "../terminal-authority.js";
|
|
7
|
+
import { commandSummary } from "./command-rows.js";
|
|
8
|
+
import { writeExternalFile } from "./external-files.js";
|
|
9
|
+
import { storedTerminal } from "./run-events.js";
|
|
10
|
+
/** One handler for all partitions. SQL already owns the terminal; file repair
|
|
11
|
+
* never inserts another terminal or changes its outcome. */
|
|
12
|
+
export class SqlTerminalFiles {
|
|
13
|
+
store;
|
|
14
|
+
obligations;
|
|
15
|
+
io;
|
|
16
|
+
constructor(store, obligations, io = {}) {
|
|
17
|
+
this.store = store;
|
|
18
|
+
this.obligations = obligations;
|
|
19
|
+
this.io = io;
|
|
20
|
+
obligations.registerHandler("terminal_files", (row, effects) => this.write(row, effects));
|
|
21
|
+
}
|
|
22
|
+
pending(runIdOrCommandId) {
|
|
23
|
+
return !!this.store
|
|
24
|
+
.prepare("SELECT 1 FROM effect_obligation WHERE kind='terminal_files' AND key=coalesce((SELECT run_id FROM command WHERE id=?1),?1) AND state='pending'")
|
|
25
|
+
.get(runIdOrCommandId);
|
|
26
|
+
}
|
|
27
|
+
materialize(runId) {
|
|
28
|
+
const row = this.obligations.get("terminal_files", runId);
|
|
29
|
+
if (!row)
|
|
30
|
+
return;
|
|
31
|
+
this.write(row, {
|
|
32
|
+
register: (dir) => this.obligations.registerEffect("terminal_files", runId, dir),
|
|
33
|
+
});
|
|
34
|
+
this.obligations.materialize("terminal_files", runId);
|
|
35
|
+
}
|
|
36
|
+
prepareRecoveryTelemetry(runDir, facts) {
|
|
37
|
+
try {
|
|
38
|
+
const telemetry = RunTelemetry.safeParse(parseYaml(readFileSync(join(runDir, "final", "telemetry.yaml"), "utf8")));
|
|
39
|
+
return telemetry.success ? RunTelemetry.parse({ ...telemetry.data, run_facts: facts }) : null;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
write(row, effects) {
|
|
46
|
+
const event = storedTerminal(this.store, row.key, row.pid);
|
|
47
|
+
const raw = this.store
|
|
48
|
+
.prepare("SELECT summary FROM command WHERE run_id=? AND pid=?")
|
|
49
|
+
.get(row.key, row.pid);
|
|
50
|
+
if (!event || !raw)
|
|
51
|
+
throw new Error("terminal obligation has no canonical command/event");
|
|
52
|
+
const record = commandSummary(raw);
|
|
53
|
+
const { facts, terminalSeq } = recoveredTerminalFacts(record, event);
|
|
54
|
+
const root = record.runDir;
|
|
55
|
+
const finalDir = join(root, "final");
|
|
56
|
+
const rootStat = lstatOrNull(root), finalStat = lstatOrNull(finalDir);
|
|
57
|
+
// Existing retention may already have reclaimed historical file evidence.
|
|
58
|
+
if (!rootStat || !finalStat)
|
|
59
|
+
return;
|
|
60
|
+
if (!rootStat.isDirectory() ||
|
|
61
|
+
rootStat.isSymbolicLink() ||
|
|
62
|
+
!finalStat.isDirectory() ||
|
|
63
|
+
finalStat.isSymbolicLink())
|
|
64
|
+
throw new Error("durable terminal run directory is not a canonical directory");
|
|
65
|
+
const factsPath = join(finalDir, "run_facts.yaml");
|
|
66
|
+
const prior = lstatOrNull(factsPath);
|
|
67
|
+
if (prior) {
|
|
68
|
+
if (!prior.isFile() || prior.isSymbolicLink())
|
|
69
|
+
throw new Error("durable terminal RunFacts receipt is not a regular file");
|
|
70
|
+
let value;
|
|
71
|
+
try {
|
|
72
|
+
value = parseYaml(readFileSync(factsPath, "utf8"));
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
value = undefined;
|
|
76
|
+
}
|
|
77
|
+
if (value !== undefined && hashJson(validateRunFactsInvariants(value)) !== hashJson(facts))
|
|
78
|
+
throw new Error("durable terminal RunFacts receipt does not match SQL authority");
|
|
79
|
+
}
|
|
80
|
+
const write = this.io.write ?? writeExternalFile;
|
|
81
|
+
write(this.store, {
|
|
82
|
+
dir: finalDir,
|
|
83
|
+
name: "run_facts.yaml",
|
|
84
|
+
bytes: Buffer.from(`${JSON.stringify(facts, null, 2)}\n`),
|
|
85
|
+
});
|
|
86
|
+
effects.register(finalDir);
|
|
87
|
+
const telemetry = row.payload?.telemetry;
|
|
88
|
+
if (telemetry !== null && telemetry !== undefined) {
|
|
89
|
+
const prepared = RunTelemetry.parse(telemetry);
|
|
90
|
+
if (hashJson(prepared.run_facts) !== hashJson(facts))
|
|
91
|
+
throw new Error("durable terminal telemetry does not match SQL authority");
|
|
92
|
+
write(this.store, {
|
|
93
|
+
dir: finalDir,
|
|
94
|
+
name: "telemetry.yaml",
|
|
95
|
+
bytes: Buffer.from(`${JSON.stringify(prepared, null, 2)}\n`),
|
|
96
|
+
});
|
|
97
|
+
effects.register(finalDir);
|
|
98
|
+
}
|
|
99
|
+
const eventsPath = join(root, "events.jsonl");
|
|
100
|
+
const existing = lstatOrNull(eventsPath);
|
|
101
|
+
if (existing && (!existing.isFile() || existing.isSymbolicLink()))
|
|
102
|
+
throw new Error("durable terminal event log is not a regular file");
|
|
103
|
+
const bytes = existing ? readFileSync(eventsPath) : Buffer.alloc(0);
|
|
104
|
+
const normalized = Buffer.from(normalizedTerminalEvents(bytes, event, terminalSeq));
|
|
105
|
+
if (!bytes.equals(normalized)) {
|
|
106
|
+
const added = Buffer.from(`${JSON.stringify(event)}\n`);
|
|
107
|
+
if (normalized.equals(Buffer.concat([bytes, added])))
|
|
108
|
+
(this.io.append ?? appendLine)(eventsPath, JSON.stringify(event));
|
|
109
|
+
else
|
|
110
|
+
write(this.store, { dir: root, name: "events.jsonl", bytes: normalized });
|
|
111
|
+
}
|
|
112
|
+
effects.register(root);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=terminal-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-files.js","sourceRoot":"","sources":["../../src/store/terminal-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Thread } from "@claudexor/schema";
|
|
2
|
+
import type { CreateThreadInput } from "../threads.js";
|
|
3
|
+
import type { SqlWriteContext } from "./mutation.js";
|
|
4
|
+
import type { PartitionGeneration } from "./partitions.js";
|
|
5
|
+
export declare function threadReplayQuery(pairs: readonly (readonly [number, string])[]): {
|
|
6
|
+
sql: string;
|
|
7
|
+
values: Array<string | number>;
|
|
8
|
+
};
|
|
9
|
+
/** No path resolution, admission or project registration precedes this lookup.
|
|
10
|
+
* A different request in an unrelated project is not this request's conflict. */
|
|
11
|
+
export declare function findThreadCreationAcross(sql: Pick<SqlWriteContext, "prepare">, scopes: readonly Pick<PartitionGeneration, "pid" | "name">[], input: CreateThreadInput["idempotency"], exactRequestOnly?: boolean): Thread | undefined;
|
|
12
|
+
//# sourceMappingURL=thread-replay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-replay.d.ts","sourceRoot":"","sources":["../../src/store/thread-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAM3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAChC,CAcA;AAED;iFACiF;AACjF,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACrC,MAAM,EAAE,SAAS,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,MAAM,CAAC,EAAE,EAC5D,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,EACvC,gBAAgB,UAAO,GACtB,MAAM,GAAG,SAAS,CA2BpB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { idempotencyConflict, threadCreationIdempotency } from "../thread-store-support.js";
|
|
2
|
+
import { readThread } from "./thread-rows.js";
|
|
3
|
+
/** Two variables per scope, exactly Node SQLite's 32766-variable bound. */
|
|
4
|
+
const ROW_VALUE_SCOPE_LIMIT = 16_383;
|
|
5
|
+
export function threadReplayQuery(pairs) {
|
|
6
|
+
const columns = "pid,key_digest,request_digest,target_id";
|
|
7
|
+
if (pairs.length > ROW_VALUE_SCOPE_LIMIT) {
|
|
8
|
+
return {
|
|
9
|
+
sql: `SELECT ${columns} FROM idempotency WHERE owner='thread' AND (pid,key_digest) IN (
|
|
10
|
+
SELECT json_extract(value,'$[0]'),json_extract(value,'$[1]') FROM json_each(?))`,
|
|
11
|
+
values: [JSON.stringify(pairs)],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
sql: `SELECT ${columns} FROM idempotency WHERE owner='thread' AND (pid,key_digest) IN
|
|
16
|
+
(VALUES ${pairs.map(() => "(?,?)").join(",")})`,
|
|
17
|
+
values: pairs.flatMap(([pid, key]) => [pid, key]),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** No path resolution, admission or project registration precedes this lookup.
|
|
21
|
+
* A different request in an unrelated project is not this request's conflict. */
|
|
22
|
+
export function findThreadCreationAcross(sql, scopes, input, exactRequestOnly = true) {
|
|
23
|
+
if (!input || scopes.length === 0)
|
|
24
|
+
return undefined;
|
|
25
|
+
const keys = scopes.map((scope) => ({
|
|
26
|
+
scope,
|
|
27
|
+
key: threadCreationIdempotency(scope.name, input),
|
|
28
|
+
}));
|
|
29
|
+
const query = threadReplayQuery(keys.map(({ scope, key }) => [scope.pid, key.keyDigest]));
|
|
30
|
+
const rows = sql.prepare(query.sql).all(...query.values);
|
|
31
|
+
// Legacy searches healthy project partitions in registry insertion order.
|
|
32
|
+
const byPid = new Map(rows.map((row) => [row.pid, row]));
|
|
33
|
+
for (const { scope, key } of keys) {
|
|
34
|
+
const row = byPid.get(scope.pid);
|
|
35
|
+
if (!row)
|
|
36
|
+
continue;
|
|
37
|
+
if (row.request_digest !== key.requestDigest) {
|
|
38
|
+
if (exactRequestOnly)
|
|
39
|
+
continue;
|
|
40
|
+
throw idempotencyConflict();
|
|
41
|
+
}
|
|
42
|
+
const thread = readThread(sql, scope.pid, row.target_id);
|
|
43
|
+
if (!thread)
|
|
44
|
+
throw new Error(`idempotency record points to missing thread ${row.target_id}`);
|
|
45
|
+
return thread;
|
|
46
|
+
}
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=thread-replay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-replay.js","sourceRoot":"","sources":["../../src/store/thread-replay.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAG5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,MAAM,UAAU,iBAAiB,CAAC,KAA6C;IAI7E,MAAM,OAAO,GAAG,yCAAyC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACzC,OAAO;YACL,GAAG,EAAE,UAAU,OAAO;sFAC0D;YAChF,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAChC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,EAAE,UAAU,OAAO;cACZ,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QAC/C,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;iFACiF;AACjF,MAAM,UAAU,wBAAwB,CACtC,GAAqC,EACrC,MAA4D,EAC5D,KAAuC,EACvC,gBAAgB,GAAG,IAAI;IAEvB,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClC,KAAK;QACL,GAAG,EAAE,yBAAyB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAE;KACnD,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAKrD,CAAC;IACH,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,gBAAgB;gBAAE,SAAS;YAC/B,MAAM,mBAAmB,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7F,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Thread, ThreadTurn } from "@claudexor/schema";
|
|
2
|
+
import { type ThreadMutation } from "../thread-store-support.js";
|
|
3
|
+
import type { BlobFiles, BodyRef } from "./blob-files.js";
|
|
4
|
+
import { type SqlWriteContext } from "./mutation.js";
|
|
5
|
+
export declare const encodeBody: (body: unknown) => Buffer;
|
|
6
|
+
export declare const decodeBody: <T>(row: {
|
|
7
|
+
body: Uint8Array;
|
|
8
|
+
}) => T;
|
|
9
|
+
export interface PreparedThreadMutation {
|
|
10
|
+
mutation: ThreadMutation;
|
|
11
|
+
prompts: ReadonlyMap<string, BodyRef>;
|
|
12
|
+
}
|
|
13
|
+
export declare function prepareThreadMutation(blobs: BlobFiles, value: ThreadMutation): PreparedThreadMutation;
|
|
14
|
+
/** Pure replay/runtime reducer. The importer supplies prepared prompt bytes
|
|
15
|
+
* and original time on its one connection; no files, callbacks or COMMIT here. */
|
|
16
|
+
export declare function applyThreadMutation(sql: SqlWriteContext, pid: number, prepared: PreparedThreadMutation, time: string): string[];
|
|
17
|
+
/** Applied separately after project rows; import never emits a fresh ping. */
|
|
18
|
+
export declare function applyImportedHeadRevision(sql: SqlWriteContext, threadId: string, revision: number): void;
|
|
19
|
+
export declare function readThread(sql: Pick<SqlWriteContext, "prepare">, pid: number, id: string): Thread | undefined;
|
|
20
|
+
export declare function readTurn(sql: Pick<SqlWriteContext, "prepare">, blobs: Pick<BlobFiles, "read">, pid: number, id: string): ThreadTurn | undefined;
|
|
21
|
+
export declare function hydrateTurn(row: {
|
|
22
|
+
body: Uint8Array;
|
|
23
|
+
prompt_sha: string;
|
|
24
|
+
}, blobs: Pick<BlobFiles, "read">): ThreadTurn;
|
|
25
|
+
//# sourceMappingURL=thread-rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-rows.d.ts","sourceRoot":"","sources":["../../src/store/thread-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAEzE,eAAO,MAAM,UAAU,SAAU,OAAO,KAAG,MAA2C,CAAC;AACvF,eAAO,MAAM,UAAU,GAAI,CAAC,OAAO;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,KAAG,CACD,CAAC;AAE1D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,GACpB,sBAAsB,CAMxB;AAED;kFACkF;AAClF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,sBAAsB,EAChC,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAoEV;AA8ED,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,IAAI,CAKN;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,GACT,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACrC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAC9B,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,GACT,UAAU,GAAG,SAAS,CAIxB;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC7C,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAC7B,UAAU,CAKZ"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { parseMutation } from "../thread-store-support.js";
|
|
2
|
+
import { deleteUnownedInlineInTx } from "./blob-files.js";
|
|
3
|
+
import { bindIdempotencyInTx } from "./idempotency.js";
|
|
4
|
+
import { requireTransaction } from "./mutation.js";
|
|
5
|
+
export const encodeBody = (body) => Buffer.from(JSON.stringify(body));
|
|
6
|
+
export const decodeBody = (row) => JSON.parse(Buffer.from(row.body).toString("utf8"));
|
|
7
|
+
export function prepareThreadMutation(blobs, value) {
|
|
8
|
+
const mutation = parseMutation(value);
|
|
9
|
+
const prompts = new Map((mutation.turns ?? []).map((turn) => [turn.id, blobs.prepareBody(Buffer.from(turn.prompt))]));
|
|
10
|
+
return { mutation, prompts };
|
|
11
|
+
}
|
|
12
|
+
/** Pure replay/runtime reducer. The importer supplies prepared prompt bytes
|
|
13
|
+
* and original time on its one connection; no files, callbacks or COMMIT here. */
|
|
14
|
+
export function applyThreadMutation(sql, pid, prepared, time) {
|
|
15
|
+
requireTransaction(sql);
|
|
16
|
+
const changed = new Set();
|
|
17
|
+
const mutation = parseMutation(prepared.mutation);
|
|
18
|
+
for (const thread of mutation.threads ?? []) {
|
|
19
|
+
const result = sql
|
|
20
|
+
.prepare(`INSERT INTO thread(id,pid,state,updated_at,body) VALUES(?,?,?,?,?)
|
|
21
|
+
ON CONFLICT(id) DO UPDATE SET state=excluded.state, updated_at=excluded.updated_at, body=excluded.body
|
|
22
|
+
WHERE thread.pid=excluded.pid`)
|
|
23
|
+
.run(thread.id, pid, thread.state, thread.updated_at, encodeBody(thread));
|
|
24
|
+
if (!result.changes)
|
|
25
|
+
throw new Error(`thread ${thread.id} belongs to another generation`);
|
|
26
|
+
}
|
|
27
|
+
for (const turn of mutation.turns ?? []) {
|
|
28
|
+
const ref = prepared.prompts.get(turn.id);
|
|
29
|
+
if (!ref)
|
|
30
|
+
throw new Error(`missing prepared prompt for ${turn.id}`);
|
|
31
|
+
const old = sql.prepare("SELECT pid, ordinal, prompt_sha FROM turn WHERE id=?").get(turn.id);
|
|
32
|
+
if (old && old.pid !== pid)
|
|
33
|
+
throw new Error(`turn ${turn.id} belongs to another generation`);
|
|
34
|
+
const ordinal = old?.ordinal ?? nextOrdinal(sql, "turn", turn.thread_id);
|
|
35
|
+
sql
|
|
36
|
+
.prepare("INSERT OR IGNORE INTO blob(sha256,size,inline) VALUES(?,?,?)")
|
|
37
|
+
.run(ref.sha256, ref.size, ref.inline);
|
|
38
|
+
const { prompt: _prompt, ...body } = turn;
|
|
39
|
+
sql
|
|
40
|
+
.prepare(`INSERT INTO turn(id,pid,thread_id,ordinal,run_id,created_at,prompt_sha,body) VALUES(?,?,?,?,?,?,?,?)
|
|
41
|
+
ON CONFLICT(id) DO UPDATE SET run_id=excluded.run_id, prompt_sha=excluded.prompt_sha, body=excluded.body`)
|
|
42
|
+
.run(turn.id, pid, turn.thread_id, ordinal, turn.run_id, turn.created_at, ref.sha256, encodeBody(body));
|
|
43
|
+
changed.add(ref.sha256);
|
|
44
|
+
if (old)
|
|
45
|
+
changed.add(old.prompt_sha);
|
|
46
|
+
}
|
|
47
|
+
for (const session of mutation.sessions ?? [])
|
|
48
|
+
writeLane(sql, "session", pid, session);
|
|
49
|
+
for (const checkpoint of mutation.checkpoints ?? [])
|
|
50
|
+
writeLane(sql, "lane_checkpoint", pid, checkpoint);
|
|
51
|
+
const bindings = [
|
|
52
|
+
mutation.threadCreation && {
|
|
53
|
+
...mutation.threadCreation,
|
|
54
|
+
owner: "thread",
|
|
55
|
+
targetId: mutation.threadCreation.threadId,
|
|
56
|
+
operation: "thread.create",
|
|
57
|
+
},
|
|
58
|
+
mutation.idempotency && {
|
|
59
|
+
...mutation.idempotency,
|
|
60
|
+
owner: "turn",
|
|
61
|
+
targetId: mutation.idempotency.turnId,
|
|
62
|
+
operation: "thread.turn.create",
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
for (const binding of bindings) {
|
|
66
|
+
if (!binding)
|
|
67
|
+
continue;
|
|
68
|
+
const saved = bindIdempotencyInTx(sql, { ...binding, pid, createdAt: time });
|
|
69
|
+
if (saved.targetId !== binding.targetId)
|
|
70
|
+
throw new Error("conflicting thread idempotency history");
|
|
71
|
+
}
|
|
72
|
+
for (const sha of changed)
|
|
73
|
+
deleteUnownedInlineInTx(sql, sha);
|
|
74
|
+
return [...changed];
|
|
75
|
+
}
|
|
76
|
+
function nextOrdinal(sql, table, scope) {
|
|
77
|
+
const column = table === "turn" ? "ordinal" : "insertion_ordinal";
|
|
78
|
+
const key = table === "turn" ? "thread_id" : "pid";
|
|
79
|
+
const row = sql
|
|
80
|
+
.prepare(`SELECT ${column} AS n FROM ${table} WHERE ${key}=? ORDER BY ${column} DESC LIMIT 1`)
|
|
81
|
+
.get(scope);
|
|
82
|
+
return (row?.n ?? -1) + 1;
|
|
83
|
+
}
|
|
84
|
+
function writeLane(sql, table, pid, item) {
|
|
85
|
+
if (table === "session") {
|
|
86
|
+
const previous = sql
|
|
87
|
+
.prepare("SELECT insertion_ordinal FROM session WHERE id=? AND pid=?")
|
|
88
|
+
.get(item.id, pid);
|
|
89
|
+
const ordinal = previous?.insertion_ordinal ?? nextOrdinal(sql, table, pid);
|
|
90
|
+
const result = sql
|
|
91
|
+
.prepare(`INSERT INTO session(id,thread_id,harness_id,profile_id,pid,insertion_ordinal,body)
|
|
92
|
+
VALUES(?,?,?,?,?,?,?) ON CONFLICT(id) DO UPDATE SET profile_id=excluded.profile_id,body=excluded.body
|
|
93
|
+
WHERE session.pid=excluded.pid`)
|
|
94
|
+
.run(item.id, item.thread_id, item.harness_id, item.profile_id ?? "", pid, ordinal, encodeBody(item));
|
|
95
|
+
if (!result.changes)
|
|
96
|
+
throw new Error(`session ${item.id} belongs to another generation`);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Checkpoints retain legacy lane identity, including the null/default alias.
|
|
100
|
+
const previous = sql
|
|
101
|
+
.prepare(`SELECT profile_id,insertion_ordinal FROM ${table}
|
|
102
|
+
WHERE thread_id=? AND harness_id=? AND json_extract(CAST(body AS TEXT),'$.id')=?`)
|
|
103
|
+
.get(item.thread_id, item.harness_id, item.id);
|
|
104
|
+
const ordinal = previous?.insertion_ordinal ?? nextOrdinal(sql, table, pid);
|
|
105
|
+
const profile = item.profile_id ?? "";
|
|
106
|
+
if (previous && previous.profile_id !== profile) {
|
|
107
|
+
sql
|
|
108
|
+
.prepare(`DELETE FROM ${table} WHERE thread_id=? AND harness_id=? AND profile_id=? AND pid=?`)
|
|
109
|
+
.run(item.thread_id, item.harness_id, previous.profile_id, pid);
|
|
110
|
+
}
|
|
111
|
+
const result = sql
|
|
112
|
+
.prepare(`INSERT INTO lane_checkpoint(thread_id,harness_id,profile_id,pid,insertion_ordinal,body,turn_id)
|
|
113
|
+
VALUES(?,?,?,?,?,?,?)
|
|
114
|
+
ON CONFLICT(thread_id,harness_id,profile_id) DO UPDATE SET body=excluded.body,turn_id=excluded.turn_id
|
|
115
|
+
WHERE lane_checkpoint.pid=excluded.pid`)
|
|
116
|
+
.run(item.thread_id, item.harness_id, profile, pid, ordinal, encodeBody(item), item.turn_id);
|
|
117
|
+
if (!result.changes)
|
|
118
|
+
throw new Error(`checkpoint ${item.id} belongs to another generation`);
|
|
119
|
+
}
|
|
120
|
+
/** Applied separately after project rows; import never emits a fresh ping. */
|
|
121
|
+
export function applyImportedHeadRevision(sql, threadId, revision) {
|
|
122
|
+
requireTransaction(sql);
|
|
123
|
+
sql
|
|
124
|
+
.prepare("UPDATE thread SET head_revision=max(head_revision,?) WHERE id=?")
|
|
125
|
+
.run(revision, threadId);
|
|
126
|
+
}
|
|
127
|
+
export function readThread(sql, pid, id) {
|
|
128
|
+
const row = sql.prepare("SELECT body FROM thread WHERE id=? AND pid=?").get(id, pid);
|
|
129
|
+
return row ? decodeBody(row) : undefined;
|
|
130
|
+
}
|
|
131
|
+
export function readTurn(sql, blobs, pid, id) {
|
|
132
|
+
const row = sql.prepare("SELECT body,prompt_sha FROM turn WHERE id=? AND pid=?").get(id, pid);
|
|
133
|
+
return row ? hydrateTurn(row, blobs) : undefined;
|
|
134
|
+
}
|
|
135
|
+
export function hydrateTurn(row, blobs) {
|
|
136
|
+
return {
|
|
137
|
+
...decodeBody(row),
|
|
138
|
+
prompt: blobs.read(row.prompt_sha).toString("utf8"),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=thread-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-rows.js","sourceRoot":"","sources":["../../src/store/thread-rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { ContinuityDisclosure, LaneCheckpoint, Session, Thread, ThreadTurn, TurnEnqueueProblem } from "@claudexor/schema";
|
|
2
|
+
import { type ThreadMutation } from "../thread-store-support.js";
|
|
3
|
+
import type { CreateThreadInput, CreateTurnInput, UpdateThreadInput } from "../threads.js";
|
|
4
|
+
import { BlobFiles } from "./blob-files.js";
|
|
5
|
+
import { type MutationContext } from "./mutation.js";
|
|
6
|
+
import { Obligations } from "./obligations.js";
|
|
7
|
+
import type { PartitionGeneration } from "./partitions.js";
|
|
8
|
+
import type { EngineStore } from "./store.js";
|
|
9
|
+
import { type PreparedThreadMutation } from "./thread-rows.js";
|
|
10
|
+
/** Addressed SQL conversation owner. It never loads retained journal history. */
|
|
11
|
+
export declare class SqlThreadStore {
|
|
12
|
+
readonly store: EngineStore;
|
|
13
|
+
readonly blobs: BlobFiles;
|
|
14
|
+
readonly generation: Pick<PartitionGeneration, "pid" | "name" | "epoch">;
|
|
15
|
+
readonly obligations: Obligations;
|
|
16
|
+
constructor(store: EngineStore, blobs: BlobFiles, generation: Pick<PartitionGeneration, "pid" | "name" | "epoch">, obligations: Obligations);
|
|
17
|
+
private allThreads;
|
|
18
|
+
private allSessions;
|
|
19
|
+
private allCheckpoints;
|
|
20
|
+
prepare(mutation: ThreadMutation): PreparedThreadMutation;
|
|
21
|
+
/** Compound project relink and terminal owners compose in their one transaction. */
|
|
22
|
+
applyInTx(tx: MutationContext, prepared: PreparedThreadMutation): void;
|
|
23
|
+
private commit;
|
|
24
|
+
pingHeadInTx(tx: MutationContext, threadId: string): void;
|
|
25
|
+
pingHead(threadId: string): void;
|
|
26
|
+
revision(threadId: string): number;
|
|
27
|
+
createThread(input: CreateThreadInput): Thread;
|
|
28
|
+
/** Accepted-creation replay lookup, recovered before mutable path admission. */
|
|
29
|
+
findThreadCreation(input: CreateThreadInput["idempotency"], exactRequestOnly?: boolean): Thread | undefined;
|
|
30
|
+
/** Rename and/or open/close (archive) a thread. */
|
|
31
|
+
updateThread(id: string, patch: UpdateThreadInput): Thread;
|
|
32
|
+
trashThread(id: string): Thread;
|
|
33
|
+
restoreThread(id: string): Thread;
|
|
34
|
+
purgeThread(id: string): Thread;
|
|
35
|
+
private changeLifecycle;
|
|
36
|
+
/** Persist the resolved isolated worktree path + base sha for a thread. */
|
|
37
|
+
setThreadWorktree(id: string, worktreePath: string, baseSha: string, deliveredThroughRunId?: string): void;
|
|
38
|
+
listThreads(only?: "purged"): Thread[];
|
|
39
|
+
getThread(id: string): Thread | undefined;
|
|
40
|
+
turnsFor(threadId: string): ThreadTurn[];
|
|
41
|
+
getTurn(id: string): ThreadTurn | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Fail-loud prologue for the daemon runner: control-api validates thread/turn
|
|
44
|
+
* ids at the HTTP boundary, but a direct socket caller can pass bogus ids —
|
|
45
|
+
* a silent unbind would orphan the run from its conversation. A typed throw
|
|
46
|
+
* settles the job `failed` instead. Returns the normalized ids.
|
|
47
|
+
*/
|
|
48
|
+
assertKnownIds(rawThreadId: unknown, rawTurnId: unknown): {
|
|
49
|
+
threadId?: string;
|
|
50
|
+
turnId?: string;
|
|
51
|
+
};
|
|
52
|
+
sessionsForThread(threadId: string): Session[];
|
|
53
|
+
/** Native resume map for a thread: harnessId -> native session id (live sessions only). */
|
|
54
|
+
resumeMap(threadId: string, profileId?: string | null): Record<string, {
|
|
55
|
+
sessionId: string;
|
|
56
|
+
profileId: string | null;
|
|
57
|
+
}>;
|
|
58
|
+
createTurn(threadId: string, prompt: string, input?: CreateTurnInput): ThreadTurn;
|
|
59
|
+
findTurnByIdempotency(threadId: string, input: NonNullable<CreateTurnInput["idempotency"]>): ThreadTurn | undefined;
|
|
60
|
+
/** Bind a started run to its turn and advance the thread head (runner-owned). */
|
|
61
|
+
bindTurnRun(turnId: string, runId: string): void;
|
|
62
|
+
/**
|
|
63
|
+
* Persist the reason a turn's run could NOT be enqueued/started (trust
|
|
64
|
+
* refusal, preflight validation, enqueue throw). Only meaningful for a
|
|
65
|
+
* RUNLESS turn: once a run is bound the turn's honesty lives on the run's
|
|
66
|
+
* own terminal artifacts, so a late failure report is ignored. One typed
|
|
67
|
+
* object carries code, retryability, recovery actions, and bounded context;
|
|
68
|
+
* adding a field cannot silently fall out of a positional callback chain.
|
|
69
|
+
*/
|
|
70
|
+
setTurnEnqueueError(turnId: string, problem: TurnEnqueueProblem): void;
|
|
71
|
+
/** Record/refresh a harness's native session; see `makeSessionRecord` (INV-135). */
|
|
72
|
+
recordSession(threadId: string, harnessId: string, nativeSessionId: string, observedModel?: string | null, profileId?: string | null): void;
|
|
73
|
+
/** Advance a lane's checkpoint to `turnId` (INV-137): the lane
|
|
74
|
+
* (thread, harness, profile) has now SEEN that turn. Same (harness, profile)
|
|
75
|
+
* key as `resumeMap`, so the next turn's packet math is exact. */
|
|
76
|
+
recordLaneCheckpoint(threadId: string, harnessId: string, profileId: string | null, turnId: string): void;
|
|
77
|
+
/** The last turn a lane has seen, or null when the lane never ran. */
|
|
78
|
+
laneCheckpoint(threadId: string, harnessId: string, profileId: string | null): string | null;
|
|
79
|
+
/** All lane checkpoints of a thread (used to identify the prior head's lane). */
|
|
80
|
+
laneCheckpointsForThread(threadId: string): LaneCheckpoint[];
|
|
81
|
+
/** Stamp how a turn's lane was continued (INV-137); last-writer-wins. */
|
|
82
|
+
setTurnContinuity(turnId: string, disclosure: ContinuityDisclosure): void;
|
|
83
|
+
relinkProjectRoot(root: string): void;
|
|
84
|
+
/** D-U1 order 2 / INV-137 unified-accounts readers and mutations — the
|
|
85
|
+
* derivation contracts live in thread-lane-checkpoints.ts. */
|
|
86
|
+
accountBindings(threadId: string): Record<string, string>;
|
|
87
|
+
resumeMapAuto(threadId: string): Record<string, {
|
|
88
|
+
sessionId: string;
|
|
89
|
+
profileId: string | null;
|
|
90
|
+
}>;
|
|
91
|
+
migrateNullProfileContinuity(harnessId: string, rowId: string): {
|
|
92
|
+
sessions: number;
|
|
93
|
+
checkpoints: number;
|
|
94
|
+
};
|
|
95
|
+
rollbackProfileContinuity(harnessId: string, rowId: string): {
|
|
96
|
+
sessions: number;
|
|
97
|
+
checkpoints: number;
|
|
98
|
+
};
|
|
99
|
+
private applyContinuityMutation;
|
|
100
|
+
invalidateCredentialProfile(harnessId: string, profileId: string): {
|
|
101
|
+
clearedThreads: number;
|
|
102
|
+
invalidatedSessions: number;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=threads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/store/threads.ts"],"names":[],"mappings":"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"}
|