@akterjs/effect 0.0.0-stage → 0.1.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/LICENSE +201 -0
- package/README.md +43 -2
- package/dist/contract/actor/actor-already-exists.errors.d.mts +8 -0
- package/dist/contract/actor/actor-already-exists.errors.mjs +4 -0
- package/dist/contract/actor/actor-definition.pure.d.mts +21 -0
- package/dist/contract/actor/actor-definition.pure.mjs +106 -0
- package/dist/contract/actor/actor-erased.errors.d.mts +8 -0
- package/dist/contract/actor/actor-erased.errors.mjs +4 -0
- package/dist/contract/actor/actor-names.pure.d.mts +11 -0
- package/dist/contract/actor/actor-names.pure.mjs +51 -0
- package/dist/contract/actor/actor-not-created.errors.d.mts +8 -0
- package/dist/contract/actor/actor-not-created.errors.mjs +4 -0
- package/dist/contract/actor/actor-not-registered.errors.d.mts +8 -0
- package/dist/contract/actor/actor-not-registered.errors.mjs +4 -0
- package/dist/contract/actor/actor-registry.service.d.mts +16 -0
- package/dist/contract/actor/actor-registry.service.mjs +21 -0
- package/dist/contract/actor/actor.contract.d.mts +238 -0
- package/dist/contract/actor/actor.contract.mjs +1 -0
- package/dist/contract/actor/host-interface.pure.d.mts +23 -0
- package/dist/contract/actor/host-interface.pure.mjs +39 -0
- package/dist/contract/actor/reserved-member.errors.d.mts +9 -0
- package/dist/contract/actor/reserved-member.errors.mjs +7 -0
- package/dist/contract/akter.service.d.mts +75 -0
- package/dist/contract/akter.service.mjs +134 -0
- package/dist/contract/caller/authentication.api.d.mts +6 -0
- package/dist/contract/caller/authentication.api.mjs +5 -0
- package/dist/contract/caller/caller-admission.pure.d.mts +27 -0
- package/dist/contract/caller/caller-admission.pure.mjs +59 -0
- package/dist/contract/caller/caller-not-allowed.errors.d.mts +16 -0
- package/dist/contract/caller/caller-not-allowed.errors.mjs +18 -0
- package/dist/contract/caller/caller.schema.d.mts +7 -0
- package/dist/contract/caller/caller.schema.mjs +8 -0
- package/dist/contract/caller/current-caller.service.d.mts +7 -0
- package/dist/contract/caller/current-caller.service.mjs +4 -0
- package/dist/contract/caller/principal.schema.d.mts +13 -0
- package/dist/contract/caller/principal.schema.mjs +10 -0
- package/dist/contract/caller/unauthenticated.errors.d.mts +8 -0
- package/dist/contract/caller/unauthenticated.errors.mjs +4 -0
- package/dist/contract/client/actor-client.adapter.d.mts +42 -0
- package/dist/contract/client/actor-client.adapter.mjs +90 -0
- package/dist/contract/client/actor-client.contract.d.mts +30 -0
- package/dist/contract/client/actor-client.contract.mjs +1 -0
- package/dist/contract/client/actor-rpc.contract.d.mts +33 -0
- package/dist/contract/client/actor-rpc.contract.mjs +16 -0
- package/dist/contract/client/actor-unavailable.errors.d.mts +9 -0
- package/dist/contract/client/actor-unavailable.errors.mjs +7 -0
- package/dist/contract/client/client-failure.contract.d.mts +28 -0
- package/dist/contract/client/client-failure.contract.mjs +28 -0
- package/dist/contract/client/invalid-request.errors.d.mts +9 -0
- package/dist/contract/client/invalid-request.errors.mjs +7 -0
- package/dist/contract/client/storage-limit.errors.d.mts +16 -0
- package/dist/contract/client/storage-limit.errors.mjs +14 -0
- package/dist/contract/command/command-id-expired.errors.d.mts +11 -0
- package/dist/contract/command/command-id-expired.errors.mjs +9 -0
- package/dist/contract/command/command-id.schema.d.mts +3 -0
- package/dist/contract/command/command-id.schema.mjs +4 -0
- package/dist/contract/command/command.contract.d.mts +117 -0
- package/dist/contract/command/command.contract.mjs +111 -0
- package/dist/contract/command/outbox-id.pure.d.mts +9 -0
- package/dist/contract/command/outbox-id.pure.mjs +14 -0
- package/dist/contract/command/outbox.schema.d.mts +9 -0
- package/dist/contract/command/outbox.schema.mjs +10 -0
- package/dist/contract/command/timer.schema.d.mts +20 -0
- package/dist/contract/command/timer.schema.mjs +14 -0
- package/dist/contract/computer/checkpoint-expired.errors.d.mts +12 -0
- package/dist/contract/computer/checkpoint-expired.errors.mjs +8 -0
- package/dist/contract/computer/computer-client-failure.contract.d.mts +16 -0
- package/dist/contract/computer/computer-client-failure.contract.mjs +1 -0
- package/dist/contract/computer/computer-client.adapter.d.mts +21 -0
- package/dist/contract/computer/computer-client.adapter.mjs +70 -0
- package/dist/contract/computer/computer-client.contract.d.mts +56 -0
- package/dist/contract/computer/computer-client.contract.mjs +1 -0
- package/dist/contract/computer/computer-held.errors.d.mts +13 -0
- package/dist/contract/computer/computer-held.errors.mjs +11 -0
- package/dist/contract/computer/computer-limit.errors.d.mts +15 -0
- package/dist/contract/computer/computer-limit.errors.mjs +13 -0
- package/dist/contract/computer/computer-lost.errors.d.mts +12 -0
- package/dist/contract/computer/computer-lost.errors.mjs +8 -0
- package/dist/contract/computer/computer-not-found.errors.d.mts +9 -0
- package/dist/contract/computer/computer-not-found.errors.mjs +5 -0
- package/dist/contract/computer/computer.schema.d.mts +122 -0
- package/dist/contract/computer/computer.schema.mjs +117 -0
- package/dist/contract/computer/computers-unavailable.errors.d.mts +9 -0
- package/dist/contract/computer/computers-unavailable.errors.mjs +5 -0
- package/dist/contract/computer/files/computer-files.schema.d.mts +28 -0
- package/dist/contract/computer/files/computer-files.schema.mjs +24 -0
- package/dist/contract/computer/rpc/computer-rpc.contract.d.mts +108 -0
- package/dist/contract/computer/rpc/computer-rpc.contract.mjs +117 -0
- package/dist/contract/computer/step/computer-step.contract.d.mts +21 -0
- package/dist/contract/computer/step/computer-step.contract.mjs +89 -0
- package/dist/contract/computer/step/computer-step.schema.d.mts +69 -0
- package/dist/contract/computer/step/computer-step.schema.mjs +71 -0
- package/dist/contract/computer/step/step-failure.schema.d.mts +13 -0
- package/dist/contract/computer/step/step-failure.schema.mjs +24 -0
- package/dist/contract/computer/step/step-not-found.errors.d.mts +9 -0
- package/dist/contract/computer/step/step-not-found.errors.mjs +5 -0
- package/dist/contract/description/published-contract.pure.d.mts +51 -0
- package/dist/contract/description/published-contract.pure.mjs +75 -0
- package/dist/contract/file/access/file-access-denied.errors.d.mts +11 -0
- package/dist/contract/file/access/file-access-denied.errors.mjs +9 -0
- package/dist/contract/file/access/file-access.contract.d.mts +35 -0
- package/dist/contract/file/access/file-access.contract.mjs +32 -0
- package/dist/contract/file/actor-files.contract.d.mts +50 -0
- package/dist/contract/file/actor-files.contract.mjs +1 -0
- package/dist/contract/file/blob-transfer.errors.d.mts +9 -0
- package/dist/contract/file/blob-transfer.errors.mjs +7 -0
- package/dist/contract/file/file-client-failure.contract.d.mts +24 -0
- package/dist/contract/file/file-client-failure.contract.mjs +1 -0
- package/dist/contract/file/file-client.adapter.d.mts +17 -0
- package/dist/contract/file/file-client.adapter.mjs +21 -0
- package/dist/contract/file/file-client.contract.d.mts +14 -0
- package/dist/contract/file/file-client.contract.mjs +1 -0
- package/dist/contract/file/file-listing.pure.d.mts +6 -0
- package/dist/contract/file/file-listing.pure.mjs +18 -0
- package/dist/contract/file/file-not-found.errors.d.mts +8 -0
- package/dist/contract/file/file-not-found.errors.mjs +4 -0
- package/dist/contract/file/file-path.pure.d.mts +4 -0
- package/dist/contract/file/file-path.pure.mjs +38 -0
- package/dist/contract/file/files-unavailable.errors.d.mts +8 -0
- package/dist/contract/file/files-unavailable.errors.mjs +4 -0
- package/dist/contract/file/invalid-file-request.errors.d.mts +9 -0
- package/dist/contract/file/invalid-file-request.errors.mjs +7 -0
- package/dist/contract/file/rpc/file-rpc.contract.d.mts +88 -0
- package/dist/contract/file/rpc/file-rpc.contract.mjs +117 -0
- package/dist/contract/file/rpc/file-too-large.errors.d.mts +13 -0
- package/dist/contract/file/rpc/file-too-large.errors.mjs +11 -0
- package/dist/contract/file/rpc/rpc-file-clients.layer.d.mts +10 -0
- package/dist/contract/file/rpc/rpc-file-clients.layer.mjs +95 -0
- package/dist/contract/fork/fork-rpc.contract.d.mts +40 -0
- package/dist/contract/fork/fork-rpc.contract.mjs +26 -0
- package/dist/contract/history/actor-journal.service.d.mts +58 -0
- package/dist/contract/history/actor-journal.service.mjs +67 -0
- package/dist/contract/history/history-entry.pure.d.mts +79 -0
- package/dist/contract/history/history-entry.pure.mjs +95 -0
- package/dist/contract/hosted/handler-failed.errors.d.mts +16 -0
- package/dist/contract/hosted/handler-failed.errors.mjs +14 -0
- package/dist/contract/hosted/handler-failure.pure.d.mts +21 -0
- package/dist/contract/hosted/handler-failure.pure.mjs +86 -0
- package/dist/contract/hosted/hosted-actor.service.d.mts +23 -0
- package/dist/contract/hosted/hosted-actor.service.mjs +64 -0
- package/dist/contract/hosted/hosted-command.service.d.mts +20 -0
- package/dist/contract/hosted/hosted-command.service.mjs +88 -0
- package/dist/contract/hosted/hosted-create.service.d.mts +17 -0
- package/dist/contract/hosted/hosted-create.service.mjs +67 -0
- package/dist/contract/hosted/hosted-error.contract.d.mts +11 -0
- package/dist/contract/hosted/hosted-error.contract.mjs +1 -0
- package/dist/contract/hosted/hosted-failure.schema.d.mts +18 -0
- package/dist/contract/hosted/hosted-failure.schema.mjs +31 -0
- package/dist/contract/hosted/hosted-outcome.contract.d.mts +18 -0
- package/dist/contract/hosted/hosted-outcome.contract.mjs +1 -0
- package/dist/contract/hosted/hosted-query.service.d.mts +16 -0
- package/dist/contract/hosted/hosted-query.service.mjs +42 -0
- package/dist/contract/hosted/hosted-request.pure.d.mts +61 -0
- package/dist/contract/hosted/hosted-request.pure.mjs +91 -0
- package/dist/contract/job/job-id.pure.d.mts +11 -0
- package/dist/contract/job/job-id.pure.mjs +20 -0
- package/dist/contract/job/job-patches.contract.d.mts +32 -0
- package/dist/contract/job/job-patches.contract.mjs +45 -0
- package/dist/contract/job/job-signal.schema.d.mts +13 -0
- package/dist/contract/job/job-signal.schema.mjs +16 -0
- package/dist/contract/job/reserved-payload-field.errors.d.mts +10 -0
- package/dist/contract/job/reserved-payload-field.errors.mjs +8 -0
- package/dist/contract/job/started-job.schema.d.mts +7 -0
- package/dist/contract/job/started-job.schema.mjs +8 -0
- package/dist/contract/json-codec.pure.d.mts +7 -0
- package/dist/contract/json-codec.pure.mjs +14 -0
- package/dist/contract/room.contract.d.mts +75 -0
- package/dist/contract/room.contract.mjs +36 -0
- package/dist/contract/secret/actor-secrets.adapter.d.mts +33 -0
- package/dist/contract/secret/actor-secrets.adapter.mjs +38 -0
- package/dist/contract/secret/invalid-secret-name.errors.d.mts +10 -0
- package/dist/contract/secret/invalid-secret-name.errors.mjs +8 -0
- package/dist/contract/secret/secret-unavailable.errors.d.mts +11 -0
- package/dist/contract/secret/secret-unavailable.errors.mjs +10 -0
- package/dist/contract/secret/secret.schema.d.mts +25 -0
- package/dist/contract/secret/secret.schema.mjs +34 -0
- package/dist/contract/spend/billing-unavailable.errors.d.mts +12 -0
- package/dist/contract/spend/billing-unavailable.errors.mjs +8 -0
- package/dist/contract/spend/spend-cap-reached.errors.d.mts +17 -0
- package/dist/contract/spend/spend-cap-reached.errors.mjs +15 -0
- package/dist/contract/state/actor-state.pure.d.mts +38 -0
- package/dist/contract/state/actor-state.pure.mjs +153 -0
- package/dist/contract/state/actor-state.service.d.mts +45 -0
- package/dist/contract/state/actor-state.service.mjs +18 -0
- package/dist/contract/state/state-migration.pure.d.mts +11 -0
- package/dist/contract/state/state-migration.pure.mjs +23 -0
- package/dist/contract/state/state-read.pure.d.mts +12 -0
- package/dist/contract/state/state-read.pure.mjs +22 -0
- package/dist/contract/state/state-unreadable.errors.d.mts +9 -0
- package/dist/contract/state/state-unreadable.errors.mjs +7 -0
- package/dist/host/actor/actor-database.service.d.mts +46 -0
- package/dist/host/actor/actor-database.service.mjs +112 -0
- package/dist/host/actor/actor-exclusive.pure.d.mts +7 -0
- package/dist/host/actor/actor-exclusive.pure.mjs +16 -0
- package/dist/host/actor/actor-records.sql.d.mts +29 -0
- package/dist/host/actor/actor-records.sql.mjs +26 -0
- package/dist/host/actor/reserved-name.errors.d.mts +10 -0
- package/dist/host/actor/reserved-name.errors.mjs +8 -0
- package/dist/host/actor/reserved-names.pure.d.mts +15 -0
- package/dist/host/actor/reserved-names.pure.mjs +20 -0
- package/dist/host/actor/room.actor.d.mts +4 -0
- package/dist/host/actor/room.actor.mjs +36 -0
- package/dist/host/blob/blob-frames.pure.d.mts +7 -0
- package/dist/host/blob/blob-frames.pure.mjs +28 -0
- package/dist/host/blob/blob-grant.schema.d.mts +14 -0
- package/dist/host/blob/blob-grant.schema.mjs +15 -0
- package/dist/host/blob/blob-grants.service.d.mts +28 -0
- package/dist/host/blob/blob-grants.service.mjs +129 -0
- package/dist/host/blob/blob-keyring.service.d.mts +18 -0
- package/dist/host/blob/blob-keyring.service.mjs +4 -0
- package/dist/host/blob/blob-range.pure.d.mts +13 -0
- package/dist/host/blob/blob-range.pure.mjs +23 -0
- package/dist/host/blob/blob-sealing.contract.d.mts +37 -0
- package/dist/host/blob/blob-sealing.contract.mjs +1 -0
- package/dist/host/blob/blob-sealing.service.d.mts +11 -0
- package/dist/host/blob/blob-sealing.service.mjs +16 -0
- package/dist/host/blob/export/blob-archive.sql.d.mts +21 -0
- package/dist/host/blob/export/blob-archive.sql.mjs +75 -0
- package/dist/host/blob/export/blob-export-holds.sql.d.mts +49 -0
- package/dist/host/blob/export/blob-export-holds.sql.mjs +25 -0
- package/dist/host/blob/plain-blob-sealing.pure.d.mts +5 -0
- package/dist/host/blob/plain-blob-sealing.pure.mjs +55 -0
- package/dist/host/blob/reference/blob-catalog.sql.d.mts +40 -0
- package/dist/host/blob/reference/blob-catalog.sql.mjs +145 -0
- package/dist/host/blob/reference/blob-coordinator.pure.d.mts +10 -0
- package/dist/host/blob/reference/blob-coordinator.pure.mjs +153 -0
- package/dist/host/blob/reference/blob-file-page.sql.d.mts +13 -0
- package/dist/host/blob/reference/blob-file-page.sql.mjs +21 -0
- package/dist/host/blob/reference/blob-forks.sql.d.mts +21 -0
- package/dist/host/blob/reference/blob-forks.sql.mjs +40 -0
- package/dist/host/blob/reference/blob-lineage.sql.d.mts +14 -0
- package/dist/host/blob/reference/blob-lineage.sql.mjs +24 -0
- package/dist/host/blob/reference/blob-reads.pure.d.mts +15 -0
- package/dist/host/blob/reference/blob-reads.pure.mjs +97 -0
- package/dist/host/blob/reference/blob-receipts.sql.d.mts +71 -0
- package/dist/host/blob/reference/blob-receipts.sql.mjs +176 -0
- package/dist/host/blob/reference/blob-transfer-adopt.pure.d.mts +21 -0
- package/dist/host/blob/reference/blob-transfer-adopt.pure.mjs +68 -0
- package/dist/host/blob/reference/blob-transfer-fork.pure.d.mts +15 -0
- package/dist/host/blob/reference/blob-transfer-fork.pure.mjs +125 -0
- package/dist/host/blob/reference/blob-transfer-upkeep.pure.d.mts +18 -0
- package/dist/host/blob/reference/blob-transfer-upkeep.pure.mjs +54 -0
- package/dist/host/blob/reference/blob-transfer.pure.d.mts +85 -0
- package/dist/host/blob/reference/blob-transfer.pure.mjs +1 -0
- package/dist/host/blob/sealed-blob-sealing.pure.d.mts +10 -0
- package/dist/host/blob/sealed-blob-sealing.pure.mjs +130 -0
- package/dist/host/blob/stream/blob-directory.pure.d.mts +18 -0
- package/dist/host/blob/stream/blob-directory.pure.mjs +84 -0
- package/dist/host/blob/stream/blob-length.pure.d.mts +9 -0
- package/dist/host/blob/stream/blob-length.pure.mjs +19 -0
- package/dist/host/blob/stream/blob-writing.pure.d.mts +8 -0
- package/dist/host/blob/stream/blob-writing.pure.mjs +15 -0
- package/dist/host/command/batch/command-batch.sql.d.mts +61 -0
- package/dist/host/command/batch/command-batch.sql.mjs +100 -0
- package/dist/host/command/command-context.adapter.d.mts +47 -0
- package/dist/host/command/command-context.adapter.mjs +90 -0
- package/dist/host/command/command-id-age.pure.d.mts +13 -0
- package/dist/host/command/command-id-age.pure.mjs +31 -0
- package/dist/host/command/command-id-reuse.pure.d.mts +28 -0
- package/dist/host/command/command-id-reuse.pure.mjs +38 -0
- package/dist/host/command/command-id-reused.errors.d.mts +13 -0
- package/dist/host/command/command-id-reused.errors.mjs +11 -0
- package/dist/host/command/command-journal.sql.d.mts +84 -0
- package/dist/host/command/command-journal.sql.mjs +74 -0
- package/dist/host/command/command-rejected.errors.d.mts +8 -0
- package/dist/host/command/command-rejected.errors.mjs +4 -0
- package/dist/host/command/command-replay.service.d.mts +62 -0
- package/dist/host/command/command-replay.service.mjs +140 -0
- package/dist/host/command/command-reply.pure.d.mts +8 -0
- package/dist/host/command/command-reply.pure.mjs +12 -0
- package/dist/host/command/command-runner.service.d.mts +68 -0
- package/dist/host/command/command-runner.service.mjs +215 -0
- package/dist/host/command/files/command-file-inputs.sql.d.mts +51 -0
- package/dist/host/command/files/command-file-inputs.sql.mjs +59 -0
- package/dist/host/command/history-pruned.errors.d.mts +10 -0
- package/dist/host/command/history-pruned.errors.mjs +8 -0
- package/dist/host/command/replay/replay-cursor-stalled.errors.d.mts +9 -0
- package/dist/host/command/replay/replay-cursor-stalled.errors.mjs +7 -0
- package/dist/host/command/replay/replay-cursor.pure.d.mts +7 -0
- package/dist/host/command/replay/replay-cursor.pure.mjs +12 -0
- package/dist/host/computer/computer-steps.sql.d.mts +14 -0
- package/dist/host/computer/computer-steps.sql.mjs +76 -0
- package/dist/host/computer/job-computers.service.d.mts +20 -0
- package/dist/host/computer/job-computers.service.mjs +59 -0
- package/dist/host/computer/local-computer-files.layer.d.mts +11 -0
- package/dist/host/computer/local-computer-files.layer.mjs +69 -0
- package/dist/host/computer/local-computer-log.layer.d.mts +23 -0
- package/dist/host/computer/local-computer-log.layer.mjs +64 -0
- package/dist/host/computer/local-computer-records.layer.d.mts +190 -0
- package/dist/host/computer/local-computer-records.layer.mjs +99 -0
- package/dist/host/computer/local-computer.schema.d.mts +69 -0
- package/dist/host/computer/local-computer.schema.mjs +29 -0
- package/dist/host/computer/local-computers.adapter.d.mts +18 -0
- package/dist/host/computer/local-computers.adapter.mjs +248 -0
- package/dist/host/computer/local-step.layer.d.mts +30 -0
- package/dist/host/computer/local-step.layer.mjs +119 -0
- package/dist/host/file/actor-file-storage.sql.d.mts +15 -0
- package/dist/host/file/actor-file-storage.sql.mjs +82 -0
- package/dist/host/file/actor-files.sql.d.mts +9 -0
- package/dist/host/file/actor-files.sql.mjs +3 -0
- package/dist/host/file/blob-home-lock.pure.d.mts +8 -0
- package/dist/host/file/blob-home-lock.pure.mjs +10 -0
- package/dist/host/file/blob-home.sql.d.mts +19 -0
- package/dist/host/file/blob-home.sql.mjs +30 -0
- package/dist/host/file/local-blob-home.service.d.mts +16 -0
- package/dist/host/file/local-blob-home.service.mjs +43 -0
- package/dist/host/file/local-blob-owner.sql.d.mts +30 -0
- package/dist/host/file/local-blob-owner.sql.mjs +68 -0
- package/dist/host/file/local-file-upkeep.pure.d.mts +12 -0
- package/dist/host/file/local-file-upkeep.pure.mjs +41 -0
- package/dist/host/file/replay-file-storage.sql.d.mts +7 -0
- package/dist/host/file/replay-file-storage.sql.mjs +26 -0
- package/dist/host/fork/actor-fork.sql.d.mts +52 -0
- package/dist/host/fork/actor-fork.sql.mjs +42 -0
- package/dist/host/fork/fork-computers.adapter.d.mts +43 -0
- package/dist/host/fork/fork-computers.adapter.mjs +193 -0
- package/dist/host/hash/blob-hashing.service.d.mts +10 -0
- package/dist/host/hash/blob-hashing.service.mjs +4 -0
- package/dist/host/job/job-durables.sql.d.mts +44 -0
- package/dist/host/job/job-durables.sql.mjs +136 -0
- package/dist/host/job/job-engine.adapter.d.mts +33 -0
- package/dist/host/job/job-engine.adapter.mjs +258 -0
- package/dist/host/job/job-journal.sql.d.mts +85 -0
- package/dist/host/job/job-journal.sql.mjs +109 -0
- package/dist/host/job/job-results.service.d.mts +37 -0
- package/dist/host/job/job-results.service.mjs +63 -0
- package/dist/host/job/job-runs.pure.d.mts +103 -0
- package/dist/host/job/job-runs.pure.mjs +193 -0
- package/dist/host/job/undelivered-result.pure.d.mts +49 -0
- package/dist/host/job/undelivered-result.pure.mjs +147 -0
- package/dist/host/layout/actor-layout.sql.d.mts +8 -0
- package/dist/host/layout/actor-layout.sql.mjs +33 -0
- package/dist/host/layout/layout-version.errors.d.mts +10 -0
- package/dist/host/layout/layout-version.errors.mjs +8 -0
- package/dist/host/layout/layout-version.pure.d.mts +10 -0
- package/dist/host/layout/layout-version.pure.mjs +14 -0
- package/dist/host/migration/actor-migrations.service.d.mts +46 -0
- package/dist/host/migration/actor-migrations.service.mjs +143 -0
- package/dist/host/migration/migration-edited.errors.d.mts +9 -0
- package/dist/host/migration/migration-edited.errors.mjs +7 -0
- package/dist/host/migration/migration-failed.errors.d.mts +12 -0
- package/dist/host/migration/migration-failed.errors.mjs +10 -0
- package/dist/host/migration/migration-failure.pure.d.mts +9 -0
- package/dist/host/migration/migration-failure.pure.mjs +19 -0
- package/dist/host/migration/migration-hasher.adapter.d.mts +15 -0
- package/dist/host/migration/migration-hasher.adapter.mjs +40 -0
- package/dist/host/migration/migration-missing.errors.d.mts +9 -0
- package/dist/host/migration/migration-missing.errors.mjs +7 -0
- package/dist/host/migration/migration-plan.pure.d.mts +20 -0
- package/dist/host/migration/migration-plan.pure.mjs +32 -0
- package/dist/host/outbox/actor-outbox.sql.d.mts +33 -0
- package/dist/host/outbox/actor-outbox.sql.mjs +28 -0
- package/dist/host/outbox/outbox-acknowledgements.sql.d.mts +12 -0
- package/dist/host/outbox/outbox-acknowledgements.sql.mjs +47 -0
- package/dist/host/outbox/outbox-runner.service.d.mts +37 -0
- package/dist/host/outbox/outbox-runner.service.mjs +155 -0
- package/dist/host/query/query-policy.pure.d.mts +15 -0
- package/dist/host/query/query-policy.pure.mjs +12 -0
- package/dist/host/query/query-runner.service.d.mts +42 -0
- package/dist/host/query/query-runner.service.mjs +72 -0
- package/dist/host/sqlite/actor-connections.pure.d.mts +26 -0
- package/dist/host/sqlite/actor-connections.pure.mjs +4 -0
- package/dist/host/sqlite/sqlite-connection.adapter.d.mts +22 -0
- package/dist/host/sqlite/sqlite-connection.adapter.mjs +151 -0
- package/dist/host/sqlite/sqlite-driver.service.d.mts +33 -0
- package/dist/host/sqlite/sqlite-driver.service.mjs +88 -0
- package/dist/host/sqlite/sqlite-parameters.pure.d.mts +5 -0
- package/dist/host/sqlite/sqlite-parameters.pure.mjs +21 -0
- package/dist/host/sqlite/sqlite-reason.pure.d.mts +8 -0
- package/dist/host/sqlite/sqlite-reason.pure.mjs +13 -0
- package/dist/host/timer/actor-timers.sql.d.mts +32 -0
- package/dist/host/timer/actor-timers.sql.mjs +8 -0
- package/dist/host/timer/timer-runner.service.d.mts +26 -0
- package/dist/host/timer/timer-runner.service.mjs +68 -0
- package/dist/host/upkeep/actor-due.sql.d.mts +26 -0
- package/dist/host/upkeep/actor-due.sql.mjs +43 -0
- package/dist/host/upkeep/actor-upkeep.service.d.mts +55 -0
- package/dist/host/upkeep/actor-upkeep.service.mjs +218 -0
- package/dist/host/upkeep/execution-authority.pure.d.mts +19 -0
- package/dist/host/upkeep/execution-authority.pure.mjs +10 -0
- package/dist/runtime/akter-local.layer.d.mts +28 -0
- package/dist/runtime/akter-local.layer.mjs +24 -0
- package/dist/runtime/akter.layer.d.mts +91 -0
- package/dist/runtime/akter.layer.mjs +99 -0
- package/dist/runtime/blob-hashing.layer.d.mts +4 -0
- package/dist/runtime/blob-hashing.layer.mjs +15 -0
- package/dist/runtime/hosted-environment.layer.d.mts +34 -0
- package/dist/runtime/hosted-environment.layer.mjs +40 -0
- package/dist/runtime/http-server.layer.d.mts +9 -0
- package/dist/runtime/http-server.layer.mjs +15 -0
- package/dist/runtime/local-actor-engine.layer.d.mts +10 -0
- package/dist/runtime/local-actor-engine.layer.mjs +14 -0
- package/dist/runtime/local-engine.layer.d.mts +15 -0
- package/dist/runtime/local-engine.layer.mjs +14 -0
- package/dist/runtime/local-environments.layer.d.mts +24 -0
- package/dist/runtime/local-environments.layer.mjs +159 -0
- package/dist/runtime/local-file-clients.layer.d.mts +13 -0
- package/dist/runtime/local-file-clients.layer.mjs +78 -0
- package/dist/runtime/local-job-runtime.layer.d.mts +19 -0
- package/dist/runtime/local-job-runtime.layer.mjs +21 -0
- package/dist/serve/archive/archived-actors.layer.d.mts +17 -0
- package/dist/serve/archive/archived-actors.layer.mjs +84 -0
- package/dist/serve/archive/archived-store.layer.d.mts +12 -0
- package/dist/serve/archive/archived-store.layer.mjs +40 -0
- package/dist/serve/engine/actor-engine.layer.d.mts +8 -0
- package/dist/serve/engine/actor-engine.layer.mjs +30 -0
- package/dist/serve/engine/actor-fork.service.d.mts +63 -0
- package/dist/serve/engine/actor-fork.service.mjs +277 -0
- package/dist/serve/engine/actor-holding.pure.d.mts +7 -0
- package/dist/serve/engine/actor-holding.pure.mjs +9 -0
- package/dist/serve/engine/actor-host.service.d.mts +66 -0
- package/dist/serve/engine/actor-host.service.mjs +209 -0
- package/dist/serve/engine/actor-location.service.d.mts +38 -0
- package/dist/serve/engine/actor-location.service.mjs +109 -0
- package/dist/serve/engine/actor-residents.pure.d.mts +92 -0
- package/dist/serve/engine/actor-residents.pure.mjs +201 -0
- package/dist/serve/engine/actor-shard.pure.d.mts +4 -0
- package/dist/serve/engine/actor-shard.pure.mjs +8 -0
- package/dist/serve/engine/actor-state.pure.d.mts +17 -0
- package/dist/serve/engine/actor-state.pure.mjs +20 -0
- package/dist/serve/engine/actors-not-hosted.errors.d.mts +9 -0
- package/dist/serve/engine/actors-not-hosted.errors.mjs +7 -0
- package/dist/serve/engine/job-runtime.layer.d.mts +6 -0
- package/dist/serve/engine/job-runtime.layer.mjs +5 -0
- package/dist/serve/environment/environment-already-exists.errors.d.mts +10 -0
- package/dist/serve/environment/environment-already-exists.errors.mjs +9 -0
- package/dist/serve/environment/environment-in-use.errors.d.mts +10 -0
- package/dist/serve/environment/environment-in-use.errors.mjs +14 -0
- package/dist/serve/environment/environment-not-found.errors.d.mts +10 -0
- package/dist/serve/environment/environment-not-found.errors.mjs +9 -0
- package/dist/serve/environment/environment-records.sql.d.mts +92 -0
- package/dist/serve/environment/environment-records.sql.mjs +59 -0
- package/dist/serve/environment/environment-store.sql.d.mts +38 -0
- package/dist/serve/environment/environment-store.sql.mjs +78 -0
- package/dist/serve/environment/local-environment.schema.d.mts +38 -0
- package/dist/serve/environment/local-environment.schema.mjs +43 -0
- package/dist/serve/environment/local-environments.service.d.mts +44 -0
- package/dist/serve/environment/local-environments.service.mjs +196 -0
- package/dist/serve/environment/promotion-notice.pure.d.mts +22 -0
- package/dist/serve/environment/promotion-notice.pure.mjs +30 -0
- package/dist/serve/environment/snapshot-operations.sql.d.mts +32 -0
- package/dist/serve/environment/snapshot-operations.sql.mjs +131 -0
- package/dist/serve/environment/store-snapshot.sql.d.mts +32 -0
- package/dist/serve/environment/store-snapshot.sql.mjs +74 -0
- package/dist/serve/erasure/local-actor-erasure.service.d.mts +26 -0
- package/dist/serve/erasure/local-actor-erasure.service.mjs +102 -0
- package/dist/serve/history/actor-host-runners.service.d.mts +23 -0
- package/dist/serve/history/actor-host-runners.service.mjs +35 -0
- package/dist/serve/hosted/hosted-app-build.errors.d.mts +13 -0
- package/dist/serve/hosted/hosted-app-build.errors.mjs +9 -0
- package/dist/serve/hosted/hosted-app-checks.layer.d.mts +15 -0
- package/dist/serve/hosted/hosted-app-checks.layer.mjs +32 -0
- package/dist/serve/hosted/hosted-file-forward.layer.d.mts +22 -0
- package/dist/serve/hosted/hosted-file-forward.layer.mjs +42 -0
- package/dist/serve/hosted/hosted-file-rpcs.layer.d.mts +25 -0
- package/dist/serve/hosted/hosted-file-rpcs.layer.mjs +82 -0
- package/dist/serve/hosted/hosted-file-server.layer.d.mts +18 -0
- package/dist/serve/hosted/hosted-file-server.layer.mjs +33 -0
- package/dist/serve/hosted/hosted-files.layer.d.mts +32 -0
- package/dist/serve/hosted/hosted-files.layer.mjs +55 -0
- package/dist/serve/hosted/hosted-runtime.layer.d.mts +42 -0
- package/dist/serve/hosted/hosted-runtime.layer.mjs +48 -0
- package/dist/serve/hosted/hosted-runtime.service.d.mts +77 -0
- package/dist/serve/hosted/hosted-runtime.service.mjs +74 -0
- package/dist/serve/hosted/hosted-secrets.layer.d.mts +10 -0
- package/dist/serve/hosted/hosted-secrets.layer.mjs +28 -0
- package/dist/serve/http/loopback-host.pure.d.mts +11 -0
- package/dist/serve/http/loopback-host.pure.mjs +29 -0
- package/dist/serve/inspect/actor-inspection.schema.d.mts +119 -0
- package/dist/serve/inspect/actor-inspection.schema.mjs +75 -0
- package/dist/serve/inspect/actor-inspection.sql.d.mts +12 -0
- package/dist/serve/inspect/actor-inspection.sql.mjs +43 -0
- package/dist/serve/inspect/inspect.service.d.mts +24 -0
- package/dist/serve/inspect/inspect.service.mjs +92 -0
- package/dist/serve/inspect/inspector-page.pure.d.mts +2 -0
- package/dist/serve/inspect/inspector-page.pure.mjs +155 -0
- package/dist/serve/inspect/inspector-wal.pure.d.mts +3 -0
- package/dist/serve/inspect/inspector-wal.pure.mjs +19 -0
- package/dist/serve/inspect/inspector.handlers.d.mts +5 -0
- package/dist/serve/inspect/inspector.handlers.mjs +50 -0
- package/dist/serve/inspect/inspector.layer.d.mts +9 -0
- package/dist/serve/inspect/inspector.layer.mjs +14 -0
- package/dist/serve/live/live-reads.service.d.mts +44 -0
- package/dist/serve/live/live-reads.service.mjs +152 -0
- package/dist/serve/live/live-tables.sql.d.mts +35 -0
- package/dist/serve/live/live-tables.sql.mjs +66 -0
- package/dist/serve/live/state-reads.pure.d.mts +11 -0
- package/dist/serve/live/state-reads.pure.mjs +7 -0
- package/dist/serve/rpc/actor-rpc.handlers.d.mts +24 -0
- package/dist/serve/rpc/actor-rpc.handlers.mjs +142 -0
- package/dist/serve/rpc/akter-server.layer.d.mts +18 -0
- package/dist/serve/rpc/akter-server.layer.mjs +61 -0
- package/dist/serve/rpc/computer/computer-copy.layer.d.mts +22 -0
- package/dist/serve/rpc/computer/computer-copy.layer.mjs +70 -0
- package/dist/serve/rpc/computer/computer-rpc-access.pure.d.mts +29 -0
- package/dist/serve/rpc/computer/computer-rpc-access.pure.mjs +46 -0
- package/dist/serve/rpc/computer/computer-rpc.layer.d.mts +39 -0
- package/dist/serve/rpc/computer/computer-rpc.layer.mjs +84 -0
- package/dist/serve/rpc/computer/step-rpc.handlers.d.mts +23 -0
- package/dist/serve/rpc/computer/step-rpc.handlers.mjs +43 -0
- package/dist/serve/rpc/development-authentication.handlers.d.mts +7 -0
- package/dist/serve/rpc/development-authentication.handlers.mjs +19 -0
- package/dist/serve/rpc/development-guard.pure.d.mts +10 -0
- package/dist/serve/rpc/development-guard.pure.mjs +16 -0
- package/dist/serve/rpc/file/file-rpc-access.pure.d.mts +55 -0
- package/dist/serve/rpc/file/file-rpc-access.pure.mjs +67 -0
- package/dist/serve/rpc/file/file-rpc.layer.d.mts +53 -0
- package/dist/serve/rpc/file/file-rpc.layer.mjs +143 -0
- package/dist/serve/rpc/file/upload-sessions.pure.d.mts +45 -0
- package/dist/serve/rpc/file/upload-sessions.pure.mjs +187 -0
- package/dist/serve/rpc/in-process-client.layer.d.mts +13 -0
- package/dist/serve/rpc/in-process-client.layer.mjs +34 -0
- package/dist/serve/rpc/listener-not-loopback.errors.d.mts +9 -0
- package/dist/serve/rpc/listener-not-loopback.errors.mjs +7 -0
- package/dist/serve/rpc/ndjson-only.pure.d.mts +5 -0
- package/dist/serve/rpc/ndjson-only.pure.mjs +14 -0
- package/dist/serve/rpc/served-rpc.layer.d.mts +6 -0
- package/dist/serve/rpc/served-rpc.layer.mjs +19 -0
- package/dist/serve/store/actor-not-migrated.errors.d.mts +10 -0
- package/dist/serve/store/actor-not-migrated.errors.mjs +8 -0
- package/dist/serve/store/store-migrations.layer.d.mts +5 -0
- package/dist/serve/store/store-migrations.layer.mjs +18 -0
- package/dist/serve/store/store-migrations.service.d.mts +26 -0
- package/dist/serve/store/store-migrations.service.mjs +47 -0
- package/dist/serve/store/store-unreadable.errors.d.mts +9 -0
- package/dist/serve/store/store-unreadable.errors.mjs +7 -0
- package/dist/serve/verify/verify.layer.d.mts +16 -0
- package/dist/serve/verify/verify.layer.mjs +36 -0
- package/dist/testing/story-driver.service.d.mts +29 -0
- package/dist/testing/story-driver.service.mjs +126 -0
- package/dist/testing/story.layer.d.mts +21 -0
- package/dist/testing/story.layer.mjs +42 -0
- package/package.json +106 -3
- package/src/contract/actor/actor-already-exists.errors.ts +8 -0
- package/src/contract/actor/actor-definition.pure.ts +157 -0
- package/src/contract/actor/actor-erased.errors.ts +8 -0
- package/src/contract/actor/actor-names.pure.ts +64 -0
- package/src/contract/actor/actor-not-created.errors.ts +8 -0
- package/src/contract/actor/actor-not-registered.errors.ts +8 -0
- package/src/contract/actor/actor-registry.service.ts +35 -0
- package/src/contract/actor/actor.contract.ts +409 -0
- package/src/contract/actor/host-interface.pure.ts +60 -0
- package/src/contract/actor/reserved-member.errors.ts +9 -0
- package/src/contract/akter.service.ts +233 -0
- package/src/contract/caller/authentication.api.ts +9 -0
- package/src/contract/caller/caller-admission.pure.ts +90 -0
- package/src/contract/caller/caller-not-allowed.errors.ts +26 -0
- package/src/contract/caller/caller.schema.ts +7 -0
- package/src/contract/caller/current-caller.service.ts +7 -0
- package/src/contract/caller/principal.schema.ts +13 -0
- package/src/contract/caller/unauthenticated.errors.ts +8 -0
- package/src/contract/client/actor-client.adapter.ts +217 -0
- package/src/contract/client/actor-client.contract.ts +53 -0
- package/src/contract/client/actor-rpc.contract.ts +91 -0
- package/src/contract/client/actor-unavailable.errors.ts +9 -0
- package/src/contract/client/client-failure.contract.ts +53 -0
- package/src/contract/client/invalid-request.errors.ts +9 -0
- package/src/contract/client/storage-limit.errors.ts +16 -0
- package/src/contract/command/command-id-expired.errors.ts +11 -0
- package/src/contract/command/command-id.schema.ts +5 -0
- package/src/contract/command/command.contract.ts +334 -0
- package/src/contract/command/outbox-id.pure.ts +25 -0
- package/src/contract/command/outbox.schema.ts +11 -0
- package/src/contract/command/timer.schema.ts +21 -0
- package/src/contract/computer/checkpoint-expired.errors.ts +12 -0
- package/src/contract/computer/computer-client-failure.contract.ts +27 -0
- package/src/contract/computer/computer-client.adapter.ts +110 -0
- package/src/contract/computer/computer-client.contract.ts +75 -0
- package/src/contract/computer/computer-held.errors.ts +10 -0
- package/src/contract/computer/computer-limit.errors.ts +11 -0
- package/src/contract/computer/computer-lost.errors.ts +10 -0
- package/src/contract/computer/computer-not-found.errors.ts +9 -0
- package/src/contract/computer/computer.schema.ts +159 -0
- package/src/contract/computer/computers-unavailable.errors.ts +9 -0
- package/src/contract/computer/files/computer-files.schema.ts +31 -0
- package/src/contract/computer/rpc/computer-rpc.contract.ts +140 -0
- package/src/contract/computer/step/computer-step.contract.ts +126 -0
- package/src/contract/computer/step/computer-step.schema.ts +80 -0
- package/src/contract/computer/step/step-failure.schema.ts +26 -0
- package/src/contract/computer/step/step-not-found.errors.ts +7 -0
- package/src/contract/description/published-contract.pure.ts +187 -0
- package/src/contract/file/access/file-access-denied.errors.ts +11 -0
- package/src/contract/file/access/file-access.contract.ts +56 -0
- package/src/contract/file/actor-files.contract.ts +78 -0
- package/src/contract/file/blob-transfer.errors.ts +6 -0
- package/src/contract/file/file-client-failure.contract.ts +43 -0
- package/src/contract/file/file-client.adapter.ts +45 -0
- package/src/contract/file/file-client.contract.ts +24 -0
- package/src/contract/file/file-listing.pure.ts +30 -0
- package/src/contract/file/file-not-found.errors.ts +6 -0
- package/src/contract/file/file-path.pure.ts +37 -0
- package/src/contract/file/files-unavailable.errors.ts +8 -0
- package/src/contract/file/invalid-file-request.errors.ts +9 -0
- package/src/contract/file/rpc/file-rpc.contract.ts +148 -0
- package/src/contract/file/rpc/file-too-large.errors.ts +10 -0
- package/src/contract/file/rpc/rpc-file-clients.layer.ts +184 -0
- package/src/contract/fork/fork-rpc.contract.ts +44 -0
- package/src/contract/history/actor-journal.service.ts +195 -0
- package/src/contract/history/history-entry.pure.ts +282 -0
- package/src/contract/hosted/handler-failed.errors.ts +16 -0
- package/src/contract/hosted/handler-failure.pure.ts +161 -0
- package/src/contract/hosted/hosted-actor.service.ts +97 -0
- package/src/contract/hosted/hosted-command.service.ts +114 -0
- package/src/contract/hosted/hosted-create.service.ts +95 -0
- package/src/contract/hosted/hosted-error.contract.ts +22 -0
- package/src/contract/hosted/hosted-failure.schema.ts +32 -0
- package/src/contract/hosted/hosted-outcome.contract.ts +21 -0
- package/src/contract/hosted/hosted-query.service.ts +50 -0
- package/src/contract/hosted/hosted-request.pure.ts +185 -0
- package/src/contract/job/job-id.pure.ts +37 -0
- package/src/contract/job/job-patches.contract.ts +86 -0
- package/src/contract/job/job-signal.schema.ts +23 -0
- package/src/contract/job/reserved-payload-field.errors.ts +10 -0
- package/src/contract/job/started-job.schema.ts +9 -0
- package/src/contract/json-codec.pure.ts +27 -0
- package/src/contract/room.contract.ts +31 -0
- package/src/contract/secret/actor-secrets.adapter.ts +87 -0
- package/src/contract/secret/invalid-secret-name.errors.ts +10 -0
- package/src/contract/secret/secret-unavailable.errors.ts +13 -0
- package/src/contract/secret/secret.schema.ts +43 -0
- package/src/contract/spend/billing-unavailable.errors.ts +12 -0
- package/src/contract/spend/spend-cap-reached.errors.ts +17 -0
- package/src/contract/state/actor-state.pure.ts +192 -0
- package/src/contract/state/actor-state.service.ts +69 -0
- package/src/contract/state/state-migration.pure.ts +57 -0
- package/src/contract/state/state-read.pure.ts +40 -0
- package/src/contract/state/state-unreadable.errors.ts +9 -0
- package/src/host/actor/actor-database.service.ts +145 -0
- package/src/host/actor/actor-exclusive.pure.ts +32 -0
- package/src/host/actor/actor-records.sql.ts +78 -0
- package/src/host/actor/reserved-name.errors.ts +10 -0
- package/src/host/actor/reserved-names.pure.ts +40 -0
- package/src/host/actor/room.actor.ts +57 -0
- package/src/host/blob/blob-frames.pure.ts +52 -0
- package/src/host/blob/blob-grant.schema.ts +22 -0
- package/src/host/blob/blob-grants.service.ts +197 -0
- package/src/host/blob/blob-keyring.service.ts +25 -0
- package/src/host/blob/blob-range.pure.ts +33 -0
- package/src/host/blob/blob-sealing.contract.ts +46 -0
- package/src/host/blob/blob-sealing.service.ts +25 -0
- package/src/host/blob/export/blob-archive.sql.ts +153 -0
- package/src/host/blob/export/blob-export-holds.sql.ts +91 -0
- package/src/host/blob/plain-blob-sealing.pure.ts +70 -0
- package/src/host/blob/reference/blob-catalog.sql.ts +339 -0
- package/src/host/blob/reference/blob-coordinator.pure.ts +217 -0
- package/src/host/blob/reference/blob-file-page.sql.ts +48 -0
- package/src/host/blob/reference/blob-forks.sql.ts +125 -0
- package/src/host/blob/reference/blob-lineage.sql.ts +63 -0
- package/src/host/blob/reference/blob-reads.pure.ts +172 -0
- package/src/host/blob/reference/blob-receipts.sql.ts +375 -0
- package/src/host/blob/reference/blob-transfer-adopt.pure.ts +127 -0
- package/src/host/blob/reference/blob-transfer-fork.pure.ts +174 -0
- package/src/host/blob/reference/blob-transfer-upkeep.pure.ts +132 -0
- package/src/host/blob/reference/blob-transfer.pure.ts +127 -0
- package/src/host/blob/sealed-blob-sealing.pure.ts +163 -0
- package/src/host/blob/stream/blob-directory.pure.ts +177 -0
- package/src/host/blob/stream/blob-length.pure.ts +40 -0
- package/src/host/blob/stream/blob-writing.pure.ts +49 -0
- package/src/host/command/batch/command-batch.sql.ts +207 -0
- package/src/host/command/command-context.adapter.ts +134 -0
- package/src/host/command/command-id-age.pure.ts +54 -0
- package/src/host/command/command-id-reuse.pure.ts +90 -0
- package/src/host/command/command-id-reused.errors.ts +13 -0
- package/src/host/command/command-journal.sql.ts +232 -0
- package/src/host/command/command-rejected.errors.ts +8 -0
- package/src/host/command/command-replay.service.ts +223 -0
- package/src/host/command/command-reply.pure.ts +21 -0
- package/src/host/command/command-runner.service.ts +320 -0
- package/src/host/command/files/command-file-inputs.sql.ts +114 -0
- package/src/host/command/history-pruned.errors.ts +10 -0
- package/src/host/command/replay/replay-cursor-stalled.errors.ts +9 -0
- package/src/host/command/replay/replay-cursor.pure.ts +19 -0
- package/src/host/computer/computer-steps.sql.ts +120 -0
- package/src/host/computer/job-computers.service.ts +84 -0
- package/src/host/computer/local-computer-files.layer.ts +103 -0
- package/src/host/computer/local-computer-log.layer.ts +115 -0
- package/src/host/computer/local-computer-records.layer.ts +205 -0
- package/src/host/computer/local-computer.schema.ts +36 -0
- package/src/host/computer/local-computers.adapter.ts +379 -0
- package/src/host/computer/local-step.layer.ts +174 -0
- package/src/host/file/actor-file-storage.sql.ts +79 -0
- package/src/host/file/actor-files.sql.ts +15 -0
- package/src/host/file/blob-home-lock.pure.ts +23 -0
- package/src/host/file/blob-home.sql.ts +55 -0
- package/src/host/file/local-blob-home.service.ts +71 -0
- package/src/host/file/local-blob-owner.sql.ts +89 -0
- package/src/host/file/local-file-upkeep.pure.ts +77 -0
- package/src/host/file/replay-file-storage.sql.ts +43 -0
- package/src/host/fork/actor-fork.sql.ts +110 -0
- package/src/host/fork/fork-computers.adapter.ts +366 -0
- package/src/host/hash/blob-hashing.service.ts +14 -0
- package/src/host/job/job-durables.sql.ts +214 -0
- package/src/host/job/job-engine.adapter.ts +420 -0
- package/src/host/job/job-journal.sql.ts +257 -0
- package/src/host/job/job-results.service.ts +111 -0
- package/src/host/job/job-runs.pure.ts +445 -0
- package/src/host/job/undelivered-result.pure.ts +265 -0
- package/src/host/layout/actor-layout.sql.ts +45 -0
- package/src/host/layout/layout-version.errors.ts +10 -0
- package/src/host/layout/layout-version.pure.ts +22 -0
- package/src/host/migration/actor-migrations.service.ts +159 -0
- package/src/host/migration/migration-edited.errors.ts +9 -0
- package/src/host/migration/migration-failed.errors.ts +12 -0
- package/src/host/migration/migration-failure.pure.ts +28 -0
- package/src/host/migration/migration-hasher.adapter.ts +70 -0
- package/src/host/migration/migration-missing.errors.ts +9 -0
- package/src/host/migration/migration-plan.pure.ts +66 -0
- package/src/host/outbox/actor-outbox.sql.ts +98 -0
- package/src/host/outbox/outbox-acknowledgements.sql.ts +93 -0
- package/src/host/outbox/outbox-runner.service.ts +253 -0
- package/src/host/query/query-policy.pure.ts +31 -0
- package/src/host/query/query-runner.service.ts +132 -0
- package/src/host/sqlite/actor-connections.pure.ts +44 -0
- package/src/host/sqlite/sqlite-connection.adapter.ts +260 -0
- package/src/host/sqlite/sqlite-driver.service.ts +151 -0
- package/src/host/sqlite/sqlite-parameters.pure.ts +28 -0
- package/src/host/sqlite/sqlite-reason.pure.ts +19 -0
- package/src/host/timer/actor-timers.sql.ts +67 -0
- package/src/host/timer/timer-runner.service.ts +117 -0
- package/src/host/upkeep/actor-due.sql.ts +71 -0
- package/src/host/upkeep/actor-upkeep.service.ts +404 -0
- package/src/host/upkeep/execution-authority.pure.ts +37 -0
- package/src/runtime/akter-local.layer.ts +49 -0
- package/src/runtime/akter.layer.ts +208 -0
- package/src/runtime/blob-hashing.layer.ts +21 -0
- package/src/runtime/hosted-environment.layer.ts +85 -0
- package/src/runtime/http-server.layer.ts +29 -0
- package/src/runtime/local-actor-engine.layer.ts +33 -0
- package/src/runtime/local-engine.layer.ts +37 -0
- package/src/runtime/local-environments.layer.ts +214 -0
- package/src/runtime/local-file-clients.layer.ts +112 -0
- package/src/runtime/local-job-runtime.layer.ts +38 -0
- package/src/serve/archive/archived-actors.layer.ts +97 -0
- package/src/serve/archive/archived-store.layer.ts +46 -0
- package/src/serve/engine/actor-engine.layer.ts +46 -0
- package/src/serve/engine/actor-fork.service.ts +403 -0
- package/src/serve/engine/actor-holding.pure.ts +28 -0
- package/src/serve/engine/actor-host.service.ts +454 -0
- package/src/serve/engine/actor-location.service.ts +219 -0
- package/src/serve/engine/actor-residents.pure.ts +500 -0
- package/src/serve/engine/actor-shard.pure.ts +13 -0
- package/src/serve/engine/actor-state.pure.ts +45 -0
- package/src/serve/engine/actors-not-hosted.errors.ts +9 -0
- package/src/serve/engine/job-runtime.layer.ts +13 -0
- package/src/serve/environment/environment-already-exists.errors.ts +9 -0
- package/src/serve/environment/environment-in-use.errors.ts +17 -0
- package/src/serve/environment/environment-not-found.errors.ts +9 -0
- package/src/serve/environment/environment-records.sql.ts +208 -0
- package/src/serve/environment/environment-store.sql.ts +116 -0
- package/src/serve/environment/local-environment.schema.ts +79 -0
- package/src/serve/environment/local-environments.service.ts +268 -0
- package/src/serve/environment/promotion-notice.pure.ts +63 -0
- package/src/serve/environment/snapshot-operations.sql.ts +210 -0
- package/src/serve/environment/store-snapshot.sql.ts +128 -0
- package/src/serve/erasure/local-actor-erasure.service.ts +170 -0
- package/src/serve/history/actor-host-runners.service.ts +85 -0
- package/src/serve/hosted/hosted-app-build.errors.ts +11 -0
- package/src/serve/hosted/hosted-app-checks.layer.ts +74 -0
- package/src/serve/hosted/hosted-file-forward.layer.ts +63 -0
- package/src/serve/hosted/hosted-file-rpcs.layer.ts +149 -0
- package/src/serve/hosted/hosted-file-server.layer.ts +75 -0
- package/src/serve/hosted/hosted-files.layer.ts +76 -0
- package/src/serve/hosted/hosted-runtime.layer.ts +145 -0
- package/src/serve/hosted/hosted-runtime.service.ts +128 -0
- package/src/serve/hosted/hosted-secrets.layer.ts +38 -0
- package/src/serve/http/loopback-host.pure.ts +67 -0
- package/src/serve/inspect/actor-inspection.schema.ts +94 -0
- package/src/serve/inspect/actor-inspection.sql.ts +112 -0
- package/src/serve/inspect/inspect.service.ts +173 -0
- package/src/serve/inspect/inspector-page.pure.ts +159 -0
- package/src/serve/inspect/inspector-wal.pure.ts +40 -0
- package/src/serve/inspect/inspector.handlers.ts +103 -0
- package/src/serve/inspect/inspector.layer.ts +26 -0
- package/src/serve/live/live-reads.service.ts +285 -0
- package/src/serve/live/live-tables.sql.ts +148 -0
- package/src/serve/live/state-reads.pure.ts +22 -0
- package/src/serve/rpc/actor-rpc.handlers.ts +242 -0
- package/src/serve/rpc/akter-server.layer.ts +119 -0
- package/src/serve/rpc/computer/computer-copy.layer.ts +95 -0
- package/src/serve/rpc/computer/computer-rpc-access.pure.ts +75 -0
- package/src/serve/rpc/computer/computer-rpc.layer.ts +143 -0
- package/src/serve/rpc/computer/step-rpc.handlers.ts +84 -0
- package/src/serve/rpc/development-authentication.handlers.ts +28 -0
- package/src/serve/rpc/development-guard.pure.ts +39 -0
- package/src/serve/rpc/file/file-rpc-access.pure.ts +119 -0
- package/src/serve/rpc/file/file-rpc.layer.ts +209 -0
- package/src/serve/rpc/file/upload-sessions.pure.ts +363 -0
- package/src/serve/rpc/in-process-client.layer.ts +62 -0
- package/src/serve/rpc/listener-not-loopback.errors.ts +9 -0
- package/src/serve/rpc/ndjson-only.pure.ts +33 -0
- package/src/serve/rpc/served-rpc.layer.ts +34 -0
- package/src/serve/store/actor-not-migrated.errors.ts +10 -0
- package/src/serve/store/store-migrations.layer.ts +35 -0
- package/src/serve/store/store-migrations.service.ts +76 -0
- package/src/serve/store/store-unreadable.errors.ts +9 -0
- package/src/serve/verify/verify.layer.ts +77 -0
- package/src/testing/story-driver.service.ts +266 -0
- package/src/testing/story.layer.ts +99 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { carrying, patchedOf, patchesKey, withPatches } from "../job/job-patches.contract.mjs";
|
|
2
|
+
import { ReservedPayloadFieldError } from "../job/reserved-payload-field.errors.mjs";
|
|
3
|
+
import { Array, Context, Duration, Effect, Option, Record, Schema, SchemaTransformation, Struct, pipe } from "effect";
|
|
4
|
+
import { Workflow } from "effect/workflow";
|
|
5
|
+
// src/contract/command/command.contract.ts
|
|
6
|
+
function declaredSchema(input) {
|
|
7
|
+
if (Schema.isSchema(input)) return input;
|
|
8
|
+
return Schema.Struct(input);
|
|
9
|
+
}
|
|
10
|
+
const payloadSchema = (options) => pipe(Option.fromNullishOr(options.payload), Option.match({
|
|
11
|
+
onNone: () => Schema.Void,
|
|
12
|
+
onSome: (input) => declaredSchema(input)
|
|
13
|
+
}));
|
|
14
|
+
function command(options = {}) {
|
|
15
|
+
return {
|
|
16
|
+
callers: Option.fromNullishOr(options.callers),
|
|
17
|
+
error: options.error ?? Schema.Never,
|
|
18
|
+
payload: payloadSchema(options),
|
|
19
|
+
success: options.success ?? Schema.Void
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function query(options = {}) {
|
|
23
|
+
return {
|
|
24
|
+
...command(options),
|
|
25
|
+
staleFor: Option.map(Option.fromNullishOr(options.staleFor), Duration.fromInputUnsafe)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const JobCodecsOf = Context.Reference("@akterjs/effect/contract/command/command.contract/JobCodecsOf", { defaultValue: Option.none });
|
|
29
|
+
function job(options) {
|
|
30
|
+
return {
|
|
31
|
+
error: options.error ?? Schema.Never,
|
|
32
|
+
patches: options.patches ?? [],
|
|
33
|
+
payload: options.payload,
|
|
34
|
+
success: options.success ?? Schema.Void
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const jobTag = ({ actor, member }) => `${actor}/${member}`;
|
|
38
|
+
const jobResult = ({ error, success }) => Schema.Exit(success, error, Schema.Defect());
|
|
39
|
+
/**
|
|
40
|
+
* A job's payload as its journal keeps it: the declared fields, plus the patches the starting code declared under
|
|
41
|
+
* `patchesKey` when it declared any. Code that predates patches ignores the extra key, so a rollback still reads it.
|
|
42
|
+
*/
|
|
43
|
+
const jobCodecs = (declared) => {
|
|
44
|
+
const fields = Schema.Struct(declared.payload);
|
|
45
|
+
const stored = Schema.Struct({
|
|
46
|
+
...declared.payload,
|
|
47
|
+
[patchesKey]: Schema.optionalKey(Schema.Array(Schema.String))
|
|
48
|
+
});
|
|
49
|
+
const result = Schema.fromJsonString(Schema.toCodecJson(jobResult(declared)));
|
|
50
|
+
const decodeStored = Schema.decodeEffect(Schema.fromJsonString(Schema.toCodecJson(stored)));
|
|
51
|
+
const withDeclaredPatches = (payload) => {
|
|
52
|
+
if (Array.isReadonlyArrayEmpty(declared.patches)) return payload;
|
|
53
|
+
return {
|
|
54
|
+
...payload,
|
|
55
|
+
[patchesKey]: declared.patches
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
const started = Schema.toEncoded(stored).pipe(Schema.decodeTo(fields, SchemaTransformation.transform({
|
|
59
|
+
decode: (payload) => Struct.omit(payload, [patchesKey]),
|
|
60
|
+
encode: withDeclaredPatches
|
|
61
|
+
})));
|
|
62
|
+
return {
|
|
63
|
+
decodePayload: (text) => Effect.map(decodeStored(text), (payload) => carrying({
|
|
64
|
+
fields: Struct.omit(payload, [patchesKey]),
|
|
65
|
+
patches: payload[patchesKey]
|
|
66
|
+
})),
|
|
67
|
+
decodeResult: Schema.decodeEffect(result),
|
|
68
|
+
encodeResult: Schema.encodeEffect(result),
|
|
69
|
+
startedPayload: Schema.fromJsonString(Schema.toCodecJson(started))
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
const workflowOf = (name, member, declared) => {
|
|
73
|
+
if (Record.has(declared.payload, "~akter/patches")) throw ReservedPayloadFieldError.make({
|
|
74
|
+
field: patchesKey,
|
|
75
|
+
job: jobTag({
|
|
76
|
+
actor: name,
|
|
77
|
+
member
|
|
78
|
+
})
|
|
79
|
+
});
|
|
80
|
+
const annotations = Context.make(JobCodecsOf, Option.some(jobCodecs(declared)));
|
|
81
|
+
const made = Workflow.make(jobTag({
|
|
82
|
+
actor: name,
|
|
83
|
+
member
|
|
84
|
+
}), {
|
|
85
|
+
annotations,
|
|
86
|
+
error: declared.error,
|
|
87
|
+
idempotencyKey: () => jobTag({
|
|
88
|
+
actor: name,
|
|
89
|
+
member
|
|
90
|
+
}),
|
|
91
|
+
payload: declared.payload,
|
|
92
|
+
success: declared.success
|
|
93
|
+
});
|
|
94
|
+
const register = made.toLayer.bind(made);
|
|
95
|
+
const toLayer = (execute) => register(withPatches(execute));
|
|
96
|
+
return Object.assign(made, {
|
|
97
|
+
patched: patchedOf({
|
|
98
|
+
patches: declared.patches,
|
|
99
|
+
tag: jobTag({
|
|
100
|
+
actor: name,
|
|
101
|
+
member
|
|
102
|
+
})
|
|
103
|
+
}),
|
|
104
|
+
patches: declared.patches,
|
|
105
|
+
toLayer
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
function jobsOf({ jobs, name }) {
|
|
109
|
+
return Record.map(jobs, (declared, member) => workflowOf(name, member, declared));
|
|
110
|
+
}
|
|
111
|
+
export { JobCodecsOf, command, declaredSchema, job, jobCodecs, jobResult, jobTag, jobsOf, query };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OutboxMessage } from "./outbox.schema.mjs";
|
|
2
|
+
declare const outboxCommandId: (id: string) => string;
|
|
3
|
+
declare const isOutboxCommandId: (commandId: string) => boolean;
|
|
4
|
+
declare const mintedIdOf: (commandId: string) => string;
|
|
5
|
+
interface Unsent extends Omit<OutboxMessage, "commandId"> {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
}
|
|
8
|
+
declare const outboxMessage: ({ id, ...unsent }: Unsent) => OutboxMessage;
|
|
9
|
+
export { isOutboxCommandId, mintedIdOf, outboxCommandId, outboxMessage };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { String } from "effect";
|
|
2
|
+
// src/contract/command/outbox-id.pure.ts
|
|
3
|
+
const outboxPrefix = "outbox:";
|
|
4
|
+
const outboxCommandId = (id) => `${outboxPrefix}${id}`;
|
|
5
|
+
const isOutboxCommandId = String.startsWith(outboxPrefix);
|
|
6
|
+
const mintedIdOf = (commandId) => {
|
|
7
|
+
if (isOutboxCommandId(commandId)) return String.slice(7)(commandId);
|
|
8
|
+
return commandId;
|
|
9
|
+
};
|
|
10
|
+
const outboxMessage = ({ id, ...unsent }) => ({
|
|
11
|
+
...unsent,
|
|
12
|
+
commandId: outboxCommandId(id)
|
|
13
|
+
});
|
|
14
|
+
export { isOutboxCommandId, mintedIdOf, outboxCommandId, outboxMessage };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
export declare const OutboxMessage: Schema.Struct<{
|
|
3
|
+
readonly actor: Schema.String;
|
|
4
|
+
readonly commandId: Schema.String;
|
|
5
|
+
readonly key: Schema.String;
|
|
6
|
+
readonly member: Schema.String;
|
|
7
|
+
readonly payload: Schema.String;
|
|
8
|
+
}>;
|
|
9
|
+
export type OutboxMessage = typeof OutboxMessage.Type;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/command/outbox.schema.ts
|
|
3
|
+
const OutboxMessage = Schema.Struct({
|
|
4
|
+
actor: Schema.String,
|
|
5
|
+
commandId: Schema.String,
|
|
6
|
+
key: Schema.String,
|
|
7
|
+
member: Schema.String,
|
|
8
|
+
payload: Schema.String
|
|
9
|
+
});
|
|
10
|
+
export { OutboxMessage };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
export declare const TimerId: Schema.brand<Schema.String, "TimerId">;
|
|
3
|
+
export type TimerId = typeof TimerId.Type;
|
|
4
|
+
export declare const ScheduledTimer: Schema.Struct<{
|
|
5
|
+
readonly after: Schema.Duration;
|
|
6
|
+
readonly command: Schema.String;
|
|
7
|
+
readonly id: Schema.brand<Schema.String, "TimerId">;
|
|
8
|
+
readonly payload: Schema.String;
|
|
9
|
+
}>;
|
|
10
|
+
export type ScheduledTimer = typeof ScheduledTimer.Type;
|
|
11
|
+
export declare const TimerChanges: Schema.Struct<{
|
|
12
|
+
readonly cancelled: Schema.$Array<Schema.brand<Schema.String, "TimerId">>;
|
|
13
|
+
readonly scheduled: Schema.$Array<Schema.Struct<{
|
|
14
|
+
readonly after: Schema.Duration;
|
|
15
|
+
readonly command: Schema.String;
|
|
16
|
+
readonly id: Schema.brand<Schema.String, "TimerId">;
|
|
17
|
+
readonly payload: Schema.String;
|
|
18
|
+
}>>;
|
|
19
|
+
}>;
|
|
20
|
+
export type TimerChanges = typeof TimerChanges.Type;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/command/timer.schema.ts
|
|
3
|
+
const TimerId = Schema.String.pipe(Schema.brand("TimerId"));
|
|
4
|
+
const ScheduledTimer = Schema.Struct({
|
|
5
|
+
after: Schema.Duration,
|
|
6
|
+
command: Schema.String,
|
|
7
|
+
id: TimerId,
|
|
8
|
+
payload: Schema.String
|
|
9
|
+
});
|
|
10
|
+
const TimerChanges = Schema.Struct({
|
|
11
|
+
cancelled: Schema.Array(TimerId),
|
|
12
|
+
scheduled: Schema.Array(ScheduledTimer)
|
|
13
|
+
});
|
|
14
|
+
export { ScheduledTimer, TimerChanges, TimerId };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
declare const CheckpointExpiredError_base: Schema.Class<CheckpointExpiredError, Schema.TaggedStruct<"CheckpointExpiredError", {
|
|
3
|
+
readonly computer: Schema.String;
|
|
4
|
+
}>, import("effect/Cause").YieldableError & {
|
|
5
|
+
readonly brand: unique symbol;
|
|
6
|
+
}>;
|
|
7
|
+
/**
|
|
8
|
+
* The computer's saved checkpoint can no longer be forked: Archil keeps only the current session's checkpoint and
|
|
9
|
+
* the one before it. Resume the computer to take a new one, or fork without it.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CheckpointExpiredError extends CheckpointExpiredError_base {}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/computer/checkpoint-expired.errors.ts
|
|
3
|
+
/**
|
|
4
|
+
* The computer's saved checkpoint can no longer be forked: Archil keeps only the current session's checkpoint and
|
|
5
|
+
* the one before it. Resume the computer to take a new one, or fork without it.
|
|
6
|
+
*/
|
|
7
|
+
var CheckpointExpiredError = class extends Schema.TaggedError()("CheckpointExpiredError", { computer: Schema.String }) {};
|
|
8
|
+
export { CheckpointExpiredError };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ActorUnavailableError } from "../client/actor-unavailable.errors.mjs";
|
|
2
|
+
import { CallerNotAllowedError } from "../caller/caller-not-allowed.errors.mjs";
|
|
3
|
+
import { UnauthenticatedError } from "../caller/unauthenticated.errors.mjs";
|
|
4
|
+
import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
|
|
5
|
+
import { ComputerHeldError } from "./computer-held.errors.mjs";
|
|
6
|
+
import { ComputerLimitError } from "./computer-limit.errors.mjs";
|
|
7
|
+
import { ComputerLostError } from "./computer-lost.errors.mjs";
|
|
8
|
+
import { ComputerNotFoundError } from "./computer-not-found.errors.mjs";
|
|
9
|
+
import { ComputersUnavailableError } from "./computers-unavailable.errors.mjs";
|
|
10
|
+
/**
|
|
11
|
+
* What a computer client can fail with. A network client adds the caller's refusals, `CallerNotAllowedError` and
|
|
12
|
+
* `UnauthenticatedError`; a host's own client never refuses its caller. A request past the exec limits is an
|
|
13
|
+
* `InvalidRequestError`.
|
|
14
|
+
*/
|
|
15
|
+
type ComputerClientFailure = ActorUnavailableError | CallerNotAllowedError | ComputerHeldError | ComputerLimitError | ComputerLostError | ComputerNotFoundError | ComputersUnavailableError | InvalidRequestError | UnauthenticatedError;
|
|
16
|
+
export type { ComputerClientFailure };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ActorDefinition } from "../actor/actor.contract.mjs";
|
|
2
|
+
import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
|
|
3
|
+
import { ActorComputers, ComputerAddress, ComputerClient } from "./computer-client.contract.mjs";
|
|
4
|
+
import { ComputerClientFailure } from "./computer-client-failure.contract.mjs";
|
|
5
|
+
import { ComputerLogLine, ComputerLogPage } from "./computer.schema.mjs";
|
|
6
|
+
import { ComputersUnavailableError } from "./computers-unavailable.errors.mjs";
|
|
7
|
+
import { Context, Effect } from "effect";
|
|
8
|
+
interface ComputerClientSource {
|
|
9
|
+
readonly definition: ActorDefinition;
|
|
10
|
+
readonly name: string;
|
|
11
|
+
}
|
|
12
|
+
type ComputerClientOf<Definition extends ActorDefinition> = (key: Definition["key"]["Type"]) => Effect.Effect<ActorComputers, ComputersUnavailableError | InvalidRequestError>;
|
|
13
|
+
declare const ActorComputerClients_base: Context.ServiceClass<ActorComputerClients, "@akterjs/effect/contract/computer/computer-client.adapter/ActorComputerClients", {
|
|
14
|
+
readonly connect: (address: ComputerAddress) => ComputerClient;
|
|
15
|
+
/** A page of one computer's log, read from outside the actor (`<Actor>/computer/logs`). */
|
|
16
|
+
readonly logs: (address: ComputerAddress, computer: string, page: ComputerLogPage) => Effect.Effect<readonly ComputerLogLine[], ComputerClientFailure>;
|
|
17
|
+
}>;
|
|
18
|
+
export declare class ActorComputerClients extends ActorComputerClients_base {
|
|
19
|
+
static clientOf<Definition extends ActorDefinition>(source: ComputerClientSource): ComputerClientOf<Definition>;
|
|
20
|
+
}
|
|
21
|
+
export type { ComputerClientOf };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
|
|
2
|
+
import { ComputerSpec, ExecRequest } from "./computer.schema.mjs";
|
|
3
|
+
import { ComputersUnavailableError } from "./computers-unavailable.errors.mjs";
|
|
4
|
+
import { SecretUnavailableError } from "../secret/secret-unavailable.errors.mjs";
|
|
5
|
+
import { step } from "./step/computer-step.contract.mjs";
|
|
6
|
+
import { StepRequest } from "./step/computer-step.schema.mjs";
|
|
7
|
+
import { Array, Context, Effect, Option, Schema } from "effect";
|
|
8
|
+
// src/contract/computer/computer-client.adapter.ts
|
|
9
|
+
const checked = (schema, actor) => {
|
|
10
|
+
const decode = Schema.decodeUnknownEffect(schema);
|
|
11
|
+
return (value) => Effect.mapError(decode(value), (invalid) => InvalidRequestError.make({
|
|
12
|
+
actor,
|
|
13
|
+
message: invalid.message
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
/** A spec binds only secrets the actor declares, so a computer never gets a credential its actor may not read. */
|
|
17
|
+
const declared = ({ definition, name }) => (spec) => {
|
|
18
|
+
const undeclared = Array.findFirst(spec.secrets ?? [], ({ secret }) => !Array.contains(definition.secrets, secret));
|
|
19
|
+
return Option.match(undeclared, {
|
|
20
|
+
onNone: () => Effect.succeed(spec),
|
|
21
|
+
onSome: ({ secret }) => Effect.fail(SecretUnavailableError.make({
|
|
22
|
+
actor: name,
|
|
23
|
+
reason: "undeclared",
|
|
24
|
+
secret
|
|
25
|
+
}))
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Checks every spec and exec request against the contract, so an engine never sees one past the limits, and every
|
|
30
|
+
* secret a spec binds against the actor's declaration.
|
|
31
|
+
*/
|
|
32
|
+
const bounded = (client, source) => {
|
|
33
|
+
const spec = checked(ComputerSpec, source.name);
|
|
34
|
+
const request = checked(ExecRequest, source.name);
|
|
35
|
+
const allowed = declared(source);
|
|
36
|
+
const stepRequest = checked(StepRequest, source.name);
|
|
37
|
+
const checkedClient = {
|
|
38
|
+
...client,
|
|
39
|
+
ensure: (wanted) => Effect.flatMap(Effect.flatMap(spec(wanted), allowed), client.ensure),
|
|
40
|
+
exec: (computer, wanted) => Effect.flatMap(request(wanted), (valid) => client.exec(computer, valid))
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
...checkedClient,
|
|
44
|
+
step: (computer, wanted) => Effect.flatMap(stepRequest(wanted), (valid) => step({
|
|
45
|
+
client: checkedClient,
|
|
46
|
+
computer,
|
|
47
|
+
request: valid
|
|
48
|
+
}))
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
var ActorComputerClients = class ActorComputerClients extends Context.Service()("@akterjs/effect/contract/computer/computer-client.adapter/ActorComputerClients") {
|
|
52
|
+
static clientOf({ definition, name }) {
|
|
53
|
+
return (key) => Effect.gen(function* connectComputers() {
|
|
54
|
+
const clients = yield* Effect.serviceOption(ActorComputerClients);
|
|
55
|
+
if (Option.isNone(clients)) return yield* ComputersUnavailableError.make({ message: "computers aren't available on this host" });
|
|
56
|
+
const encoded = yield* Schema.encodeEffect(definition.key)(key).pipe(Effect.mapError(() => InvalidRequestError.make({
|
|
57
|
+
actor: name,
|
|
58
|
+
message: "the actor key is invalid"
|
|
59
|
+
})));
|
|
60
|
+
return bounded(clients.value.connect({
|
|
61
|
+
actor: name,
|
|
62
|
+
key: encoded
|
|
63
|
+
}), {
|
|
64
|
+
definition,
|
|
65
|
+
name
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
export { ActorComputerClients };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ComputerClientFailure } from "./computer-client-failure.contract.mjs";
|
|
2
|
+
import { Computer, ComputerName, ComputerSpec, ExecRequest, ExecResult } from "./computer.schema.mjs";
|
|
3
|
+
import { CheckpointExpiredError } from "./checkpoint-expired.errors.mjs";
|
|
4
|
+
import { SecretUnavailableError } from "../secret/secret-unavailable.errors.mjs";
|
|
5
|
+
import { StepRequest } from "./step/computer-step.schema.mjs";
|
|
6
|
+
import { ComputerFileRequest } from "./files/computer-files.schema.mjs";
|
|
7
|
+
import { Effect } from "effect";
|
|
8
|
+
import { WorkflowEngine } from "effect/workflow";
|
|
9
|
+
interface ComputerAddress {
|
|
10
|
+
readonly actor: string;
|
|
11
|
+
readonly key: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* One actor's computers. Each call reaches a provider, so call it from a job activity or the host, never from a
|
|
15
|
+
* command or query (ADR 0007). `ensure`, `pause`, `resume`, `stop` and `remove` drive the computer to that state
|
|
16
|
+
* and are safe to send again after a lost reply. `exec` runs one step, keyed so a resend reads its outcome back.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Where a fork goes: another actor, by its encoded key, and optionally a new name. A live computer is paused for
|
|
20
|
+
* its checkpoint and resumed; a paused or stopped one forks from its saved checkpoint.
|
|
21
|
+
*/
|
|
22
|
+
interface ComputerFork {
|
|
23
|
+
readonly into: ComputerAddress;
|
|
24
|
+
readonly name?: ComputerName;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A hold on a computer, such as a fork's id. `pause` with a hold keeps the computer paused, or stopped if it was stopped: `ensure`, `exec`
|
|
28
|
+
* and a `resume` or `pause` without the same hold fail with `ComputerHeldError`, so nothing changes its pause under a fork. `resume` with the hold releases it and returns the computer to where the held `pause` found it, running, paused or stopped. A hold survives restarts, so a retried fork releases what an earlier attempt held.
|
|
29
|
+
*/
|
|
30
|
+
interface ComputerHold {
|
|
31
|
+
readonly hold?: string;
|
|
32
|
+
}
|
|
33
|
+
interface ComputerClient {
|
|
34
|
+
/** A spec's `secrets` must be among the actor's declared secrets, and set in its environment. */
|
|
35
|
+
readonly ensure: (spec: ComputerSpec) => Effect.Effect<Computer, ComputerClientFailure | SecretUnavailableError>;
|
|
36
|
+
readonly exec: (computer: string, request: ExecRequest) => Effect.Effect<ExecResult, ComputerClientFailure>;
|
|
37
|
+
/** Reads or replaces one file in the computer's files directory; a write answers empty bytes. */
|
|
38
|
+
readonly files: (computer: string, request: ComputerFileRequest) => Effect.Effect<Uint8Array, ComputerClientFailure>;
|
|
39
|
+
/** Copies the computer, its files and memory, to the target actor. A resend finds the copy already made. */
|
|
40
|
+
readonly fork: (computer: string, fork: ComputerFork) => Effect.Effect<Computer, ComputerClientFailure | CheckpointExpiredError>;
|
|
41
|
+
readonly get: (computer: string) => Effect.Effect<Computer, ComputerClientFailure>;
|
|
42
|
+
readonly list: Effect.Effect<readonly Computer[], ComputerClientFailure>;
|
|
43
|
+
readonly pause: (computer: string, hold?: ComputerHold) => Effect.Effect<Computer, ComputerClientFailure>;
|
|
44
|
+
readonly remove: (computer: string) => Effect.Effect<void, ComputerClientFailure>;
|
|
45
|
+
readonly resume: (computer: string, hold?: ComputerHold) => Effect.Effect<Computer, ComputerClientFailure>;
|
|
46
|
+
readonly stop: (computer: string) => Effect.Effect<Computer, ComputerClientFailure>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* An actor's computers as its jobs reach them through `Actor.computer(key)`: the client, plus `step`, which runs one
|
|
50
|
+
* command as a durable step of the calling job (`./step/computer-step.contract.ts`). Call `step` from a job, never from
|
|
51
|
+
* inside an activity.
|
|
52
|
+
*/
|
|
53
|
+
interface ActorComputers extends ComputerClient {
|
|
54
|
+
readonly step: (computer: string, request: StepRequest) => Effect.Effect<ExecResult, ComputerClientFailure, WorkflowEngine.WorkflowEngine | WorkflowEngine.WorkflowInstance>;
|
|
55
|
+
}
|
|
56
|
+
export type { ActorComputers, ComputerAddress, ComputerClient, ComputerClientFailure, ComputerFork, ComputerHold };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
declare const ComputerHeldError_base: Schema.Class<ComputerHeldError, Schema.TaggedStruct<"ComputerHeldError", {
|
|
3
|
+
readonly computer: Schema.String;
|
|
4
|
+
readonly hold: Schema.String;
|
|
5
|
+
}>, import("effect/Cause").YieldableError & {
|
|
6
|
+
readonly brand: unique symbol;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* A fork holds the computer paused. Nothing but that fork's resume, carrying the same hold, may run or resume it;
|
|
10
|
+
* try again once the fork ends.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ComputerHeldError extends ComputerHeldError_base {}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/computer/computer-held.errors.ts
|
|
3
|
+
/**
|
|
4
|
+
* A fork holds the computer paused. Nothing but that fork's resume, carrying the same hold, may run or resume it;
|
|
5
|
+
* try again once the fork ends.
|
|
6
|
+
*/
|
|
7
|
+
var ComputerHeldError = class extends Schema.TaggedError()("ComputerHeldError", {
|
|
8
|
+
computer: Schema.String,
|
|
9
|
+
hold: Schema.String
|
|
10
|
+
}) {};
|
|
11
|
+
export { ComputerHeldError };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
declare const ComputerLimitError_base: Schema.Class<ComputerLimitError, Schema.TaggedStruct<"ComputerLimitError", {
|
|
3
|
+
readonly computer: Schema.String;
|
|
4
|
+
readonly limit: Schema.Literals<readonly ["store", "account"]>;
|
|
5
|
+
readonly maximum: Schema.Int;
|
|
6
|
+
}>, import("effect/Cause").YieldableError & {
|
|
7
|
+
readonly brand: unique symbol;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* A new computer would pass a limit, so none was made: `store`, the computers one app environment may keep, or
|
|
11
|
+
* `account`, the sandboxes the platform's provider account may run at once. Remove a computer, or try again once
|
|
12
|
+
* one is gone. Nothing waits for room.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ComputerLimitError extends ComputerLimitError_base {}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/computer/computer-limit.errors.ts
|
|
3
|
+
/**
|
|
4
|
+
* A new computer would pass a limit, so none was made: `store`, the computers one app environment may keep, or
|
|
5
|
+
* `account`, the sandboxes the platform's provider account may run at once. Remove a computer, or try again once
|
|
6
|
+
* one is gone. Nothing waits for room.
|
|
7
|
+
*/
|
|
8
|
+
var ComputerLimitError = class extends Schema.TaggedError()("ComputerLimitError", {
|
|
9
|
+
computer: Schema.String,
|
|
10
|
+
limit: Schema.Literals(["store", "account"]),
|
|
11
|
+
maximum: Schema.Int
|
|
12
|
+
}) {};
|
|
13
|
+
export { ComputerLimitError };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
declare const ComputerLostError_base: Schema.Class<ComputerLostError, Schema.TaggedStruct<"ComputerLostError", {
|
|
3
|
+
readonly computer: Schema.String;
|
|
4
|
+
}>, import("effect/Cause").YieldableError & {
|
|
5
|
+
readonly brand: unique symbol;
|
|
6
|
+
}>;
|
|
7
|
+
/**
|
|
8
|
+
* The computer's disk no longer exists, so it can't be resumed or run in. It is not recreated empty under the same
|
|
9
|
+
* name; remove it and ensure it again to start over.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ComputerLostError extends ComputerLostError_base {}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/computer/computer-lost.errors.ts
|
|
3
|
+
/**
|
|
4
|
+
* The computer's disk no longer exists, so it can't be resumed or run in. It is not recreated empty under the same
|
|
5
|
+
* name; remove it and ensure it again to start over.
|
|
6
|
+
*/
|
|
7
|
+
var ComputerLostError = class extends Schema.TaggedError()("ComputerLostError", { computer: Schema.String }) {};
|
|
8
|
+
export { ComputerLostError };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
declare const ComputerNotFoundError_base: Schema.Class<ComputerNotFoundError, Schema.TaggedStruct<"ComputerNotFoundError", {
|
|
3
|
+
readonly computer: Schema.String;
|
|
4
|
+
}>, import("effect/Cause").YieldableError & {
|
|
5
|
+
readonly brand: unique symbol;
|
|
6
|
+
}>;
|
|
7
|
+
/** The actor has no computer of that name. */
|
|
8
|
+
export declare class ComputerNotFoundError extends ComputerNotFoundError_base {}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
// src/contract/computer/computer-not-found.errors.ts
|
|
3
|
+
/** The actor has no computer of that name. */
|
|
4
|
+
var ComputerNotFoundError = class extends Schema.TaggedError()("ComputerNotFoundError", { computer: Schema.String }) {};
|
|
5
|
+
export { ComputerNotFoundError };
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { ComputerSecret } from "../secret/secret.schema.mjs";
|
|
2
|
+
import { ComputerCopy, ComputerCopyResult, ComputerFileRequest, computerFileBytes } from "./files/computer-files.schema.mjs";
|
|
3
|
+
import { Schema } from "effect";
|
|
4
|
+
/**
|
|
5
|
+
* Archil's serverless exec limits, applied to every exec step so a step behaves the same in any engine: five
|
|
6
|
+
* minutes, 100 KiB of command and standard input together, and 4 MiB of each output stream returned. Longer work
|
|
7
|
+
* runs as a process in the computer; longer output belongs in files.
|
|
8
|
+
*/
|
|
9
|
+
declare const execLimits: {
|
|
10
|
+
readonly inputBytes: number;
|
|
11
|
+
readonly outputBytes: number;
|
|
12
|
+
readonly seconds: 300;
|
|
13
|
+
};
|
|
14
|
+
/** One of an actor's computers. Lowercase letters, digits and hyphens, starting with a letter. */
|
|
15
|
+
declare const ComputerName: Schema.brand<Schema.String, "ComputerName">;
|
|
16
|
+
type ComputerName = typeof ComputerName.Type;
|
|
17
|
+
declare const ComputerSize: Schema.Struct<{
|
|
18
|
+
readonly memoryMib: Schema.Int;
|
|
19
|
+
readonly vcpu: Schema.Int;
|
|
20
|
+
}>;
|
|
21
|
+
type ComputerSize = typeof ComputerSize.Type;
|
|
22
|
+
/**
|
|
23
|
+
* A computer to keep: its image, its size and the hosts it may reach. `egress` lists hosts or rules, never
|
|
24
|
+
* credentials. `secrets` names the credentials the platform adds to an allowed host's requests on the way out, from
|
|
25
|
+
* the actor's declared secrets, so no value ever reaches the computer.
|
|
26
|
+
*/
|
|
27
|
+
declare const ComputerSpec: Schema.Struct<{
|
|
28
|
+
readonly egress: Schema.$Array<Schema.String>;
|
|
29
|
+
readonly image: Schema.String;
|
|
30
|
+
readonly name: Schema.brand<Schema.String, "ComputerName">;
|
|
31
|
+
readonly secrets: Schema.optionalKey<Schema.$Array<Schema.Struct<{
|
|
32
|
+
readonly header: Schema.String;
|
|
33
|
+
readonly host: Schema.String;
|
|
34
|
+
readonly prefix: Schema.optionalKey<Schema.String>;
|
|
35
|
+
readonly secret: Schema.String;
|
|
36
|
+
}>>>;
|
|
37
|
+
readonly size: Schema.Struct<{
|
|
38
|
+
readonly memoryMib: Schema.Int;
|
|
39
|
+
readonly vcpu: Schema.Int;
|
|
40
|
+
}>;
|
|
41
|
+
}>;
|
|
42
|
+
type ComputerSpec = typeof ComputerSpec.Type;
|
|
43
|
+
/**
|
|
44
|
+
* Where a computer is. `paused` keeps its memory, processes and files; `stopped` and `failed` keep only its files;
|
|
45
|
+
* `gone` means its disk no longer exists, so it is never recreated empty under the same name by accident.
|
|
46
|
+
*/
|
|
47
|
+
declare const ComputerState: Schema.Literals<readonly ["starting", "running", "paused", "stopped", "failed", "gone"]>;
|
|
48
|
+
type ComputerState = typeof ComputerState.Type;
|
|
49
|
+
declare const Computer: Schema.Struct<{
|
|
50
|
+
readonly egress: Schema.$Array<Schema.String>;
|
|
51
|
+
readonly image: Schema.String;
|
|
52
|
+
readonly name: Schema.brand<Schema.String, "ComputerName">;
|
|
53
|
+
readonly secrets: Schema.optionalKey<Schema.$Array<Schema.Struct<{
|
|
54
|
+
readonly header: Schema.String;
|
|
55
|
+
readonly host: Schema.String;
|
|
56
|
+
readonly prefix: Schema.optionalKey<Schema.String>;
|
|
57
|
+
readonly secret: Schema.String;
|
|
58
|
+
}>>>;
|
|
59
|
+
readonly size: Schema.Struct<{
|
|
60
|
+
readonly memoryMib: Schema.Int;
|
|
61
|
+
readonly vcpu: Schema.Int;
|
|
62
|
+
}>;
|
|
63
|
+
readonly state: Schema.Literals<readonly ["starting", "running", "paused", "stopped", "failed", "gone"]>;
|
|
64
|
+
}>;
|
|
65
|
+
type Computer = typeof Computer.Type;
|
|
66
|
+
/**
|
|
67
|
+
* One exec step. `key` is the step's stable logical-operation key, such as `Activity.idempotencyKey(name)`: the
|
|
68
|
+
* computer records the outcome under it, so the same step sent again reads that outcome back instead of running.
|
|
69
|
+
*/
|
|
70
|
+
declare const ExecRequest: Schema.Struct<{
|
|
71
|
+
readonly command: Schema.String;
|
|
72
|
+
readonly cwd: Schema.optionalKey<Schema.String>;
|
|
73
|
+
readonly key: Schema.String;
|
|
74
|
+
readonly stdin: Schema.optionalKey<Schema.Uint8Array>;
|
|
75
|
+
readonly timeoutSeconds: Schema.optionalKey<Schema.Int>;
|
|
76
|
+
}>;
|
|
77
|
+
type ExecRequest = typeof ExecRequest.Type;
|
|
78
|
+
/**
|
|
79
|
+
* The step ran to an end, or its recorded outcome was read back; the two look the same. `exitCode` is absent when
|
|
80
|
+
* the process was ended without one, such as at the time limit. Past 4 MiB a stream, output is not returned and
|
|
81
|
+
* `truncated` is set; the whole of each stream stays in the step's directory on the computer.
|
|
82
|
+
*/
|
|
83
|
+
declare const ExecRan: Schema.TaggedStruct<"Ran", {
|
|
84
|
+
readonly exitCode: Schema.optionalKey<Schema.Int>;
|
|
85
|
+
readonly stderr: Schema.String;
|
|
86
|
+
readonly stdout: Schema.String;
|
|
87
|
+
readonly truncated: Schema.Boolean;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* The step started once but no outcome was recorded: the computer lost power, or the step is still running. It is
|
|
91
|
+
* not run again, because whatever it did outside the computer may already have happened. Reconcile with the
|
|
92
|
+
* outside system by the step's key.
|
|
93
|
+
*/
|
|
94
|
+
declare const ExecUnknown: Schema.TaggedStruct<"Unknown", {}>;
|
|
95
|
+
declare const ExecResult: Schema.Union<readonly [Schema.TaggedStruct<"Ran", {
|
|
96
|
+
readonly exitCode: Schema.optionalKey<Schema.Int>;
|
|
97
|
+
readonly stderr: Schema.String;
|
|
98
|
+
readonly stdout: Schema.String;
|
|
99
|
+
readonly truncated: Schema.Boolean;
|
|
100
|
+
}>, Schema.TaggedStruct<"Unknown", {}>]>;
|
|
101
|
+
type ExecResult = typeof ExecResult.Type;
|
|
102
|
+
/** How much a log page returns at most, and when a request names no limit. */
|
|
103
|
+
declare const logPageLines = 1000;
|
|
104
|
+
/**
|
|
105
|
+
* One line of a computer's log, oldest first: what the platform did to it (made, paused, resumed, stopped, forked,
|
|
106
|
+
* deleted) and each exec step's key and outcome. `seq` rises by one per line of the computer, so a reader passes the
|
|
107
|
+
* last `seq` it saw as `after` to read on.
|
|
108
|
+
*/
|
|
109
|
+
declare const ComputerLogLine: Schema.Struct<{
|
|
110
|
+
readonly at: Schema.Int;
|
|
111
|
+
readonly level: Schema.Literals<readonly ["info", "warn", "error"]>;
|
|
112
|
+
readonly message: Schema.String;
|
|
113
|
+
readonly seq: Schema.Int;
|
|
114
|
+
}>;
|
|
115
|
+
type ComputerLogLine = typeof ComputerLogLine.Type;
|
|
116
|
+
/** A page of a computer's log: the lines after `after`, at most `limit` (1 to 1,000; 1,000 when absent). */
|
|
117
|
+
declare const ComputerLogPage: Schema.Struct<{
|
|
118
|
+
readonly after: Schema.optionalKey<Schema.Int>;
|
|
119
|
+
readonly limit: Schema.optionalKey<Schema.Int>;
|
|
120
|
+
}>;
|
|
121
|
+
type ComputerLogPage = typeof ComputerLogPage.Type;
|
|
122
|
+
export { Computer, ComputerCopy, ComputerCopyResult, ComputerFileRequest, ComputerLogLine, ComputerLogPage, ComputerName, ComputerSecret, ComputerSize, ComputerSpec, ComputerState, ExecRan, ExecRequest, ExecResult, ExecUnknown, computerFileBytes, execLimits, logPageLines };
|