@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
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One socket's outgoing messages, whole and in order. A message leaves as
|
|
3
|
+
* WebSocket fragments of at most WIRE_FRAGMENT_BYTES with a turn boundary
|
|
4
|
+
* (turns.ts) between them, so no send's framing, masking or encryption holds
|
|
5
|
+
* the main thread, and no other message lands between one message's
|
|
6
|
+
* fragments. The receiver joins the fragments back into the one message.
|
|
7
|
+
*
|
|
8
|
+
* One multiplexed socket carries every frame, so an unbounded queue would
|
|
9
|
+
* delay pongs and replies behind bulk cargo, and a slow uplink would be cut
|
|
10
|
+
* by the gateway's own heartbeat. Each fragment therefore waits until the
|
|
11
|
+
* socket holds at most MAX_QUEUED_WIRE_BYTES, so the socket never holds more
|
|
12
|
+
* than that allowance and one fragment, and a prompt frame (a pong, hello or
|
|
13
|
+
* reply) leaves before every waiting request, though never inside a message
|
|
14
|
+
* already begun.
|
|
15
|
+
*/
|
|
16
|
+
import { turnBoundary } from "./turns.js";
|
|
17
|
+
/** One fragment's framing and masking stays far inside a turn's budget. */
|
|
18
|
+
export const WIRE_FRAGMENT_BYTES = 64 * 1024;
|
|
19
|
+
const MAX_QUEUED_WIRE_BYTES = 4 * 1024 * 1024;
|
|
20
|
+
const QUEUE_POLL_MS = 20;
|
|
21
|
+
const OPEN = 1;
|
|
22
|
+
/** A prompt frame's failure is its socket's own close. */
|
|
23
|
+
const unobserved = () => { };
|
|
24
|
+
/** A message's fragments, each part cut to the bound without joining parts. */
|
|
25
|
+
function* fragments(parts) {
|
|
26
|
+
let any = false;
|
|
27
|
+
for (const part of parts) {
|
|
28
|
+
// A string's UTF-8 form is at most three bytes per UTF-16 unit.
|
|
29
|
+
if (typeof part === "string" && part.length * 3 <= WIRE_FRAGMENT_BYTES) {
|
|
30
|
+
if (part.length) {
|
|
31
|
+
any = true;
|
|
32
|
+
yield part;
|
|
33
|
+
}
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const bytes = typeof part === "string" ? Buffer.from(part, "utf8") : part;
|
|
37
|
+
for (let offset = 0; offset < bytes.byteLength; offset += WIRE_FRAGMENT_BYTES) {
|
|
38
|
+
any = true;
|
|
39
|
+
yield bytes.subarray(offset, offset + WIRE_FRAGMENT_BYTES);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (!any)
|
|
43
|
+
yield Buffer.alloc(0);
|
|
44
|
+
}
|
|
45
|
+
export class WireOutbox {
|
|
46
|
+
#socket;
|
|
47
|
+
#prompt = [];
|
|
48
|
+
#requests = [];
|
|
49
|
+
#closed = null;
|
|
50
|
+
#sending = false;
|
|
51
|
+
constructor(socket) {
|
|
52
|
+
this.#socket = socket;
|
|
53
|
+
}
|
|
54
|
+
/** Queue one request behind every earlier one. A signal aborted before the
|
|
55
|
+
* message's first fragment drops it; once begun, a message always ends, or
|
|
56
|
+
* the stream would carry half of it. */
|
|
57
|
+
send(parts, binary, sent, signal) {
|
|
58
|
+
this.#queue(this.#requests, { parts, binary, sent, signal });
|
|
59
|
+
}
|
|
60
|
+
/** Queue one small text frame the gateway is waiting on ahead of every
|
|
61
|
+
* waiting request, behind only earlier prompt frames. */
|
|
62
|
+
prompt(frame) {
|
|
63
|
+
this.#queue(this.#prompt, { parts: [frame], binary: false, sent: unobserved, signal: undefined });
|
|
64
|
+
}
|
|
65
|
+
/** The socket is gone: every waiting message fails with its reason. */
|
|
66
|
+
close(error) {
|
|
67
|
+
this.#closed ??= error;
|
|
68
|
+
for (const message of [...this.#prompt.splice(0), ...this.#requests.splice(0)])
|
|
69
|
+
message.sent(error);
|
|
70
|
+
}
|
|
71
|
+
#queue(lane, message) {
|
|
72
|
+
if (this.#closed) {
|
|
73
|
+
message.sent(this.#closed);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
lane.push(message);
|
|
77
|
+
if (!this.#sending)
|
|
78
|
+
void this.#drain();
|
|
79
|
+
}
|
|
80
|
+
async #drain() {
|
|
81
|
+
this.#sending = true;
|
|
82
|
+
try {
|
|
83
|
+
for (;;) {
|
|
84
|
+
const message = this.#closed ? undefined : this.#prompt.shift() ?? this.#requests.shift();
|
|
85
|
+
if (!message)
|
|
86
|
+
return;
|
|
87
|
+
try {
|
|
88
|
+
await this.#transmit(message);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
message.sent(error instanceof Error ? error : new Error(String(error)));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
this.#sending = false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async #transmit({ parts, binary, sent, signal }) {
|
|
100
|
+
const cut = fragments(parts);
|
|
101
|
+
let fragment = cut.next();
|
|
102
|
+
await this.#room(signal);
|
|
103
|
+
for (;;) {
|
|
104
|
+
// The next fragment is known before this one leaves, so the last carries fin.
|
|
105
|
+
const next = cut.next();
|
|
106
|
+
this.#socket.send(fragment.value, { binary, fin: next.done === true }, next.done ? sent : undefined);
|
|
107
|
+
if (next.done)
|
|
108
|
+
return;
|
|
109
|
+
fragment = next;
|
|
110
|
+
await turnBoundary();
|
|
111
|
+
await this.#room(undefined);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async #room(signal) {
|
|
115
|
+
for (;;) {
|
|
116
|
+
signal?.throwIfAborted();
|
|
117
|
+
if (this.#closed)
|
|
118
|
+
throw this.#closed;
|
|
119
|
+
if (this.#socket.readyState !== OPEN)
|
|
120
|
+
throw new Error("wire is not open");
|
|
121
|
+
if (this.#socket.bufferedAmount <= MAX_QUEUED_WIRE_BYTES)
|
|
122
|
+
return;
|
|
123
|
+
await new Promise((resolve) => setTimeout(resolve, QUEUE_POLL_MS));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=wire-outbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire-outbox.js","sourceRoot":"","sources":["../src/wire-outbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,GAAG,CAAC,CAAC;AAMf,0DAA0D;AAC1D,MAAM,UAAU,GAAa,GAAG,EAAE,GAAE,CAAC,CAAC;AAStC,+EAA+E;AAC/E,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAuC;IACzD,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,gEAAgE;QAChE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,GAAG,GAAG,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC;YAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;YAC9E,GAAG,GAAG,IAAI,CAAC;YACX,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,UAAU;IACZ,OAAO,CAAY;IACnB,OAAO,GAAc,EAAE,CAAC;IACxB,SAAS,GAAc,EAAE,CAAC;IACnC,OAAO,GAAiB,IAAI,CAAC;IAC7B,QAAQ,GAAG,KAAK,CAAC;IAEjB,YAAY,MAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;4CAEwC;IACxC,IAAI,CAAC,KAAuC,EAAE,MAAe,EAAE,IAAc,EAAE,MAAoB;QACjG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;6DACyD;IACzD,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,KAAY;QAChB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,CAAC,IAAe,EAAE,OAAgB;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC1F,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAW;QACtD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzB,SAAS,CAAC;YACR,8EAA8E;YAC9E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtG,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO;YACtB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAA+B;QACzC,SAAS,CAAC;YACR,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC;YACrC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,qBAAqB;gBAAE,OAAO;YACjE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF"}
|
package/dist/workspace-host.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { WorkspaceRegistry } from "@amalgm/live/workspace";
|
|
2
2
|
import type { WorkspacePathPort } from "@amalgm/live/workspace";
|
|
3
3
|
import type { StateRail } from "@amalgm/core/state";
|
|
4
|
+
import type { WorkspaceScope } from "./agent-execution.js";
|
|
4
5
|
import type { BrickMount } from "./gateway.js";
|
|
5
6
|
/** Every runtime uses the same durable Live registry and Core UI projection. */
|
|
6
7
|
export declare function createWorkspaceHost(options: {
|
|
@@ -11,6 +12,9 @@ export declare function createWorkspaceHost(options: {
|
|
|
11
12
|
}): {
|
|
12
13
|
registry: WorkspaceRegistry;
|
|
13
14
|
mount: BrickMount;
|
|
15
|
+
scope: WorkspaceScope;
|
|
14
16
|
};
|
|
17
|
+
/** Each linked folder outside the root, with a group's folders listed one by one. */
|
|
18
|
+
export declare function registeredFolders(registry: WorkspaceRegistry, workspaceRoot: string): string[];
|
|
15
19
|
export declare const workspacePathHost: WorkspacePathPort;
|
|
16
20
|
export declare function workspaceMount(registry: WorkspaceRegistry, workspaceRoot: string): BrickMount;
|
package/dist/workspace-host.js
CHANGED
|
@@ -21,7 +21,18 @@ export function createWorkspaceHost(options) {
|
|
|
21
21
|
for (const resource of ["projects", "workspaces"]) {
|
|
22
22
|
options.state.registerResource(resource, { snapshotDefault: true, read: () => registry.list() });
|
|
23
23
|
}
|
|
24
|
-
return {
|
|
24
|
+
return {
|
|
25
|
+
registry,
|
|
26
|
+
mount: workspaceMount(registry, options.workspaceRoot),
|
|
27
|
+
scope: { root: options.workspaceRoot, folders: () => registeredFolders(registry, options.workspaceRoot) },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Each linked folder outside the root, with a group's folders listed one by one. */
|
|
31
|
+
export function registeredFolders(registry, workspaceRoot) {
|
|
32
|
+
const paths = registry.list().flatMap(entry => entry.kind === "group"
|
|
33
|
+
? entry.folders.map(folder => folder.path)
|
|
34
|
+
: [entry.path]);
|
|
35
|
+
return [...new Set(paths)].filter(path => !workspacePathHost.isWithin(workspaceRoot, path));
|
|
25
36
|
}
|
|
26
37
|
export const workspacePathHost = {
|
|
27
38
|
isAbsolute,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-host.js","sourceRoot":"","sources":["../src/workspace-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-host.js","sourceRoot":"","sources":["../src/workspace-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -187,8 +187,44 @@ export function createPrivateWireAuthority({
|
|
|
187
187
|
let contentFailureRetryable = contentPutFailureRetryable;
|
|
188
188
|
let rejectMutationSubmits = false;
|
|
189
189
|
let rejectEntityRecordSubmits = false;
|
|
190
|
+
let retryEntityRecordSubmits = false;
|
|
191
|
+
// Injected latency, off unless a test arms it: after durable acceptance and
|
|
192
|
+
// its doorbells, only the selected entity.record.ack waits; every other
|
|
193
|
+
// request and notification is still served. Times are epoch milliseconds.
|
|
194
|
+
let ackHoldPolicy = null;
|
|
195
|
+
const ackHolds = [];
|
|
196
|
+
const pendingAckReleases = new Set();
|
|
197
|
+
const epochNow = () => performance.timeOrigin + performance.now();
|
|
198
|
+
function holdAck(socket, ack, policy, evidence) {
|
|
199
|
+
const row = { ...evidence, policy, heldAt: epochNow(), releasedAt: null, releasedBy: null, heldMs: null, delivered: null };
|
|
200
|
+
ackHolds.push(row);
|
|
201
|
+
const release = (by) => {
|
|
202
|
+
if (row.releasedAt !== null) return;
|
|
203
|
+
clearTimeout(timer);
|
|
204
|
+
pendingAckReleases.delete(release);
|
|
205
|
+
row.releasedAt = epochNow();
|
|
206
|
+
row.releasedBy = by;
|
|
207
|
+
row.heldMs = row.releasedAt - row.heldAt;
|
|
208
|
+
row.delivered = socket.readyState === WebSocket.OPEN;
|
|
209
|
+
if (row.delivered) socket.send(ack);
|
|
210
|
+
};
|
|
211
|
+
const timer = setTimeout(() => release(policy.deadlineMs === undefined ? "delay" : "deadline"),
|
|
212
|
+
policy.deadlineMs ?? policy.delayMs);
|
|
213
|
+
timer.unref();
|
|
214
|
+
pendingAckReleases.add(release);
|
|
215
|
+
}
|
|
190
216
|
let remainingMutationSubmitFailures = 0;
|
|
191
217
|
let dropMutationAcks = 0;
|
|
218
|
+
// Examination holds on graph-head commits, off unless armed. A held submit
|
|
219
|
+
// parks before the authority reads it and replays, in arrival order, when
|
|
220
|
+
// released. A withheld acknowledgement is committed and never sent.
|
|
221
|
+
let holdGraphSubmits = false;
|
|
222
|
+
const heldGraphSubmits = [];
|
|
223
|
+
let withholdGraphAcks = false;
|
|
224
|
+
const withheldGraphAcks = [];
|
|
225
|
+
// Every answer to a mutation submit, in order: committed, duplicate, or
|
|
226
|
+
// the refusal code.
|
|
227
|
+
const graphAnswers = [];
|
|
192
228
|
const committedMutationAcks = new Map();
|
|
193
229
|
let deliverySequence = 0;
|
|
194
230
|
const entityRecords = [];
|
|
@@ -304,13 +340,20 @@ export function createPrivateWireAuthority({
|
|
|
304
340
|
entitySubscriptions.delete(socket);
|
|
305
341
|
grantWatchers.delete(socket);
|
|
306
342
|
});
|
|
307
|
-
|
|
343
|
+
const receive = (data, isBinary) => {
|
|
308
344
|
const frame = isBinary
|
|
309
345
|
? (() => {
|
|
310
346
|
const decoded = decodeBinaryFrame(data);
|
|
311
347
|
return { ...decoded.frame, data_bin: decoded.bytes };
|
|
312
348
|
})()
|
|
313
349
|
: JSON.parse(data.toString("utf8"));
|
|
350
|
+
if (holdGraphSubmits && frame.type === "shared.mutation.submit"
|
|
351
|
+
&& frame.envelope?.operationKind === GRAPH_HEAD_OPERATION_KIND) {
|
|
352
|
+
const { mutationId, deviceId, baseVersion, deliveryWatermark } = frame.envelope;
|
|
353
|
+
heldGraphSubmits.push({ mutationId, deviceId, baseVersion, deliveryWatermark, heldAt: epochNow(),
|
|
354
|
+
replay: () => receive(data, isBinary) });
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
314
357
|
if (frame.type === "private.entity-content.put"
|
|
315
358
|
|| frame.type === "private.entity-content.put-blocks"
|
|
316
359
|
|| frame.type === "private.entity-content.put-cargo") {
|
|
@@ -650,7 +693,10 @@ export function createPrivateWireAuthority({
|
|
|
650
693
|
expires_in_seconds: 300,
|
|
651
694
|
}));
|
|
652
695
|
} else if (frame.type === "shared.mutation.submit") {
|
|
696
|
+
const answer = (value) => graphAnswers.push({ mutationId: frame.envelope?.mutationId,
|
|
697
|
+
deviceId: frame.envelope?.deviceId, answer: value, version: current?.version ?? null, at: epochNow() });
|
|
653
698
|
if (rejectMutationSubmits) {
|
|
699
|
+
answer("shared_realtime_internal_error");
|
|
654
700
|
socket.send(JSON.stringify({
|
|
655
701
|
type: "shared.error",
|
|
656
702
|
request_id: frame.request_id,
|
|
@@ -663,6 +709,7 @@ export function createPrivateWireAuthority({
|
|
|
663
709
|
}
|
|
664
710
|
if (remainingMutationSubmitFailures > 0) {
|
|
665
711
|
remainingMutationSubmitFailures -= 1;
|
|
712
|
+
answer("shared_database_serialization_failure");
|
|
666
713
|
socket.send(JSON.stringify({
|
|
667
714
|
type: "shared.error",
|
|
668
715
|
request_id: frame.request_id,
|
|
@@ -685,6 +732,7 @@ export function createPrivateWireAuthority({
|
|
|
685
732
|
// instead of committing twice.
|
|
686
733
|
const committed = committedMutationAcks.get(envelope.mutationId);
|
|
687
734
|
if (committed) {
|
|
735
|
+
answer("duplicate");
|
|
688
736
|
socket.send(JSON.stringify({
|
|
689
737
|
...committed,
|
|
690
738
|
request_id: frame.request_id,
|
|
@@ -692,10 +740,25 @@ export function createPrivateWireAuthority({
|
|
|
692
740
|
}));
|
|
693
741
|
return;
|
|
694
742
|
}
|
|
695
|
-
assert.equal(envelope.baseVersion, current.version);
|
|
696
743
|
assert.equal(envelope.authorityEpoch, current.authorityEpoch);
|
|
697
|
-
|
|
698
|
-
|
|
744
|
+
// The production commit refuses a publication whose delivery prefix
|
|
745
|
+
// or graph head moved on, in that order; the gateway maps either
|
|
746
|
+
// refusal to its leading token, 400 and not retryable. The head
|
|
747
|
+
// comparison is the proposed strict CAS.
|
|
748
|
+
const moved = envelope.deliveryWatermark !== deliverySequence ? "entity_delivery_watermark_changed"
|
|
749
|
+
: envelope.baseVersion !== current.version ? "entity_graph_head_changed" : null;
|
|
750
|
+
if (moved) {
|
|
751
|
+
answer(moved);
|
|
752
|
+
socket.send(JSON.stringify({
|
|
753
|
+
type: "shared.error",
|
|
754
|
+
request_id: frame.request_id,
|
|
755
|
+
code: moved,
|
|
756
|
+
message: moved,
|
|
757
|
+
status: 400,
|
|
758
|
+
retryable: false,
|
|
759
|
+
}));
|
|
760
|
+
return;
|
|
761
|
+
}
|
|
699
762
|
graphMutations.push(envelope);
|
|
700
763
|
const base = Buffer.from(current.snapshotB64, "base64");
|
|
701
764
|
const baseIsHead = base.toString("utf8", 0, 128).includes(`"kind":"${GRAPH_HEAD_KIND}"`);
|
|
@@ -759,6 +822,11 @@ export function createPrivateWireAuthority({
|
|
|
759
822
|
duplicate: false,
|
|
760
823
|
};
|
|
761
824
|
committedMutationAcks.set(envelope.mutationId, ack);
|
|
825
|
+
answer("committed");
|
|
826
|
+
if (withholdGraphAcks && envelope.operationKind === GRAPH_HEAD_OPERATION_KIND) {
|
|
827
|
+
withheldGraphAcks.push(envelope.mutationId);
|
|
828
|
+
return;
|
|
829
|
+
}
|
|
762
830
|
if (dropMutationAcks > 0) {
|
|
763
831
|
// The commit landed; the acknowledgement is lost with the socket.
|
|
764
832
|
dropMutationAcks -= 1;
|
|
@@ -767,10 +835,12 @@ export function createPrivateWireAuthority({
|
|
|
767
835
|
}
|
|
768
836
|
socket.send(JSON.stringify(ack));
|
|
769
837
|
} else if (frame.type === "entity.record.submit") {
|
|
838
|
+
const receivedAt = epochNow();
|
|
770
839
|
if (rejectEntityRecordSubmits) {
|
|
771
840
|
socket.send(JSON.stringify({ type: 'shared.error', request_id: frame.request_id,
|
|
772
|
-
code: '
|
|
773
|
-
|
|
841
|
+
code: retryEntityRecordSubmits ? 'examination_acceptance_held' : 'entity_record_authority_not_found',
|
|
842
|
+
message: retryEntityRecordSubmits ? 'local examination holds acceptance before append' : 'no entity authority exists at that id',
|
|
843
|
+
status: retryEntityRecordSubmits ? 503 : 404, retryable: retryEntityRecordSubmits }));
|
|
774
844
|
return;
|
|
775
845
|
}
|
|
776
846
|
const submitted = decodeLocalEntityRecord(frame.record_json);
|
|
@@ -855,12 +925,26 @@ export function createPrivateWireAuthority({
|
|
|
855
925
|
}));
|
|
856
926
|
}
|
|
857
927
|
}
|
|
858
|
-
|
|
928
|
+
const ack = JSON.stringify({
|
|
859
929
|
type: "entity.record.ack",
|
|
860
930
|
request_id: frame.request_id,
|
|
861
931
|
record_json: encodeEntityRecord(decision.record),
|
|
862
932
|
duplicate: decision.kind === "duplicate",
|
|
863
|
-
})
|
|
933
|
+
});
|
|
934
|
+
const hold = decision.kind === "append" ? ackHoldPolicy : null;
|
|
935
|
+
if (hold === null) {
|
|
936
|
+
socket.send(ack);
|
|
937
|
+
return;
|
|
938
|
+
}
|
|
939
|
+
// A test-released hold selects exactly the next accepted record.
|
|
940
|
+
if (hold.deadlineMs !== undefined) ackHoldPolicy = null;
|
|
941
|
+
holdAck(socket, ack, hold, {
|
|
942
|
+
entityId: decision.record.entityId,
|
|
943
|
+
mutationId: decision.record.mutationId,
|
|
944
|
+
globalSequence: decision.record.globalSequence,
|
|
945
|
+
receivedAt,
|
|
946
|
+
acceptedAt: epochNow(),
|
|
947
|
+
});
|
|
864
948
|
} else if (frame.type === "entity.record.subscribe") {
|
|
865
949
|
entitySubscribeRequests += 1;
|
|
866
950
|
entitySubscriptions.get(socket).set(frame.authority_id, null);
|
|
@@ -931,7 +1015,8 @@ export function createPrivateWireAuthority({
|
|
|
931
1015
|
request_id: frame.request_id,
|
|
932
1016
|
}));
|
|
933
1017
|
}
|
|
934
|
-
}
|
|
1018
|
+
};
|
|
1019
|
+
socket.on("message", receive);
|
|
935
1020
|
});
|
|
936
1021
|
return {
|
|
937
1022
|
server,
|
|
@@ -988,7 +1073,26 @@ export function createPrivateWireAuthority({
|
|
|
988
1073
|
rejectMutationSubmits(reject) {
|
|
989
1074
|
rejectMutationSubmits = reject;
|
|
990
1075
|
},
|
|
991
|
-
rejectEntityRecordSubmits(reject
|
|
1076
|
+
rejectEntityRecordSubmits(reject, retryable = false) {
|
|
1077
|
+
rejectEntityRecordSubmits = reject;
|
|
1078
|
+
retryEntityRecordSubmits = retryable;
|
|
1079
|
+
},
|
|
1080
|
+
/** Injected latency for accepted records' acknowledgements: `{ delayMs }`
|
|
1081
|
+
* holds every one for that interval; `{ deadlineMs }` holds only the
|
|
1082
|
+
* next one until releaseEntityRecordAcks() or the deadline; null stops. */
|
|
1083
|
+
holdEntityRecordAcks(policy) {
|
|
1084
|
+
const positive = (value) => Number.isFinite(value) && value > 0;
|
|
1085
|
+
assert.ok(policy === null || (positive(policy.delayMs) !== positive(policy.deadlineMs)
|
|
1086
|
+
&& Object.keys(policy).length === 1), "hold policy is null, { delayMs } or { deadlineMs }");
|
|
1087
|
+
ackHoldPolicy = policy;
|
|
1088
|
+
},
|
|
1089
|
+
/** Release every held acknowledgement now; returns how many. */
|
|
1090
|
+
releaseEntityRecordAcks() {
|
|
1091
|
+
const releases = [...pendingAckReleases];
|
|
1092
|
+
for (const release of releases) release("controller");
|
|
1093
|
+
return releases.length;
|
|
1094
|
+
},
|
|
1095
|
+
get entityRecordAckHolds() { return ackHolds.map((row) => ({ ...row })); },
|
|
992
1096
|
interceptContentSealQueries(handler) {
|
|
993
1097
|
onContentSealQuery = handler;
|
|
994
1098
|
},
|
|
@@ -1124,6 +1228,25 @@ export function createPrivateWireAuthority({
|
|
|
1124
1228
|
},
|
|
1125
1229
|
get entitySubscribeRequests() { return entitySubscribeRequests; },
|
|
1126
1230
|
get graphMutations() { return [...graphMutations]; },
|
|
1231
|
+
/** Every mutation submit's answer, in order. */
|
|
1232
|
+
get graphCommitAnswers() { return graphAnswers.map((row) => ({ ...row })); },
|
|
1233
|
+
/** Park every graph-head submit until released. */
|
|
1234
|
+
holdGraphCommits() {
|
|
1235
|
+
holdGraphSubmits = true;
|
|
1236
|
+
},
|
|
1237
|
+
/** Stop holding and replay each parked submit in arrival order. */
|
|
1238
|
+
releaseGraphCommits() {
|
|
1239
|
+
holdGraphSubmits = false;
|
|
1240
|
+
const held = heldGraphSubmits.splice(0);
|
|
1241
|
+
for (const submit of held) submit.replay();
|
|
1242
|
+
return held.map(({ replay, ...submit }) => submit);
|
|
1243
|
+
},
|
|
1244
|
+
get heldGraphCommits() { return heldGraphSubmits.map(({ replay, ...submit }) => submit); },
|
|
1245
|
+
/** Commit graph heads but never send their acknowledgements while on. */
|
|
1246
|
+
withholdGraphAcks(withhold) {
|
|
1247
|
+
withholdGraphAcks = withhold;
|
|
1248
|
+
},
|
|
1249
|
+
get withheldGraphAcks() { return [...withheldGraphAcks]; },
|
|
1127
1250
|
/** Every record of the committed registry graph. A head commit names its
|
|
1128
1251
|
* roots as immutable pages, so this is what the authority actually holds
|
|
1129
1252
|
* after assembling them — the honest replacement for reading records out
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amalgm/shell",
|
|
3
|
-
"version": "0.1.164-preview.
|
|
3
|
+
"version": "0.1.164-preview.36809057014",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@amalgm/shell",
|
|
9
|
-
"version": "0.1.164-preview.
|
|
9
|
+
"version": "0.1.164-preview.36809057014",
|
|
10
10
|
"license": "UNLICENSED",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@amalgm/agents": "0.2.3-preview.35795493380",
|
|
13
13
|
"@amalgm/apps": "0.1.3-preview.35541603008",
|
|
14
14
|
"@amalgm/automations": "0.4.4-preview.35542563246",
|
|
15
15
|
"@amalgm/browser": "0.1.2-preview.35541635545",
|
|
16
|
-
"@amalgm/channels": "0.1.5-preview.
|
|
17
|
-
"@amalgm/chat": "0.2.9-preview.
|
|
16
|
+
"@amalgm/channels": "0.1.5-preview.36777776173",
|
|
17
|
+
"@amalgm/chat": "0.2.9-preview.36777100786",
|
|
18
18
|
"@amalgm/core": "0.5.1-preview.35541371724",
|
|
19
|
-
"@amalgm/live": "0.2.81-preview.
|
|
19
|
+
"@amalgm/live": "0.2.81-preview.36771680084",
|
|
20
20
|
"@amalgm/tools": "0.1.7-preview.35541586993",
|
|
21
21
|
"@anthropic-ai/claude-agent-sdk": "^0.3.224",
|
|
22
22
|
"@homebridge/node-pty-prebuilt-multiarch": "0.13.1",
|
|
@@ -40,15 +40,12 @@
|
|
|
40
40
|
"engines": {
|
|
41
41
|
"node": ">=24",
|
|
42
42
|
"npm": ">=11.19.1 <12"
|
|
43
|
-
},
|
|
44
|
-
"optionalDependencies": {
|
|
45
|
-
"fsevents": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
|
|
46
43
|
}
|
|
47
44
|
},
|
|
48
45
|
"node_modules/@agentclientprotocol/sdk": {
|
|
49
|
-
"version": "1.5.
|
|
50
|
-
"resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.5.
|
|
51
|
-
"integrity": "sha512-
|
|
46
|
+
"version": "1.5.1",
|
|
47
|
+
"resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.5.1.tgz",
|
|
48
|
+
"integrity": "sha512-nSUIrC1fOR9+ppKfx9KdwjBBND2sAPzFHo4yVQrGbXZHnayUYpwL8CDVR5LSxbapY/oKMOzNP0wvwfyx3PS2KA==",
|
|
52
49
|
"license": "Apache-2.0",
|
|
53
50
|
"peerDependencies": {
|
|
54
51
|
"zod": "^3.25.0 || ^4.0.0"
|
|
@@ -177,9 +174,9 @@
|
|
|
177
174
|
}
|
|
178
175
|
},
|
|
179
176
|
"node_modules/@amalgm/channels": {
|
|
180
|
-
"version": "0.1.5-preview.
|
|
181
|
-
"resolved": "https://registry.npmjs.org/@amalgm/channels/-/channels-0.1.5-preview.
|
|
182
|
-
"integrity": "sha512-
|
|
177
|
+
"version": "0.1.5-preview.36777776173",
|
|
178
|
+
"resolved": "https://registry.npmjs.org/@amalgm/channels/-/channels-0.1.5-preview.36777776173.tgz",
|
|
179
|
+
"integrity": "sha512-lsJ3LBrw9x3G5N39tPwC1dUc+2UXBXrCsuDc/kFJs1vllc0TZ6DzBIzeB143lkdURPAsrIzzU0PxKcBTRQ3RdQ==",
|
|
183
180
|
"license": "UNLICENSED",
|
|
184
181
|
"dependencies": {
|
|
185
182
|
"@amalgm/core": "0.5.1-preview.35541371724",
|
|
@@ -197,9 +194,9 @@
|
|
|
197
194
|
}
|
|
198
195
|
},
|
|
199
196
|
"node_modules/@amalgm/chat": {
|
|
200
|
-
"version": "0.2.9-preview.
|
|
201
|
-
"resolved": "https://registry.npmjs.org/@amalgm/chat/-/chat-0.2.9-preview.
|
|
202
|
-
"integrity": "sha512-
|
|
197
|
+
"version": "0.2.9-preview.36777100786",
|
|
198
|
+
"resolved": "https://registry.npmjs.org/@amalgm/chat/-/chat-0.2.9-preview.36777100786.tgz",
|
|
199
|
+
"integrity": "sha512-1O1XLuMmMCj56QkSlg0Eyu6VT4Til7ma68CjmAzONemzX9ZnyrZgz4IC+3MewtWu9i09hPC74HJ0vt/t3mxmUQ==",
|
|
203
200
|
"license": "UNLICENSED",
|
|
204
201
|
"dependencies": {
|
|
205
202
|
"@agentclientprotocol/sdk": "^1.4.0",
|
|
@@ -224,9 +221,9 @@
|
|
|
224
221
|
}
|
|
225
222
|
},
|
|
226
223
|
"node_modules/@amalgm/live": {
|
|
227
|
-
"version": "0.2.81-preview.
|
|
228
|
-
"resolved": "https://registry.npmjs.org/@amalgm/live/-/live-0.2.81-preview.
|
|
229
|
-
"integrity": "sha512-
|
|
224
|
+
"version": "0.2.81-preview.36771680084",
|
|
225
|
+
"resolved": "https://registry.npmjs.org/@amalgm/live/-/live-0.2.81-preview.36771680084.tgz",
|
|
226
|
+
"integrity": "sha512-ETfSFsY3Ae2+84IfXesP/IBmREHxl4RbFJ+8kpdQv3LkI9kLCbExpCXsSe/fboaNooNhUpXTZ/9C/ESAkLfQGw==",
|
|
230
227
|
"license": "UNLICENSED",
|
|
231
228
|
"engines": {
|
|
232
229
|
"node": ">=18"
|
|
@@ -866,9 +863,9 @@
|
|
|
866
863
|
}
|
|
867
864
|
},
|
|
868
865
|
"node_modules/@opencode-ai/sdk": {
|
|
869
|
-
"version": "1.18.
|
|
870
|
-
"resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.18.
|
|
871
|
-
"integrity": "sha512-
|
|
866
|
+
"version": "1.18.34",
|
|
867
|
+
"resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.18.34.tgz",
|
|
868
|
+
"integrity": "sha512-R9QWUpcngtdQ6FCixz7NC6n1WsSho6CEuRUzYHz/CzZcp3miSklDzXkm0oDwXVCnuEu+ANoeM0f6RDp51kOMzQ==",
|
|
872
869
|
"license": "MIT",
|
|
873
870
|
"dependencies": {
|
|
874
871
|
"cross-spawn": "7.0.6"
|
|
@@ -1043,9 +1040,9 @@
|
|
|
1043
1040
|
"license": "MIT"
|
|
1044
1041
|
},
|
|
1045
1042
|
"node_modules/@types/ws": {
|
|
1046
|
-
"version": "8.18.
|
|
1047
|
-
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.
|
|
1048
|
-
"integrity": "sha512-
|
|
1043
|
+
"version": "8.18.2",
|
|
1044
|
+
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.2.tgz",
|
|
1045
|
+
"integrity": "sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==",
|
|
1049
1046
|
"license": "MIT",
|
|
1050
1047
|
"dependencies": {
|
|
1051
1048
|
"@types/node": "*"
|
|
@@ -1210,9 +1207,10 @@
|
|
|
1210
1207
|
}
|
|
1211
1208
|
},
|
|
1212
1209
|
"node_modules/brace-expansion": {
|
|
1213
|
-
"version": "5.0.
|
|
1214
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.
|
|
1215
|
-
"integrity": "sha512-
|
|
1210
|
+
"version": "5.0.12",
|
|
1211
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
|
|
1212
|
+
"integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
|
|
1213
|
+
"license": "MIT",
|
|
1216
1214
|
"dependencies": {
|
|
1217
1215
|
"balanced-match": "^4.0.2"
|
|
1218
1216
|
},
|
|
@@ -1623,9 +1621,9 @@
|
|
|
1623
1621
|
"peer": true
|
|
1624
1622
|
},
|
|
1625
1623
|
"node_modules/fast-uri": {
|
|
1626
|
-
"version": "3.1.
|
|
1627
|
-
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.
|
|
1628
|
-
"integrity": "sha512-
|
|
1624
|
+
"version": "3.1.8",
|
|
1625
|
+
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz",
|
|
1626
|
+
"integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==",
|
|
1629
1627
|
"funding": [
|
|
1630
1628
|
{
|
|
1631
1629
|
"type": "github",
|
|
@@ -1635,7 +1633,8 @@
|
|
|
1635
1633
|
"type": "opencollective",
|
|
1636
1634
|
"url": "https://opencollective.com/fastify"
|
|
1637
1635
|
}
|
|
1638
|
-
]
|
|
1636
|
+
],
|
|
1637
|
+
"license": "BSD-3-Clause"
|
|
1639
1638
|
},
|
|
1640
1639
|
"node_modules/ffmpeg-static": {
|
|
1641
1640
|
"version": "5.3.0",
|
|
@@ -1699,19 +1698,6 @@
|
|
|
1699
1698
|
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
|
1700
1699
|
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
|
1701
1700
|
},
|
|
1702
|
-
"node_modules/fsevents": {
|
|
1703
|
-
"version": "2.3.3",
|
|
1704
|
-
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
1705
|
-
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
|
1706
|
-
"hasInstallScript": true,
|
|
1707
|
-
"optional": true,
|
|
1708
|
-
"os": [
|
|
1709
|
-
"darwin"
|
|
1710
|
-
],
|
|
1711
|
-
"engines": {
|
|
1712
|
-
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
|
1713
|
-
}
|
|
1714
|
-
},
|
|
1715
1701
|
"node_modules/function-bind": {
|
|
1716
1702
|
"version": "1.1.2",
|
|
1717
1703
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
|
@@ -1894,9 +1880,10 @@
|
|
|
1894
1880
|
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
|
|
1895
1881
|
},
|
|
1896
1882
|
"node_modules/ip-address": {
|
|
1897
|
-
"version": "10.
|
|
1898
|
-
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.
|
|
1899
|
-
"integrity": "sha512-
|
|
1883
|
+
"version": "10.7.2",
|
|
1884
|
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.2.tgz",
|
|
1885
|
+
"integrity": "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==",
|
|
1886
|
+
"license": "MIT",
|
|
1900
1887
|
"engines": {
|
|
1901
1888
|
"node": ">= 12"
|
|
1902
1889
|
}
|
|
@@ -4403,18 +4390,18 @@
|
|
|
4403
4390
|
}
|
|
4404
4391
|
},
|
|
4405
4392
|
"node_modules/tldts-core": {
|
|
4406
|
-
"version": "7.4.
|
|
4407
|
-
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.
|
|
4408
|
-
"integrity": "sha512-
|
|
4393
|
+
"version": "7.4.16",
|
|
4394
|
+
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.16.tgz",
|
|
4395
|
+
"integrity": "sha512-MDolfaSJtlSK5Y0A1xl3277ekubZwobpBjugknDizI9O5Rm60a1m8k4ICK+MRsCDzPygT81mp3BBf5RKDlFRfA==",
|
|
4409
4396
|
"license": "MIT"
|
|
4410
4397
|
},
|
|
4411
4398
|
"node_modules/tldts-experimental": {
|
|
4412
|
-
"version": "7.4.
|
|
4413
|
-
"resolved": "https://registry.npmjs.org/tldts-experimental/-/tldts-experimental-7.4.
|
|
4414
|
-
"integrity": "sha512-
|
|
4399
|
+
"version": "7.4.16",
|
|
4400
|
+
"resolved": "https://registry.npmjs.org/tldts-experimental/-/tldts-experimental-7.4.16.tgz",
|
|
4401
|
+
"integrity": "sha512-H1gI3Toi/7PoMRmBIX9K2cyWIEdxjW0F4ygsVRtsCM1thOZwa3zFc8SowUttgd0UhVUR2ahRbgUHEKrxj7WZ3w==",
|
|
4415
4402
|
"license": "MIT",
|
|
4416
4403
|
"dependencies": {
|
|
4417
|
-
"tldts-core": "^7.4.
|
|
4404
|
+
"tldts-core": "^7.4.16"
|
|
4418
4405
|
}
|
|
4419
4406
|
},
|
|
4420
4407
|
"node_modules/toidentifier": {
|