@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,39 @@
|
|
|
1
|
+
import { ControlAccountResetRequest, ControlAccountResetResponse, type AccountTarget, type ControlAccountResourcesResponse } from "@claudexor/schema";
|
|
2
|
+
import type { CommandStorePort } from "./store-contracts.js";
|
|
3
|
+
/** Host-private immutable target, stored before dispatch. No bearer material. */
|
|
4
|
+
export interface AccountResetBinding {
|
|
5
|
+
harness: string;
|
|
6
|
+
locator: string;
|
|
7
|
+
fingerprint: string;
|
|
8
|
+
program: string;
|
|
9
|
+
grant_id: string | null;
|
|
10
|
+
native_request_id: string;
|
|
11
|
+
}
|
|
12
|
+
export interface AccountResetDependencies {
|
|
13
|
+
commands: () => CommandStorePort;
|
|
14
|
+
resolve: (request: ControlAccountResetRequest) => Promise<AccountResetBinding>;
|
|
15
|
+
verify: (binding: AccountResetBinding, target: AccountTarget) => Promise<void>;
|
|
16
|
+
consume: (binding: AccountResetBinding) => Promise<Pick<ControlAccountResetResponse, "outcome" | "detail">>;
|
|
17
|
+
invalidate: (target: AccountTarget) => void;
|
|
18
|
+
refresh: (target: AccountTarget, mayHaveChanged: boolean) => Promise<ControlAccountResourcesResponse>;
|
|
19
|
+
read?: () => ControlAccountResourcesResponse;
|
|
20
|
+
now?: () => Date;
|
|
21
|
+
}
|
|
22
|
+
/** A direct durable command, like delivery. The HTTP handler owns in-flight
|
|
23
|
+
* shutdown custody; no inference job, slot, scheduler or automatic replay. */
|
|
24
|
+
export declare class AccountResets {
|
|
25
|
+
private readonly deps;
|
|
26
|
+
private readonly active;
|
|
27
|
+
constructor(deps: AccountResetDependencies);
|
|
28
|
+
private now;
|
|
29
|
+
create(input: {
|
|
30
|
+
request: ControlAccountResetRequest;
|
|
31
|
+
idempotencyKey: string;
|
|
32
|
+
clientId: string;
|
|
33
|
+
}): Promise<ControlAccountResetResponse>;
|
|
34
|
+
get(id: string): ControlAccountResetResponse;
|
|
35
|
+
private initial;
|
|
36
|
+
private save;
|
|
37
|
+
private execute;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=account-resets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-resets.d.ts","sourceRoot":"","sources":["../src/account-resets.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,aAAa,EAClB,KAAK,+BAA+B,EACrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAMD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,gBAAgB,CAAC;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/E,MAAM,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,OAAO,EAAE,CACP,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;IACtE,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,CACP,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,OAAO,KACpB,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,+BAA+B,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;8EAC8E;AAC9E,qBAAa,aAAa;IAEZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2D;IAClF,YAA6B,IAAI,EAAE,wBAAwB,EAAI;IAC/D,OAAO,CAAC,GAAG;IAIL,MAAM,CAAC,KAAK,EAAE;QAClB,OAAO,EAAE,0BAA0B,CAAC;QACpC,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CA4BvC;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B,CAqB3C;IAED,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,IAAI;YAOE,OAAO;CA6FtB"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { ControlAccountResetRequest, ControlAccountResetResponse, } from "@claudexor/schema";
|
|
3
|
+
/** A direct durable command, like delivery. The HTTP handler owns in-flight
|
|
4
|
+
* shutdown custody; no inference job, slot, scheduler or automatic replay. */
|
|
5
|
+
export class AccountResets {
|
|
6
|
+
deps;
|
|
7
|
+
active = new Map();
|
|
8
|
+
constructor(deps) {
|
|
9
|
+
this.deps = deps;
|
|
10
|
+
}
|
|
11
|
+
now() {
|
|
12
|
+
return (this.deps.now?.() ?? new Date()).toISOString();
|
|
13
|
+
}
|
|
14
|
+
async create(input) {
|
|
15
|
+
const request = ControlAccountResetRequest.parse(input.request);
|
|
16
|
+
const store = this.deps.commands();
|
|
17
|
+
const key = {
|
|
18
|
+
...input,
|
|
19
|
+
params: request,
|
|
20
|
+
operation: "account.reset",
|
|
21
|
+
idempotencyParams: request,
|
|
22
|
+
};
|
|
23
|
+
// Resolve replay BEFORE mutable profile or offer lookup.
|
|
24
|
+
let record = store.find(key);
|
|
25
|
+
if (!record) {
|
|
26
|
+
const binding = await this.deps.resolve(request);
|
|
27
|
+
record = store.accept({
|
|
28
|
+
...key,
|
|
29
|
+
id: `account-reset-${randomUUID()}`,
|
|
30
|
+
params: { kind: "account_reset", request, binding },
|
|
31
|
+
}).record;
|
|
32
|
+
}
|
|
33
|
+
const active = this.active.get(record.id);
|
|
34
|
+
if (active)
|
|
35
|
+
return active;
|
|
36
|
+
const accepted = record.params;
|
|
37
|
+
const prior = ControlAccountResetResponse.safeParse(record.result);
|
|
38
|
+
if (prior.success && prior.data.state === "completed" && prior.data.outcome !== "unknown")
|
|
39
|
+
return prior.data;
|
|
40
|
+
const task = this.execute(record, accepted).finally(() => this.active.delete(record.id));
|
|
41
|
+
this.active.set(record.id, task);
|
|
42
|
+
return task;
|
|
43
|
+
}
|
|
44
|
+
get(id) {
|
|
45
|
+
const record = this.deps.commands().get(id);
|
|
46
|
+
if (!record || record.params?.kind !== "account_reset")
|
|
47
|
+
throw Object.assign(new Error("No such account reset"), {
|
|
48
|
+
status: 404,
|
|
49
|
+
code: "account_reset_not_found",
|
|
50
|
+
});
|
|
51
|
+
const result = ControlAccountResetResponse.safeParse(record.result);
|
|
52
|
+
const receipt = result.success
|
|
53
|
+
? result.data
|
|
54
|
+
: this.initial(record, record.params.request);
|
|
55
|
+
if (!this.active.has(id) && receipt.state === "running")
|
|
56
|
+
return {
|
|
57
|
+
...receipt,
|
|
58
|
+
state: "completed",
|
|
59
|
+
completed_at: record.finishedAt ?? null,
|
|
60
|
+
outcome: receipt.outcome === "pending" ? "unknown" : receipt.outcome,
|
|
61
|
+
detail: receipt.detail ?? "operation_interrupted",
|
|
62
|
+
readback: { state: "failed", attempted_at: null, detail: "operation_interrupted" },
|
|
63
|
+
};
|
|
64
|
+
return receipt;
|
|
65
|
+
}
|
|
66
|
+
initial(record, request) {
|
|
67
|
+
return {
|
|
68
|
+
id: record.id,
|
|
69
|
+
request,
|
|
70
|
+
state: "running",
|
|
71
|
+
created_at: record.createdAt,
|
|
72
|
+
completed_at: null,
|
|
73
|
+
outcome: "pending",
|
|
74
|
+
detail: null,
|
|
75
|
+
readback: { state: "pending", attempted_at: null, detail: null },
|
|
76
|
+
resources: null,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
save(receipt) {
|
|
80
|
+
this.deps.commands().update(receipt.id, {
|
|
81
|
+
state: receipt.state === "completed" ? "succeeded" : "running",
|
|
82
|
+
result: ControlAccountResetResponse.parse(receipt),
|
|
83
|
+
...(receipt.state === "completed" ? { finishedAt: receipt.completed_at } : {}),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async execute(record, accepted) {
|
|
87
|
+
const parsed = ControlAccountResetResponse.safeParse(record.result);
|
|
88
|
+
let receipt = parsed.success ? parsed.data : this.initial(record, accepted.request);
|
|
89
|
+
const wasDispatched = parsed.success;
|
|
90
|
+
const needsDispatch = !wasDispatched ||
|
|
91
|
+
((receipt.outcome === "pending" || receipt.outcome === "unknown") &&
|
|
92
|
+
accepted.binding.harness === "codex");
|
|
93
|
+
if (needsDispatch) {
|
|
94
|
+
await this.deps.verify(accepted.binding, accepted.request.target);
|
|
95
|
+
receipt = { ...receipt, state: "running", completed_at: null, outcome: "pending" };
|
|
96
|
+
this.save(receipt); // durable dispatch intent, before native I/O
|
|
97
|
+
try {
|
|
98
|
+
await this.deps.commands().flushed();
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
receipt = {
|
|
102
|
+
...receipt,
|
|
103
|
+
state: "completed",
|
|
104
|
+
completed_at: this.now(),
|
|
105
|
+
outcome: "unavailable",
|
|
106
|
+
detail: "store_flush_unavailable",
|
|
107
|
+
readback: { state: "failed", attempted_at: null, detail: "store_flush_unavailable" },
|
|
108
|
+
};
|
|
109
|
+
this.save(receipt);
|
|
110
|
+
return receipt;
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
const outcome = await this.deps.consume(accepted.binding);
|
|
114
|
+
receipt = { ...receipt, ...outcome };
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
receipt = { ...receipt, outcome: "unknown", detail: "provider_outcome_unconfirmed" };
|
|
118
|
+
}
|
|
119
|
+
this.save(receipt); // provider outcome survives a readback crash
|
|
120
|
+
}
|
|
121
|
+
else if (receipt.outcome === "pending") {
|
|
122
|
+
receipt = { ...receipt, outcome: "unknown", detail: "provider_outcome_unconfirmed" };
|
|
123
|
+
this.save(receipt);
|
|
124
|
+
}
|
|
125
|
+
// Never promote Claude already_used or a subsequent quota change to own success.
|
|
126
|
+
const mayHaveChanged = (needsDispatch || !parsed.success || parsed.data.state !== "completed") &&
|
|
127
|
+
["reset", "already_redeemed", "already_used", "unknown"].includes(receipt.outcome);
|
|
128
|
+
if (mayHaveChanged)
|
|
129
|
+
this.deps.invalidate(accepted.request.target);
|
|
130
|
+
const attemptedAt = this.now();
|
|
131
|
+
receipt = {
|
|
132
|
+
...receipt,
|
|
133
|
+
state: "running",
|
|
134
|
+
readback: { state: "pending", attempted_at: attemptedAt, detail: null },
|
|
135
|
+
};
|
|
136
|
+
this.save(receipt);
|
|
137
|
+
try {
|
|
138
|
+
const resources = await this.deps.refresh(accepted.request.target, mayHaveChanged);
|
|
139
|
+
const { harness, profile_id } = accepted.request.target;
|
|
140
|
+
const row = resources.resources.find((row) => row.target.harness === harness && row.target.profile_id === profile_id);
|
|
141
|
+
const fresh = resources.snapshots.some((snapshot) => snapshot.subject.harness === harness &&
|
|
142
|
+
snapshot.subject.subject_id === profile_id &&
|
|
143
|
+
snapshot.freshness === "fresh" &&
|
|
144
|
+
snapshot.observed_at >= attemptedAt) &&
|
|
145
|
+
row?.resets.freshness === "fresh" &&
|
|
146
|
+
row.resets.observed_at !== null &&
|
|
147
|
+
row.resets.observed_at >= attemptedAt;
|
|
148
|
+
receipt = {
|
|
149
|
+
...receipt,
|
|
150
|
+
resources,
|
|
151
|
+
readback: {
|
|
152
|
+
state: fresh ? "fresh" : "failed",
|
|
153
|
+
attempted_at: attemptedAt,
|
|
154
|
+
detail: fresh ? null : "resources_not_fully_refreshed",
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
receipt = {
|
|
160
|
+
...receipt,
|
|
161
|
+
resources: this.deps.read?.() ?? receipt.resources,
|
|
162
|
+
readback: {
|
|
163
|
+
state: "failed",
|
|
164
|
+
attempted_at: attemptedAt,
|
|
165
|
+
detail: "resource_readback_failed",
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
receipt = { ...receipt, state: "completed", completed_at: this.now() };
|
|
170
|
+
this.save(receipt);
|
|
171
|
+
return receipt;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=account-resets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-resets.js","sourceRoot":"","sources":["../src/account-resets.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import type { CancelReasonCode, CommandListQuery } from "@claudexor/schema";
|
|
2
2
|
import type { RuntimeReplacementTarget } from "./daemon-shutdown-rpc.js";
|
|
3
|
-
/**
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
/** A daemon-authored problem as it crosses the RPC boundary (`rpcProblem`). */
|
|
4
|
+
export interface DaemonRpcProblem {
|
|
5
|
+
message: string;
|
|
6
|
+
code?: unknown;
|
|
7
|
+
status?: unknown;
|
|
8
|
+
retryable?: unknown;
|
|
9
|
+
context?: unknown;
|
|
10
|
+
requiredActions?: unknown;
|
|
11
|
+
}
|
|
12
|
+
/** Rebuild a daemon-authored problem from its wire form. Every transport uses
|
|
13
|
+
* this one projection, so only well-typed fields survive and callers see the
|
|
14
|
+
* same code/status/retryable/context/requiredActions whichever way it came. */
|
|
15
|
+
export declare function daemonRpcError(problem: DaemonRpcProblem): Error;
|
|
16
|
+
/** The daemon facade over one RPC transport. The socket client and the
|
|
17
|
+
* daemon's in-process client share this method → RPC mapping, so request
|
|
18
|
+
* envelopes and defaults cannot drift between transports. */
|
|
19
|
+
export declare abstract class DaemonRpcMethods {
|
|
20
|
+
abstract call<T = unknown>(method: string, params?: unknown): Promise<T>;
|
|
9
21
|
health(): Promise<unknown>;
|
|
10
22
|
enqueue(request: unknown, options?: {
|
|
11
23
|
idempotencyKey?: string;
|
|
@@ -82,6 +94,13 @@ export declare class DaemonClient {
|
|
|
82
94
|
runId: string;
|
|
83
95
|
fenced: boolean;
|
|
84
96
|
}>;
|
|
97
|
+
}
|
|
98
|
+
/** Thin JSON-RPC client for the daemon over a Unix socket. */
|
|
99
|
+
export declare class DaemonClient extends DaemonRpcMethods {
|
|
100
|
+
private readonly socketPath;
|
|
101
|
+
private readonly token;
|
|
102
|
+
constructor(socketPath: string, token: string);
|
|
103
|
+
call<T = unknown>(method: string, params?: unknown): Promise<T>;
|
|
85
104
|
shutdown(): Promise<unknown>;
|
|
86
105
|
shutdownForRuntimeReplacement(expectedTarget: RuntimeReplacementTarget): Promise<{
|
|
87
106
|
ok: true;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -2,11 +2,63 @@ import { DaemonTransportError } from "./client-errors.js";
|
|
|
2
2
|
import { connect } from "node:net";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { createInterface } from "node:readline";
|
|
5
|
+
/** Rebuild a daemon-authored problem from its wire form. Every transport uses
|
|
6
|
+
* this one projection, so only well-typed fields survive and callers see the
|
|
7
|
+
* same code/status/retryable/context/requiredActions whichever way it came. */
|
|
8
|
+
export function daemonRpcError(problem) {
|
|
9
|
+
return Object.assign(new Error(problem.message), {
|
|
10
|
+
...(typeof problem.code === "string" ? { code: problem.code } : {}),
|
|
11
|
+
...(typeof problem.status === "number" ? { status: problem.status } : {}),
|
|
12
|
+
...(typeof problem.retryable === "boolean" ? { retryable: problem.retryable } : {}),
|
|
13
|
+
...(problem.context && typeof problem.context === "object" ? { context: problem.context } : {}),
|
|
14
|
+
...(Array.isArray(problem.requiredActions) ? { requiredActions: problem.requiredActions } : {}),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/** The daemon facade over one RPC transport. The socket client and the
|
|
18
|
+
* daemon's in-process client share this method → RPC mapping, so request
|
|
19
|
+
* envelopes and defaults cannot drift between transports. */
|
|
20
|
+
export class DaemonRpcMethods {
|
|
21
|
+
health() {
|
|
22
|
+
return this.call("claudexor.health");
|
|
23
|
+
}
|
|
24
|
+
enqueue(request, options = {}) {
|
|
25
|
+
return this.call("claudexor.enqueue", {
|
|
26
|
+
request,
|
|
27
|
+
idempotencyKey: options.idempotencyKey ?? randomUUID(),
|
|
28
|
+
clientId: options.clientId ?? "daemon-client",
|
|
29
|
+
idempotencyRequest: options.idempotencyRequest,
|
|
30
|
+
operation: options.operation,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
status(id) {
|
|
34
|
+
return this.call("claudexor.status", { id });
|
|
35
|
+
}
|
|
36
|
+
findAccepted(request, options) {
|
|
37
|
+
return this.call("claudexor.findAccepted", {
|
|
38
|
+
request,
|
|
39
|
+
idempotencyKey: options.idempotencyKey,
|
|
40
|
+
clientId: options.clientId ?? "daemon-client",
|
|
41
|
+
operation: options.operation,
|
|
42
|
+
idempotencyRequest: options.idempotencyRequest,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/** Required addressed read; collection answers contain summary facts only. */
|
|
46
|
+
list(query) {
|
|
47
|
+
return this.call("claudexor.list", { query });
|
|
48
|
+
}
|
|
49
|
+
cancel(id, reasonCode) {
|
|
50
|
+
return this.call("claudexor.cancel", reasonCode ? { id, reason_code: reasonCode } : { id });
|
|
51
|
+
}
|
|
52
|
+
fenceDelegationParent(runId) {
|
|
53
|
+
return this.call("claudexor.delegationFence", { runId });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
5
56
|
/** Thin JSON-RPC client for the daemon over a Unix socket. */
|
|
6
|
-
export class DaemonClient {
|
|
57
|
+
export class DaemonClient extends DaemonRpcMethods {
|
|
7
58
|
socketPath;
|
|
8
59
|
token;
|
|
9
60
|
constructor(socketPath, token) {
|
|
61
|
+
super();
|
|
10
62
|
this.socketPath = socketPath;
|
|
11
63
|
this.token = token;
|
|
12
64
|
}
|
|
@@ -47,22 +99,8 @@ export class DaemonClient {
|
|
|
47
99
|
(msg.error ? typeof msg.error.message !== "string" : !("result" in msg))) {
|
|
48
100
|
throw new Error("invalid daemon RPC response");
|
|
49
101
|
}
|
|
50
|
-
if (msg.error)
|
|
51
|
-
|
|
52
|
-
...(typeof msg.error.code === "string" ? { code: msg.error.code } : {}),
|
|
53
|
-
...(typeof msg.error.status === "number" ? { status: msg.error.status } : {}),
|
|
54
|
-
...(typeof msg.error.retryable === "boolean"
|
|
55
|
-
? { retryable: msg.error.retryable }
|
|
56
|
-
: {}),
|
|
57
|
-
...(msg.error.context && typeof msg.error.context === "object"
|
|
58
|
-
? { context: msg.error.context }
|
|
59
|
-
: {}),
|
|
60
|
-
...(Array.isArray(msg.error.requiredActions)
|
|
61
|
-
? { requiredActions: msg.error.requiredActions }
|
|
62
|
-
: {}),
|
|
63
|
-
});
|
|
64
|
-
finish(() => reject(error));
|
|
65
|
-
}
|
|
102
|
+
if (msg.error)
|
|
103
|
+
finish(() => reject(daemonRpcError(msg.error)));
|
|
66
104
|
else
|
|
67
105
|
finish(() => resolve(msg.result));
|
|
68
106
|
}
|
|
@@ -72,40 +110,6 @@ export class DaemonClient {
|
|
|
72
110
|
});
|
|
73
111
|
});
|
|
74
112
|
}
|
|
75
|
-
health() {
|
|
76
|
-
return this.call("claudexor.health");
|
|
77
|
-
}
|
|
78
|
-
enqueue(request, options = {}) {
|
|
79
|
-
return this.call("claudexor.enqueue", {
|
|
80
|
-
request,
|
|
81
|
-
idempotencyKey: options.idempotencyKey ?? randomUUID(),
|
|
82
|
-
clientId: options.clientId ?? "daemon-client",
|
|
83
|
-
idempotencyRequest: options.idempotencyRequest,
|
|
84
|
-
operation: options.operation,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
status(id) {
|
|
88
|
-
return this.call("claudexor.status", { id });
|
|
89
|
-
}
|
|
90
|
-
findAccepted(request, options) {
|
|
91
|
-
return this.call("claudexor.findAccepted", {
|
|
92
|
-
request,
|
|
93
|
-
idempotencyKey: options.idempotencyKey,
|
|
94
|
-
clientId: options.clientId ?? "daemon-client",
|
|
95
|
-
operation: options.operation,
|
|
96
|
-
idempotencyRequest: options.idempotencyRequest,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
/** Required addressed read; collection answers contain summary facts only. */
|
|
100
|
-
list(query) {
|
|
101
|
-
return this.call("claudexor.list", { query });
|
|
102
|
-
}
|
|
103
|
-
cancel(id, reasonCode) {
|
|
104
|
-
return this.call("claudexor.cancel", reasonCode ? { id, reason_code: reasonCode } : { id });
|
|
105
|
-
}
|
|
106
|
-
fenceDelegationParent(runId) {
|
|
107
|
-
return this.call("claudexor.delegationFence", { runId });
|
|
108
|
-
}
|
|
109
113
|
shutdown() {
|
|
110
114
|
return this.call("claudexor.shutdown");
|
|
111
115
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAe,OAAO,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CommandStorePort, CommandQueries } from "./store-contracts.js";
|
|
2
2
|
export interface CommandAuthority {
|
|
3
|
-
current?():
|
|
4
|
-
forRequest?(params: unknown):
|
|
5
|
-
|
|
6
|
-
findById?(id: string): CommandStore | undefined;
|
|
3
|
+
current?(): CommandStorePort;
|
|
4
|
+
forRequest?(params: unknown): CommandStorePort;
|
|
5
|
+
findById?(id: string): CommandStorePort | undefined;
|
|
7
6
|
}
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
|
|
7
|
+
/** A complete command boundary; SQL never supplies a legacy enumeration fallback. */
|
|
8
|
+
export interface CommandBackend extends CommandAuthority {
|
|
9
|
+
readonly queries: CommandQueries;
|
|
10
|
+
pruneHistory(cap: number, retentionMs: number, now: number): string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function commandStoreForRequest(authority: CommandAuthority, params: unknown): CommandStorePort;
|
|
13
|
+
export declare function commandStoreForId(authority: CommandAuthority, id: string): CommandStorePort | undefined;
|
|
11
14
|
//# sourceMappingURL=command-authority.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-authority.d.ts","sourceRoot":"","sources":["../src/command-authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"command-authority.d.ts","sourceRoot":"","sources":["../src/command-authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,IAAI,gBAAgB,CAAC;IAC7B,UAAU,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAC/C,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CACrD;AAED,qFAAqF;AACrF,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACvE;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,OAAO,GACd,gBAAgB,CAIlB;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,gBAAgB,EAC3B,EAAE,EAAE,MAAM,GACT,gBAAgB,GAAG,SAAS,CAK9B"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
export function commandStores(authority) {
|
|
2
|
-
if (authority.all)
|
|
3
|
-
return authority.all();
|
|
4
|
-
return authority.current ? [authority.current()] : [];
|
|
5
|
-
}
|
|
6
1
|
export function commandStoreForRequest(authority, params) {
|
|
7
2
|
const store = authority.forRequest?.(params) ?? authority.current?.();
|
|
8
3
|
if (!store)
|
|
@@ -10,6 +5,10 @@ export function commandStoreForRequest(authority, params) {
|
|
|
10
5
|
return store;
|
|
11
6
|
}
|
|
12
7
|
export function commandStoreForId(authority, id) {
|
|
13
|
-
|
|
8
|
+
const addressed = authority.findById?.(id);
|
|
9
|
+
if (addressed)
|
|
10
|
+
return addressed;
|
|
11
|
+
const current = authority.current?.();
|
|
12
|
+
return current?.get(id) ? current : undefined;
|
|
14
13
|
}
|
|
15
14
|
//# sourceMappingURL=command-authority.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-authority.js","sourceRoot":"","sources":["../src/command-authority.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-authority.js","sourceRoot":"","sources":["../src/command-authority.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,sBAAsB,CACpC,SAA2B,EAC3B,MAAe;IAEf,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;IACtE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,SAA2B,EAC3B,EAAU;IAEV,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;IACtC,OAAO,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC"}
|
|
@@ -4,5 +4,4 @@ import { type JobRecord } from "./job-record.js";
|
|
|
4
4
|
export declare function compactCommandRecord(record: JobRecord): JobRecord & {
|
|
5
5
|
promptPreview?: string;
|
|
6
6
|
};
|
|
7
|
-
export declare function publicCommandList(records: readonly JobRecord[], rawQuery: unknown): JobRecord[];
|
|
8
7
|
//# sourceMappingURL=command-list-projection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-list-projection.d.ts","sourceRoot":"","sources":["../src/command-list-projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-list-projection.d.ts","sourceRoot":"","sources":["../src/command-list-projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAElE;8EAC8E;AAC9E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CA8B9F"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { COMMAND_SUMMARY_PARAM_KEYS } from "@claudexor/schema";
|
|
2
2
|
import { redactSecrets } from "@claudexor/util";
|
|
3
3
|
import { publicJobRecord } from "./job-record.js";
|
|
4
|
-
import { selectProductCommands } from "./command-retention.js";
|
|
5
|
-
import { parseCommandListQuery } from "./command-list-select.js";
|
|
6
4
|
/** Collections carry only the request facts their consumers use, never full
|
|
7
5
|
* params/results. Keep the historical redacted 240-character HTTP preview. */
|
|
8
6
|
export function compactCommandRecord(record) {
|
|
@@ -36,8 +34,4 @@ export function compactCommandRecord(record) {
|
|
|
36
34
|
: { promptPreview: prompt.length > 240 ? `${prompt.slice(0, 240)}...` : prompt }),
|
|
37
35
|
});
|
|
38
36
|
}
|
|
39
|
-
export function publicCommandList(records, rawQuery) {
|
|
40
|
-
const query = parseCommandListQuery(rawQuery);
|
|
41
|
-
return selectProductCommands(records, query).map("id" in query || "turnId" in query ? publicJobRecord : compactCommandRecord);
|
|
42
|
-
}
|
|
43
37
|
//# sourceMappingURL=command-list-projection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-list-projection.js","sourceRoot":"","sources":["../src/command-list-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAA6B,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAkB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-list-projection.js","sourceRoot":"","sources":["../src/command-list-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAA6B,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAkB,MAAM,iBAAiB,CAAC;AAElE;8EAC8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QAChD,CAAC,CAAE,MAAM,CAAC,MAAkC;QAC5C,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAG,MAAkC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,OAAO,eAAe,CAAC;QACrB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,MAAM;QACN,GAAG,CAAC,MAAM,KAAK,SAAS;YACtB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACpF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { CommandListQuery } from "@claudexor/schema";
|
|
2
|
-
import type { JobRecord } from "./job-record.js";
|
|
3
2
|
/** Parse at the RPC boundary before scanning anything, including empty history. */
|
|
4
3
|
export declare function parseCommandListQuery(query: unknown): CommandListQuery;
|
|
5
|
-
/** Select BEFORE redaction/copy/serialization. O(N) shallow reference scans
|
|
6
|
-
* are intentional; no unrelated prompt or result body is visited. */
|
|
7
|
-
export declare function selectCommandRecords(records: readonly JobRecord[], query: CommandListQuery): JobRecord[];
|
|
8
4
|
//# sourceMappingURL=command-list-select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-list-select.d.ts","sourceRoot":"","sources":["../src/command-list-select.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"command-list-select.d.ts","sourceRoot":"","sources":["../src/command-list-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAQtE"}
|