@ashlr/hub 3.2.7 → 3.3.2
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/CHANGELOG.md +314 -2
- package/README.md +54 -38
- package/dist/build-identity.json +2 -2
- package/dist/cli/audit.js +18 -0
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/backlog.d.ts +0 -5
- package/dist/cli/backlog.js +18 -0
- package/dist/cli/backlog.js.map +1 -1
- package/dist/cli/comms.js +20 -0
- package/dist/cli/comms.js.map +1 -1
- package/dist/cli/completions.d.ts +6 -1
- package/dist/cli/completions.js +33 -10
- package/dist/cli/completions.js.map +1 -1
- package/dist/cli/daemon.js +10 -3
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/dashboard.js +5 -4
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/demo.d.ts +0 -27
- package/dist/cli/demo.js +17 -0
- package/dist/cli/demo.js.map +1 -1
- package/dist/cli/help.js +22 -9
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/inbox.d.ts +14 -2
- package/dist/cli/inbox.js +137 -23
- package/dist/cli/inbox.js.map +1 -1
- package/dist/cli/onboard.d.ts +0 -13
- package/dist/cli/onboard.js +20 -0
- package/dist/cli/onboard.js.map +1 -1
- package/dist/cli/resources.js +15 -0
- package/dist/cli/resources.js.map +1 -1
- package/dist/cli/run.js +1 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/sandbox.js +43 -0
- package/dist/cli/sandbox.js.map +1 -1
- package/dist/cli/serve.js +7 -3
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/setup.d.ts +5 -3
- package/dist/cli/setup.js +14 -7
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/tui.d.ts +0 -6
- package/dist/cli/tui.js +14 -0
- package/dist/cli/tui.js.map +1 -1
- package/dist/cli/update.js +3 -1
- package/dist/cli/update.js.map +1 -1
- package/dist/core/config.js +70 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/daemon/loop.js +83 -3
- package/dist/core/daemon/loop.js.map +1 -1
- package/dist/core/daemon/runtime-activation-resident-start-protocol.d.ts +141 -0
- package/dist/core/daemon/runtime-activation-resident-start-protocol.js +462 -0
- package/dist/core/daemon/runtime-activation-resident-start-protocol.js.map +1 -0
- package/dist/core/daemon/runtime-activation-resident-start-runtime.d.ts +27 -0
- package/dist/core/daemon/runtime-activation-resident-start-runtime.js +28 -0
- package/dist/core/daemon/runtime-activation-resident-start-runtime.js.map +1 -0
- package/dist/core/daemon/runtime-activation-stopped-consumer.d.ts +139 -0
- package/dist/core/daemon/runtime-activation-stopped-consumer.js +995 -0
- package/dist/core/daemon/runtime-activation-stopped-consumer.js.map +1 -0
- package/dist/core/daemon/runtime-activation-stopped-runtime.d.ts +36 -0
- package/dist/core/daemon/runtime-activation-stopped-runtime.js +134 -0
- package/dist/core/daemon/runtime-activation-stopped-runtime.js.map +1 -0
- package/dist/core/daemon/runtime-activation-transaction.d.ts +41 -17
- package/dist/core/daemon/runtime-activation-transaction.js +80 -11
- package/dist/core/daemon/runtime-activation-transaction.js.map +1 -1
- package/dist/core/daemon/runtime-release-dependency-inventory.js +1 -0
- package/dist/core/daemon/runtime-release-dependency-inventory.js.map +1 -1
- package/dist/core/daemon/service-install-authority.d.ts +1 -1
- package/dist/core/daemon/service-install-authority.js +4 -2
- package/dist/core/daemon/service-install-authority.js.map +1 -1
- package/dist/core/dashboard.d.ts +10 -0
- package/dist/core/dashboard.js +103 -28
- package/dist/core/dashboard.js.map +1 -1
- package/dist/core/effective-config.js +7 -0
- package/dist/core/effective-config.js.map +1 -1
- package/dist/core/fleet/automerge-pass.js +57 -73
- package/dist/core/fleet/automerge-pass.js.map +1 -1
- package/dist/core/fleet/decisions-ledger.js +36 -13
- package/dist/core/fleet/decisions-ledger.js.map +1 -1
- package/dist/core/fleet/external-skill-git-capture.js +9 -1
- package/dist/core/fleet/external-skill-git-capture.js.map +1 -1
- package/dist/core/fleet/judge-decision-metadata.d.ts +8 -1
- package/dist/core/fleet/judge-decision-metadata.js +14 -1
- package/dist/core/fleet/judge-decision-metadata.js.map +1 -1
- package/dist/core/fleet/judge-trace.js +2 -1
- package/dist/core/fleet/judge-trace.js.map +1 -1
- package/dist/core/fleet/manager.d.ts +21 -1
- package/dist/core/fleet/manager.js +137 -41
- package/dist/core/fleet/manager.js.map +1 -1
- package/dist/core/fleet/post-merge-credit-label.d.ts +10 -0
- package/dist/core/fleet/post-merge-credit-label.js +13 -0
- package/dist/core/fleet/post-merge-credit-label.js.map +1 -0
- package/dist/core/fleet/post-merge-credit.d.ts +119 -12
- package/dist/core/fleet/post-merge-credit.js +353 -14
- package/dist/core/fleet/post-merge-credit.js.map +1 -1
- package/dist/core/fleet/self-improve.d.ts +38 -5
- package/dist/core/fleet/self-improve.js +201 -12
- package/dist/core/fleet/self-improve.js.map +1 -1
- package/dist/core/fleet/skill-library.d.ts +21 -2
- package/dist/core/fleet/skill-library.js +54 -12
- package/dist/core/fleet/skill-library.js.map +1 -1
- package/dist/core/fleet/worked-ledger.d.ts +22 -0
- package/dist/core/fleet/worked-ledger.js +32 -0
- package/dist/core/fleet/worked-ledger.js.map +1 -1
- package/dist/core/goals/store.js +60 -6
- package/dist/core/goals/store.js.map +1 -1
- package/dist/core/inbox/apply.js +2 -1
- package/dist/core/inbox/apply.js.map +1 -1
- package/dist/core/inbox/merge.d.ts +10 -1
- package/dist/core/inbox/merge.js +97 -18
- package/dist/core/inbox/merge.js.map +1 -1
- package/dist/core/integrations/github.d.ts +2 -0
- package/dist/core/integrations/github.js +2 -1
- package/dist/core/integrations/github.js.map +1 -1
- package/dist/core/learn/reflect.d.ts +42 -4
- package/dist/core/learn/reflect.js +66 -5
- package/dist/core/learn/reflect.js.map +1 -1
- package/dist/core/onboard.d.ts +2 -0
- package/dist/core/onboard.js +9 -3
- package/dist/core/onboard.js.map +1 -1
- package/dist/core/run/engines.d.ts +8 -0
- package/dist/core/run/engines.js +9 -1
- package/dist/core/run/engines.js.map +1 -1
- package/dist/core/run/learned-router.js +28 -3
- package/dist/core/run/learned-router.js.map +1 -1
- package/dist/core/run/orchestrator.d.ts +7 -2
- package/dist/core/run/orchestrator.js +88 -60
- package/dist/core/run/orchestrator.js.map +1 -1
- package/dist/core/swarm/rollback.d.ts +11 -0
- package/dist/core/swarm/rollback.js +54 -0
- package/dist/core/swarm/rollback.js.map +1 -1
- package/dist/core/swarm/runner.js +94 -8
- package/dist/core/swarm/runner.js.map +1 -1
- package/dist/core/types.d.ts +103 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/web/api.d.ts +6 -0
- package/dist/core/web/api.js +174 -18
- package/dist/core/web/api.js.map +1 -1
- package/dist/core/web/control.d.ts +20 -0
- package/dist/core/web/control.js +44 -32
- package/dist/core/web/control.js.map +1 -1
- package/dist/core/web/fleet-status-cache.d.ts +68 -0
- package/dist/core/web/fleet-status-cache.js +120 -0
- package/dist/core/web/fleet-status-cache.js.map +1 -0
- package/dist/core/web/public/app.js +5 -1
- package/dist/core/web/public/next/assets/index-CDHQraxS.css +1 -0
- package/dist/core/web/public/next/assets/index-zVKD9krw.js +69 -0
- package/dist/core/web/public/next/assets/index-zVKD9krw.js.map +1 -0
- package/dist/core/web/public/next/index.html +15 -0
- package/dist/core/web/read-session-revocations.d.ts +26 -0
- package/dist/core/web/read-session-revocations.js +48 -0
- package/dist/core/web/read-session-revocations.js.map +1 -0
- package/dist/core/web/server.js +73 -27
- package/dist/core/web/server.js.map +1 -1
- package/dist/core/web/static.d.ts +1 -1
- package/dist/core/web/static.js +54 -20
- package/dist/core/web/static.js.map +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/docs/RUNTIME_ACTIVATION_AUTHORITY.md +115 -21
- package/docs/contracts/CONTRACT-M521.md +102 -0
- package/node_modules/fast-uri/index.js +201 -48
- package/node_modules/fast-uri/lib/schemes.js +9 -4
- package/node_modules/fast-uri/lib/utils.js +388 -91
- package/node_modules/fast-uri/package.json +1 -1
- package/node_modules/fast-uri/test/component-safe-serialization.test.js +105 -0
- package/node_modules/fast-uri/test/equal.test.js +31 -3
- package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +2 -0
- package/node_modules/fast-uri/test/ipv6-canonical.test.js +34 -0
- package/node_modules/fast-uri/test/ipv6-validation.test.js +90 -0
- package/node_modules/fast-uri/test/malformed-percent.test.js +77 -0
- package/node_modules/fast-uri/test/malformed-urn.test.js +61 -0
- package/node_modules/fast-uri/test/parse.test.js +7 -3
- package/node_modules/fast-uri/test/query-fragment-normalization.test.js +33 -0
- package/node_modules/fast-uri/test/reserved-path-normalization.test.js +109 -0
- package/node_modules/fast-uri/test/scheme-validation.test.js +124 -0
- package/node_modules/fast-uri/test/security-normalization.test.js +101 -0
- package/node_modules/fast-uri/test/security.test.js +75 -3
- package/node_modules/fast-uri/test/urn-full-input.test.js +29 -0
- package/node_modules/fast-uri/test/websocket-query-preservation.test.js +24 -0
- package/node_modules/qs/.github/THREAT_MODEL.md +3 -3
- package/node_modules/qs/CHANGELOG.md +26 -0
- package/node_modules/qs/README.md +19 -1
- package/node_modules/qs/dist/qs.js +25 -25
- package/node_modules/qs/eslint.config.mjs +1 -1
- package/node_modules/qs/lib/parse.js +16 -6
- package/node_modules/qs/lib/stringify.js +23 -8
- package/node_modules/qs/lib/utils.js +57 -11
- package/node_modules/qs/package.json +8 -7
- package/node_modules/qs/test/parse.js +419 -0
- package/node_modules/qs/test/stringify.js +317 -0
- package/node_modules/qs/test/utils.js +206 -0
- package/package.json +24 -6
- package/schema/config.schema.json +800 -5
- package/node_modules/which/CHANGELOG.md +0 -166
|
@@ -1 +1 @@
|
|
|
1
|
-
{"algorithm":"sha256","assurance":"packaged-build-byte-observation","inventoryDigest":"b4c102ba5438d2f1a1fdd3c0e82fbf7d6b51c420061d802e381543f95b48fa68","package":{"manifestSha256":"4b0b414228be155661ba024ddde905f8397f188598cf0215a9548dac5013ae36","name":"@ashlr/hub","version":"3.2.7"},"packages":[{"archiveModeSha256":"e593537ea027a53342e9c95325f3823e507298732511cd61c314537000cb008c","contentSha256":"39703185cd013059db3eb5ac351625fa9dfd1eef0509fb47ff04fcc0a4cec6f5","fileCount":25,"name":"@hono/node-server","path":"@hono/node-server","size":120353,"version":"2.0.12"},{"archiveModeSha256":"212ef6ab48b10cfc61481fdb4d517d5aefa8a9e78f321c9483e13f8f0854aade","contentSha256":"54ecfe6624026e35139d2f943de8626043145c82c1d6580882a4adf4ee6b3c90","fileCount":693,"name":"@modelcontextprotocol/sdk","path":"@modelcontextprotocol/sdk","size":4322438,"version":"1.30.0"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"@modelcontextprotocol/sdk/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"@modelcontextprotocol/sdk/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"93bc4d919570486c9dac1184c65d89802a5d7e5e51d2ad2c9c79e9229b0d2bfd","fileCount":5,"name":"accepts","path":"accepts","size":16917,"version":"2.0.0"},{"archiveModeSha256":"338fe03444b2468ffb84fa0a62e4ad26985fbe9063f5b6500fc00baab52687a7","contentSha256":"a570e5cd740441f9e2ad9e20aab09d6ff5f01c54b5ca63889fb9cc65aa22ed38","fileCount":15,"name":"ajv-formats","path":"ajv-formats","size":56763,"version":"3.0.1"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"ajv-formats/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"ajv-formats/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"99258e0ccfd899459bc7f95949a5bec9039234f80f0a96cfbf7de4cfd9deaad9","contentSha256":"e6f71097d1bf22309cc2010ba116320dbe0b37b53af324631969ccef03817448","fileCount":10,"name":"body-parser","path":"body-parser","size":42536,"version":"2.3.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"body-parser/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"048d4140095d01f76e5d5a576d5a10de4e1cebcc64cab6ea49f14afc54939be6","fileCount":5,"name":"bytes","path":"bytes","size":12270,"version":"3.1.2"},{"archiveModeSha256":"df415aae8a21af7234f013c4d934c5074b07e617f6189084a43c78a49bafcb78","contentSha256":"870b383c07315fef9619399c2450297d079b1398583984a5ccb9cd2b1005cb59","fileCount":21,"name":"call-bind-apply-helpers","path":"call-bind-apply-helpers","size":15952,"version":"1.0.2"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"01be39d7156b173ffe2869dcd589e2080dcf2f1bcbcfa2f20409582ccb21cfaf","fileCount":11,"name":"call-bound","path":"call-bound","size":17106,"version":"1.0.4"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"4f967d79760cd06bcfdbf918d30b3a77752d03e6e76582aeac4b3a81dcd6a6a9","fileCount":4,"name":"content-disposition","path":"content-disposition","size":19928,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ad93015c6082464b41e63397fc9ee739d6bb7cb93755c9fbef749cff39b8675","fileCount":5,"name":"content-type","path":"content-type","size":10471,"version":"1.0.5"},{"archiveModeSha256":"2048aee59eb971a928e2fcac3881a222b2c9140ec980dfd14756de04a3885902","contentSha256":"ca8dd7ddd6a3970df6e3efff74247cd6f985dfdcc596ac0f58cd50c5b88555e8","fileCount":5,"name":"cookie","path":"cookie","size":23382,"version":"0.7.2"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"360601ff3d56cfdb8de7d836940caa5d74a437474129017697aab4696fc84e03","fileCount":5,"name":"cookie-signature","path":"cookie-signature","size":4993,"version":"1.2.2"},{"archiveModeSha256":"3bf3b01496f9ce98ec5c58c595c317975f470de6da6599d5d405c60c294f12c6","contentSha256":"9a628bd867c40f8bd4753d84f5f364a5ce92fcdd73fb164977d566275580786e","fileCount":4,"name":"cors","path":"cors","size":19956,"version":"2.8.6"},{"archiveModeSha256":"0c4b2570bd695c455ca6e9f67aaabdf88b1d486e39e9e52f4b8cc0c595e08f33","contentSha256":"9666a5f3074e7ff71dab89ccc0fecd79699b6c68e85087cc3416e9b220e9369e","fileCount":9,"name":"cross-spawn","path":"cross-spawn","size":16094,"version":"7.0.6"},{"archiveModeSha256":"fd7ec5fdf7ea41f349416d375406faf41b35702e2e23f02d2c015acb72adc8f2","contentSha256":"e9f41fdd4e55dc936295270bdb7c994d9ad85dd2bd6f2fb3d46767a16ee1a03e","fileCount":7,"name":"debug","path":"debug","size":42793,"version":"4.4.3"},{"archiveModeSha256":"bb32a6d3c5b9088943cd629938024c4c8d207814db8194313063fe3844cbbc8c","contentSha256":"cfc74892a99b215bdc61d9817f90b235318267ddbf8a29ef52b2906d8b26e980","fileCount":6,"name":"depd","path":"depd","size":27117,"version":"2.0.0"},{"archiveModeSha256":"305af32d2ba2d5fe89c9acaa17537f1a06e7e131bf81112cb11d623fdbb9c6f1","contentSha256":"5c4728d83554a1fc2fd51c01cf2d30bb89adbe1c6469a52201eed72b68af0f91","fileCount":15,"name":"dunder-proto","path":"dunder-proto","size":13003,"version":"1.0.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"bae9f4988b2d279e16b4bb3e5527647300137f2978aef97f40acd1b453a8d5a7","fileCount":4,"name":"ee-first","path":"ee-first","size":6259,"version":"1.1.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1c50e3d3cd38c66e1e462f0004781f789e59959aec798aef31f9a2f049d216e5","fileCount":4,"name":"encodeurl","path":"encodeurl","size":6980,"version":"2.0.0"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"a2dd73d6e2d58eda48469112f2eacae1fec583f84f72643b3593c6092bd3e877","fileCount":11,"name":"es-define-property","path":"es-define-property","size":10217,"version":"1.0.1"},{"archiveModeSha256":"23a440c46333c31a4ae0a1ffdc2ec6db818da1c36a039abc189b118e1bcdc625","contentSha256":"fd08a46013bf09d90a2240c6a8a97f12ff7106507456c73e7db53f608b41214e","fileCount":22,"name":"es-errors","path":"es-errors","size":12324,"version":"1.3.0"},{"archiveModeSha256":"b6b95f08bcc5f254eddbff61393e6efa09637b9fe2996a163d3c2c71c28bb681","contentSha256":"893e26d760872fd0c233391eff242a717320d6b2d6ab004ad827d1dd6c517ea5","fileCount":16,"name":"es-object-atoms","path":"es-object-atoms","size":11967,"version":"1.1.2"},{"archiveModeSha256":"764d64b5de2e2faa2387d92a5ed5dcbc1822797787a67ee46e827d4d353a2cb5","contentSha256":"27b564cee7701979ecc9ba3ad9b57c4eb185ddfe14f6fbef7961b9d95fc51789","fileCount":4,"name":"escape-html","path":"escape-html","size":3660,"version":"1.0.3"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"53b09a946276069cc9e202851404809b0b27f9616f6398ba1ba053cf27a9b61f","fileCount":5,"name":"etag","path":"etag","size":10809,"version":"1.8.1"},{"archiveModeSha256":"15cc21147f13500c581198be8a82187d7d2cd38a2c23b9459c89f22990a5b971","contentSha256":"fda71ef638beebe2ebae12fe705f63cb2276d6b35564064714ad352727e6f0a9","fileCount":13,"name":"eventsource","path":"eventsource","size":147304,"version":"3.0.7"},{"archiveModeSha256":"57e54f8cb946a2072d2c928cce29ff71a0383916edbb50e97042f859f043677f","contentSha256":"57456c2bbbfd8965c4466cf8a120581c6de9c67c1e04bf815189370f5f76ec3f","fileCount":21,"name":"eventsource-parser","path":"eventsource-parser","size":123218,"version":"3.1.0"},{"archiveModeSha256":"e882878862f5bfd4ff0cb5120df0b9e29758544fabad522563cc91a5102513a0","contentSha256":"c4cccb2f6077128bc31e51f7f772663988796261352298821eea234de1f42281","fileCount":10,"name":"express","path":"express","size":75429,"version":"5.2.1"},{"archiveModeSha256":"0f783761dfb7c14c80535b5a3d2f282398f8621985ed04be794ef3144740784e","contentSha256":"332479fcc3eaa25713fa7df0d4e3a953b7a008fde6413d4278aa667d7e4473e1","fileCount":9,"name":"express-rate-limit","path":"express-rate-limit","size":146332,"version":"8.5.2"},{"archiveModeSha256":"78e09d25ac30efc25d5604344654f3158820dbd9d45a1900b9f44e0e500839cf","contentSha256":"5ca43c0737026213eee30eb17e40859c918af2ae30f16d3882fdfbd8bcb03afd","fileCount":11,"name":"fast-deep-equal","path":"fast-deep-equal","size":12966,"version":"3.1.3"},{"archiveModeSha256":"487bd966467016fcc4fda3f2a6bf29700b652065acf1aba94d6f1f95844edb06","contentSha256":"a77ae10575efbbb07363fb9c7167e877fbd2794ba422fcccd3ffc0884d2d759d","fileCount":34,"name":"fast-uri","path":"fast-uri","size":167683,"version":"3.1.5"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"a184198d4d20e0177fd4f9e5d82bc40d34143c3a8279e7200511905b08e91d1a","fileCount":5,"name":"finalhandler","path":"finalhandler","size":18111,"version":"2.1.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"5a3882ea4acfd16ac4851f43587d6ab87fd08de45665981db6e8ee5944486118","fileCount":5,"name":"forwarded","path":"forwarded","size":5876,"version":"0.2.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"c3d3cc5e56026a726c20ed1d516509608bddb667d5cc999f01cd3971a92e4406","fileCount":5,"name":"fresh","path":"fresh","size":10289,"version":"2.0.0"},{"archiveModeSha256":"6f10ab8235c8a46f648cd17681016bf68595208a48d01f1351bd0b19bcb4301c","contentSha256":"8afcdc5f094efcac14509859ce70157ec7daff89642bc5d604b235f6917dd5b0","fileCount":12,"name":"function-bind","path":"function-bind","size":31427,"version":"1.1.2"},{"archiveModeSha256":"2d4c82c10091157e0f33c6a4a049ef4b2609c8f2a6d70882fa538122b54c1ce3","contentSha256":"1b862b6fe457cd272bb8bce8407ac7f972c857ac317189afe7a29ba378f0f6ac","fileCount":9,"name":"get-intrinsic","path":"get-intrinsic","size":46542,"version":"1.3.0"},{"archiveModeSha256":"995b5a61ce2e3cb963405de061067b699b48e90eb6ce2ac0d88e88bd9c38549a","contentSha256":"3dc759afa7e26cd60cc642b39bffcbd22dd574469e4ac2174cc9b57b97599f82","fileCount":15,"name":"get-proto","path":"get-proto","size":10840,"version":"1.0.1"},{"archiveModeSha256":"169ecf4d0c444e719e5bcd4e912e3ceb193138b5ab7eef8f727798759a4331d3","contentSha256":"6f2eeeb1483b34581df01b15d1b80b2b45be2c7ce06496c72a90351194858738","fileCount":12,"name":"gopd","path":"gopd","size":9869,"version":"1.2.0"},{"archiveModeSha256":"2f2262ae382d511cef7d373ff151a1a662ae623e50cb17d3a920d9e87593011d","contentSha256":"617f42cde01c4ca5a0bdab28f544a70e5f52c8707daad05016cb789193ba0554","fileCount":16,"name":"has-symbols","path":"has-symbols","size":23409,"version":"1.1.0"},{"archiveModeSha256":"35386dc8ee83de6dc1f61324623e1d9907205a1bd2fa66b02bc7c0429bdf85cc","contentSha256":"e6b281a2b3f6100d9b44f0916c797da53c254e8a38cb357134e80eddf5181a48","fileCount":10,"name":"hasown","path":"hasown","size":10332,"version":"2.0.4"},{"archiveModeSha256":"99e1e3bd61da454d1b8c0246de7225a229c18ca896bf4e6eeacbf7563aa2a542","contentSha256":"bff461e4ab56a1a97667dd1f2cc3ceb1b30dd1a3895d2062fc6dbd427f920329","fileCount":562,"name":"hono","path":"hono","size":1357534,"version":"4.12.34"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"b34d2d8fdbf41450767591b746eb2adaa4a22b59aa55c94ef0ce65ff1ba6fe6d","fileCount":5,"name":"http-errors","path":"http-errors","size":19064,"version":"2.0.1"},{"archiveModeSha256":"086f9d977a09c672ced4c2d703944875d8db454fe8fdd7fe8882f0888ed7c20f","contentSha256":"762b205b641d142557d0b3fb5d376d571e7823473661004f6cb319b7c0603976","fileCount":27,"name":"iconv-lite","path":"iconv-lite","size":343635,"version":"0.7.2"},{"archiveModeSha256":"7b3e1bd04c00f38ad3e4f4fb20e65a4eeb707527b4fd7c84ea7764cef9cebdff","contentSha256":"7c50865fdccbf6c6b44600a997d13c0c5c215ded131f0a4c98acd8d15694e632","fileCount":5,"name":"inherits","path":"inherits","size":3958,"version":"2.0.4"},{"archiveModeSha256":"3ef444401f83c959cfda73e7e9fd50d0796f6f141f36f458a3f132b362e6c375","contentSha256":"0e8533c4762708d8f61d9a21b3fa5f10d7f4907a36609490e71edaadb1186c1e","fileCount":30,"name":"ip-address","path":"ip-address","size":299533,"version":"10.4.0"},{"archiveModeSha256":"a710aacb72996fbfa6d514e678b50cfe4d17619a71648b516a3a09a96479c2c8","contentSha256":"272599141de35d28a1e92b1aec64154c866998a44310163040e6499b6ec1d9c3","fileCount":6,"name":"ipaddr.js","path":"ipaddr.js","size":42145,"version":"1.9.1"},{"archiveModeSha256":"969b492deb1f22a61f85cf9f98cc0f7c1984c3c0fd162d3ba5a600f0f6181ed8","contentSha256":"31aa30a6fbd5f134714c0ae7bc1e4c7a00b1c5bfabd2931e92618a4121bd6fa8","fileCount":6,"name":"is-promise","path":"is-promise","size":2958,"version":"4.0.0"},{"archiveModeSha256":"8f22f331a576ff070646bb75a80918007ff2b93be80520594930dd04865a6e44","contentSha256":"a560d4935c162172bd5feede21bc62536cec616c166de516cd5c367a7ca23f98","fileCount":8,"name":"isexe","path":"isexe","size":10956,"version":"2.0.0"},{"archiveModeSha256":"ec3d3c0b513b0905f208bc029bc355c1cf7038f95e2e7b1e2d19ddac26e374ea","contentSha256":"e3633b6af5ec16f6448989dd91dad2798a190e52e7a3d16d90ceca23d52c5b35","fileCount":88,"name":"jose","path":"jose","size":257736,"version":"6.2.3"},{"archiveModeSha256":"bdba5b2b7f19b131522a9af3d6cd30db94ee97690d535e5c3c84d1bce068c2a9","contentSha256":"efcb8d289875749e930bf8f745c132edf832c0f9a25768fcd97e129851288174","fileCount":9,"name":"json-schema-typed","path":"json-schema-typed","size":197188,"version":"8.0.2"},{"archiveModeSha256":"e73b085e3825c81b36b8c4f559c8091c8a3b87751f8f1c8b8bf886fab0b2d422","contentSha256":"5cc193be9810cb46a64717935be48e9077d849553f18fe0ea118d6da4aff3663","fileCount":12,"name":"marked","path":"marked","size":429802,"version":"17.0.0"},{"archiveModeSha256":"74a40513091b687e690f49f4110e314302d0b8b3c9f196cf587c9d702c4cd7e9","contentSha256":"a4884adbf4399adaff50d30983c4afa402a1d15b56a371824ea5c7c7cab385fa","fileCount":38,"name":"math-intrinsics","path":"math-intrinsics","size":17323,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ec2d844bc07543d41a6ab6d78008dd2998877609cc16ba532204995fb4339c5","fileCount":5,"name":"media-typer","path":"media-typer","size":9256,"version":"1.1.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"983f0d7028b74df8828007fabcab26e7f36e42fc7db74e321a110f6f40aa3fa7","fileCount":5,"name":"merge-descriptors","path":"merge-descriptors","size":4373,"version":"2.0.0"},{"archiveModeSha256":"2cb256014f7e1eda905b4809694ab3b06e8c1f1c5b78cb4de5da514e4e57659a","contentSha256":"c979d86230ca6688633d5ef7c89397f312c6d556a1964cb8dfe33596b8b548b9","fileCount":6,"name":"mime-db","path":"mime-db","size":225566,"version":"1.54.0"},{"archiveModeSha256":"20c4497e7b68189571962123cabb12dc852bb2346c45deed91c081c899659249","contentSha256":"28ee29177b736969ce0a555c11ae5275280510007a2670dcdd7ea6b1868f46c3","fileCount":6,"name":"mime-types","path":"mime-types","size":22871,"version":"3.0.2"},{"archiveModeSha256":"20014b85b0431588ccd9c0e6c6afeffc10e21d0ee7de53e2ba2296fd52bb1a7c","contentSha256":"667f3d7d170cb303a69e67dc3a69a08255a3e5cfb8703f4904417b0362bc0d28","fileCount":4,"name":"ms","path":"ms","size":6721,"version":"2.1.3"},{"archiveModeSha256":"5602cdc50f925bdc25002fe3756f55c3e1117229d22c2b2c600e8ffca90295f6","contentSha256":"84851509ca06e7b5b721720762592fa23f696ba1d72172dbc1e692c1dfa7b567","fileCount":9,"name":"negotiator","path":"negotiator","size":28710,"version":"1.0.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"501ecc61ad148476eb5316bad6418e95bb6ed9bfc794c23fcec15bc2c592ccf1","fileCount":4,"name":"object-assign","path":"object-assign","size":5493,"version":"4.1.1"},{"archiveModeSha256":"e3c2f2fe74f79d600564d5d6af9a6bd278aee46db5e0ec18493cdc9d895e0bbf","contentSha256":"7d76d46a138318bcabde842b6a8b994da11a2e3d2e8ecbc0f8780f50e17f2ca8","fileCount":34,"name":"object-inspect","path":"object-inspect","size":102920,"version":"1.13.4"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ffb31d328870b95d8218c54f26f73d6e122847c7289052f57bf1569b0027593b","fileCount":5,"name":"on-finished","path":"on-finished","size":13679,"version":"2.4.1"},{"archiveModeSha256":"71f44c60c38bc2c3e17382504bf0dae39045eeec535cf6f4e1283e0514e8c2f4","contentSha256":"dc238bfc47820f9fb5bb56f1f3aae901657074482f52f91545784f041efb0210","fileCount":4,"name":"once","path":"once","size":4046,"version":"1.4.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ca67e36d858cdb2f3a4eefd00d0bf7284143c1241b9ad06feec17799fc587638","fileCount":5,"name":"parseurl","path":"parseurl","size":10299,"version":"1.3.3"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a3945cbf1aaf19b6dba601c948b6522566517f9b9f4181c964d5a0d8ee34270e","fileCount":5,"name":"path-key","path":"path-key","size":4553,"version":"3.1.1"},{"archiveModeSha256":"1514e7595cbbb9d1902c24ce60454e544df780b8fc73b7967218c3491dd3cefb","contentSha256":"17d110a00db54cd903aba2283f1d027f5acfbf7ce0003590c3abeb6059b5d221","fileCount":6,"name":"path-to-regexp","path":"path-to-regexp","size":59680,"version":"8.4.2"},{"archiveModeSha256":"f0a8527de334749bd26e70302ee03517ec50ff590e93cb3ea9a45ce4124a3829","contentSha256":"d5a9fd4846acac4b5ce086c88eca29de645c535aeee06df4a99a69cf4317e397","fileCount":10,"name":"pkce-challenge","path":"pkce-challenge","size":18211,"version":"5.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d05e2db9e9d803ea440dd46461d51f482ed09978f2688eeda51a5711f1f41320","fileCount":5,"name":"proxy-addr","path":"proxy-addr","size":15399,"version":"2.0.7"},{"archiveModeSha256":"5ab250cd90dfced7c9429dd43d78846951b7b961947594e9f5175faee4c88a56","contentSha256":"129c6546580195d974c7e5f9a44e6d822f0f6ea5e89477fc3fe2619916735ed3","fileCount":20,"name":"qs","path":"qs","size":322295,"version":"6.15.2"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d12cb812790fa7b85393df185775b6c9ad8d05fd313f2b31cfb817d6296b1888","fileCount":5,"name":"range-parser","path":"range-parser","size":8457,"version":"1.2.1"},{"archiveModeSha256":"42cc208595e23f148383e3b4292ce5922102522b8bfd5f77417b06d1306d7aa1","contentSha256":"8f8dedbaf8d48e5de26e87910168aa505b7403e4c7739edc953cf5b25240839c","fileCount":5,"name":"raw-body","path":"raw-body","size":18495,"version":"3.0.2"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"4d281fcce32339c1f532a6e128db448b5d4c02ff371243a5c5696b40c86d3680","fileCount":4,"name":"require-from-string","path":"require-from-string","size":3422,"version":"2.0.2"},{"archiveModeSha256":"e09f32c46d1a5885aae361e487ce603fd60a9fbff1d5dcaab0f6236f971a9837","contentSha256":"99b97f87c5ffc0951428a30eea4a95cbe83f9a70122dbcc8a4b2e7634f8e8dcd","fileCount":7,"name":"router","path":"router","size":46851,"version":"2.2.0"},{"archiveModeSha256":"a462b8a4b54a0e6b8dcfc3d87612450f34478e7dc5845d4b16f239a578821a2c","contentSha256":"e075173c0c6569f0b806c5802462e19b25ed330b11040151ca5e0d8ea9e276d1","fileCount":7,"name":"safer-buffer","path":"safer-buffer","size":42299,"version":"2.1.2"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"3a396c8597fbbc013b13e4cf5dd7f05f798ee9809ad21d3966616d4f50964f02","fileCount":4,"name":"send","path":"send","size":32200,"version":"1.2.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1724d9fc1a50078597419e4a1014f0d179522a46ed0e2a3a94b71f2f78575513","fileCount":4,"name":"serve-static","path":"serve-static","size":14335,"version":"2.2.1"},{"archiveModeSha256":"e1fd687bea7843794dae9ff84fa5a22ca00f6bea6583da85ed3e27d3d8444230","contentSha256":"db27148aba2fa1340dc867179dbccee745a7311c870a68bee4cea1e3fe2f3f8a","fileCount":6,"name":"setprototypeof","path":"setprototypeof","size":4025,"version":"1.2.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"6754ac701a5f6a41aface06678b945984b2c4088d9c81a9beae10d2f236ebbad","fileCount":4,"name":"shebang-command","path":"shebang-command","size":2556,"version":"2.0.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a793c341e7bf38ef241be3075c0420da5b2c2df9c71b3aa64f16e8d80751acac","fileCount":5,"name":"shebang-regex","path":"shebang-regex","size":2828,"version":"3.0.0"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"28e3e44b391a232fea118591ef73556f7f3bd207d35a4fa6c2d8b04bf11be322","fileCount":12,"name":"side-channel","path":"side-channel","size":22864,"version":"1.1.1"},{"archiveModeSha256":"d7170194465bf2624edfb7844fea886827d0f714bb09d49567d5c7a1c3ce78c0","contentSha256":"6959587507edce3ca38987daa64c966a2f802e6ef85b8c9f96e36b51b7d63752","fileCount":13,"name":"side-channel-list","path":"side-channel-list","size":16973,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"c69ec67d49924576f5b78d598fe950d7a9464c1c61ad256cbebcda7641e1630a","fileCount":12,"name":"side-channel-map","path":"side-channel-map","size":13348,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"3f830eae8141c06d7395d4c9ae072ae767e98aace4720762ebded0ae32fca96c","fileCount":12,"name":"side-channel-weakmap","path":"side-channel-weakmap","size":14667,"version":"1.0.2"},{"archiveModeSha256":"c0228c165b333628d8971a1ebdeb334786829db2fa1c9cb6ba374a9214cd4d11","contentSha256":"0b9e6a3e2e50328afbb9254550c688707172bd481eb1084c02af1456aa803249","fileCount":6,"name":"statuses","path":"statuses","size":12505,"version":"2.0.2"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"0c7b3b8db791f787793c0968ec6f6b9dc48d14783c4c34ada0e0475eb3c011d4","fileCount":5,"name":"toidentifier","path":"toidentifier","size":4685,"version":"1.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"79ce0363e01b714db55735699052b2534d0f6ef84d785b137323647cf779657a","fileCount":5,"name":"type-is","path":"type-is","size":21269,"version":"2.1.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"type-is/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"99534b97972283845db4ef41d39156d6720030a2307f2f0649a7f1c8fabf68c6","fileCount":5,"name":"unpipe","path":"unpipe","size":4311,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"880e12feeb6220ce4cdb0bd7f19ddb9d693666a77059502e9d667e06b3e04ce8","fileCount":5,"name":"vary","path":"vary","size":8747,"version":"1.1.2"},{"archiveModeSha256":"b00589de6b03c9caf6d472f986e33ad1ce797610931befbc4c939035855465d3","contentSha256":"d7cd37f3d931efd84593550e395d66a19d915e50a92016b0769dc524c51c71cb","fileCount":6,"name":"which","path":"which","size":9975,"version":"2.0.2"},{"archiveModeSha256":"4b84777e08ccbe4ad45474b4248dc37be2c73b6467d369958cc06ca38507a13f","contentSha256":"4f5c30f228b020aca343e88dc0b15af855173a168663e687afd72c58cf586b99","fileCount":4,"name":"wrappy","path":"wrappy","size":2961,"version":"1.0.2"},{"archiveModeSha256":"b98a45815677c477e01457344c56184f50841e90f1f78c98f47d4f631140c4f3","contentSha256":"eaed4b517e605755ecde1e008133c5418c238657a3236735a1053f00b4a7e58b","fileCount":718,"name":"zod","path":"zod","size":4558122,"version":"4.4.3"},{"archiveModeSha256":"224107ce4653d3b406ca40837a05712425b14ff999773673d516eb31d8e9a34d","contentSha256":"d45857bb67c09b95d65c081b1afc095fcfd8d3e8d8bc3b57f645a1f369b1ea04","fileCount":130,"name":"zod-to-json-schema","path":"zod-to-json-schema","size":219264,"version":"3.25.2"}],"portability":"platform-independent-no-native-or-install-variance","rootDependencies":[{"name":"@modelcontextprotocol/sdk","requested":"^1.30.0"},{"name":"marked","requested":"17.0.0"}],"schemaVersion":2}
|
|
1
|
+
{"algorithm":"sha256","assurance":"packaged-build-byte-observation","inventoryDigest":"be3cb04e19cd083009d7371f92aed5a902d91f5b8a9a2617c59efce79eccf876","package":{"manifestSha256":"59fa88adb8eb02c5bfa6c17a21bab397a08d31b92e3f7284d7c59d8427aae023","name":"@ashlr/hub","version":"3.3.2"},"packages":[{"archiveModeSha256":"e593537ea027a53342e9c95325f3823e507298732511cd61c314537000cb008c","contentSha256":"39703185cd013059db3eb5ac351625fa9dfd1eef0509fb47ff04fcc0a4cec6f5","fileCount":25,"name":"@hono/node-server","path":"@hono/node-server","size":120353,"version":"2.0.12"},{"archiveModeSha256":"212ef6ab48b10cfc61481fdb4d517d5aefa8a9e78f321c9483e13f8f0854aade","contentSha256":"54ecfe6624026e35139d2f943de8626043145c82c1d6580882a4adf4ee6b3c90","fileCount":693,"name":"@modelcontextprotocol/sdk","path":"@modelcontextprotocol/sdk","size":4322438,"version":"1.30.0"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"@modelcontextprotocol/sdk/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"@modelcontextprotocol/sdk/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"93bc4d919570486c9dac1184c65d89802a5d7e5e51d2ad2c9c79e9229b0d2bfd","fileCount":5,"name":"accepts","path":"accepts","size":16917,"version":"2.0.0"},{"archiveModeSha256":"338fe03444b2468ffb84fa0a62e4ad26985fbe9063f5b6500fc00baab52687a7","contentSha256":"a570e5cd740441f9e2ad9e20aab09d6ff5f01c54b5ca63889fb9cc65aa22ed38","fileCount":15,"name":"ajv-formats","path":"ajv-formats","size":56763,"version":"3.0.1"},{"archiveModeSha256":"30bd56bd2c26086e14f1b0c58123fc916fea96c6c86f7bd8e7e2fba1526cb30f","contentSha256":"78052c66ba1f5f3d3310d2685ee84af5b060c6960c06eba5cb1d08da860019ff","fileCount":466,"name":"ajv","path":"ajv-formats/node_modules/ajv","size":1033496,"version":"8.20.0"},{"archiveModeSha256":"0e9ff2b53d7e42a61c51248833683dfc6b09c9726c3f0c50663af0a6b6f83fea","contentSha256":"18bc9ecab93292b6f357a0bef6b26e39e8d7b14c46fb9b1adc8a0826f7ad419b","fileCount":12,"name":"json-schema-traverse","path":"ajv-formats/node_modules/json-schema-traverse","size":22220,"version":"1.0.0"},{"archiveModeSha256":"99258e0ccfd899459bc7f95949a5bec9039234f80f0a96cfbf7de4cfd9deaad9","contentSha256":"e6f71097d1bf22309cc2010ba116320dbe0b37b53af324631969ccef03817448","fileCount":10,"name":"body-parser","path":"body-parser","size":42536,"version":"2.3.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"body-parser/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"048d4140095d01f76e5d5a576d5a10de4e1cebcc64cab6ea49f14afc54939be6","fileCount":5,"name":"bytes","path":"bytes","size":12270,"version":"3.1.2"},{"archiveModeSha256":"df415aae8a21af7234f013c4d934c5074b07e617f6189084a43c78a49bafcb78","contentSha256":"870b383c07315fef9619399c2450297d079b1398583984a5ccb9cd2b1005cb59","fileCount":21,"name":"call-bind-apply-helpers","path":"call-bind-apply-helpers","size":15952,"version":"1.0.2"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"01be39d7156b173ffe2869dcd589e2080dcf2f1bcbcfa2f20409582ccb21cfaf","fileCount":11,"name":"call-bound","path":"call-bound","size":17106,"version":"1.0.4"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"4f967d79760cd06bcfdbf918d30b3a77752d03e6e76582aeac4b3a81dcd6a6a9","fileCount":4,"name":"content-disposition","path":"content-disposition","size":19928,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ad93015c6082464b41e63397fc9ee739d6bb7cb93755c9fbef749cff39b8675","fileCount":5,"name":"content-type","path":"content-type","size":10471,"version":"1.0.5"},{"archiveModeSha256":"2048aee59eb971a928e2fcac3881a222b2c9140ec980dfd14756de04a3885902","contentSha256":"ca8dd7ddd6a3970df6e3efff74247cd6f985dfdcc596ac0f58cd50c5b88555e8","fileCount":5,"name":"cookie","path":"cookie","size":23382,"version":"0.7.2"},{"archiveModeSha256":"51df0d122ab1b5f510d0a80e73a4d33fcb1ab44cf00e903f505c384be80528c8","contentSha256":"360601ff3d56cfdb8de7d836940caa5d74a437474129017697aab4696fc84e03","fileCount":5,"name":"cookie-signature","path":"cookie-signature","size":4993,"version":"1.2.2"},{"archiveModeSha256":"3bf3b01496f9ce98ec5c58c595c317975f470de6da6599d5d405c60c294f12c6","contentSha256":"9a628bd867c40f8bd4753d84f5f364a5ce92fcdd73fb164977d566275580786e","fileCount":4,"name":"cors","path":"cors","size":19956,"version":"2.8.6"},{"archiveModeSha256":"0c4b2570bd695c455ca6e9f67aaabdf88b1d486e39e9e52f4b8cc0c595e08f33","contentSha256":"9666a5f3074e7ff71dab89ccc0fecd79699b6c68e85087cc3416e9b220e9369e","fileCount":9,"name":"cross-spawn","path":"cross-spawn","size":16094,"version":"7.0.6"},{"archiveModeSha256":"fd7ec5fdf7ea41f349416d375406faf41b35702e2e23f02d2c015acb72adc8f2","contentSha256":"e9f41fdd4e55dc936295270bdb7c994d9ad85dd2bd6f2fb3d46767a16ee1a03e","fileCount":7,"name":"debug","path":"debug","size":42793,"version":"4.4.3"},{"archiveModeSha256":"bb32a6d3c5b9088943cd629938024c4c8d207814db8194313063fe3844cbbc8c","contentSha256":"cfc74892a99b215bdc61d9817f90b235318267ddbf8a29ef52b2906d8b26e980","fileCount":6,"name":"depd","path":"depd","size":27117,"version":"2.0.0"},{"archiveModeSha256":"305af32d2ba2d5fe89c9acaa17537f1a06e7e131bf81112cb11d623fdbb9c6f1","contentSha256":"5c4728d83554a1fc2fd51c01cf2d30bb89adbe1c6469a52201eed72b68af0f91","fileCount":15,"name":"dunder-proto","path":"dunder-proto","size":13003,"version":"1.0.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"bae9f4988b2d279e16b4bb3e5527647300137f2978aef97f40acd1b453a8d5a7","fileCount":4,"name":"ee-first","path":"ee-first","size":6259,"version":"1.1.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1c50e3d3cd38c66e1e462f0004781f789e59959aec798aef31f9a2f049d216e5","fileCount":4,"name":"encodeurl","path":"encodeurl","size":6980,"version":"2.0.0"},{"archiveModeSha256":"fd4de57fefcfd077cce1a9e57bd1b208bf59a7da3ae9f25a7e787ab17b10490f","contentSha256":"a2dd73d6e2d58eda48469112f2eacae1fec583f84f72643b3593c6092bd3e877","fileCount":11,"name":"es-define-property","path":"es-define-property","size":10217,"version":"1.0.1"},{"archiveModeSha256":"23a440c46333c31a4ae0a1ffdc2ec6db818da1c36a039abc189b118e1bcdc625","contentSha256":"fd08a46013bf09d90a2240c6a8a97f12ff7106507456c73e7db53f608b41214e","fileCount":22,"name":"es-errors","path":"es-errors","size":12324,"version":"1.3.0"},{"archiveModeSha256":"b6b95f08bcc5f254eddbff61393e6efa09637b9fe2996a163d3c2c71c28bb681","contentSha256":"893e26d760872fd0c233391eff242a717320d6b2d6ab004ad827d1dd6c517ea5","fileCount":16,"name":"es-object-atoms","path":"es-object-atoms","size":11967,"version":"1.1.2"},{"archiveModeSha256":"764d64b5de2e2faa2387d92a5ed5dcbc1822797787a67ee46e827d4d353a2cb5","contentSha256":"27b564cee7701979ecc9ba3ad9b57c4eb185ddfe14f6fbef7961b9d95fc51789","fileCount":4,"name":"escape-html","path":"escape-html","size":3660,"version":"1.0.3"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"53b09a946276069cc9e202851404809b0b27f9616f6398ba1ba053cf27a9b61f","fileCount":5,"name":"etag","path":"etag","size":10809,"version":"1.8.1"},{"archiveModeSha256":"15cc21147f13500c581198be8a82187d7d2cd38a2c23b9459c89f22990a5b971","contentSha256":"fda71ef638beebe2ebae12fe705f63cb2276d6b35564064714ad352727e6f0a9","fileCount":13,"name":"eventsource","path":"eventsource","size":147304,"version":"3.0.7"},{"archiveModeSha256":"57e54f8cb946a2072d2c928cce29ff71a0383916edbb50e97042f859f043677f","contentSha256":"57456c2bbbfd8965c4466cf8a120581c6de9c67c1e04bf815189370f5f76ec3f","fileCount":21,"name":"eventsource-parser","path":"eventsource-parser","size":123218,"version":"3.1.0"},{"archiveModeSha256":"e882878862f5bfd4ff0cb5120df0b9e29758544fabad522563cc91a5102513a0","contentSha256":"c4cccb2f6077128bc31e51f7f772663988796261352298821eea234de1f42281","fileCount":10,"name":"express","path":"express","size":75429,"version":"5.2.1"},{"archiveModeSha256":"0f783761dfb7c14c80535b5a3d2f282398f8621985ed04be794ef3144740784e","contentSha256":"332479fcc3eaa25713fa7df0d4e3a953b7a008fde6413d4278aa667d7e4473e1","fileCount":9,"name":"express-rate-limit","path":"express-rate-limit","size":146332,"version":"8.5.2"},{"archiveModeSha256":"78e09d25ac30efc25d5604344654f3158820dbd9d45a1900b9f44e0e500839cf","contentSha256":"5ca43c0737026213eee30eb17e40859c918af2ae30f16d3882fdfbd8bcb03afd","fileCount":11,"name":"fast-deep-equal","path":"fast-deep-equal","size":12966,"version":"3.1.3"},{"archiveModeSha256":"f75ddef45cc69b6bfbcad49bde00345a7e27f27d03cd67d1083d2a334122fc1a","contentSha256":"36e796ba92bcc878b9b3c6b939c0aa1dba25e4c2ed8609f0ed748aa17c80347e","fileCount":44,"name":"fast-uri","path":"fast-uri","size":215561,"version":"3.1.6"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"a184198d4d20e0177fd4f9e5d82bc40d34143c3a8279e7200511905b08e91d1a","fileCount":5,"name":"finalhandler","path":"finalhandler","size":18111,"version":"2.1.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"5a3882ea4acfd16ac4851f43587d6ab87fd08de45665981db6e8ee5944486118","fileCount":5,"name":"forwarded","path":"forwarded","size":5876,"version":"0.2.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"c3d3cc5e56026a726c20ed1d516509608bddb667d5cc999f01cd3971a92e4406","fileCount":5,"name":"fresh","path":"fresh","size":10289,"version":"2.0.0"},{"archiveModeSha256":"6f10ab8235c8a46f648cd17681016bf68595208a48d01f1351bd0b19bcb4301c","contentSha256":"8afcdc5f094efcac14509859ce70157ec7daff89642bc5d604b235f6917dd5b0","fileCount":12,"name":"function-bind","path":"function-bind","size":31427,"version":"1.1.2"},{"archiveModeSha256":"2d4c82c10091157e0f33c6a4a049ef4b2609c8f2a6d70882fa538122b54c1ce3","contentSha256":"1b862b6fe457cd272bb8bce8407ac7f972c857ac317189afe7a29ba378f0f6ac","fileCount":9,"name":"get-intrinsic","path":"get-intrinsic","size":46542,"version":"1.3.0"},{"archiveModeSha256":"995b5a61ce2e3cb963405de061067b699b48e90eb6ce2ac0d88e88bd9c38549a","contentSha256":"3dc759afa7e26cd60cc642b39bffcbd22dd574469e4ac2174cc9b57b97599f82","fileCount":15,"name":"get-proto","path":"get-proto","size":10840,"version":"1.0.1"},{"archiveModeSha256":"169ecf4d0c444e719e5bcd4e912e3ceb193138b5ab7eef8f727798759a4331d3","contentSha256":"6f2eeeb1483b34581df01b15d1b80b2b45be2c7ce06496c72a90351194858738","fileCount":12,"name":"gopd","path":"gopd","size":9869,"version":"1.2.0"},{"archiveModeSha256":"2f2262ae382d511cef7d373ff151a1a662ae623e50cb17d3a920d9e87593011d","contentSha256":"617f42cde01c4ca5a0bdab28f544a70e5f52c8707daad05016cb789193ba0554","fileCount":16,"name":"has-symbols","path":"has-symbols","size":23409,"version":"1.1.0"},{"archiveModeSha256":"35386dc8ee83de6dc1f61324623e1d9907205a1bd2fa66b02bc7c0429bdf85cc","contentSha256":"e6b281a2b3f6100d9b44f0916c797da53c254e8a38cb357134e80eddf5181a48","fileCount":10,"name":"hasown","path":"hasown","size":10332,"version":"2.0.4"},{"archiveModeSha256":"99e1e3bd61da454d1b8c0246de7225a229c18ca896bf4e6eeacbf7563aa2a542","contentSha256":"bff461e4ab56a1a97667dd1f2cc3ceb1b30dd1a3895d2062fc6dbd427f920329","fileCount":562,"name":"hono","path":"hono","size":1357534,"version":"4.12.34"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"b34d2d8fdbf41450767591b746eb2adaa4a22b59aa55c94ef0ce65ff1ba6fe6d","fileCount":5,"name":"http-errors","path":"http-errors","size":19064,"version":"2.0.1"},{"archiveModeSha256":"086f9d977a09c672ced4c2d703944875d8db454fe8fdd7fe8882f0888ed7c20f","contentSha256":"762b205b641d142557d0b3fb5d376d571e7823473661004f6cb319b7c0603976","fileCount":27,"name":"iconv-lite","path":"iconv-lite","size":343635,"version":"0.7.2"},{"archiveModeSha256":"7b3e1bd04c00f38ad3e4f4fb20e65a4eeb707527b4fd7c84ea7764cef9cebdff","contentSha256":"7c50865fdccbf6c6b44600a997d13c0c5c215ded131f0a4c98acd8d15694e632","fileCount":5,"name":"inherits","path":"inherits","size":3958,"version":"2.0.4"},{"archiveModeSha256":"3ef444401f83c959cfda73e7e9fd50d0796f6f141f36f458a3f132b362e6c375","contentSha256":"0e8533c4762708d8f61d9a21b3fa5f10d7f4907a36609490e71edaadb1186c1e","fileCount":30,"name":"ip-address","path":"ip-address","size":299533,"version":"10.4.0"},{"archiveModeSha256":"a710aacb72996fbfa6d514e678b50cfe4d17619a71648b516a3a09a96479c2c8","contentSha256":"272599141de35d28a1e92b1aec64154c866998a44310163040e6499b6ec1d9c3","fileCount":6,"name":"ipaddr.js","path":"ipaddr.js","size":42145,"version":"1.9.1"},{"archiveModeSha256":"969b492deb1f22a61f85cf9f98cc0f7c1984c3c0fd162d3ba5a600f0f6181ed8","contentSha256":"31aa30a6fbd5f134714c0ae7bc1e4c7a00b1c5bfabd2931e92618a4121bd6fa8","fileCount":6,"name":"is-promise","path":"is-promise","size":2958,"version":"4.0.0"},{"archiveModeSha256":"8f22f331a576ff070646bb75a80918007ff2b93be80520594930dd04865a6e44","contentSha256":"a560d4935c162172bd5feede21bc62536cec616c166de516cd5c367a7ca23f98","fileCount":8,"name":"isexe","path":"isexe","size":10956,"version":"2.0.0"},{"archiveModeSha256":"ec3d3c0b513b0905f208bc029bc355c1cf7038f95e2e7b1e2d19ddac26e374ea","contentSha256":"e3633b6af5ec16f6448989dd91dad2798a190e52e7a3d16d90ceca23d52c5b35","fileCount":88,"name":"jose","path":"jose","size":257736,"version":"6.2.3"},{"archiveModeSha256":"bdba5b2b7f19b131522a9af3d6cd30db94ee97690d535e5c3c84d1bce068c2a9","contentSha256":"efcb8d289875749e930bf8f745c132edf832c0f9a25768fcd97e129851288174","fileCount":9,"name":"json-schema-typed","path":"json-schema-typed","size":197188,"version":"8.0.2"},{"archiveModeSha256":"e73b085e3825c81b36b8c4f559c8091c8a3b87751f8f1c8b8bf886fab0b2d422","contentSha256":"5cc193be9810cb46a64717935be48e9077d849553f18fe0ea118d6da4aff3663","fileCount":12,"name":"marked","path":"marked","size":429802,"version":"17.0.0"},{"archiveModeSha256":"74a40513091b687e690f49f4110e314302d0b8b3c9f196cf587c9d702c4cd7e9","contentSha256":"a4884adbf4399adaff50d30983c4afa402a1d15b56a371824ea5c7c7cab385fa","fileCount":38,"name":"math-intrinsics","path":"math-intrinsics","size":17323,"version":"1.1.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"1ec2d844bc07543d41a6ab6d78008dd2998877609cc16ba532204995fb4339c5","fileCount":5,"name":"media-typer","path":"media-typer","size":9256,"version":"1.1.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"983f0d7028b74df8828007fabcab26e7f36e42fc7db74e321a110f6f40aa3fa7","fileCount":5,"name":"merge-descriptors","path":"merge-descriptors","size":4373,"version":"2.0.0"},{"archiveModeSha256":"2cb256014f7e1eda905b4809694ab3b06e8c1f1c5b78cb4de5da514e4e57659a","contentSha256":"c979d86230ca6688633d5ef7c89397f312c6d556a1964cb8dfe33596b8b548b9","fileCount":6,"name":"mime-db","path":"mime-db","size":225566,"version":"1.54.0"},{"archiveModeSha256":"20c4497e7b68189571962123cabb12dc852bb2346c45deed91c081c899659249","contentSha256":"28ee29177b736969ce0a555c11ae5275280510007a2670dcdd7ea6b1868f46c3","fileCount":6,"name":"mime-types","path":"mime-types","size":22871,"version":"3.0.2"},{"archiveModeSha256":"20014b85b0431588ccd9c0e6c6afeffc10e21d0ee7de53e2ba2296fd52bb1a7c","contentSha256":"667f3d7d170cb303a69e67dc3a69a08255a3e5cfb8703f4904417b0362bc0d28","fileCount":4,"name":"ms","path":"ms","size":6721,"version":"2.1.3"},{"archiveModeSha256":"5602cdc50f925bdc25002fe3756f55c3e1117229d22c2b2c600e8ffca90295f6","contentSha256":"84851509ca06e7b5b721720762592fa23f696ba1d72172dbc1e692c1dfa7b567","fileCount":9,"name":"negotiator","path":"negotiator","size":28710,"version":"1.0.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"501ecc61ad148476eb5316bad6418e95bb6ed9bfc794c23fcec15bc2c592ccf1","fileCount":4,"name":"object-assign","path":"object-assign","size":5493,"version":"4.1.1"},{"archiveModeSha256":"e3c2f2fe74f79d600564d5d6af9a6bd278aee46db5e0ec18493cdc9d895e0bbf","contentSha256":"7d76d46a138318bcabde842b6a8b994da11a2e3d2e8ecbc0f8780f50e17f2ca8","fileCount":34,"name":"object-inspect","path":"object-inspect","size":102920,"version":"1.13.4"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ffb31d328870b95d8218c54f26f73d6e122847c7289052f57bf1569b0027593b","fileCount":5,"name":"on-finished","path":"on-finished","size":13679,"version":"2.4.1"},{"archiveModeSha256":"71f44c60c38bc2c3e17382504bf0dae39045eeec535cf6f4e1283e0514e8c2f4","contentSha256":"dc238bfc47820f9fb5bb56f1f3aae901657074482f52f91545784f041efb0210","fileCount":4,"name":"once","path":"once","size":4046,"version":"1.4.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"ca67e36d858cdb2f3a4eefd00d0bf7284143c1241b9ad06feec17799fc587638","fileCount":5,"name":"parseurl","path":"parseurl","size":10299,"version":"1.3.3"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a3945cbf1aaf19b6dba601c948b6522566517f9b9f4181c964d5a0d8ee34270e","fileCount":5,"name":"path-key","path":"path-key","size":4553,"version":"3.1.1"},{"archiveModeSha256":"1514e7595cbbb9d1902c24ce60454e544df780b8fc73b7967218c3491dd3cefb","contentSha256":"17d110a00db54cd903aba2283f1d027f5acfbf7ce0003590c3abeb6059b5d221","fileCount":6,"name":"path-to-regexp","path":"path-to-regexp","size":59680,"version":"8.4.2"},{"archiveModeSha256":"f0a8527de334749bd26e70302ee03517ec50ff590e93cb3ea9a45ce4124a3829","contentSha256":"d5a9fd4846acac4b5ce086c88eca29de645c535aeee06df4a99a69cf4317e397","fileCount":10,"name":"pkce-challenge","path":"pkce-challenge","size":18211,"version":"5.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d05e2db9e9d803ea440dd46461d51f482ed09978f2688eeda51a5711f1f41320","fileCount":5,"name":"proxy-addr","path":"proxy-addr","size":15399,"version":"2.0.7"},{"archiveModeSha256":"5ab250cd90dfced7c9429dd43d78846951b7b961947594e9f5175faee4c88a56","contentSha256":"fc8bdb9e912132fa5d83b22283d4f7f816f2e24a36761387e13cd942024186c1","fileCount":20,"name":"qs","path":"qs","size":374851,"version":"6.16.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"d12cb812790fa7b85393df185775b6c9ad8d05fd313f2b31cfb817d6296b1888","fileCount":5,"name":"range-parser","path":"range-parser","size":8457,"version":"1.2.1"},{"archiveModeSha256":"42cc208595e23f148383e3b4292ce5922102522b8bfd5f77417b06d1306d7aa1","contentSha256":"8f8dedbaf8d48e5de26e87910168aa505b7403e4c7739edc953cf5b25240839c","fileCount":5,"name":"raw-body","path":"raw-body","size":18495,"version":"3.0.2"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"4d281fcce32339c1f532a6e128db448b5d4c02ff371243a5c5696b40c86d3680","fileCount":4,"name":"require-from-string","path":"require-from-string","size":3422,"version":"2.0.2"},{"archiveModeSha256":"e09f32c46d1a5885aae361e487ce603fd60a9fbff1d5dcaab0f6236f971a9837","contentSha256":"99b97f87c5ffc0951428a30eea4a95cbe83f9a70122dbcc8a4b2e7634f8e8dcd","fileCount":7,"name":"router","path":"router","size":46851,"version":"2.2.0"},{"archiveModeSha256":"a462b8a4b54a0e6b8dcfc3d87612450f34478e7dc5845d4b16f239a578821a2c","contentSha256":"e075173c0c6569f0b806c5802462e19b25ed330b11040151ca5e0d8ea9e276d1","fileCount":7,"name":"safer-buffer","path":"safer-buffer","size":42299,"version":"2.1.2"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"3a396c8597fbbc013b13e4cf5dd7f05f798ee9809ad21d3966616d4f50964f02","fileCount":4,"name":"send","path":"send","size":32200,"version":"1.2.1"},{"archiveModeSha256":"9838afc4a08f6acf39bb46bba0c8cb523556b2fc61d2958c7bdcb1ae66ca13dd","contentSha256":"1724d9fc1a50078597419e4a1014f0d179522a46ed0e2a3a94b71f2f78575513","fileCount":4,"name":"serve-static","path":"serve-static","size":14335,"version":"2.2.1"},{"archiveModeSha256":"e1fd687bea7843794dae9ff84fa5a22ca00f6bea6583da85ed3e27d3d8444230","contentSha256":"db27148aba2fa1340dc867179dbccee745a7311c870a68bee4cea1e3fe2f3f8a","fileCount":6,"name":"setprototypeof","path":"setprototypeof","size":4025,"version":"1.2.0"},{"archiveModeSha256":"99458992876825b1bc4dca80d075db820436a88fcf71baefbc25db39f52760e9","contentSha256":"6754ac701a5f6a41aface06678b945984b2c4088d9c81a9beae10d2f236ebbad","fileCount":4,"name":"shebang-command","path":"shebang-command","size":2556,"version":"2.0.0"},{"archiveModeSha256":"320af631be54ba1ce035560718a037511184c1d85329f83345fbe80f2527e8c9","contentSha256":"a793c341e7bf38ef241be3075c0420da5b2c2df9c71b3aa64f16e8d80751acac","fileCount":5,"name":"shebang-regex","path":"shebang-regex","size":2828,"version":"3.0.0"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"28e3e44b391a232fea118591ef73556f7f3bd207d35a4fa6c2d8b04bf11be322","fileCount":12,"name":"side-channel","path":"side-channel","size":22864,"version":"1.1.1"},{"archiveModeSha256":"d7170194465bf2624edfb7844fea886827d0f714bb09d49567d5c7a1c3ce78c0","contentSha256":"6959587507edce3ca38987daa64c966a2f802e6ef85b8c9f96e36b51b7d63752","fileCount":13,"name":"side-channel-list","path":"side-channel-list","size":16973,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"c69ec67d49924576f5b78d598fe950d7a9464c1c61ad256cbebcda7641e1630a","fileCount":12,"name":"side-channel-map","path":"side-channel-map","size":13348,"version":"1.0.1"},{"archiveModeSha256":"0e4409f8c28db8f2663ca9ff448e6029ee7e54e7d9d11f23f416dd0b83289589","contentSha256":"3f830eae8141c06d7395d4c9ae072ae767e98aace4720762ebded0ae32fca96c","fileCount":12,"name":"side-channel-weakmap","path":"side-channel-weakmap","size":14667,"version":"1.0.2"},{"archiveModeSha256":"c0228c165b333628d8971a1ebdeb334786829db2fa1c9cb6ba374a9214cd4d11","contentSha256":"0b9e6a3e2e50328afbb9254550c688707172bd481eb1084c02af1456aa803249","fileCount":6,"name":"statuses","path":"statuses","size":12505,"version":"2.0.2"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"0c7b3b8db791f787793c0968ec6f6b9dc48d14783c4c34ada0e0475eb3c011d4","fileCount":5,"name":"toidentifier","path":"toidentifier","size":4685,"version":"1.0.1"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"79ce0363e01b714db55735699052b2534d0f6ef84d785b137323647cf779657a","fileCount":5,"name":"type-is","path":"type-is","size":21269,"version":"2.1.0"},{"archiveModeSha256":"b06c6eaf0b12f13ca2978123c3bc1ee1a6f8bacabea1533868e34accee2145ec","contentSha256":"a90e26ff6b282c4ec28742358f45cffa2a4736aceb4abc7cb558bd6fc740f73b","fileCount":6,"name":"content-type","path":"type-is/node_modules/content-type","size":20751,"version":"2.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"99534b97972283845db4ef41d39156d6720030a2307f2f0649a7f1c8fabf68c6","fileCount":5,"name":"unpipe","path":"unpipe","size":4311,"version":"1.0.0"},{"archiveModeSha256":"6deab79d9a3bed680c53dd7207c0797080f88a1f668db456501aed3105c7eea5","contentSha256":"880e12feeb6220ce4cdb0bd7f19ddb9d693666a77059502e9d667e06b3e04ce8","fileCount":5,"name":"vary","path":"vary","size":8747,"version":"1.1.2"},{"archiveModeSha256":"8fc892f4d8b9a44a1bfc252b556ebb01d424366ec71fb56f8b0fc2b81bbb5897","contentSha256":"dbe8a52a4c488ed54e7b60f93f89947ff828f9786a804b40a049152c35a47132","fileCount":5,"name":"which","path":"which","size":7308,"version":"2.0.2"},{"archiveModeSha256":"4b84777e08ccbe4ad45474b4248dc37be2c73b6467d369958cc06ca38507a13f","contentSha256":"4f5c30f228b020aca343e88dc0b15af855173a168663e687afd72c58cf586b99","fileCount":4,"name":"wrappy","path":"wrappy","size":2961,"version":"1.0.2"},{"archiveModeSha256":"b98a45815677c477e01457344c56184f50841e90f1f78c98f47d4f631140c4f3","contentSha256":"eaed4b517e605755ecde1e008133c5418c238657a3236735a1053f00b4a7e58b","fileCount":718,"name":"zod","path":"zod","size":4558122,"version":"4.4.3"},{"archiveModeSha256":"224107ce4653d3b406ca40837a05712425b14ff999773673d516eb31d8e9a34d","contentSha256":"d45857bb67c09b95d65c081b1afc095fcfd8d3e8d8bc3b57f645a1f369b1ea04","fileCount":130,"name":"zod-to-json-schema","path":"zod-to-json-schema","size":219264,"version":"3.25.2"}],"portability":"platform-independent-no-native-or-install-variance","rootDependencies":[{"name":"@modelcontextprotocol/sdk","requested":"^1.30.0"},{"name":"marked","requested":"17.0.0"}],"schemaVersion":2}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
# Runtime Activation Authority V1
|
|
1
|
+
# Runtime Activation Authority V1 and dormant stopped consumer
|
|
2
2
|
|
|
3
|
-
Ashlr exposes a signed, read-only resident activation admission contract
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Ashlr exposes a signed, read-only resident activation admission contract and a
|
|
4
|
+
separate dormant macOS stopped-release consumer. The preflight remains
|
|
5
|
+
available on every platform. Linux and Windows refuse before filesystem or
|
|
6
|
+
service observation. The stopped consumer is source-complete but its compiled
|
|
7
|
+
production trust-root array is intentionally empty, so production execution
|
|
8
|
+
fails closed unless a separately reviewed source change provisions an operator
|
|
9
|
+
public key.
|
|
8
10
|
|
|
9
11
|
## Operator trust root
|
|
10
12
|
|
|
@@ -97,16 +99,87 @@ configuration bindings, and parses both already-captured plist byte strings
|
|
|
97
99
|
through `plutil` stdin against a closed execution schema with fixed
|
|
98
100
|
`PATH=/usr/bin:/bin:/usr/sbin:/sbin`. Raw launch-receipt digests are returned as
|
|
99
101
|
diagnostic evidence but excluded from the stable admission digest because their
|
|
100
|
-
completion timestamps change between observations. The command then
|
|
101
|
-
the
|
|
102
|
+
completion timestamps change between observations. The command then passes a
|
|
103
|
+
plan only to the stopped consumer.
|
|
104
|
+
|
|
105
|
+
The consumer accepts only an independently observed immutable candidate whose
|
|
106
|
+
signed package version and tag are exactly `3.2.7` and `v3.2.7`. It requires a
|
|
107
|
+
distinct canonical Ed25519 permit at
|
|
108
|
+
`~/.ashlr/control/activation/consumer-permits/<plan-id>.json`. The permit lasts
|
|
109
|
+
at most 120 seconds and binds the exact admission and plan digests, request and
|
|
110
|
+
trust-root identities, candidate and rollback revisions, prior `current` raw
|
|
111
|
+
target, prior plist digest, `loaded=false`, and the exact prior disabled bit.
|
|
112
|
+
Runtime flags, environment variables, or plan bytes cannot add a trust root.
|
|
113
|
+
|
|
114
|
+
Before any transaction record or release mutation, the consumer requires:
|
|
115
|
+
|
|
116
|
+
- exact-private operator control custody and an already-existing read-only
|
|
117
|
+
provenance key for journal authentication;
|
|
118
|
+
- a healthy, explicitly engaged KILL switch that blocks provider effects;
|
|
119
|
+
- complete guard sources with no non-maintenance block;
|
|
120
|
+
- strict daemon state `running=false,pid=null`, quiescent activity, and zero
|
|
121
|
+
daemon roots or PPID descendants from a bounded process observation;
|
|
122
|
+
- `ASHLR_HOME`, when present, exactly equal to the operating-system account's
|
|
123
|
+
canonical `<home>/.ashlr` root, so activity, KILL, guard, and daemon-state
|
|
124
|
+
observations cannot be redirected to another tree;
|
|
125
|
+
- the outward-mutation fence followed by the daemon service-lifecycle fence;
|
|
126
|
+
- launchd observation proving the service is unloaded and the disabled bit
|
|
127
|
+
exactly matches the permit; and
|
|
128
|
+
- the exact signed prior plist and cooperative current-pointer identity.
|
|
129
|
+
|
|
130
|
+
The transaction durably claims the permit before effects and maintains an
|
|
131
|
+
HMAC-authenticated, canonical, fsynced phase journal. It replaces only the
|
|
132
|
+
already-stopped plist, verifies the disabled bit is unchanged, then performs a
|
|
133
|
+
host-local cooperative pointer CAS from the exact old symlink inode and raw
|
|
134
|
+
target to `releases/<candidate-revision>`. It revalidates maintenance, service,
|
|
135
|
+
pointer, and plist state before and after the immutable receipt. A failure
|
|
136
|
+
before settlement restores the exact prior pointer and plist while keeping the
|
|
137
|
+
service unloaded and its disabled bit unchanged. Uncertain recovery retains the
|
|
138
|
+
journal and reports reconciliation instead of claiming success.
|
|
139
|
+
|
|
140
|
+
On a later invocation, authenticated recovery runs before current plan
|
|
141
|
+
observation, permit lookup, permit expiry, or compiled-root availability. It
|
|
142
|
+
still requires both fences, healthy maintenance, exact unloaded/disabled state,
|
|
143
|
+
the HMAC-authenticated journal, and the matching immutable claim. An
|
|
144
|
+
unreceipted journal restores the prior pointer and plist; an exact immutable
|
|
145
|
+
receipt settles the candidate and removes the journal. Missing or degraded
|
|
146
|
+
claim/receipt evidence retains the journal and fails closed. Recovery therefore
|
|
147
|
+
does not mint new mutation authority and continues to work after the short-lived
|
|
148
|
+
permit expires or its permit directory is removed.
|
|
149
|
+
|
|
150
|
+
Every Buffer returned by the provenance-key loader is owned by the consumer and
|
|
151
|
+
zeroed in its own `finally` path. A recovery result carries only authenticated
|
|
152
|
+
journal-bound activation, candidate, admission, and plan identity; diagnostic
|
|
153
|
+
request, trust-root, and launch-receipt identities remain unavailable. If a
|
|
154
|
+
raced journal cannot be authenticated, every identity remains unavailable and
|
|
155
|
+
the journal is retained. Once an exact immutable receipt and exact candidate
|
|
156
|
+
state are observed, settlement is a committed `activated-stopped` success even
|
|
157
|
+
if a later response step fails; it is never reported as a contradictory blocked
|
|
158
|
+
activation.
|
|
159
|
+
|
|
160
|
+
This slice does **not** start, bootstrap, boot out, kickstart, enable, disable,
|
|
161
|
+
or acknowledge a service. It never auto-starts either candidate or rollback.
|
|
162
|
+
Starting a resident and accepting its runtime acknowledgement require a
|
|
163
|
+
separate release-bound operator permit and are outside this contract.
|
|
164
|
+
|
|
165
|
+
The pointer operation is deliberately named a **host-local cooperative pointer
|
|
166
|
+
CAS**. The lifecycle fences, exact inode/target comparison, atomic rename, and
|
|
167
|
+
post-rename verification coordinate Ashlr participants, but they are not a
|
|
168
|
+
kernel compare-exchange and do not exclude a hostile process running as the
|
|
169
|
+
same UID. A reviewed native helper with old-inode comparison remains a separate
|
|
170
|
+
prerequisite for stronger production authority. The local HMAC journal and
|
|
171
|
+
immutable records likewise do not substitute for trusted monotonic time or an
|
|
172
|
+
external monotonic replay/CAS service.
|
|
102
173
|
|
|
103
|
-
It does not stage a release, invoke `launchctl`, change a plist or service,
|
|
104
|
-
write an acknowledgement/replay/journal/dispatch record, or move `current`.
|
|
105
174
|
There is no effect, platform, clock, or home injection seam in the production
|
|
106
|
-
consumer.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
175
|
+
entrypoint or consumer graph. The shipped runtime adapter and its empty root
|
|
176
|
+
array are frozen; it exposes no registration, replacement, environment gate,
|
|
177
|
+
or test-only mutation API. Tests substitute that module only through Vitest's
|
|
178
|
+
test graph, outside `src` and outside the published package exports. The CLI
|
|
179
|
+
imports the consumer lazily only after rejecting an account-HOME mismatch.
|
|
180
|
+
`daemon install`, setup, and the worker/dashboard/web service-repair paths
|
|
181
|
+
retain their existing mutation denials. The legacy `update` workflow retains
|
|
182
|
+
its own guards and is not an activation authority; `--check` remains read-only.
|
|
110
183
|
|
|
111
184
|
## Dormant activation-bound handoff observation
|
|
112
185
|
|
|
@@ -125,25 +198,46 @@ effect, rollback, and activation permission remains false. Its host-local claim
|
|
|
125
198
|
is not an external monotonic replay authority and its receipt is not resident
|
|
126
199
|
runtime acknowledgement.
|
|
127
200
|
|
|
128
|
-
Full resident production activation requires a future native launchd v2
|
|
201
|
+
Full resident production activation still requires a future native launchd v2
|
|
129
202
|
transaction. At minimum, that consumer must add exact candidate staging and
|
|
130
203
|
Git/tag/build/tarball-to-runtime provenance, signed prior
|
|
131
204
|
version/revision/plist/package plus loaded-and-disabled state observed from the
|
|
132
205
|
native manager, trusted monotonic time, external monotonic compare-and-swap replay consumption,
|
|
133
206
|
a lifecycle lock and signed exact-keyed fsynced journal, live launchd
|
|
134
207
|
PID/start/executable/runtime acknowledgement, separate release-bound dispatch
|
|
135
|
-
authorization, pointer CAS, crash recovery at every phase, and settled-state
|
|
208
|
+
authorization, native pointer CAS, crash recovery at every resident-launch phase, and settled-state
|
|
136
209
|
revalidation. It must restore the exact signed prior resident without auto-start.
|
|
137
210
|
Until those properties have implementation and adversarial evidence, this
|
|
138
|
-
|
|
211
|
+
stopped selection must not be described as resident activation or production
|
|
212
|
+
activation completion.
|
|
213
|
+
|
|
214
|
+
## Dormant resident-start permit and exact-release ACK protocol
|
|
215
|
+
|
|
216
|
+
[`CONTRACT-M521`](./contracts/CONTRACT-M521.md) defines the separately scoped,
|
|
217
|
+
dynamic release-bound resident-start permit and canonical pre-dispatch ACK
|
|
218
|
+
frame. The ACK repeats the exact admitted release/configuration identity and
|
|
219
|
+
binds native-broker PID, process-start, audit-token, executable-vnode,
|
|
220
|
+
code-identity, launchd-generation, and challenge observations. It is evidence,
|
|
221
|
+
not authority: it cannot authenticate its own transport or source.
|
|
222
|
+
|
|
223
|
+
M521 has no CLI or effect consumer. Its compiled resident-start trust roots are
|
|
224
|
+
a frozen empty array, and its frozen production adapter always refuses with
|
|
225
|
+
`native-hostile-process-cas-unavailable`. It does not inspect HOME, call
|
|
226
|
+
launchd, spawn a process, start/install/enable a service, change `current`,
|
|
227
|
+
accept an ACK, unblock dispatch, or contact a provider. A protected native
|
|
228
|
+
broker with trusted monotonic replay/time, genuine old-inode conditional CAS,
|
|
229
|
+
authenticated peer-bound ACK transport, lifecycle recovery, exact stopped
|
|
230
|
+
rollback, and separate dispatch authorization remains the next reviewed
|
|
231
|
+
boundary.
|
|
139
232
|
|
|
140
233
|
The machine-readable preflight exposes these absent properties under
|
|
141
234
|
`nativeAuthority`. Only the separately scoped activation signing root can be
|
|
142
235
|
true after trust-root validation; every mutation/runtime authority field remains
|
|
143
|
-
false. Signed manifest fields
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
pointer
|
|
236
|
+
false. Signed manifest fields such as `prior.serviceLoaded` and
|
|
237
|
+
`prior.plistSha256` are declarations in preflight. The dormant consumer
|
|
238
|
+
separately observes only unloaded/disabled manager state and the cooperative
|
|
239
|
+
pointer/plist transaction; it does not prove a live PID, executable, resident
|
|
240
|
+
acknowledgement, or running rollback.
|
|
147
241
|
|
|
148
242
|
## Authority boundary
|
|
149
243
|
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# CONTRACT-M521: Dormant resident-start permit and exact-release ACK protocol
|
|
2
|
+
|
|
3
|
+
Status: protocol-only, dormant, and authority-free. There is no CLI, service,
|
|
4
|
+
setup, activation-transaction, launchd, install, start, pointer, rollback, or
|
|
5
|
+
provider-effect consumer.
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
M521 defines the next distinct authority boundary after M520's stopped-release
|
|
10
|
+
selector. It provides a domain-separated Ed25519 resident-start permit schema
|
|
11
|
+
and a canonical exact-release acknowledgement frame. These types make the
|
|
12
|
+
future native broker contract reviewable without pretending that JavaScript,
|
|
13
|
+
launchd output, a local file, or a PID can authenticate a resident process.
|
|
14
|
+
|
|
15
|
+
The protocol identifier is `runtime-activation-resident-start-v1`. Its permit
|
|
16
|
+
and acknowledgement domains are distinct from M502, M515, and M520.
|
|
17
|
+
|
|
18
|
+
## Resident-start permit
|
|
19
|
+
|
|
20
|
+
The permit is valid for at most 120 seconds and uses a trust-root set dedicated
|
|
21
|
+
to resident start. The compiled production set is a frozen empty array; config,
|
|
22
|
+
environment, request, and acknowledgement bytes cannot add a key.
|
|
23
|
+
|
|
24
|
+
The closed scope requests one exact macOS resident start while requiring a
|
|
25
|
+
healthy engaged KILL switch and blocked provider effects. It forbids enabling,
|
|
26
|
+
installing, pointer mutation, and dispatch. The signed bindings include:
|
|
27
|
+
|
|
28
|
+
- exact activation, M502 admission/plan/request/trust-root, and M520 stopped
|
|
29
|
+
permit/receipt identities;
|
|
30
|
+
- dynamic signed candidate revision, Git tree, version, matching release tag,
|
|
31
|
+
runtime tree, manifest, launch receipt, service descriptor, invocation, and
|
|
32
|
+
configuration digests;
|
|
33
|
+
- the already-selected `releases/<revision>` current target and the exact prior
|
|
34
|
+
unloaded/disabled launchd state;
|
|
35
|
+
- host UID, exact launchd label and target;
|
|
36
|
+
- a random 256-bit broker challenge and a bounded acknowledgement deadline.
|
|
37
|
+
|
|
38
|
+
No package version is hard-coded into M521. The version and matching tag are
|
|
39
|
+
bound from the signed admitted release so the protocol does not silently grant
|
|
40
|
+
authority to a different successor.
|
|
41
|
+
|
|
42
|
+
## Exact-release acknowledgement
|
|
43
|
+
|
|
44
|
+
The ACK is one canonical UTF-8 JSON object followed by exactly one LF and EOF.
|
|
45
|
+
It repeats the full permit binding, the domain-separated signed-permit payload
|
|
46
|
+
digest, permit/activation identity, and challenge.
|
|
47
|
+
It also carries native-broker observations for PID, non-reusable process-start
|
|
48
|
+
identity, audit token, executable vnode, code identity, and launchd job
|
|
49
|
+
generation. Its state is necessarily `pre-dispatch`, with the KILL switch
|
|
50
|
+
engaged, dispatch unauthorized, and provider effects blocked.
|
|
51
|
+
|
|
52
|
+
The protocol parser rejects accessors, exotic prototypes, missing/excess keys,
|
|
53
|
+
noncanonical JSON, duplicate-key encodings, BOM, CRLF, trailing or multiple
|
|
54
|
+
frames, malformed UTF-8, and oversized frames. Matching a frame proves only
|
|
55
|
+
that its bytes satisfy this closed evidence contract. It cannot prove that the
|
|
56
|
+
bytes came from the resident or a native broker.
|
|
57
|
+
|
|
58
|
+
Every authority bit remains false even when the signature and ACK bindings
|
|
59
|
+
verify. Canonical ACK evidence must never be accepted from an environment
|
|
60
|
+
variable, writable file, unauthenticated pipe/socket, PID-only observation, or
|
|
61
|
+
self-signed runtime claim.
|
|
62
|
+
|
|
63
|
+
## Frozen production refusal
|
|
64
|
+
|
|
65
|
+
`runtime-activation-resident-start-runtime.ts` exposes a frozen adapter and a
|
|
66
|
+
frozen empty trust-root array. Its only result is:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
native-hostile-process-cas-unavailable
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The result explicitly records that no acknowledgement was accepted, no service
|
|
73
|
+
was started or enabled, no pointer changed, and no provider effects were
|
|
74
|
+
unblocked. The adapter has no registration, replacement, environment gate,
|
|
75
|
+
test hook, launchd call, process spawn, filesystem access, or service import.
|
|
76
|
+
|
|
77
|
+
## Next reviewed native boundary
|
|
78
|
+
|
|
79
|
+
A future implementation requires a separately installed, protected native
|
|
80
|
+
broker/XPC boundary outside same-UID JavaScript authority. Its versioned IPC
|
|
81
|
+
must provide, as one crash-recoverable transaction:
|
|
82
|
+
|
|
83
|
+
1. trusted monotonic time and external monotonic one-use permit/replay CAS;
|
|
84
|
+
2. fd-relative, no-follow access to protected release, pointer, plist, journal,
|
|
85
|
+
and acknowledgement objects;
|
|
86
|
+
3. a genuine conditional old-device/inode/raw-target pointer compare-exchange,
|
|
87
|
+
not a check followed by `rename` and not an unconditional swap;
|
|
88
|
+
4. exact native launchd prior-state and job-generation observation followed by
|
|
89
|
+
bounded bootstrap/kickstart;
|
|
90
|
+
5. retained vnode, code-signature, executable, audit-token, PID, and
|
|
91
|
+
non-reusable process-start identity through exec;
|
|
92
|
+
6. a broker-owned inherited ACK descriptor or authenticated socket with peer
|
|
93
|
+
credentials, challenge, single-frame deadline, and EOF enforcement;
|
|
94
|
+
7. a signed, keyed, fsynced lifecycle journal with recovery at every phase;
|
|
95
|
+
8. exact stopped rollback restoration without auto-start; and
|
|
96
|
+
9. a separate release-bound dispatch permit after broker acceptance. The
|
|
97
|
+
daemon must remain pre-dispatch under the healthy KILL switch until then.
|
|
98
|
+
|
|
99
|
+
macOS `renameatx_np(RENAME_SWAP)` alone is insufficient: it swaps names
|
|
100
|
+
atomically but does not condition the operation on the previously observed
|
|
101
|
+
destination inode. An unprivileged helper under the same UID cannot exclude a
|
|
102
|
+
hostile same-UID process from racing or replaying local state.
|