@amalgm/shell 0.1.164-preview.36072132286 → 0.1.164-preview.36809057014
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/PURPOSE.md +642 -128
- package/README.md +10 -8
- package/dist/accepted-tail.d.ts +26 -0
- package/dist/accepted-tail.js +37 -0
- package/dist/accepted-tail.js.map +1 -0
- package/dist/agent-execution.d.ts +16 -1
- package/dist/agent-execution.js +13 -5
- package/dist/agent-execution.js.map +1 -1
- package/dist/apply-cleanup.d.ts +28 -0
- package/dist/apply-cleanup.js +166 -0
- package/dist/apply-cleanup.js.map +1 -0
- package/dist/apply-recovery.d.ts +47 -0
- package/dist/apply-recovery.js +99 -0
- package/dist/apply-recovery.js.map +1 -0
- package/dist/apply-rows.d.ts +72 -0
- package/dist/apply-rows.js +150 -0
- package/dist/apply-rows.js.map +1 -0
- package/dist/apply-saves.d.ts +85 -0
- package/dist/apply-saves.js +238 -0
- package/dist/apply-saves.js.map +1 -0
- package/dist/boot.js +2 -1
- package/dist/boot.js.map +1 -1
- package/dist/capture-work.d.ts +8 -0
- package/dist/capture-work.js +67 -0
- package/dist/capture-work.js.map +1 -0
- package/dist/cargo-group.d.ts +45 -0
- package/dist/cargo-group.js +88 -0
- package/dist/cargo-group.js.map +1 -0
- package/dist/channel-session.d.ts +4 -2
- package/dist/channel-session.js +4 -3
- package/dist/channel-session.js.map +1 -1
- package/dist/chat-composition.d.ts +2 -0
- package/dist/chat-composition.js +1 -0
- package/dist/chat-composition.js.map +1 -1
- package/dist/cli.js +20 -1
- package/dist/cli.js.map +1 -1
- package/dist/construct-apply-host.d.ts +4 -2
- package/dist/construct-apply-host.js +8 -3
- package/dist/construct-apply-host.js.map +1 -1
- package/dist/construct-door.js +1 -1
- package/dist/construct-door.js.map +1 -1
- package/dist/construct-ledger.d.ts +6 -1
- package/dist/construct-ledger.js +21 -33
- package/dist/construct-ledger.js.map +1 -1
- package/dist/content-cache-collection.d.ts +18 -0
- package/dist/content-cache-collection.js +99 -0
- package/dist/content-cache-collection.js.map +1 -0
- package/dist/content-cache-host.d.ts +83 -17
- package/dist/content-cache-host.js +335 -95
- package/dist/content-cache-host.js.map +1 -1
- package/dist/content-cache-namespace.d.ts +59 -0
- package/dist/content-cache-namespace.js +210 -0
- package/dist/content-cache-namespace.js.map +1 -0
- package/dist/content-cache-ownership.d.ts +13 -0
- package/dist/content-cache-ownership.js +75 -0
- package/dist/content-cache-ownership.js.map +1 -0
- package/dist/content-cache-retention.d.ts +23 -0
- package/dist/content-cache-retention.js +195 -0
- package/dist/content-cache-retention.js.map +1 -0
- package/dist/content-capture-pool.d.ts +287 -0
- package/dist/content-capture-pool.js +461 -0
- package/dist/content-capture-pool.js.map +1 -0
- package/dist/content-capture-worker.d.ts +8 -0
- package/dist/content-capture-worker.js +109 -0
- package/dist/content-capture-worker.js.map +1 -0
- package/dist/content-clock.d.ts +42 -0
- package/dist/content-clock.js +166 -0
- package/dist/content-clock.js.map +1 -0
- package/dist/content-direct.d.ts +2 -0
- package/dist/content-direct.js +12 -0
- package/dist/content-direct.js.map +1 -1
- package/dist/content-failure.d.ts +18 -0
- package/dist/content-failure.js +38 -0
- package/dist/content-failure.js.map +1 -0
- package/dist/content-stream-thread.d.ts +60 -0
- package/dist/content-stream-thread.js +95 -0
- package/dist/content-stream-thread.js.map +1 -0
- package/dist/content-stream-worker.d.ts +7 -0
- package/dist/content-stream-worker.js +52 -0
- package/dist/content-stream-worker.js.map +1 -0
- package/dist/declaration-absorption.d.ts +37 -0
- package/dist/declaration-absorption.js +119 -0
- package/dist/declaration-absorption.js.map +1 -0
- package/dist/declaration-chain.d.ts +36 -0
- package/dist/declaration-chain.js +96 -0
- package/dist/declaration-chain.js.map +1 -0
- package/dist/declaration-commit.d.ts +31 -0
- package/dist/declaration-commit.js +49 -0
- package/dist/declaration-commit.js.map +1 -0
- package/dist/declaration-hold.d.ts +22 -0
- package/dist/declaration-hold.js +24 -0
- package/dist/declaration-hold.js.map +1 -0
- package/dist/declaration-journal.d.ts +62 -0
- package/dist/declaration-journal.js +99 -0
- package/dist/declaration-journal.js.map +1 -0
- package/dist/declaration-save.d.ts +31 -0
- package/dist/declaration-save.js +134 -0
- package/dist/declaration-save.js.map +1 -0
- package/dist/detection/accepted-result.d.ts +19 -1
- package/dist/detection/accepted-result.js +36 -5
- package/dist/detection/accepted-result.js.map +1 -1
- package/dist/detection/admission-save.d.ts +55 -0
- package/dist/detection/admission-save.js +48 -0
- package/dist/detection/admission-save.js.map +1 -0
- package/dist/detection/admission-units.d.ts +66 -0
- package/dist/detection/admission-units.js +322 -0
- package/dist/detection/admission-units.js.map +1 -0
- package/dist/detection/alias-discovery.d.ts +12 -0
- package/dist/detection/alias-discovery.js +80 -0
- package/dist/detection/alias-discovery.js.map +1 -0
- package/dist/detection/alias-examination.d.ts +30 -0
- package/dist/detection/alias-examination.js +49 -0
- package/dist/detection/alias-examination.js.map +1 -0
- package/dist/detection/apply-ownership.d.ts +81 -0
- package/dist/detection/apply-ownership.js +232 -0
- package/dist/detection/apply-ownership.js.map +1 -0
- package/dist/detection/basis-advanced.d.ts +11 -0
- package/dist/detection/basis-advanced.js +26 -0
- package/dist/detection/basis-advanced.js.map +1 -0
- package/dist/detection/capture-outcome.d.ts +16 -0
- package/dist/detection/capture-outcome.js +92 -0
- package/dist/detection/capture-outcome.js.map +1 -0
- package/dist/detection/container-membership.d.ts +32 -0
- package/dist/detection/container-membership.js +49 -0
- package/dist/detection/container-membership.js.map +1 -0
- package/dist/detection/detect-cancelled.d.ts +6 -0
- package/dist/detection/detect-cancelled.js +10 -0
- package/dist/detection/detect-cancelled.js.map +1 -0
- package/dist/detection/directory-proof.d.ts +47 -0
- package/dist/detection/directory-proof.js +77 -0
- package/dist/detection/directory-proof.js.map +1 -0
- package/dist/detection/disposition-rows.d.ts +18 -0
- package/dist/detection/disposition-rows.js +29 -0
- package/dist/detection/disposition-rows.js.map +1 -0
- package/dist/detection/dispositions.d.ts +130 -0
- package/dist/detection/dispositions.js +248 -0
- package/dist/detection/dispositions.js.map +1 -0
- package/dist/detection/git-notice.d.ts +88 -0
- package/dist/detection/git-notice.js +444 -0
- package/dist/detection/git-notice.js.map +1 -0
- package/dist/detection/ground-proof.d.ts +130 -0
- package/dist/detection/ground-proof.js +274 -0
- package/dist/detection/ground-proof.js.map +1 -0
- package/dist/detection/ground-reader.d.ts +29 -0
- package/dist/detection/ground-reader.js +102 -0
- package/dist/detection/ground-reader.js.map +1 -0
- package/dist/detection/held-territory.d.ts +51 -0
- package/dist/detection/held-territory.js +205 -0
- package/dist/detection/held-territory.js.map +1 -0
- package/dist/detection/identity-discovery.d.ts +45 -0
- package/dist/detection/identity-discovery.js +287 -0
- package/dist/detection/identity-discovery.js.map +1 -0
- package/dist/detection/maintenance-sweep.d.ts +108 -0
- package/dist/detection/maintenance-sweep.js +325 -0
- package/dist/detection/maintenance-sweep.js.map +1 -0
- package/dist/detection/name-reach.d.ts +12 -0
- package/dist/detection/name-reach.js +28 -0
- package/dist/detection/name-reach.js.map +1 -0
- package/dist/detection/notebook-basis.d.ts +5 -7
- package/dist/detection/notebook-basis.js +6 -7
- package/dist/detection/notebook-basis.js.map +1 -1
- package/dist/detection/owed-selection.d.ts +51 -0
- package/dist/detection/owed-selection.js +169 -0
- package/dist/detection/owed-selection.js.map +1 -0
- package/dist/detection/portable.d.ts +34 -34
- package/dist/detection/portable.js +67 -93
- package/dist/detection/portable.js.map +1 -1
- package/dist/detection/reconciliation-coverage.d.ts +7 -0
- package/dist/detection/reconciliation-coverage.js +16 -0
- package/dist/detection/reconciliation-coverage.js.map +1 -0
- package/dist/detection/repository-publication.d.ts +20 -0
- package/dist/detection/repository-publication.js +79 -0
- package/dist/detection/repository-publication.js.map +1 -0
- package/dist/detection/repository-routes.d.ts +43 -0
- package/dist/detection/repository-routes.js +97 -0
- package/dist/detection/repository-routes.js.map +1 -0
- package/dist/detection/root-examination.d.ts +94 -0
- package/dist/detection/root-examination.js +523 -0
- package/dist/detection/root-examination.js.map +1 -0
- package/dist/detection/runtime.d.ts +131 -64
- package/dist/detection/runtime.js +808 -1103
- package/dist/detection/runtime.js.map +1 -1
- package/dist/detection/scoped-identity-port.d.ts +34 -0
- package/dist/detection/scoped-identity-port.js +81 -0
- package/dist/detection/scoped-identity-port.js.map +1 -0
- package/dist/detection/seal-law.d.ts +66 -0
- package/dist/detection/seal-law.js +116 -0
- package/dist/detection/seal-law.js.map +1 -0
- package/dist/detection/sharing-policy.d.ts +11 -0
- package/dist/detection/sharing-policy.js +32 -0
- package/dist/detection/sharing-policy.js.map +1 -0
- package/dist/detection/thread-database.d.ts +4 -0
- package/dist/detection/thread-database.js +30 -0
- package/dist/detection/thread-database.js.map +1 -0
- package/dist/detection/unreadable.d.ts +11 -0
- package/dist/detection/unreadable.js +9 -0
- package/dist/detection/unreadable.js.map +1 -0
- package/dist/detection/verified-content.d.ts +6 -0
- package/dist/detection/verified-content.js +12 -0
- package/dist/detection/verified-content.js.map +1 -0
- package/dist/detection/walk-law.d.ts +34 -0
- package/dist/detection/walk-law.js +55 -0
- package/dist/detection/walk-law.js.map +1 -0
- package/dist/development/fly-guest.js +2 -1
- package/dist/development/fly-guest.js.map +1 -1
- package/dist/entity-apply-host.d.ts +29 -13
- package/dist/entity-apply-host.js +1426 -461
- package/dist/entity-apply-host.js.map +1 -1
- package/dist/entity-apply-store.d.ts +77 -30
- package/dist/entity-apply-store.js +221 -516
- package/dist/entity-apply-store.js.map +1 -1
- package/dist/entity-record-observability.js +2 -0
- package/dist/entity-record-observability.js.map +1 -1
- package/dist/entity-record-saves.d.ts +20 -0
- package/dist/entity-record-saves.js +91 -0
- package/dist/entity-record-saves.js.map +1 -0
- package/dist/entity-record-store.d.ts +15 -7
- package/dist/entity-record-store.js +57 -117
- package/dist/entity-record-store.js.map +1 -1
- package/dist/files-register-host.d.ts +22 -3
- package/dist/files-register-host.js +70 -31
- package/dist/files-register-host.js.map +1 -1
- package/dist/filesystem.js +3 -2
- package/dist/filesystem.js.map +1 -1
- package/dist/git-binding.d.ts +65 -0
- package/dist/git-binding.js +220 -0
- package/dist/git-binding.js.map +1 -0
- package/dist/git-capture.d.ts +39 -0
- package/dist/git-capture.js +86 -0
- package/dist/git-capture.js.map +1 -0
- package/dist/git-card.d.ts +12 -0
- package/dist/git-card.js +123 -0
- package/dist/git-card.js.map +1 -0
- package/dist/git-checkpoint-construction.d.ts +41 -0
- package/dist/git-checkpoint-construction.js +96 -0
- package/dist/git-checkpoint-construction.js.map +1 -0
- package/dist/git-checkpoint-preparation.d.ts +37 -0
- package/dist/git-checkpoint-preparation.js +145 -0
- package/dist/git-checkpoint-preparation.js.map +1 -0
- package/dist/git-command.d.ts +61 -8
- package/dist/git-command.js +217 -63
- package/dist/git-command.js.map +1 -1
- package/dist/git-configuration.d.ts +40 -0
- package/dist/git-configuration.js +217 -0
- package/dist/git-configuration.js.map +1 -0
- package/dist/git-evidence.d.ts +61 -0
- package/dist/git-evidence.js +181 -0
- package/dist/git-evidence.js.map +1 -0
- package/dist/git-index-entries.d.ts +15 -0
- package/dist/git-index-entries.js +44 -0
- package/dist/git-index-entries.js.map +1 -0
- package/dist/git-index-format.d.ts +35 -0
- package/dist/git-index-format.js +293 -0
- package/dist/git-index-format.js.map +1 -0
- package/dist/git-index-witness.d.ts +33 -0
- package/dist/git-index-witness.js +69 -0
- package/dist/git-index-witness.js.map +1 -0
- package/dist/git-literal-host.d.ts +82 -0
- package/dist/git-literal-host.js +172 -0
- package/dist/git-literal-host.js.map +1 -0
- package/dist/git-literal-read.d.ts +88 -0
- package/dist/git-literal-read.js +170 -0
- package/dist/git-literal-read.js.map +1 -0
- package/dist/git-literal-replay.d.ts +33 -0
- package/dist/git-literal-replay.js +268 -0
- package/dist/git-literal-replay.js.map +1 -0
- package/dist/git-native-file.d.ts +42 -0
- package/dist/git-native-file.js +145 -0
- package/dist/git-native-file.js.map +1 -0
- package/dist/git-native-index.d.ts +21 -0
- package/dist/git-native-index.js +44 -0
- package/dist/git-native-index.js.map +1 -0
- package/dist/git-operation-host.d.ts +48 -0
- package/dist/git-operation-host.js +127 -0
- package/dist/git-operation-host.js.map +1 -0
- package/dist/git-private-index.d.ts +11 -0
- package/dist/git-private-index.js +42 -0
- package/dist/git-private-index.js.map +1 -0
- package/dist/git-private-repository.d.ts +4 -0
- package/dist/git-private-repository.js +69 -0
- package/dist/git-private-repository.js.map +1 -0
- package/dist/git-private-view.d.ts +39 -0
- package/dist/git-private-view.js +162 -0
- package/dist/git-private-view.js.map +1 -0
- package/dist/git-ref-store.d.ts +12 -0
- package/dist/git-ref-store.js +68 -0
- package/dist/git-ref-store.js.map +1 -0
- package/dist/git-registration-host.d.ts +20 -30
- package/dist/git-registration-host.js +86 -249
- package/dist/git-registration-host.js.map +1 -1
- package/dist/git-repository-host.d.ts +148 -22
- package/dist/git-repository-host.js +633 -650
- package/dist/git-repository-host.js.map +1 -1
- package/dist/git-worktree-host.d.ts +2 -0
- package/dist/git-worktree-host.js +16 -0
- package/dist/git-worktree-host.js.map +1 -0
- package/dist/graph-publication.d.ts +75 -0
- package/dist/graph-publication.js +203 -0
- package/dist/graph-publication.js.map +1 -0
- package/dist/ground-basis.d.ts +242 -0
- package/dist/ground-basis.js +1023 -0
- package/dist/ground-basis.js.map +1 -0
- package/dist/ground-checkpoint-worker.d.ts +1 -0
- package/dist/ground-checkpoint-worker.js +84 -0
- package/dist/ground-checkpoint-worker.js.map +1 -0
- package/dist/ground-checkpoints.d.ts +16 -0
- package/dist/ground-checkpoints.js +45 -0
- package/dist/ground-checkpoints.js.map +1 -0
- package/dist/ground-coordination.d.ts +107 -3
- package/dist/ground-coordination.js +249 -24
- package/dist/ground-coordination.js.map +1 -1
- package/dist/ground-database.d.ts +42 -0
- package/dist/ground-database.js +290 -0
- package/dist/ground-database.js.map +1 -0
- package/dist/ground-differences.d.ts +23 -0
- package/dist/ground-differences.js +47 -0
- package/dist/ground-differences.js.map +1 -0
- package/dist/ground-holders.d.ts +4 -0
- package/dist/ground-holders.js +15 -0
- package/dist/ground-holders.js.map +1 -0
- package/dist/ground-initialization-worker.d.ts +1 -0
- package/dist/ground-initialization-worker.js +20 -0
- package/dist/ground-initialization-worker.js.map +1 -0
- package/dist/ground-initialization.d.ts +35 -0
- package/dist/ground-initialization.js +102 -0
- package/dist/ground-initialization.js.map +1 -0
- package/dist/ground-install-saves.d.ts +63 -0
- package/dist/ground-install-saves.js +139 -0
- package/dist/ground-install-saves.js.map +1 -0
- package/dist/ground-inventory-schema.d.ts +18 -0
- package/dist/ground-inventory-schema.js +168 -0
- package/dist/ground-inventory-schema.js.map +1 -0
- package/dist/ground-profile.d.ts +7 -0
- package/dist/ground-profile.js +52 -0
- package/dist/ground-profile.js.map +1 -0
- package/dist/ground-root-index.d.ts +2 -1
- package/dist/ground-root-index.js +16 -14
- package/dist/ground-root-index.js.map +1 -1
- package/dist/ground-row.d.ts +62 -0
- package/dist/ground-row.js +70 -0
- package/dist/ground-row.js.map +1 -0
- package/dist/ground-save-ops.d.ts +44 -0
- package/dist/ground-save-ops.js +41 -0
- package/dist/ground-save-ops.js.map +1 -0
- package/dist/ground-saver-worker.d.ts +1 -0
- package/dist/ground-saver-worker.js +156 -0
- package/dist/ground-saver-worker.js.map +1 -0
- package/dist/ground-saver.d.ts +75 -0
- package/dist/ground-saver.js +216 -0
- package/dist/ground-saver.js.map +1 -0
- package/dist/ground-store.d.ts +84 -0
- package/dist/ground-store.js +473 -0
- package/dist/ground-store.js.map +1 -0
- package/dist/ground-territory.d.ts +130 -0
- package/dist/ground-territory.js +511 -0
- package/dist/ground-territory.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installation/ownership.d.ts +0 -2
- package/dist/installation/ownership.js +3 -15
- package/dist/installation/ownership.js.map +1 -1
- package/dist/machine-host.d.ts +3 -2
- package/dist/machine-host.js +28 -16
- package/dist/machine-host.js.map +1 -1
- package/dist/materialized-graph.d.ts +7 -7
- package/dist/materialized-graph.js +11 -23
- package/dist/materialized-graph.js.map +1 -1
- package/dist/module-thread.d.ts +9 -0
- package/dist/module-thread.js +10 -0
- package/dist/module-thread.js.map +1 -0
- package/dist/native/fsevents-stream.node +0 -0
- package/dist/physical-path-witness.d.ts +64 -0
- package/dist/physical-path-witness.js +168 -0
- package/dist/physical-path-witness.js.map +1 -0
- package/dist/register-upload-fusion.d.ts +5 -4
- package/dist/register-upload-fusion.js +9 -6
- package/dist/register-upload-fusion.js.map +1 -1
- package/dist/registry-graph.d.ts +3 -2
- package/dist/registry-graph.js +9 -6
- package/dist/registry-graph.js.map +1 -1
- package/dist/registry-page-cache.d.ts +5 -2
- package/dist/registry-page-cache.js.map +1 -1
- package/dist/repository-identity-steps.d.ts +5 -0
- package/dist/repository-identity-steps.js +33 -0
- package/dist/repository-identity-steps.js.map +1 -0
- package/dist/runtime-node-flags.d.ts +10 -0
- package/dist/runtime-node-flags.js +11 -0
- package/dist/runtime-node-flags.js.map +1 -0
- package/dist/service/adapter.d.ts +1 -1
- package/dist/service/adapter.js +1 -1
- package/dist/service/adapter.js.map +1 -1
- package/dist/service/cli.js +16 -20
- package/dist/service/cli.js.map +1 -1
- package/dist/service/control.d.ts +2 -2
- package/dist/service/keepalive.d.ts +4 -11
- package/dist/service/keepalive.js +65 -118
- package/dist/service/keepalive.js.map +1 -1
- package/dist/service/policy.d.ts +36 -0
- package/dist/service/policy.js +25 -0
- package/dist/service/policy.js.map +1 -0
- package/dist/service/portable.d.ts +1 -1
- package/dist/service/portable.js +1 -1
- package/dist/service/portable.js.map +1 -1
- package/dist/service/recovery.d.ts +10 -9
- package/dist/service/recovery.js +29 -19
- package/dist/service/recovery.js.map +1 -1
- package/dist/service/windows-action.d.ts +5 -3
- package/dist/service/windows-action.js +6 -9
- package/dist/service/windows-action.js.map +1 -1
- package/dist/service/windows-task.js +5 -5
- package/dist/service/windows-task.js.map +1 -1
- package/dist/sharing-admission.d.ts +17 -0
- package/dist/sharing-admission.js +128 -0
- package/dist/sharing-admission.js.map +1 -0
- package/dist/snapshot-delivery-baseline.d.ts +12 -3
- package/dist/snapshot-delivery-baseline.js +41 -42
- package/dist/snapshot-delivery-baseline.js.map +1 -1
- package/dist/source-proof.d.ts +36 -0
- package/dist/source-proof.js +70 -0
- package/dist/source-proof.js.map +1 -0
- package/dist/source-signature.d.ts +56 -0
- package/dist/source-signature.js +56 -0
- package/dist/source-signature.js.map +1 -0
- package/dist/source-witness.d.ts +15 -0
- package/dist/source-witness.js +29 -0
- package/dist/source-witness.js.map +1 -0
- package/dist/sqlite-durability.d.ts +31 -0
- package/dist/sqlite-durability.js +28 -0
- package/dist/sqlite-durability.js.map +1 -0
- package/dist/sqlite.d.ts +8 -2
- package/dist/sqlite.js +27 -4
- package/dist/sqlite.js.map +1 -1
- package/dist/sync-address.d.ts +19 -0
- package/dist/sync-address.js +52 -0
- package/dist/sync-address.js.map +1 -0
- package/dist/sync-setting.d.ts +15 -0
- package/dist/sync-setting.js +13 -0
- package/dist/sync-setting.js.map +1 -1
- package/dist/turns.d.ts +42 -0
- package/dist/turns.js +112 -0
- package/dist/turns.js.map +1 -0
- package/dist/updates/bootstrap.d.ts +53 -7
- package/dist/updates/bootstrap.js +224 -137
- package/dist/updates/bootstrap.js.map +1 -1
- package/dist/updates/controller.d.ts +8 -0
- package/dist/updates/controller.js +27 -3
- package/dist/updates/controller.js.map +1 -1
- package/dist/updates/store.d.ts +3 -0
- package/dist/updates/store.js +12 -0
- package/dist/updates/store.js.map +1 -1
- package/dist/user-ground-host.d.ts +364 -69
- package/dist/user-ground-host.js +5231 -3366
- package/dist/user-ground-host.js.map +1 -1
- package/dist/watching/fsevents.d.ts +52 -1
- package/dist/watching/fsevents.js +60 -25
- package/dist/watching/fsevents.js.map +1 -1
- package/dist/watching/host.d.ts +129 -5
- package/dist/watching/host.js +433 -80
- package/dist/watching/host.js.map +1 -1
- package/dist/watching/index.d.ts +1 -1
- package/dist/wire-binary.d.ts +3 -2
- package/dist/wire-binary.js +10 -8
- package/dist/wire-binary.js.map +1 -1
- package/dist/wire-client.d.ts +3 -4
- package/dist/wire-client.js +18 -44
- package/dist/wire-client.js.map +1 -1
- package/dist/wire-outbox.d.ts +34 -0
- package/dist/wire-outbox.js +127 -0
- package/dist/wire-outbox.js.map +1 -0
- package/dist/workspace-host.d.ts +4 -0
- package/dist/workspace-host.js +12 -1
- package/dist/workspace-host.js.map +1 -1
- package/examinations/fixtures/private-wire-authority.js +133 -10
- package/npm-shrinkwrap.json +43 -56
- package/package.json +26 -13
|
@@ -5,9 +5,95 @@
|
|
|
5
5
|
* cones it touches. Two effects conflict only when one cone contains the
|
|
6
6
|
* other; unrelated cones proceed concurrently. Conflicting effects are served
|
|
7
7
|
* in request order, so a stream of small effects can never starve an earlier
|
|
8
|
-
* large one, and a
|
|
8
|
+
* large one, and a cancelled waiter leaves the queue instead of poisoning it.
|
|
9
|
+
*
|
|
10
|
+
* Detect collects without holding cones. A lease opens only when no
|
|
11
|
+
* conflicting effect is held: the check and the open are one step, and a
|
|
12
|
+
* collection that finds ground held waits, holding nothing, for its release.
|
|
13
|
+
* The lease then records whether any conflicting effect was granted before
|
|
14
|
+
* admission; admission accepts only an uncrossed lease, checked synchronously
|
|
15
|
+
* inside the admitting transaction. Every grant follows an await, so no
|
|
16
|
+
* effect can begin between that check and commit.
|
|
17
|
+
*
|
|
18
|
+
* A collection that learns it read ground outside its cones (Git storage a
|
|
19
|
+
* checkout keeps elsewhere) fails its lease and retries; the coordinator
|
|
20
|
+
* remembers that extent for the cones that needed it, so the next lease of
|
|
21
|
+
* them names it from the start.
|
|
22
|
+
*
|
|
23
|
+
* A file changed in place (Git appends to a reflog, and may chmod it) is
|
|
24
|
+
* reachable through every other link to it, and those links lie outside the
|
|
25
|
+
* effect's cones. Such an effect declares the physical keys it may change;
|
|
26
|
+
* a collection records the physical key of every regular file it read, since
|
|
27
|
+
* a link to it may appear while it reads. A lease is crossed when an effect
|
|
28
|
+
* held at any time since it opened declared a key it read.
|
|
29
|
+
* Holds order cone conflicts only: this class is detected, not queued.
|
|
30
|
+
*
|
|
31
|
+
* A lease also keeps every effect held at any time while it is open, so one
|
|
32
|
+
* collection can admit in independent units. An effect at cone C may change
|
|
33
|
+
* anything at or under C and the entry list of C's parent, nothing else
|
|
34
|
+
* except its declared in-place keys. A unit is crossed only when one of those
|
|
35
|
+
* meets what the unit read; sibling churn does not cross a route through
|
|
36
|
+
* their shared parent.
|
|
9
37
|
*/
|
|
10
|
-
import {
|
|
38
|
+
import { channel } from "node:diagnostics_channel";
|
|
39
|
+
import { dirname, resolve, sep } from "node:path";
|
|
40
|
+
import { DetectionBasisAdvancedError } from "./detection/basis-advanced.js";
|
|
41
|
+
/** Examiners hear each wait on held ground, once as it begins and once as it
|
|
42
|
+
* ends, labelled with the waiting lane: a Detect lane or an effect's owner.
|
|
43
|
+
* Opening at once is no wait. */
|
|
44
|
+
const groundWaits = channel("amalgm:ground-wait");
|
|
45
|
+
let waitIds = 0;
|
|
46
|
+
const waiting = (lane) => {
|
|
47
|
+
if (!groundWaits.hasSubscribers)
|
|
48
|
+
return () => { };
|
|
49
|
+
const id = ++waitIds;
|
|
50
|
+
groundWaits.publish({ id, lane, waiting: true, at: performance.now() });
|
|
51
|
+
return () => { groundWaits.publish({ id, lane, waiting: false, at: performance.now() }); };
|
|
52
|
+
};
|
|
53
|
+
/** Settles with `wait`, or rejects when the signal aborts first. */
|
|
54
|
+
const abortable = (wait, signal) => new Promise((resolveWait, rejectAborted) => {
|
|
55
|
+
const aborted = () => rejectAborted(signal.reason);
|
|
56
|
+
signal.addEventListener("abort", aborted, { once: true });
|
|
57
|
+
void wait.then(() => {
|
|
58
|
+
signal.removeEventListener("abort", aborted);
|
|
59
|
+
resolveWait();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
/** Keys read on this thread. */
|
|
63
|
+
export class PhysicalKeySet {
|
|
64
|
+
#keys;
|
|
65
|
+
constructor(keys) { this.#keys = new Set(keys); }
|
|
66
|
+
has(key) { return this.#keys.has(key); }
|
|
67
|
+
}
|
|
68
|
+
/** One key's exact (device, inode) as the 64-bit patterns a BigInt64Array
|
|
69
|
+
* stores, whichever sign the key was written with. */
|
|
70
|
+
const physicalPair = (key) => {
|
|
71
|
+
const separator = key.indexOf(":");
|
|
72
|
+
return [BigInt.asIntN(64, BigInt(key.slice(0, separator))), BigInt.asIntN(64, BigInt(key.slice(separator + 1)))];
|
|
73
|
+
};
|
|
74
|
+
/** Appends a key's exact (device, inode) pair. */
|
|
75
|
+
export function pushPhysicalPair(pairs, key) {
|
|
76
|
+
pairs.push(...physicalPair(key));
|
|
77
|
+
}
|
|
78
|
+
/** A content thread's reads cross back as one buffer of exact (device,
|
|
79
|
+
* inode) pairs, never as a key per file. Asked only for a declared key. */
|
|
80
|
+
export class PhysicalKeyPairs {
|
|
81
|
+
pairs;
|
|
82
|
+
constructor(pairs) {
|
|
83
|
+
this.pairs = pairs;
|
|
84
|
+
}
|
|
85
|
+
has(key) {
|
|
86
|
+
if (this.pairs.length === 0)
|
|
87
|
+
return false;
|
|
88
|
+
const [device, inode] = physicalPair(key);
|
|
89
|
+
for (let index = 0; index < this.pairs.length; index += 2) {
|
|
90
|
+
if (this.pairs[index] === device && this.pairs[index + 1] === inode)
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const nothingInPlace = new Set();
|
|
11
97
|
const normalizeCone = (cone) => {
|
|
12
98
|
const normalized = resolve(cone);
|
|
13
99
|
return normalized.endsWith(sep) ? normalized : `${normalized}${sep}`;
|
|
@@ -18,8 +104,160 @@ export function conesConflict(left, right) {
|
|
|
18
104
|
const b = normalizeCone(right);
|
|
19
105
|
return a === b || a.startsWith(b) || b.startsWith(a);
|
|
20
106
|
}
|
|
107
|
+
/** The effect interval belongs to the admission basis. */
|
|
108
|
+
export class GroundEffectCrossedError extends DetectionBasisAdvancedError {
|
|
109
|
+
constructor() { super("a ground effect crossed this Detect collection; retrying fresh truth"); }
|
|
110
|
+
}
|
|
111
|
+
/** The collection read ground its lease never covered; retry under a lease
|
|
112
|
+
* that names it. */
|
|
113
|
+
export class GroundFootprintExceededError extends DetectionBasisAdvancedError {
|
|
114
|
+
addresses;
|
|
115
|
+
constructor(addresses) {
|
|
116
|
+
super(`Detect read ground outside its lease (${addresses.join(", ")}); retrying under the wider footprint`);
|
|
117
|
+
this.addresses = addresses;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const leaseState = (cones) => ({ cones, crossed: false, read: [], changed: new Set(), effects: [] });
|
|
121
|
+
/** Normalized addresses end in the separator, so containment is a prefix. */
|
|
122
|
+
const under = (address, cone) => address.startsWith(cone);
|
|
123
|
+
function crossesReads(effects, reads) {
|
|
124
|
+
if (effects.length === 0)
|
|
125
|
+
return false;
|
|
126
|
+
const entries = [...reads.entries ?? []].map(normalizeCone);
|
|
127
|
+
const routes = [...reads.routes ?? []].map(normalizeCone);
|
|
128
|
+
const markers = routes.map((route) => `${route}.git${sep}`);
|
|
129
|
+
const namespaces = new Set([...reads.namespaces ?? []].map(normalizeCone));
|
|
130
|
+
const physical = reads.physical;
|
|
131
|
+
const declaredRead = (effect) => {
|
|
132
|
+
if (physical)
|
|
133
|
+
for (const key of effect.inPlace)
|
|
134
|
+
if (physical.has(key))
|
|
135
|
+
return true;
|
|
136
|
+
return false;
|
|
137
|
+
};
|
|
138
|
+
return effects.some((effect) => declaredRead(effect)
|
|
139
|
+
|| effect.cones.some((cone) => {
|
|
140
|
+
if (entries.some((entry) => under(entry, cone) || under(cone, entry)))
|
|
141
|
+
return true;
|
|
142
|
+
if (routes.some((route) => under(route, cone)))
|
|
143
|
+
return true;
|
|
144
|
+
if (markers.some((marker) => under(marker, cone) || under(cone, marker)))
|
|
145
|
+
return true;
|
|
146
|
+
if (namespaces.has(normalizeCone(dirname(cone))))
|
|
147
|
+
return true;
|
|
148
|
+
for (const namespace of namespaces)
|
|
149
|
+
if (under(namespace, cone))
|
|
150
|
+
return true;
|
|
151
|
+
return false;
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
const crosses = (lease, ticket) => ticket.cones.some((held) => lease.cones.some((read) => conesConflict(held, read)));
|
|
155
|
+
const ticketsConflict = (left, right) => left.cones.some((held) => right.cones.some((wanted) => conesConflict(held, wanted)));
|
|
21
156
|
export class GroundCoordinator {
|
|
22
157
|
#queue = [];
|
|
158
|
+
#held = new Set();
|
|
159
|
+
#leases = new Set();
|
|
160
|
+
/** Requested cone -> ground collections of it were found to read. Only
|
|
161
|
+
* widens later leases; a stale extent costs concurrency, never truth. */
|
|
162
|
+
#extents = new Map();
|
|
163
|
+
#footprint(cones) {
|
|
164
|
+
const requested = cones.map(normalizeCone);
|
|
165
|
+
return [...new Set([...requested, ...requested.flatMap((cone) => [...this.#extents.get(cone) ?? []])])];
|
|
166
|
+
}
|
|
167
|
+
/** Open a lease now when no conflicting effect is held; otherwise null.
|
|
168
|
+
* The check and the open are one step. */
|
|
169
|
+
tryLease(cones) {
|
|
170
|
+
const state = leaseState(this.#footprint(cones));
|
|
171
|
+
if ([...this.#held].some((ticket) => crosses(state, ticket)))
|
|
172
|
+
return null;
|
|
173
|
+
return this.#open(cones, state);
|
|
174
|
+
}
|
|
175
|
+
#open(cones, state) {
|
|
176
|
+
this.#leases.add(state);
|
|
177
|
+
for (const ticket of this.#held) {
|
|
178
|
+
state.effects.push(ticket);
|
|
179
|
+
for (const key of ticket.inPlace)
|
|
180
|
+
state.changed.add(key);
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
assertUncrossed: () => { if (state.crossed)
|
|
184
|
+
throw new GroundEffectCrossedError(); },
|
|
185
|
+
crosses: (reads) => crossesReads(state.effects, reads),
|
|
186
|
+
require: (addresses) => {
|
|
187
|
+
const outside = addresses.map(normalizeCone).filter((address) => !state.cones.some((cone) => address.startsWith(cone)));
|
|
188
|
+
if (outside.length === 0)
|
|
189
|
+
return;
|
|
190
|
+
for (const cone of cones.map(normalizeCone)) {
|
|
191
|
+
const extent = this.#extents.get(cone) ?? new Set();
|
|
192
|
+
for (const address of outside)
|
|
193
|
+
extent.add(address);
|
|
194
|
+
this.#extents.set(cone, extent);
|
|
195
|
+
}
|
|
196
|
+
throw new GroundFootprintExceededError(outside);
|
|
197
|
+
},
|
|
198
|
+
physical: (reads) => {
|
|
199
|
+
state.read.push(reads);
|
|
200
|
+
for (const key of state.changed)
|
|
201
|
+
if (reads.has(key))
|
|
202
|
+
state.crossed = true;
|
|
203
|
+
},
|
|
204
|
+
close: () => { this.#leases.delete(state); },
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/** The conflicting effects held now. */
|
|
208
|
+
#holding(cones) {
|
|
209
|
+
const state = leaseState(this.#footprint(cones));
|
|
210
|
+
return [...this.#held].filter((ticket) => crosses(state, ticket));
|
|
211
|
+
}
|
|
212
|
+
/** Whether an effect conflicting with these cones is held now. */
|
|
213
|
+
holds(cones) {
|
|
214
|
+
return this.#holding(cones).length > 0;
|
|
215
|
+
}
|
|
216
|
+
/** Settles once every conflicting effect held now has released. Waiting
|
|
217
|
+
* holds nothing. */
|
|
218
|
+
released(cones, lane) {
|
|
219
|
+
const holding = this.#holding(cones);
|
|
220
|
+
if (holding.length === 0)
|
|
221
|
+
return Promise.resolve();
|
|
222
|
+
const done = waiting(lane);
|
|
223
|
+
return Promise.all(holding.map((ticket) => ticket.settled)).then(done);
|
|
224
|
+
}
|
|
225
|
+
/** Open a lease once no conflicting effect is held. */
|
|
226
|
+
async lease(cones, lane, signal) {
|
|
227
|
+
signal.throwIfAborted();
|
|
228
|
+
const opened = this.tryLease(cones);
|
|
229
|
+
if (opened)
|
|
230
|
+
return opened;
|
|
231
|
+
const done = waiting(lane);
|
|
232
|
+
try {
|
|
233
|
+
for (;;) {
|
|
234
|
+
await abortable(Promise.all(this.#holding(cones).map((ticket) => ticket.settled)), signal);
|
|
235
|
+
signal.throwIfAborted();
|
|
236
|
+
const next = this.tryLease(cones);
|
|
237
|
+
if (next)
|
|
238
|
+
return next;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
done();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
#grant(ticket, release, inPlace) {
|
|
246
|
+
if (inPlace)
|
|
247
|
+
ticket.inPlace = new Set(inPlace());
|
|
248
|
+
this.#held.add(ticket);
|
|
249
|
+
for (const lease of this.#leases) {
|
|
250
|
+
lease.effects.push(ticket);
|
|
251
|
+
if (crosses(lease, ticket))
|
|
252
|
+
lease.crossed = true;
|
|
253
|
+
for (const key of ticket.inPlace) {
|
|
254
|
+
lease.changed.add(key);
|
|
255
|
+
if (lease.read.some((reads) => reads.has(key)))
|
|
256
|
+
lease.crossed = true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return () => { this.#held.delete(ticket); release(); };
|
|
260
|
+
}
|
|
23
261
|
/** Cones currently held or awaited, oldest first. Diagnostics only. */
|
|
24
262
|
get pending() {
|
|
25
263
|
return this.#queue.map((ticket) => ticket.cones);
|
|
@@ -32,16 +270,13 @@ export class GroundCoordinator {
|
|
|
32
270
|
async acquire(cones, options = {}) {
|
|
33
271
|
if (cones.length === 0)
|
|
34
272
|
return () => { };
|
|
35
|
-
|
|
36
|
-
if (timeoutMs !== undefined && (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1)) {
|
|
37
|
-
throw new Error("ground-effect wait timeout must be a positive integer");
|
|
38
|
-
}
|
|
273
|
+
options.signal?.throwIfAborted();
|
|
39
274
|
let release;
|
|
40
275
|
const settled = new Promise((resolveSettled) => {
|
|
41
276
|
release = resolveSettled;
|
|
42
277
|
});
|
|
43
|
-
const ticket = { cones: cones.map(normalizeCone), settled, release };
|
|
44
|
-
const predecessors = this.#queue.filter((earlier) => earlier
|
|
278
|
+
const ticket = { cones: cones.map(normalizeCone), settled, release, inPlace: nothingInPlace };
|
|
279
|
+
const predecessors = this.#queue.filter((earlier) => ticketsConflict(earlier, ticket));
|
|
45
280
|
this.#queue.push(ticket);
|
|
46
281
|
let released = false;
|
|
47
282
|
const releaseOnce = () => {
|
|
@@ -53,30 +288,20 @@ export class GroundCoordinator {
|
|
|
53
288
|
this.#queue.splice(index, 1);
|
|
54
289
|
ticket.release();
|
|
55
290
|
};
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
await wait;
|
|
59
|
-
return releaseOnce;
|
|
60
|
-
}
|
|
61
|
-
let timer = null;
|
|
291
|
+
const turn = Promise.all(predecessors.map((earlier) => earlier.settled));
|
|
292
|
+
const done = predecessors.length > 0 ? waiting(options.lane ?? "effect") : () => { };
|
|
62
293
|
try {
|
|
63
|
-
await
|
|
64
|
-
|
|
65
|
-
new Promise((_resolve, reject) => {
|
|
66
|
-
timer = setTimeout(() => reject(new Error(`ground-effect wait exceeded ${timeoutMs}ms`)), timeoutMs);
|
|
67
|
-
}),
|
|
68
|
-
]);
|
|
69
|
-
return releaseOnce;
|
|
294
|
+
await (options.signal ? abortable(turn, options.signal) : turn);
|
|
295
|
+
return this.#grant(ticket, releaseOnce, options.inPlace);
|
|
70
296
|
}
|
|
71
297
|
catch (error) {
|
|
72
|
-
// A
|
|
298
|
+
// A cancelled waiter never held the cones. Leave the queue now so no
|
|
73
299
|
// later effect waits on a slot that will never be used.
|
|
74
300
|
releaseOnce();
|
|
75
301
|
throw error;
|
|
76
302
|
}
|
|
77
303
|
finally {
|
|
78
|
-
|
|
79
|
-
clearTimeout(timer);
|
|
304
|
+
done();
|
|
80
305
|
}
|
|
81
306
|
}
|
|
82
307
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ground-coordination.js","sourceRoot":"","sources":["../src/ground-coordination.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ground-coordination.js","sourceRoot":"","sources":["../src/ground-coordination.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The user ground database: its schema and migration, its opener, and the
|
|
3
|
+
* one read-only main-thread connection every Detect, Record and ground read
|
|
4
|
+
* shares for the life of its binding. Migration runs only on the bootstrap thread
|
|
5
|
+
* (ground-initialization.ts); every opener requires its completed result.
|
|
6
|
+
*
|
|
7
|
+
* The qualified performance profile gathers no planner statistics: nothing
|
|
8
|
+
* here runs ANALYZE or an optimizing maintenance call. That is a performance
|
|
9
|
+
* policy, not a data law: statistics already present are kept and read the
|
|
10
|
+
* same visible rows, and gathering them needs its own qualification.
|
|
11
|
+
*/
|
|
12
|
+
import type Database from "better-sqlite3";
|
|
13
|
+
import { type GroundMigration } from "./ground-initialization.js";
|
|
14
|
+
/** The durability policy of the file's two writers, the migration and the
|
|
15
|
+
* saver thread, applied before their first write.
|
|
16
|
+
* A commit pays only for its own frames. No commit checkpoints: moving the
|
|
17
|
+
* log into the database flushes the drive, and the committing thread would
|
|
18
|
+
* wait for it. The file's checkpoint thread does that work
|
|
19
|
+
* (ground-checkpoints.ts). No commit resizes the log either: cutting the file
|
|
20
|
+
* back frees everything earlier commits wrote, which one commit would wait
|
|
21
|
+
* for. A restarted log reuses the space it grew to until the checkpoint
|
|
22
|
+
* thread finds it quiet and cuts it back, or a writer closes with no other
|
|
23
|
+
* connection open. */
|
|
24
|
+
export declare function configureGroundConnection(database: Database.Database): Database.Database;
|
|
25
|
+
/** The one migration, and the process's ground epoch after it, on the
|
|
26
|
+
* migrating thread's own connection. Only the initialization owner calls it,
|
|
27
|
+
* once per file per process, while no other connection is open. */
|
|
28
|
+
export declare function migrateGroundDatabase(file: string): GroundMigration;
|
|
29
|
+
/** Every ordinary connection to an initialized ground file, named as every
|
|
30
|
+
* connection names it (databaseFileName). Each one only reads: the file's
|
|
31
|
+
* saver thread (ground-saver.ts) makes every write, so no read ever waits
|
|
32
|
+
* behind a commit on its own thread. None checkpoints, so the first one starts the file's
|
|
33
|
+
* checkpoint thread and its saver thread. */
|
|
34
|
+
export declare function openGroundConnection(file: string): Database.Database;
|
|
35
|
+
export declare function groundDatabase(file: string): Database.Database;
|
|
36
|
+
/** Every other owner has closed by now: each content thread lets its read
|
|
37
|
+
* connection go after the job it is running, the saver finishes its queue,
|
|
38
|
+
* and the checkpoint thread's own connection closes last and makes the final
|
|
39
|
+
* checkpoint there. Released means no thread of this process holds the file:
|
|
40
|
+
* the final checkpoint is part of closing, and Windows refuses to remove a
|
|
41
|
+
* file any handle still has open. */
|
|
42
|
+
export declare function releaseGroundDatabase(file: string): Promise<void>;
|