run402-mcp 4.97.0 → 4.99.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -246
- package/core/dist/binding-file.d.ts +14 -0
- package/core/dist/binding-file.d.ts.map +1 -1
- package/core/dist/binding-file.js +28 -1
- package/core/dist/binding-file.js.map +1 -1
- package/core/dist/wallet.js +3 -3
- package/dist/docs/llms-sdk.txt +3026 -0
- package/dist/docs/run.md +98 -0
- package/dist/errors.d.ts +3 -9
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +62 -15
- package/dist/errors.js.map +1 -1
- package/dist/index.js +71 -517
- package/dist/index.js.map +1 -1
- package/dist/sandbox-proxy.d.ts +81 -0
- package/dist/sandbox-proxy.d.ts.map +1 -0
- package/dist/sandbox-proxy.js +504 -0
- package/dist/sandbox-proxy.js.map +1 -0
- package/dist/sandbox.d.ts +119 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +646 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/sdk.d.ts +13 -4
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +24 -4
- package/dist/sdk.js.map +1 -1
- package/dist/structured.d.ts +6238 -0
- package/dist/structured.d.ts.map +1 -0
- package/dist/structured.js +238 -0
- package/dist/structured.js.map +1 -0
- package/dist/tools/deploy.d.ts +19 -24
- package/dist/tools/deploy.d.ts.map +1 -1
- package/dist/tools/deploy.js +17 -6
- package/dist/tools/deploy.js.map +1 -1
- package/dist/tools/docs.d.ts +32 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/docs.js +228 -0
- package/dist/tools/docs.js.map +1 -0
- package/dist/tools/doctor.d.ts +16 -0
- package/dist/tools/doctor.d.ts.map +1 -0
- package/dist/tools/doctor.js +31 -0
- package/dist/tools/doctor.js.map +1 -0
- package/dist/tools/expand-result.d.ts +1 -8
- package/dist/tools/expand-result.d.ts.map +1 -1
- package/dist/tools/expand-result.js +24 -16
- package/dist/tools/expand-result.js.map +1 -1
- package/dist/tools/run.d.ts +78 -0
- package/dist/tools/run.d.ts.map +1 -0
- package/dist/tools/run.js +258 -0
- package/dist/tools/run.js.map +1 -0
- package/dist/tools/status.d.ts +10 -9
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +24 -95
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/up.d.ts +2 -9
- package/dist/tools/up.d.ts.map +1 -1
- package/dist/tools/up.js +8 -9
- package/dist/tools/up.js.map +1 -1
- package/dist/tools/whoami.d.ts +13 -0
- package/dist/tools/whoami.d.ts.map +1 -0
- package/dist/tools/whoami.js +35 -0
- package/dist/tools/whoami.js.map +1 -0
- package/dist/wallet-auth.d.ts +2 -7
- package/dist/wallet-auth.d.ts.map +1 -1
- package/dist/wallet-auth.js +9 -14
- package/dist/wallet-auth.js.map +1 -1
- package/package.json +7 -5
- package/sdk/README.md +2 -2
- package/sdk/core-dist/binding-file.d.ts +14 -0
- package/sdk/core-dist/binding-file.js +28 -1
- package/sdk/core-dist/wallet.js +3 -3
- package/sdk/dist/errors.d.ts +24 -2
- package/sdk/dist/errors.d.ts.map +1 -1
- package/sdk/dist/errors.js +44 -2
- package/sdk/dist/errors.js.map +1 -1
- package/sdk/dist/index.d.ts +18 -3
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +12 -1
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/kernel.d.ts +34 -0
- package/sdk/dist/kernel.d.ts.map +1 -1
- package/sdk/dist/kernel.js +15 -1
- package/sdk/dist/kernel.js.map +1 -1
- package/sdk/dist/namespaces/admin.d.ts.map +1 -1
- package/sdk/dist/namespaces/admin.js +8 -0
- package/sdk/dist/namespaces/admin.js.map +1 -1
- package/sdk/dist/namespaces/agent.d.ts +2 -2
- package/sdk/dist/namespaces/agent.d.ts.map +1 -1
- package/sdk/dist/namespaces/agent.js +4 -0
- package/sdk/dist/namespaces/agent.js.map +1 -1
- package/sdk/dist/namespaces/agent.types.d.ts +5 -0
- package/sdk/dist/namespaces/agent.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/apps.d.ts.map +1 -1
- package/sdk/dist/namespaces/apps.js +2 -0
- package/sdk/dist/namespaces/apps.js.map +1 -1
- package/sdk/dist/namespaces/auth.d.ts.map +1 -1
- package/sdk/dist/namespaces/auth.js +9 -0
- package/sdk/dist/namespaces/auth.js.map +1 -1
- package/sdk/dist/namespaces/branches.d.ts.map +1 -1
- package/sdk/dist/namespaces/branches.js +2 -0
- package/sdk/dist/namespaces/branches.js.map +1 -1
- package/sdk/dist/namespaces/ci.d.ts.map +1 -1
- package/sdk/dist/namespaces/ci.js +2 -0
- package/sdk/dist/namespaces/ci.js.map +1 -1
- package/sdk/dist/namespaces/credentials.d.ts +0 -23
- package/sdk/dist/namespaces/credentials.d.ts.map +1 -1
- package/sdk/dist/namespaces/credentials.js +29 -0
- package/sdk/dist/namespaces/credentials.js.map +1 -1
- package/sdk/dist/namespaces/escalations.d.ts.map +1 -1
- package/sdk/dist/namespaces/escalations.js +2 -0
- package/sdk/dist/namespaces/escalations.js.map +1 -1
- package/sdk/dist/namespaces/grants.d.ts.map +1 -1
- package/sdk/dist/namespaces/grants.js +4 -0
- package/sdk/dist/namespaces/grants.js.map +1 -1
- package/sdk/dist/namespaces/live.d.ts +0 -16
- package/sdk/dist/namespaces/live.d.ts.map +1 -1
- package/sdk/dist/namespaces/live.js +19 -0
- package/sdk/dist/namespaces/live.js.map +1 -1
- package/sdk/dist/namespaces/me.d.ts.map +1 -1
- package/sdk/dist/namespaces/me.js +3 -0
- package/sdk/dist/namespaces/me.js.map +1 -1
- package/sdk/dist/namespaces/org.d.ts.map +1 -1
- package/sdk/dist/namespaces/org.js +3 -0
- package/sdk/dist/namespaces/org.js.map +1 -1
- package/sdk/dist/namespaces/projects.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.js +5 -0
- package/sdk/dist/namespaces/projects.js.map +1 -1
- package/sdk/dist/namespaces/repos.d.ts.map +1 -1
- package/sdk/dist/namespaces/repos.js +5 -0
- package/sdk/dist/namespaces/repos.js.map +1 -1
- package/sdk/dist/namespaces/rooms.d.ts.map +1 -1
- package/sdk/dist/namespaces/rooms.js +3 -0
- package/sdk/dist/namespaces/rooms.js.map +1 -1
- package/sdk/dist/namespaces/session.d.ts.map +1 -1
- package/sdk/dist/namespaces/session.js +18 -0
- package/sdk/dist/namespaces/session.js.map +1 -1
- package/sdk/dist/namespaces/transfers.d.ts.map +1 -1
- package/sdk/dist/namespaces/transfers.js +3 -0
- package/sdk/dist/namespaces/transfers.js.map +1 -1
- package/sdk/dist/namespaces/wallets.d.ts.map +1 -1
- package/sdk/dist/namespaces/wallets.js +2 -0
- package/sdk/dist/namespaces/wallets.js.map +1 -1
- package/sdk/dist/namespaces/write-approval.d.ts.map +1 -1
- package/sdk/dist/namespaces/write-approval.js +3 -0
- package/sdk/dist/namespaces/write-approval.js.map +1 -1
- package/sdk/dist/node/actions-node.d.ts.map +1 -1
- package/sdk/dist/node/actions-node.js +3 -0
- package/sdk/dist/node/actions-node.js.map +1 -1
- package/sdk/dist/node/buzz-doctor-contract.d.ts +155 -0
- package/sdk/dist/node/buzz-doctor-contract.d.ts.map +1 -0
- package/sdk/dist/node/buzz-doctor-contract.js +385 -0
- package/sdk/dist/node/buzz-doctor-contract.js.map +1 -0
- package/sdk/dist/node/buzz-doctor.d.ts +155 -0
- package/sdk/dist/node/buzz-doctor.d.ts.map +1 -0
- package/sdk/dist/node/buzz-doctor.js +810 -0
- package/sdk/dist/node/buzz-doctor.js.map +1 -0
- package/sdk/dist/node/credentials.d.ts +9 -4
- package/sdk/dist/node/credentials.d.ts.map +1 -1
- package/sdk/dist/node/credentials.js +1 -1
- package/sdk/dist/node/credentials.js.map +1 -1
- package/sdk/dist/node/diagnostics.d.ts +45 -0
- package/sdk/dist/node/diagnostics.d.ts.map +1 -0
- package/sdk/dist/node/diagnostics.js +67 -0
- package/sdk/dist/node/diagnostics.js.map +1 -0
- package/sdk/dist/node/doctor.d.ts +101 -0
- package/sdk/dist/node/doctor.d.ts.map +1 -0
- package/sdk/dist/node/doctor.js +618 -0
- package/sdk/dist/node/doctor.js.map +1 -0
- package/sdk/dist/node/index.d.ts +57 -5
- package/sdk/dist/node/index.d.ts.map +1 -1
- package/sdk/dist/node/index.js +36 -1
- package/sdk/dist/node/index.js.map +1 -1
- package/sdk/dist/node/init.d.ts +137 -0
- package/sdk/dist/node/init.d.ts.map +1 -0
- package/sdk/dist/node/init.js +507 -0
- package/sdk/dist/node/init.js.map +1 -0
- package/sdk/dist/node/lightning-wallet.d.ts +61 -0
- package/sdk/dist/node/lightning-wallet.d.ts.map +1 -0
- package/sdk/dist/node/lightning-wallet.js +126 -0
- package/sdk/dist/node/lightning-wallet.js.map +1 -0
- package/sdk/dist/node/local-actions.d.ts +23 -0
- package/sdk/dist/node/local-actions.d.ts.map +1 -0
- package/sdk/dist/node/local-actions.js +38 -0
- package/sdk/dist/node/local-actions.js.map +1 -0
- package/sdk/dist/node/org-context.d.ts +169 -0
- package/sdk/dist/node/org-context.d.ts.map +1 -0
- package/sdk/dist/node/org-context.js +403 -0
- package/sdk/dist/node/org-context.js.map +1 -0
- package/sdk/dist/node/status.d.ts +62 -0
- package/sdk/dist/node/status.d.ts.map +1 -0
- package/sdk/dist/node/status.js +132 -0
- package/sdk/dist/node/status.js.map +1 -0
- package/sdk/dist/node/vault-target.d.ts +49 -0
- package/sdk/dist/node/vault-target.d.ts.map +1 -0
- package/sdk/dist/node/vault-target.js +109 -0
- package/sdk/dist/node/vault-target.js.map +1 -0
- package/sdk/dist/node/wallets.d.ts +242 -0
- package/sdk/dist/node/wallets.d.ts.map +1 -0
- package/sdk/dist/node/wallets.js +484 -0
- package/sdk/dist/node/wallets.js.map +1 -0
- package/sdk/dist/secret-gate.d.ts +377 -0
- package/sdk/dist/secret-gate.d.ts.map +1 -0
- package/sdk/dist/secret-gate.js +273 -0
- package/sdk/dist/secret-gate.js.map +1 -0
- package/dist/active-project.d.ts +0 -3
- package/dist/active-project.d.ts.map +0 -1
- package/dist/active-project.js +0 -36
- package/dist/active-project.js.map +0 -1
- package/dist/format-bytes.d.ts +0 -2
- package/dist/format-bytes.d.ts.map +0 -1
- package/dist/format-bytes.js +0 -24
- package/dist/format-bytes.js.map +0 -1
- package/dist/harness-context.d.ts +0 -126
- package/dist/harness-context.d.ts.map +0 -1
- package/dist/harness-context.js +0 -283
- package/dist/harness-context.js.map +0 -1
- package/dist/tool-profiles.d.ts +0 -52
- package/dist/tool-profiles.d.ts.map +0 -1
- package/dist/tool-profiles.js +0 -77
- package/dist/tool-profiles.js.map +0 -1
- package/dist/tools/ack-room-message.d.ts +0 -22
- package/dist/tools/ack-room-message.d.ts.map +0 -1
- package/dist/tools/ack-room-message.js +0 -29
- package/dist/tools/ack-room-message.js.map +0 -1
- package/dist/tools/admin-archive-project.d.ts +0 -16
- package/dist/tools/admin-archive-project.d.ts.map +0 -1
- package/dist/tools/admin-archive-project.js +0 -41
- package/dist/tools/admin-archive-project.js.map +0 -1
- package/dist/tools/admin-reactivate-project.d.ts +0 -14
- package/dist/tools/admin-reactivate-project.d.ts.map +0 -1
- package/dist/tools/admin-reactivate-project.js +0 -35
- package/dist/tools/admin-reactivate-project.js.map +0 -1
- package/dist/tools/admin-set-lease-perpetual.d.ts +0 -16
- package/dist/tools/admin-set-lease-perpetual.d.ts.map +0 -1
- package/dist/tools/admin-set-lease-perpetual.js +0 -34
- package/dist/tools/admin-set-lease-perpetual.js.map +0 -1
- package/dist/tools/ai-moderate.d.ts +0 -16
- package/dist/tools/ai-moderate.d.ts.map +0 -1
- package/dist/tools/ai-moderate.js +0 -29
- package/dist/tools/ai-moderate.js.map +0 -1
- package/dist/tools/ai-translate.d.ts +0 -22
- package/dist/tools/ai-translate.d.ts.map +0 -1
- package/dist/tools/ai-translate.js +0 -50
- package/dist/tools/ai-translate.js.map +0 -1
- package/dist/tools/ai-usage.d.ts +0 -14
- package/dist/tools/ai-usage.d.ts.map +0 -1
- package/dist/tools/ai-usage.js +0 -33
- package/dist/tools/ai-usage.js.map +0 -1
- package/dist/tools/apply-expose.d.ts +0 -135
- package/dist/tools/apply-expose.d.ts.map +0 -1
- package/dist/tools/apply-expose.js +0 -73
- package/dist/tools/apply-expose.js.map +0 -1
- package/dist/tools/assets-diagnose.d.ts +0 -30
- package/dist/tools/assets-diagnose.d.ts.map +0 -1
- package/dist/tools/assets-diagnose.js +0 -65
- package/dist/tools/assets-diagnose.js.map +0 -1
- package/dist/tools/assets-get.d.ts +0 -20
- package/dist/tools/assets-get.d.ts.map +0 -1
- package/dist/tools/assets-get.js +0 -44
- package/dist/tools/assets-get.js.map +0 -1
- package/dist/tools/assets-ls.d.ts +0 -54
- package/dist/tools/assets-ls.d.ts.map +0 -1
- package/dist/tools/assets-ls.js +0 -81
- package/dist/tools/assets-ls.js.map +0 -1
- package/dist/tools/assets-put.d.ts +0 -32
- package/dist/tools/assets-put.d.ts.map +0 -1
- package/dist/tools/assets-put.js +0 -117
- package/dist/tools/assets-put.js.map +0 -1
- package/dist/tools/assets-rm.d.ts +0 -18
- package/dist/tools/assets-rm.d.ts.map +0 -1
- package/dist/tools/assets-rm.js +0 -17
- package/dist/tools/assets-rm.js.map +0 -1
- package/dist/tools/assets-sign.d.ts +0 -20
- package/dist/tools/assets-sign.d.ts.map +0 -1
- package/dist/tools/assets-sign.js +0 -25
- package/dist/tools/assets-sign.js.map +0 -1
- package/dist/tools/assets-wait-fresh.d.ts +0 -30
- package/dist/tools/assets-wait-fresh.d.ts.map +0 -1
- package/dist/tools/assets-wait-fresh.js +0 -51
- package/dist/tools/assets-wait-fresh.js.map +0 -1
- package/dist/tools/auth-settings.d.ts +0 -24
- package/dist/tools/auth-settings.d.ts.map +0 -1
- package/dist/tools/auth-settings.js +0 -42
- package/dist/tools/auth-settings.js.map +0 -1
- package/dist/tools/auth-users.d.ts +0 -40
- package/dist/tools/auth-users.d.ts.map +0 -1
- package/dist/tools/auth-users.js +0 -77
- package/dist/tools/auth-users.js.map +0 -1
- package/dist/tools/billing-history.d.ts +0 -16
- package/dist/tools/billing-history.d.ts.map +0 -1
- package/dist/tools/billing-history.js +0 -34
- package/dist/tools/billing-history.js.map +0 -1
- package/dist/tools/browse-apps.d.ts +0 -14
- package/dist/tools/browse-apps.d.ts.map +0 -1
- package/dist/tools/browse-apps.js +0 -37
- package/dist/tools/browse-apps.js.map +0 -1
- package/dist/tools/buzz-route-deliveries.d.ts +0 -27
- package/dist/tools/buzz-route-deliveries.d.ts.map +0 -1
- package/dist/tools/buzz-route-deliveries.js +0 -68
- package/dist/tools/buzz-route-deliveries.js.map +0 -1
- package/dist/tools/check-balance.d.ts +0 -14
- package/dist/tools/check-balance.d.ts.map +0 -1
- package/dist/tools/check-balance.js +0 -31
- package/dist/tools/check-balance.js.map +0 -1
- package/dist/tools/ci.d.ts +0 -52
- package/dist/tools/ci.d.ts.map +0 -1
- package/dist/tools/ci.js +0 -150
- package/dist/tools/ci.js.map +0 -1
- package/dist/tools/claim-room-resource.d.ts +0 -28
- package/dist/tools/claim-room-resource.d.ts.map +0 -1
- package/dist/tools/claim-room-resource.js +0 -36
- package/dist/tools/claim-room-resource.js.map +0 -1
- package/dist/tools/contract-call.d.ts +0 -30
- package/dist/tools/contract-call.d.ts.map +0 -1
- package/dist/tools/contract-call.js +0 -33
- package/dist/tools/contract-call.js.map +0 -1
- package/dist/tools/contract-deploy.d.ts +0 -24
- package/dist/tools/contract-deploy.d.ts.map +0 -1
- package/dist/tools/contract-deploy.js +0 -36
- package/dist/tools/contract-deploy.js.map +0 -1
- package/dist/tools/contract-read.d.ts +0 -22
- package/dist/tools/contract-read.d.ts.map +0 -1
- package/dist/tools/contract-read.js +0 -26
- package/dist/tools/contract-read.js.map +0 -1
- package/dist/tools/create-checkout.d.ts +0 -24
- package/dist/tools/create-checkout.d.ts.map +0 -1
- package/dist/tools/create-checkout.js +0 -58
- package/dist/tools/create-checkout.js.map +0 -1
- package/dist/tools/create-email-organization.d.ts +0 -14
- package/dist/tools/create-email-organization.d.ts.map +0 -1
- package/dist/tools/create-email-organization.js +0 -21
- package/dist/tools/create-email-organization.js.map +0 -1
- package/dist/tools/create-mailbox.d.ts +0 -16
- package/dist/tools/create-mailbox.d.ts.map +0 -1
- package/dist/tools/create-mailbox.js +0 -61
- package/dist/tools/create-mailbox.js.map +0 -1
- package/dist/tools/create-notification-rule.d.ts +0 -22
- package/dist/tools/create-notification-rule.d.ts.map +0 -1
- package/dist/tools/create-notification-rule.js +0 -41
- package/dist/tools/create-notification-rule.js.map +0 -1
- package/dist/tools/delete-function.d.ts +0 -16
- package/dist/tools/delete-function.d.ts.map +0 -1
- package/dist/tools/delete-function.js +0 -24
- package/dist/tools/delete-function.js.map +0 -1
- package/dist/tools/delete-mailbox-webhook.d.ts +0 -18
- package/dist/tools/delete-mailbox-webhook.d.ts.map +0 -1
- package/dist/tools/delete-mailbox-webhook.js +0 -25
- package/dist/tools/delete-mailbox-webhook.js.map +0 -1
- package/dist/tools/delete-mailbox.d.ts +0 -18
- package/dist/tools/delete-mailbox.d.ts.map +0 -1
- package/dist/tools/delete-mailbox.js +0 -41
- package/dist/tools/delete-mailbox.js.map +0 -1
- package/dist/tools/delete-notification-rule.d.ts +0 -14
- package/dist/tools/delete-notification-rule.d.ts.map +0 -1
- package/dist/tools/delete-notification-rule.js +0 -20
- package/dist/tools/delete-notification-rule.js.map +0 -1
- package/dist/tools/delete-project.d.ts +0 -14
- package/dist/tools/delete-project.d.ts.map +0 -1
- package/dist/tools/delete-project.js +0 -25
- package/dist/tools/delete-project.js.map +0 -1
- package/dist/tools/delete-secret.d.ts +0 -16
- package/dist/tools/delete-secret.d.ts.map +0 -1
- package/dist/tools/delete-secret.js +0 -24
- package/dist/tools/delete-secret.js.map +0 -1
- package/dist/tools/delete-signer.d.ts +0 -16
- package/dist/tools/delete-signer.d.ts.map +0 -1
- package/dist/tools/delete-signer.js +0 -17
- package/dist/tools/delete-signer.js.map +0 -1
- package/dist/tools/delete-version.d.ts +0 -16
- package/dist/tools/delete-version.d.ts.map +0 -1
- package/dist/tools/delete-version.js +0 -17
- package/dist/tools/delete-version.js.map +0 -1
- package/dist/tools/demote-user.d.ts +0 -16
- package/dist/tools/demote-user.d.ts.map +0 -1
- package/dist/tools/demote-user.js +0 -24
- package/dist/tools/demote-user.js.map +0 -1
- package/dist/tools/deploy-events.d.ts +0 -25
- package/dist/tools/deploy-events.d.ts.map +0 -1
- package/dist/tools/deploy-events.js +0 -69
- package/dist/tools/deploy-events.js.map +0 -1
- package/dist/tools/deploy-function.d.ts +0 -36
- package/dist/tools/deploy-function.d.ts.map +0 -1
- package/dist/tools/deploy-function.js +0 -91
- package/dist/tools/deploy-function.js.map +0 -1
- package/dist/tools/deploy-list.d.ts +0 -25
- package/dist/tools/deploy-list.d.ts.map +0 -1
- package/dist/tools/deploy-list.js +0 -71
- package/dist/tools/deploy-list.js.map +0 -1
- package/dist/tools/deploy-rehearse.d.ts +0 -22
- package/dist/tools/deploy-rehearse.d.ts.map +0 -1
- package/dist/tools/deploy-rehearse.js +0 -76
- package/dist/tools/deploy-rehearse.js.map +0 -1
- package/dist/tools/deploy-releases.d.ts +0 -55
- package/dist/tools/deploy-releases.d.ts.map +0 -1
- package/dist/tools/deploy-releases.js +0 -168
- package/dist/tools/deploy-releases.js.map +0 -1
- package/dist/tools/deploy-resolve.d.ts +0 -27
- package/dist/tools/deploy-resolve.d.ts.map +0 -1
- package/dist/tools/deploy-resolve.js +0 -129
- package/dist/tools/deploy-resolve.js.map +0 -1
- package/dist/tools/deploy-resume.d.ts +0 -22
- package/dist/tools/deploy-resume.d.ts.map +0 -1
- package/dist/tools/deploy-resume.js +0 -80
- package/dist/tools/deploy-resume.js.map +0 -1
- package/dist/tools/deploy-site-dir.d.ts +0 -16
- package/dist/tools/deploy-site-dir.d.ts.map +0 -1
- package/dist/tools/deploy-site-dir.js +0 -77
- package/dist/tools/deploy-site-dir.js.map +0 -1
- package/dist/tools/deploy-site.d.ts +0 -32
- package/dist/tools/deploy-site.d.ts.map +0 -1
- package/dist/tools/deploy-site.js +0 -65
- package/dist/tools/deploy-site.js.map +0 -1
- package/dist/tools/deploy-verify-edge.d.ts +0 -24
- package/dist/tools/deploy-verify-edge.d.ts.map +0 -1
- package/dist/tools/deploy-verify-edge.js +0 -120
- package/dist/tools/deploy-verify-edge.js.map +0 -1
- package/dist/tools/domains.d.ts +0 -84
- package/dist/tools/domains.d.ts.map +0 -1
- package/dist/tools/domains.js +0 -134
- package/dist/tools/domains.js.map +0 -1
- package/dist/tools/drain-signer.d.ts +0 -18
- package/dist/tools/drain-signer.d.ts.map +0 -1
- package/dist/tools/drain-signer.js +0 -18
- package/dist/tools/drain-signer.js.map +0 -1
- package/dist/tools/errors-list.d.ts +0 -43
- package/dist/tools/errors-list.d.ts.map +0 -1
- package/dist/tools/errors-list.js +0 -79
- package/dist/tools/errors-list.js.map +0 -1
- package/dist/tools/escalations-shared.d.ts +0 -13
- package/dist/tools/escalations-shared.d.ts.map +0 -1
- package/dist/tools/escalations-shared.js +0 -32
- package/dist/tools/escalations-shared.js.map +0 -1
- package/dist/tools/fork-app.d.ts +0 -18
- package/dist/tools/fork-app.d.ts.map +0 -1
- package/dist/tools/fork-app.js +0 -45
- package/dist/tools/fork-app.js.map +0 -1
- package/dist/tools/function-runs.d.ts +0 -172
- package/dist/tools/function-runs.d.ts.map +0 -1
- package/dist/tools/function-runs.js +0 -243
- package/dist/tools/function-runs.js.map +0 -1
- package/dist/tools/functions-rebuild.d.ts +0 -16
- package/dist/tools/functions-rebuild.d.ts.map +0 -1
- package/dist/tools/functions-rebuild.js +0 -75
- package/dist/tools/functions-rebuild.js.map +0 -1
- package/dist/tools/generate-image.d.ts +0 -20
- package/dist/tools/generate-image.d.ts.map +0 -1
- package/dist/tools/generate-image.js +0 -113
- package/dist/tools/generate-image.js.map +0 -1
- package/dist/tools/get-agent-contact-status.d.ts +0 -9
- package/dist/tools/get-agent-contact-status.d.ts.map +0 -1
- package/dist/tools/get-agent-contact-status.js +0 -18
- package/dist/tools/get-agent-contact-status.js.map +0 -1
- package/dist/tools/get-app.d.ts +0 -14
- package/dist/tools/get-app.d.ts.map +0 -1
- package/dist/tools/get-app.js +0 -42
- package/dist/tools/get-app.js.map +0 -1
- package/dist/tools/get-buzz-route.d.ts +0 -26
- package/dist/tools/get-buzz-route.d.ts.map +0 -1
- package/dist/tools/get-buzz-route.js +0 -100
- package/dist/tools/get-buzz-route.js.map +0 -1
- package/dist/tools/get-contract-call-status.d.ts +0 -16
- package/dist/tools/get-contract-call-status.d.ts.map +0 -1
- package/dist/tools/get-contract-call-status.js +0 -17
- package/dist/tools/get-contract-call-status.js.map +0 -1
- package/dist/tools/get-email-raw.d.ts +0 -29
- package/dist/tools/get-email-raw.d.ts.map +0 -1
- package/dist/tools/get-email-raw.js +0 -54
- package/dist/tools/get-email-raw.js.map +0 -1
- package/dist/tools/get-email.d.ts +0 -18
- package/dist/tools/get-email.d.ts.map +0 -1
- package/dist/tools/get-email.js +0 -43
- package/dist/tools/get-email.js.map +0 -1
- package/dist/tools/get-escalation.d.ts +0 -25
- package/dist/tools/get-escalation.d.ts.map +0 -1
- package/dist/tools/get-escalation.js +0 -74
- package/dist/tools/get-escalation.js.map +0 -1
- package/dist/tools/get-expose.d.ts +0 -14
- package/dist/tools/get-expose.d.ts.map +0 -1
- package/dist/tools/get-expose.js +0 -36
- package/dist/tools/get-expose.js.map +0 -1
- package/dist/tools/get-function-logs.d.ts +0 -25
- package/dist/tools/get-function-logs.d.ts.map +0 -1
- package/dist/tools/get-function-logs.js +0 -143
- package/dist/tools/get-function-logs.js.map +0 -1
- package/dist/tools/get-mailbox-webhook.d.ts +0 -18
- package/dist/tools/get-mailbox-webhook.d.ts.map +0 -1
- package/dist/tools/get-mailbox-webhook.js +0 -30
- package/dist/tools/get-mailbox-webhook.js.map +0 -1
- package/dist/tools/get-mailbox.d.ts +0 -16
- package/dist/tools/get-mailbox.d.ts.map +0 -1
- package/dist/tools/get-mailbox.js +0 -65
- package/dist/tools/get-mailbox.js.map +0 -1
- package/dist/tools/get-notification-preferences.d.ts +0 -9
- package/dist/tools/get-notification-preferences.d.ts.map +0 -1
- package/dist/tools/get-notification-preferences.js +0 -17
- package/dist/tools/get-notification-preferences.js.map +0 -1
- package/dist/tools/get-quote.d.ts +0 -9
- package/dist/tools/get-quote.d.ts.map +0 -1
- package/dist/tools/get-quote.js +0 -24
- package/dist/tools/get-quote.js.map +0 -1
- package/dist/tools/get-room.d.ts +0 -20
- package/dist/tools/get-room.d.ts.map +0 -1
- package/dist/tools/get-room.js +0 -25
- package/dist/tools/get-room.js.map +0 -1
- package/dist/tools/get-schema.d.ts +0 -14
- package/dist/tools/get-schema.d.ts.map +0 -1
- package/dist/tools/get-schema.js +0 -72
- package/dist/tools/get-schema.js.map +0 -1
- package/dist/tools/get-signer.d.ts +0 -16
- package/dist/tools/get-signer.d.ts.map +0 -1
- package/dist/tools/get-signer.js +0 -17
- package/dist/tools/get-signer.js.map +0 -1
- package/dist/tools/get-usage.d.ts +0 -14
- package/dist/tools/get-usage.d.ts.map +0 -1
- package/dist/tools/get-usage.js +0 -41
- package/dist/tools/get-usage.js.map +0 -1
- package/dist/tools/grants.d.ts +0 -56
- package/dist/tools/grants.d.ts.map +0 -1
- package/dist/tools/grants.js +0 -99
- package/dist/tools/grants.js.map +0 -1
- package/dist/tools/init.d.ts +0 -16
- package/dist/tools/init.d.ts.map +0 -1
- package/dist/tools/init.js +0 -186
- package/dist/tools/init.js.map +0 -1
- package/dist/tools/invoke-function.d.ts +0 -30
- package/dist/tools/invoke-function.d.ts.map +0 -1
- package/dist/tools/invoke-function.js +0 -77
- package/dist/tools/invoke-function.js.map +0 -1
- package/dist/tools/jobs.d.ts +0 -124
- package/dist/tools/jobs.d.ts.map +0 -1
- package/dist/tools/jobs.js +0 -160
- package/dist/tools/jobs.js.map +0 -1
- package/dist/tools/join-room.d.ts +0 -24
- package/dist/tools/join-room.d.ts.map +0 -1
- package/dist/tools/join-room.js +0 -59
- package/dist/tools/join-room.js.map +0 -1
- package/dist/tools/leave-room.d.ts +0 -22
- package/dist/tools/leave-room.d.ts.map +0 -1
- package/dist/tools/leave-room.js +0 -40
- package/dist/tools/leave-room.js.map +0 -1
- package/dist/tools/lightning-topup.d.ts +0 -28
- package/dist/tools/lightning-topup.d.ts.map +0 -1
- package/dist/tools/lightning-topup.js +0 -57
- package/dist/tools/lightning-topup.js.map +0 -1
- package/dist/tools/lightning-wallet.d.ts +0 -21
- package/dist/tools/lightning-wallet.d.ts.map +0 -1
- package/dist/tools/lightning-wallet.js +0 -91
- package/dist/tools/lightning-wallet.js.map +0 -1
- package/dist/tools/link-wallet-to-organization.d.ts +0 -16
- package/dist/tools/link-wallet-to-organization.d.ts.map +0 -1
- package/dist/tools/link-wallet-to-organization.js +0 -41
- package/dist/tools/link-wallet-to-organization.js.map +0 -1
- package/dist/tools/list-emails.d.ts +0 -22
- package/dist/tools/list-emails.d.ts.map +0 -1
- package/dist/tools/list-emails.js +0 -54
- package/dist/tools/list-emails.js.map +0 -1
- package/dist/tools/list-functions.d.ts +0 -14
- package/dist/tools/list-functions.d.ts.map +0 -1
- package/dist/tools/list-functions.js +0 -115
- package/dist/tools/list-functions.js.map +0 -1
- package/dist/tools/list-mailbox-webhook-deliveries.d.ts +0 -22
- package/dist/tools/list-mailbox-webhook-deliveries.d.ts.map +0 -1
- package/dist/tools/list-mailbox-webhook-deliveries.js +0 -52
- package/dist/tools/list-mailbox-webhook-deliveries.js.map +0 -1
- package/dist/tools/list-mailbox-webhooks.d.ts +0 -16
- package/dist/tools/list-mailbox-webhooks.d.ts.map +0 -1
- package/dist/tools/list-mailbox-webhooks.js +0 -28
- package/dist/tools/list-mailbox-webhooks.js.map +0 -1
- package/dist/tools/list-mailboxes.d.ts +0 -14
- package/dist/tools/list-mailboxes.d.ts.map +0 -1
- package/dist/tools/list-mailboxes.js +0 -58
- package/dist/tools/list-mailboxes.js.map +0 -1
- package/dist/tools/list-notification-channels.d.ts +0 -9
- package/dist/tools/list-notification-channels.d.ts.map +0 -1
- package/dist/tools/list-notification-channels.js +0 -17
- package/dist/tools/list-notification-channels.js.map +0 -1
- package/dist/tools/list-notification-rules.d.ts +0 -9
- package/dist/tools/list-notification-rules.d.ts.map +0 -1
- package/dist/tools/list-notification-rules.js +0 -17
- package/dist/tools/list-notification-rules.js.map +0 -1
- package/dist/tools/list-notifications.d.ts +0 -20
- package/dist/tools/list-notifications.d.ts.map +0 -1
- package/dist/tools/list-notifications.js +0 -23
- package/dist/tools/list-notifications.js.map +0 -1
- package/dist/tools/list-project-events.d.ts +0 -47
- package/dist/tools/list-project-events.d.ts.map +0 -1
- package/dist/tools/list-project-events.js +0 -65
- package/dist/tools/list-project-events.js.map +0 -1
- package/dist/tools/list-projects.d.ts +0 -20
- package/dist/tools/list-projects.d.ts.map +0 -1
- package/dist/tools/list-projects.js +0 -70
- package/dist/tools/list-projects.js.map +0 -1
- package/dist/tools/list-rooms.d.ts +0 -18
- package/dist/tools/list-rooms.d.ts.map +0 -1
- package/dist/tools/list-rooms.js +0 -28
- package/dist/tools/list-rooms.js.map +0 -1
- package/dist/tools/list-secrets.d.ts +0 -14
- package/dist/tools/list-secrets.d.ts.map +0 -1
- package/dist/tools/list-secrets.js +0 -35
- package/dist/tools/list-secrets.js.map +0 -1
- package/dist/tools/list-signers.d.ts +0 -14
- package/dist/tools/list-signers.d.ts.map +0 -1
- package/dist/tools/list-signers.js +0 -16
- package/dist/tools/list-signers.js.map +0 -1
- package/dist/tools/list-subdomains.d.ts +0 -14
- package/dist/tools/list-subdomains.d.ts.map +0 -1
- package/dist/tools/list-subdomains.js +0 -35
- package/dist/tools/list-subdomains.js.map +0 -1
- package/dist/tools/list-tenant-payments.d.ts +0 -22
- package/dist/tools/list-tenant-payments.d.ts.map +0 -1
- package/dist/tools/list-tenant-payments.js +0 -47
- package/dist/tools/list-tenant-payments.js.map +0 -1
- package/dist/tools/list-versions.d.ts +0 -14
- package/dist/tools/list-versions.d.ts.map +0 -1
- package/dist/tools/list-versions.js +0 -36
- package/dist/tools/list-versions.js.map +0 -1
- package/dist/tools/orgs.d.ts +0 -93
- package/dist/tools/orgs.d.ts.map +0 -1
- package/dist/tools/orgs.js +0 -323
- package/dist/tools/orgs.js.map +0 -1
- package/dist/tools/passkeys.d.ts +0 -72
- package/dist/tools/passkeys.d.ts.map +0 -1
- package/dist/tools/passkeys.js +0 -156
- package/dist/tools/passkeys.js.map +0 -1
- package/dist/tools/pay-url.d.ts +0 -39
- package/dist/tools/pay-url.d.ts.map +0 -1
- package/dist/tools/pay-url.js +0 -106
- package/dist/tools/pay-url.js.map +0 -1
- package/dist/tools/project-archives.d.ts +0 -62
- package/dist/tools/project-archives.d.ts.map +0 -1
- package/dist/tools/project-archives.js +0 -127
- package/dist/tools/project-archives.js.map +0 -1
- package/dist/tools/project-branches.d.ts +0 -50
- package/dist/tools/project-branches.d.ts.map +0 -1
- package/dist/tools/project-branches.js +0 -84
- package/dist/tools/project-branches.js.map +0 -1
- package/dist/tools/project-get.d.ts +0 -16
- package/dist/tools/project-get.d.ts.map +0 -1
- package/dist/tools/project-get.js +0 -46
- package/dist/tools/project-get.js.map +0 -1
- package/dist/tools/project-key-cache-export.d.ts +0 -18
- package/dist/tools/project-key-cache-export.d.ts.map +0 -1
- package/dist/tools/project-key-cache-export.js +0 -29
- package/dist/tools/project-key-cache-export.js.map +0 -1
- package/dist/tools/project-key-cache-status.d.ts +0 -16
- package/dist/tools/project-key-cache-status.d.ts.map +0 -1
- package/dist/tools/project-key-cache-status.js +0 -34
- package/dist/tools/project-key-cache-status.js.map +0 -1
- package/dist/tools/project-snapshots.d.ts +0 -56
- package/dist/tools/project-snapshots.d.ts.map +0 -1
- package/dist/tools/project-snapshots.js +0 -100
- package/dist/tools/project-snapshots.js.map +0 -1
- package/dist/tools/project-use.d.ts +0 -16
- package/dist/tools/project-use.d.ts.map +0 -1
- package/dist/tools/project-use.js +0 -23
- package/dist/tools/project-use.js.map +0 -1
- package/dist/tools/promote-user.d.ts +0 -16
- package/dist/tools/promote-user.d.ts.map +0 -1
- package/dist/tools/promote-user.js +0 -24
- package/dist/tools/promote-user.js.map +0 -1
- package/dist/tools/provision-signer.d.ts +0 -18
- package/dist/tools/provision-signer.d.ts.map +0 -1
- package/dist/tools/provision-signer.js +0 -21
- package/dist/tools/provision-signer.js.map +0 -1
- package/dist/tools/provision.d.ts +0 -18
- package/dist/tools/provision.d.ts.map +0 -1
- package/dist/tools/provision.js +0 -73
- package/dist/tools/provision.js.map +0 -1
- package/dist/tools/publish-app.d.ts +0 -22
- package/dist/tools/publish-app.d.ts.map +0 -1
- package/dist/tools/publish-app.js +0 -47
- package/dist/tools/publish-app.js.map +0 -1
- package/dist/tools/raise-escalation.d.ts +0 -31
- package/dist/tools/raise-escalation.d.ts.map +0 -1
- package/dist/tools/raise-escalation.js +0 -69
- package/dist/tools/raise-escalation.js.map +0 -1
- package/dist/tools/read-room-messages.d.ts +0 -32
- package/dist/tools/read-room-messages.d.ts.map +0 -1
- package/dist/tools/read-room-messages.js +0 -46
- package/dist/tools/read-room-messages.js.map +0 -1
- package/dist/tools/redeem-voucher.d.ts +0 -14
- package/dist/tools/redeem-voucher.d.ts.map +0 -1
- package/dist/tools/redeem-voucher.js +0 -41
- package/dist/tools/redeem-voucher.js.map +0 -1
- package/dist/tools/redrive-mailbox-webhook-delivery.d.ts +0 -18
- package/dist/tools/redrive-mailbox-webhook-delivery.d.ts.map +0 -1
- package/dist/tools/redrive-mailbox-webhook-delivery.js +0 -34
- package/dist/tools/redrive-mailbox-webhook-delivery.js.map +0 -1
- package/dist/tools/register-mailbox-webhook.d.ts +0 -20
- package/dist/tools/register-mailbox-webhook.d.ts.map +0 -1
- package/dist/tools/register-mailbox-webhook.js +0 -35
- package/dist/tools/register-mailbox-webhook.js.map +0 -1
- package/dist/tools/release-room-claim.d.ts +0 -22
- package/dist/tools/release-room-claim.d.ts.map +0 -1
- package/dist/tools/release-room-claim.js +0 -26
- package/dist/tools/release-room-claim.js.map +0 -1
- package/dist/tools/rename-project.d.ts +0 -16
- package/dist/tools/rename-project.d.ts.map +0 -1
- package/dist/tools/rename-project.js +0 -26
- package/dist/tools/rename-project.js.map +0 -1
- package/dist/tools/repos.d.ts +0 -70
- package/dist/tools/repos.d.ts.map +0 -1
- package/dist/tools/repos.js +0 -263
- package/dist/tools/repos.js.map +0 -1
- package/dist/tools/request-faucet.d.ts +0 -14
- package/dist/tools/request-faucet.d.ts.map +0 -1
- package/dist/tools/request-faucet.js +0 -50
- package/dist/tools/request-faucet.js.map +0 -1
- package/dist/tools/request-magic-link.d.ts +0 -24
- package/dist/tools/request-magic-link.d.ts.map +0 -1
- package/dist/tools/request-magic-link.js +0 -60
- package/dist/tools/request-magic-link.js.map +0 -1
- package/dist/tools/rest-query.d.ts +0 -24
- package/dist/tools/rest-query.d.ts.map +0 -1
- package/dist/tools/rest-query.js +0 -61
- package/dist/tools/rest-query.js.map +0 -1
- package/dist/tools/rooms-shared.d.ts +0 -39
- package/dist/tools/rooms-shared.d.ts.map +0 -1
- package/dist/tools/rooms-shared.js +0 -194
- package/dist/tools/rooms-shared.js.map +0 -1
- package/dist/tools/rotate-webhook-secret.d.ts +0 -9
- package/dist/tools/rotate-webhook-secret.d.ts.map +0 -1
- package/dist/tools/rotate-webhook-secret.js +0 -26
- package/dist/tools/rotate-webhook-secret.js.map +0 -1
- package/dist/tools/run-sql.d.ts +0 -18
- package/dist/tools/run-sql.d.ts.map +0 -1
- package/dist/tools/run-sql.js +0 -68
- package/dist/tools/run-sql.js.map +0 -1
- package/dist/tools/scaffold-roles.d.ts +0 -22
- package/dist/tools/scaffold-roles.d.ts.map +0 -1
- package/dist/tools/scaffold-roles.js +0 -88
- package/dist/tools/scaffold-roles.js.map +0 -1
- package/dist/tools/send-email.d.ts +0 -50
- package/dist/tools/send-email.d.ts.map +0 -1
- package/dist/tools/send-email.js +0 -84
- package/dist/tools/send-email.js.map +0 -1
- package/dist/tools/send-feedback.d.ts +0 -18
- package/dist/tools/send-feedback.d.ts.map +0 -1
- package/dist/tools/send-feedback.js +0 -36
- package/dist/tools/send-feedback.js.map +0 -1
- package/dist/tools/send-room-message.d.ts +0 -38
- package/dist/tools/send-room-message.d.ts.map +0 -1
- package/dist/tools/send-room-message.js +0 -54
- package/dist/tools/send-room-message.js.map +0 -1
- package/dist/tools/service-health.d.ts +0 -11
- package/dist/tools/service-health.d.ts.map +0 -1
- package/dist/tools/service-health.js +0 -42
- package/dist/tools/service-health.js.map +0 -1
- package/dist/tools/service-status.d.ts +0 -11
- package/dist/tools/service-status.d.ts.map +0 -1
- package/dist/tools/service-status.js +0 -46
- package/dist/tools/service-status.js.map +0 -1
- package/dist/tools/set-agent-contact.d.ts +0 -33
- package/dist/tools/set-agent-contact.d.ts.map +0 -1
- package/dist/tools/set-agent-contact.js +0 -52
- package/dist/tools/set-agent-contact.js.map +0 -1
- package/dist/tools/set-auto-recharge.d.ts +0 -18
- package/dist/tools/set-auto-recharge.d.ts.map +0 -1
- package/dist/tools/set-auto-recharge.js +0 -27
- package/dist/tools/set-auto-recharge.js.map +0 -1
- package/dist/tools/set-low-balance-alert.d.ts +0 -18
- package/dist/tools/set-low-balance-alert.d.ts.map +0 -1
- package/dist/tools/set-low-balance-alert.js +0 -18
- package/dist/tools/set-low-balance-alert.js.map +0 -1
- package/dist/tools/set-mailbox-defaults.d.ts +0 -18
- package/dist/tools/set-mailbox-defaults.d.ts.map +0 -1
- package/dist/tools/set-mailbox-defaults.js +0 -43
- package/dist/tools/set-mailbox-defaults.js.map +0 -1
- package/dist/tools/set-notification-preferences.d.ts +0 -28
- package/dist/tools/set-notification-preferences.d.ts.map +0 -1
- package/dist/tools/set-notification-preferences.js +0 -52
- package/dist/tools/set-notification-preferences.js.map +0 -1
- package/dist/tools/set-recovery-address.d.ts +0 -18
- package/dist/tools/set-recovery-address.d.ts.map +0 -1
- package/dist/tools/set-recovery-address.js +0 -18
- package/dist/tools/set-recovery-address.js.map +0 -1
- package/dist/tools/set-secret.d.ts +0 -18
- package/dist/tools/set-secret.d.ts.map +0 -1
- package/dist/tools/set-secret.js +0 -29
- package/dist/tools/set-secret.js.map +0 -1
- package/dist/tools/set-user-password.d.ts +0 -20
- package/dist/tools/set-user-password.d.ts.map +0 -1
- package/dist/tools/set-user-password.js +0 -31
- package/dist/tools/set-user-password.js.map +0 -1
- package/dist/tools/start-contact-passkey-enrollment.d.ts +0 -9
- package/dist/tools/start-contact-passkey-enrollment.d.ts.map +0 -1
- package/dist/tools/start-contact-passkey-enrollment.js +0 -18
- package/dist/tools/start-contact-passkey-enrollment.js.map +0 -1
- package/dist/tools/subdomain.d.ts +0 -34
- package/dist/tools/subdomain.d.ts.map +0 -1
- package/dist/tools/subdomain.js +0 -67
- package/dist/tools/subdomain.js.map +0 -1
- package/dist/tools/test-notification.d.ts +0 -16
- package/dist/tools/test-notification.d.ts.map +0 -1
- package/dist/tools/test-notification.js +0 -27
- package/dist/tools/test-notification.js.map +0 -1
- package/dist/tools/tier-set.d.ts +0 -14
- package/dist/tools/tier-set.d.ts.map +0 -1
- package/dist/tools/tier-set.js +0 -62
- package/dist/tools/tier-set.js.map +0 -1
- package/dist/tools/tier-status.d.ts +0 -9
- package/dist/tools/tier-status.d.ts.map +0 -1
- package/dist/tools/tier-status.js +0 -57
- package/dist/tools/tier-status.js.map +0 -1
- package/dist/tools/transfers.d.ts +0 -79
- package/dist/tools/transfers.d.ts.map +0 -1
- package/dist/tools/transfers.js +0 -332
- package/dist/tools/transfers.js.map +0 -1
- package/dist/tools/update-function.d.ts +0 -22
- package/dist/tools/update-function.d.ts.map +0 -1
- package/dist/tools/update-function.js +0 -64
- package/dist/tools/update-function.js.map +0 -1
- package/dist/tools/update-mailbox-webhook.d.ts +0 -22
- package/dist/tools/update-mailbox-webhook.d.ts.map +0 -1
- package/dist/tools/update-mailbox-webhook.js +0 -39
- package/dist/tools/update-mailbox-webhook.js.map +0 -1
- package/dist/tools/update-mailbox.d.ts +0 -18
- package/dist/tools/update-mailbox.d.ts.map +0 -1
- package/dist/tools/update-mailbox.js +0 -36
- package/dist/tools/update-mailbox.js.map +0 -1
- package/dist/tools/update-version.d.ts +0 -24
- package/dist/tools/update-version.d.ts.map +0 -1
- package/dist/tools/update-version.js +0 -26
- package/dist/tools/update-version.js.map +0 -1
- package/dist/tools/validate-manifest.d.ts +0 -19
- package/dist/tools/validate-manifest.d.ts.map +0 -1
- package/dist/tools/validate-manifest.js +0 -40
- package/dist/tools/validate-manifest.js.map +0 -1
- package/dist/tools/verify-agent-contact-email.d.ts +0 -9
- package/dist/tools/verify-agent-contact-email.d.ts.map +0 -1
- package/dist/tools/verify-agent-contact-email.js +0 -18
- package/dist/tools/verify-agent-contact-email.js.map +0 -1
- package/dist/tools/verify-magic-link.d.ts +0 -20
- package/dist/tools/verify-magic-link.d.ts.map +0 -1
- package/dist/tools/verify-magic-link.js +0 -40
- package/dist/tools/verify-magic-link.js.map +0 -1
- package/dist/tools/wallet-create.d.ts +0 -9
- package/dist/tools/wallet-create.d.ts.map +0 -1
- package/dist/tools/wallet-create.js +0 -36
- package/dist/tools/wallet-create.js.map +0 -1
- package/dist/tools/wallet-export.d.ts +0 -9
- package/dist/tools/wallet-export.d.ts.map +0 -1
- package/dist/tools/wallet-export.js +0 -21
- package/dist/tools/wallet-export.js.map +0 -1
- package/dist/tools/wallet-status.d.ts +0 -9
- package/dist/tools/wallet-status.d.ts.map +0 -1
- package/dist/tools/wallet-status.js +0 -33
- package/dist/tools/wallet-status.js.map +0 -1
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chain proxy: how a `run` snippet reaches the SDK without the SDK ever
|
|
3
|
+
* running inside the sandbox.
|
|
4
|
+
*
|
|
5
|
+
* Inside the sandbox, `r` is a recorder. A property access appends a `get`
|
|
6
|
+
* segment and a call appends a `call` segment with its arguments; nothing
|
|
7
|
+
* happens until the chain is awaited (its `then`, `catch`, or `finally` is
|
|
8
|
+
* read), at which point the chain crosses to the host as JSON. The host
|
|
9
|
+
* ({@link ChainHost}) replays it against the real client, built with
|
|
10
|
+
* `surface: "sandbox"`, awaiting every intermediate that is a promise:
|
|
11
|
+
*
|
|
12
|
+
* r.project("prj_1").functions.list()
|
|
13
|
+
* → get project → call ("prj_1") → get functions → get list → call ()
|
|
14
|
+
*
|
|
15
|
+
* The terminal value crosses back as JSON when it is JSON data. Anything else
|
|
16
|
+
* (a `ScopedRun402` from `await r.project()`, a deploy operation) crosses as an
|
|
17
|
+
* opaque handle that the recorder wraps again, so the snippet keeps chaining
|
|
18
|
+
* from it; handles die with the run.
|
|
19
|
+
*
|
|
20
|
+
* Arguments cross into the host only when they are structured-cloneable data
|
|
21
|
+
* (JSON values, `undefined`, `Date`, bytes, `Map`, `Set`, `BigInt`) or a handle.
|
|
22
|
+
* A function, a symbol, a class instance, a cyclic structure, or an un-awaited
|
|
23
|
+
* `r` chain is refused in the sandbox before anything is sent
|
|
24
|
+
* (`RUN_ARGUMENT_NOT_CLONEABLE`), which is also why a filesystem source such as
|
|
25
|
+
* a `LocalDirRef` cannot be expressed: `dir()` does not exist inside.
|
|
26
|
+
*
|
|
27
|
+
* The replay walks only the SDK's public surface. A property the SDK declares
|
|
28
|
+
* `private` or `protected` (read from the SDK's own declaration files), a name
|
|
29
|
+
* that starts with `_`, `constructor` / `prototype` / `__proto__`, and anything
|
|
30
|
+
* that resolves on a JavaScript intrinsic (`Object.prototype`,
|
|
31
|
+
* `Function.prototype`, `Array.prototype`, …) is refused, so a chain can reach
|
|
32
|
+
* neither the host's `Function` constructor nor the kernel client and its
|
|
33
|
+
* credential provider. Plain data returned by a call is navigable by its own
|
|
34
|
+
* properties only.
|
|
35
|
+
*
|
|
36
|
+
* Every dispatched chain is one entry in `calls[]` with its dotted path, its
|
|
37
|
+
* duration, and its outcome. An SDK error thrown during the replay crosses
|
|
38
|
+
* back with its own `code`, `message`, and `next_actions`, plus an
|
|
39
|
+
* `error_ref` that lets the `run` tool report the original error unchanged.
|
|
40
|
+
*/
|
|
41
|
+
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
42
|
+
import { dirname, join } from "node:path";
|
|
43
|
+
import { fileURLToPath } from "node:url";
|
|
44
|
+
import { isRun402Error } from "../sdk/dist/index.js";
|
|
45
|
+
/** `calls[]` entries retained per run. */
|
|
46
|
+
export const CHAIN_MAX_CALLS = 200;
|
|
47
|
+
/** The largest intermediate value one chain may carry back into the sandbox. */
|
|
48
|
+
export const CHAIN_MAX_TRANSFER_BYTES = 16 * 1024 * 1024;
|
|
49
|
+
/**
|
|
50
|
+
* The in-sandbox half: defines `r` and keeps the host's `dispatch` in its
|
|
51
|
+
* closure. Evaluated once per run by `runInSandbox`.
|
|
52
|
+
*/
|
|
53
|
+
const PROXY_INSTALL = String.raw `(function (host) {
|
|
54
|
+
"use strict";
|
|
55
|
+
const stringify = JSON.stringify;
|
|
56
|
+
const parse = JSON.parse;
|
|
57
|
+
const chains = new WeakMap();
|
|
58
|
+
const TAG = "__r402";
|
|
59
|
+
|
|
60
|
+
const label = (base, segments) => {
|
|
61
|
+
let out = base.path;
|
|
62
|
+
for (const s of segments) {
|
|
63
|
+
if (s.op === "get") out = out ? out + "." + s.key : s.key;
|
|
64
|
+
else out += "()";
|
|
65
|
+
}
|
|
66
|
+
return out || "r";
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const notCloneable = (where, what) => {
|
|
70
|
+
const e = new TypeError(
|
|
71
|
+
"Argument " + where + " cannot cross into the host: " + what +
|
|
72
|
+
". Pass structured-cloneable data to r (JSON values, undefined, Date, Uint8Array, Map, Set, BigInt) or a handle.",
|
|
73
|
+
);
|
|
74
|
+
e.code = "RUN_ARGUMENT_NOT_CLONEABLE";
|
|
75
|
+
return e;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const encode = (v, where, seen) => {
|
|
79
|
+
if (v === null || typeof v === "string" || typeof v === "boolean") return v;
|
|
80
|
+
if (typeof v === "number") return Number.isFinite(v) ? v : { [TAG]: { t: "number", v: String(v) } };
|
|
81
|
+
if (v === undefined) return { [TAG]: { t: "undefined" } };
|
|
82
|
+
if (typeof v === "bigint") return { [TAG]: { t: "bigint", v: String(v) } };
|
|
83
|
+
if (typeof v === "symbol") throw notCloneable(where, "a symbol");
|
|
84
|
+
if (typeof v === "function") {
|
|
85
|
+
const chain = chains.get(v);
|
|
86
|
+
if (!chain) throw notCloneable(where, "a function");
|
|
87
|
+
if (chain.segments.length > 0) throw notCloneable(where, "an r call that was not awaited (" + label(chain.base, chain.segments) + ")");
|
|
88
|
+
if (chain.base.id === "root") throw notCloneable(where, "r itself");
|
|
89
|
+
return { [TAG]: { t: "handle", v: chain.base.id } };
|
|
90
|
+
}
|
|
91
|
+
if (seen.has(v)) throw notCloneable(where, "a cyclic structure");
|
|
92
|
+
seen.add(v);
|
|
93
|
+
try {
|
|
94
|
+
if (Array.isArray(v)) return v.map((x, i) => encode(x, where + "[" + i + "]", seen));
|
|
95
|
+
if (v instanceof Date) return { [TAG]: { t: "date", v: v.getTime() } };
|
|
96
|
+
if (v instanceof ArrayBuffer) return { [TAG]: { t: "bytes", v: Array.from(new Uint8Array(v)) } };
|
|
97
|
+
if (ArrayBuffer.isView(v)) return { [TAG]: { t: "bytes", v: Array.from(new Uint8Array(v.buffer, v.byteOffset, v.byteLength)) } };
|
|
98
|
+
if (v instanceof Map) return { [TAG]: { t: "map", v: Array.from(v, ([k, x], i) => [encode(k, where + ".key" + i, seen), encode(x, where + ".get(" + i + ")", seen)]) } };
|
|
99
|
+
if (v instanceof Set) return { [TAG]: { t: "set", v: Array.from(v, (x, i) => encode(x, where + ".item" + i, seen)) } };
|
|
100
|
+
const proto = Object.getPrototypeOf(v);
|
|
101
|
+
if (proto !== Object.prototype && proto !== null) {
|
|
102
|
+
const name = proto && proto.constructor && typeof proto.constructor.name === "string" ? proto.constructor.name : "an object";
|
|
103
|
+
throw notCloneable(where, "an instance of " + name);
|
|
104
|
+
}
|
|
105
|
+
const out = {};
|
|
106
|
+
for (const k of Object.keys(v)) out[k] = encode(v[k], where + "." + k, seen);
|
|
107
|
+
return out;
|
|
108
|
+
} finally {
|
|
109
|
+
seen.delete(v);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
const decode = (v) => {
|
|
114
|
+
if (Array.isArray(v)) return v.map(decode);
|
|
115
|
+
if (v && typeof v === "object") {
|
|
116
|
+
const keys = Object.keys(v);
|
|
117
|
+
if (keys.length === 1 && keys[0] === TAG) {
|
|
118
|
+
const t = v[TAG];
|
|
119
|
+
if (t.t === "bytes") return new Uint8Array(t.v);
|
|
120
|
+
if (t.t === "handle") return makeChain({ id: t.v, path: t.path }, []);
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
const out = {};
|
|
124
|
+
for (const k of keys) out[k] = decode(v[k]);
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
return v;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
const makeError = (e) => {
|
|
131
|
+
const err = new Error(String(e.message));
|
|
132
|
+
err.name = String(e.name || "Error");
|
|
133
|
+
for (const k of ["code", "kind", "status", "next_actions", "details", "retryable", "error_ref"]) {
|
|
134
|
+
if (e[k] !== undefined && e[k] !== null) err[k] = e[k];
|
|
135
|
+
}
|
|
136
|
+
return err;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
const send = (base, segments) =>
|
|
140
|
+
host.dispatch(stringify({ base: base.id, segments })).then((raw) => {
|
|
141
|
+
const res = parse(raw);
|
|
142
|
+
if (res.ok) return decode(res.value);
|
|
143
|
+
throw makeError(res.error);
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
const makeChain = (base, segments) => {
|
|
147
|
+
let sent = null;
|
|
148
|
+
const proxy = new Proxy(function () {}, {
|
|
149
|
+
get(_target, key) {
|
|
150
|
+
if (typeof key === "symbol") {
|
|
151
|
+
if (key === Symbol.toPrimitive) return () => "[r " + label(base, segments) + "]";
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
if (key === "then" || key === "catch" || key === "finally") {
|
|
155
|
+
// A bare handle is a value, not a promise.
|
|
156
|
+
if (segments.length === 0) return undefined;
|
|
157
|
+
if (!sent) sent = send(base, segments);
|
|
158
|
+
return (...a) => sent[key](...a);
|
|
159
|
+
}
|
|
160
|
+
if (key === "toJSON") return undefined;
|
|
161
|
+
return makeChain(base, [...segments, { op: "get", key }]);
|
|
162
|
+
},
|
|
163
|
+
apply(_target, _receiver, args) {
|
|
164
|
+
const where = label(base, segments);
|
|
165
|
+
const seen = new Set();
|
|
166
|
+
const encoded = args.map((a, i) => encode(a, where + " argument " + (i + 1), seen));
|
|
167
|
+
return makeChain(base, [...segments, { op: "call", args: encoded }]);
|
|
168
|
+
},
|
|
169
|
+
set() { return false; },
|
|
170
|
+
defineProperty() { return false; },
|
|
171
|
+
deleteProperty() { return false; },
|
|
172
|
+
});
|
|
173
|
+
chains.set(proxy, { base, segments });
|
|
174
|
+
return proxy;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
Object.defineProperty(globalThis, "r", {
|
|
178
|
+
value: makeChain({ id: "root", path: "" }, []),
|
|
179
|
+
writable: false,
|
|
180
|
+
configurable: false,
|
|
181
|
+
enumerable: false,
|
|
182
|
+
});
|
|
183
|
+
})`;
|
|
184
|
+
// ─── what the replay may touch ───────────────────────────────────────────────
|
|
185
|
+
const ALWAYS_REFUSED = new Set(["constructor", "prototype", "__proto__", "__defineGetter__", "__defineSetter__", "__lookupGetter__", "__lookupSetter__", "caller", "callee", "arguments"]);
|
|
186
|
+
/** JavaScript's own prototypes: a property that resolves on one of these is never reachable. */
|
|
187
|
+
const INTRINSIC_PROTOTYPES = new Set([
|
|
188
|
+
Object.prototype, Function.prototype, Array.prototype, String.prototype, Number.prototype, Boolean.prototype,
|
|
189
|
+
Symbol.prototype, BigInt.prototype, Date.prototype, RegExp.prototype, Error.prototype, Promise.prototype,
|
|
190
|
+
Map.prototype, Set.prototype, WeakMap.prototype, WeakSet.prototype, ArrayBuffer.prototype,
|
|
191
|
+
Object.getPrototypeOf(Uint8Array.prototype), Uint8Array.prototype, DataView.prototype,
|
|
192
|
+
Object.getPrototypeOf(async function () { }), Object.getPrototypeOf(function* () { }),
|
|
193
|
+
Object.getPrototypeOf(async function* () { }),
|
|
194
|
+
Object.getPrototypeOf(Object.getPrototypeOf((function* () { })())),
|
|
195
|
+
Object.getPrototypeOf(Object.getPrototypeOf((async function* () { })())),
|
|
196
|
+
Object.getPrototypeOf((async function* () { })()),
|
|
197
|
+
Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())),
|
|
198
|
+
]);
|
|
199
|
+
let privateMembers = null;
|
|
200
|
+
/**
|
|
201
|
+
* Every `private` / `protected` member name the SDK declares, by class name,
|
|
202
|
+
* read once from the SDK's declaration files (TypeScript's `private` is not
|
|
203
|
+
* enforced at runtime, so the declaration is the only record of it).
|
|
204
|
+
*/
|
|
205
|
+
export function sdkPrivateMembers() {
|
|
206
|
+
if (privateMembers)
|
|
207
|
+
return privateMembers;
|
|
208
|
+
const map = new Map();
|
|
209
|
+
const root = join(dirname(fileURLToPath(import.meta.url)), "..", "sdk", "dist");
|
|
210
|
+
const visit = (dir) => {
|
|
211
|
+
for (const name of readdirSync(dir)) {
|
|
212
|
+
const full = join(dir, name);
|
|
213
|
+
if (statSync(full).isDirectory())
|
|
214
|
+
visit(full);
|
|
215
|
+
else if (name.endsWith(".d.ts")) {
|
|
216
|
+
let current = null;
|
|
217
|
+
for (const line of readFileSync(full, "utf8").split("\n")) {
|
|
218
|
+
const cls = /^(?:export )?declare (?:abstract )?class (\w+)/.exec(line);
|
|
219
|
+
if (cls) {
|
|
220
|
+
current = cls[1];
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (line === "}") {
|
|
224
|
+
current = null;
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
if (!current)
|
|
228
|
+
continue;
|
|
229
|
+
const member = /^ {4}(?:private|protected)(?: static)?(?: readonly)?(?: async)?(?: get| set)? (\w+)/.exec(line);
|
|
230
|
+
if (member) {
|
|
231
|
+
const set = map.get(current) ?? new Set();
|
|
232
|
+
set.add(member[1]);
|
|
233
|
+
map.set(current, set);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
visit(root);
|
|
240
|
+
privateMembers = map;
|
|
241
|
+
return map;
|
|
242
|
+
}
|
|
243
|
+
function isPlainData(value) {
|
|
244
|
+
if (Array.isArray(value))
|
|
245
|
+
return true;
|
|
246
|
+
const proto = Object.getPrototypeOf(value);
|
|
247
|
+
return proto === Object.prototype || proto === null;
|
|
248
|
+
}
|
|
249
|
+
class RefusedProperty extends TypeError {
|
|
250
|
+
}
|
|
251
|
+
/** Read `key` from `holder` if the SDK's public surface allows it; throw otherwise. */
|
|
252
|
+
function readAllowed(holder, key, path) {
|
|
253
|
+
if (holder === null || holder === undefined) {
|
|
254
|
+
throw new TypeError(`cannot read property '${key}' of ${String(holder)} (${path})`);
|
|
255
|
+
}
|
|
256
|
+
if (typeof holder !== "object" && typeof holder !== "function") {
|
|
257
|
+
throw new RefusedProperty(`${path}.${key} is not part of the SDK surface (a ${typeof holder} has no SDK members)`);
|
|
258
|
+
}
|
|
259
|
+
if (ALWAYS_REFUSED.has(key) || key.startsWith("_") || key.startsWith("#")) {
|
|
260
|
+
throw new RefusedProperty(`${path ? `${path}.` : ""}${key} is not part of the SDK surface`);
|
|
261
|
+
}
|
|
262
|
+
const obj = holder;
|
|
263
|
+
// Plain data (what a call returned): its own properties only.
|
|
264
|
+
if (typeof holder === "object" && isPlainData(holder)) {
|
|
265
|
+
return Object.prototype.hasOwnProperty.call(obj, key) ? obj[key] : undefined;
|
|
266
|
+
}
|
|
267
|
+
// An SDK object or function: find where the property lives.
|
|
268
|
+
let owner = holder;
|
|
269
|
+
while (owner && !Object.prototype.hasOwnProperty.call(owner, key))
|
|
270
|
+
owner = Object.getPrototypeOf(owner);
|
|
271
|
+
if (!owner)
|
|
272
|
+
return undefined;
|
|
273
|
+
if (INTRINSIC_PROTOTYPES.has(owner)) {
|
|
274
|
+
throw new RefusedProperty(`${path ? `${path}.` : ""}${key} is not part of the SDK surface`);
|
|
275
|
+
}
|
|
276
|
+
const privates = sdkPrivateMembers();
|
|
277
|
+
for (let p = typeof holder === "function" ? null : Object.getPrototypeOf(holder); p && !INTRINSIC_PROTOTYPES.has(p); p = Object.getPrototypeOf(p)) {
|
|
278
|
+
const className = p.constructor?.name;
|
|
279
|
+
if (typeof className === "string" && privates.get(className)?.has(key)) {
|
|
280
|
+
throw new RefusedProperty(`${path ? `${path}.` : ""}${key} is private to the SDK`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return obj[key];
|
|
284
|
+
}
|
|
285
|
+
function isThenable(v) {
|
|
286
|
+
return (typeof v === "object" || typeof v === "function") && v !== null && typeof v.then === "function";
|
|
287
|
+
}
|
|
288
|
+
/** JSON data all the way down (the terminal-value test): no functions, no class instances. */
|
|
289
|
+
function isJsonData(v, depth = 0) {
|
|
290
|
+
if (v === null || typeof v === "string" || typeof v === "boolean")
|
|
291
|
+
return true;
|
|
292
|
+
if (typeof v === "number")
|
|
293
|
+
return true;
|
|
294
|
+
if (v === undefined)
|
|
295
|
+
return true;
|
|
296
|
+
if (typeof v !== "object" || depth > 200)
|
|
297
|
+
return false;
|
|
298
|
+
if (Array.isArray(v))
|
|
299
|
+
return v.every((x) => isJsonData(x, depth + 1));
|
|
300
|
+
const proto = Object.getPrototypeOf(v);
|
|
301
|
+
if (proto !== Object.prototype && proto !== null)
|
|
302
|
+
return false;
|
|
303
|
+
return Object.values(v).every((x) => isJsonData(x, depth + 1));
|
|
304
|
+
}
|
|
305
|
+
function describeError(err) {
|
|
306
|
+
if (isRun402Error(err)) {
|
|
307
|
+
const e = err;
|
|
308
|
+
return {
|
|
309
|
+
name: e.name,
|
|
310
|
+
message: e.message,
|
|
311
|
+
...(e.code ? { code: e.code } : {}),
|
|
312
|
+
...(e.kind ? { kind: e.kind } : {}),
|
|
313
|
+
status: e.status,
|
|
314
|
+
...(e.nextActions !== undefined ? { next_actions: e.nextActions } : {}),
|
|
315
|
+
...(e.details !== undefined ? { details: e.details } : {}),
|
|
316
|
+
...(e.retryable !== undefined ? { retryable: e.retryable } : {}),
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
if (err instanceof Error)
|
|
320
|
+
return { name: err.name, message: err.message };
|
|
321
|
+
return { name: "Error", message: String(err) };
|
|
322
|
+
}
|
|
323
|
+
// ─── the host half ───────────────────────────────────────────────────────────
|
|
324
|
+
/**
|
|
325
|
+
* Replays recorded chains against `root` (the real SDK client) for one run.
|
|
326
|
+
* Holds that run's handles, its `calls[]` trace, and the original errors, and
|
|
327
|
+
* forgets all of them at {@link dispose}.
|
|
328
|
+
*/
|
|
329
|
+
export class ChainHost {
|
|
330
|
+
calls = [];
|
|
331
|
+
callsDropped = 0;
|
|
332
|
+
#root;
|
|
333
|
+
#handles = new Map();
|
|
334
|
+
#errors = new Map();
|
|
335
|
+
#nextHandle = 1;
|
|
336
|
+
#nextError = 1;
|
|
337
|
+
#inflight = 0;
|
|
338
|
+
constructor(root) {
|
|
339
|
+
this.#root = root;
|
|
340
|
+
}
|
|
341
|
+
/** The sandbox extension that installs `r` and routes its chains here. */
|
|
342
|
+
extension() {
|
|
343
|
+
return { install: PROXY_INSTALL, async: { dispatch: (raw) => this.dispatch(raw ?? "{}") } };
|
|
344
|
+
}
|
|
345
|
+
/** The original error behind an `error_ref` the sandbox reported, if it came from a replay. */
|
|
346
|
+
errorFor(ref) {
|
|
347
|
+
return ref ? this.#errors.get(ref) : undefined;
|
|
348
|
+
}
|
|
349
|
+
/** How many chains are replaying right now. */
|
|
350
|
+
get inflight() {
|
|
351
|
+
return this.#inflight;
|
|
352
|
+
}
|
|
353
|
+
dispose() {
|
|
354
|
+
this.#handles.clear();
|
|
355
|
+
this.#errors.clear();
|
|
356
|
+
}
|
|
357
|
+
async dispatch(raw) {
|
|
358
|
+
const started = Date.now();
|
|
359
|
+
let req;
|
|
360
|
+
try {
|
|
361
|
+
req = JSON.parse(raw);
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
return JSON.stringify({ ok: false, error: { name: "TypeError", message: "malformed chain" } });
|
|
365
|
+
}
|
|
366
|
+
let value;
|
|
367
|
+
let receiver;
|
|
368
|
+
let path;
|
|
369
|
+
if (req.base === "root") {
|
|
370
|
+
value = this.#root;
|
|
371
|
+
receiver = undefined;
|
|
372
|
+
path = "";
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
const handle = this.#handles.get(req.base);
|
|
376
|
+
if (!handle) {
|
|
377
|
+
return JSON.stringify({ ok: false, error: { name: "TypeError", message: "that handle belongs to another run" } });
|
|
378
|
+
}
|
|
379
|
+
value = handle.value;
|
|
380
|
+
receiver = handle.receiver;
|
|
381
|
+
path = handle.path;
|
|
382
|
+
}
|
|
383
|
+
for (const s of req.segments)
|
|
384
|
+
if (s.op === "get")
|
|
385
|
+
path = path ? `${path}.${s.key}` : s.key;
|
|
386
|
+
const callPath = path || "r";
|
|
387
|
+
this.#inflight++;
|
|
388
|
+
try {
|
|
389
|
+
let walked = req.base === "root" ? "" : (this.#handles.get(req.base)?.path ?? "");
|
|
390
|
+
for (const segment of req.segments) {
|
|
391
|
+
if (segment.op === "get") {
|
|
392
|
+
if (typeof segment.key !== "string")
|
|
393
|
+
throw new RefusedProperty("only string property names cross into the host");
|
|
394
|
+
const next = readAllowed(value, segment.key, walked);
|
|
395
|
+
receiver = value;
|
|
396
|
+
value = next;
|
|
397
|
+
walked = walked ? `${walked}.${segment.key}` : segment.key;
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
if (typeof value !== "function")
|
|
401
|
+
throw new TypeError(`${walked || "r"} is not a function`);
|
|
402
|
+
const args = (segment.args ?? []).map((a) => this.#decodeArg(a));
|
|
403
|
+
value = Reflect.apply(value, receiver, args);
|
|
404
|
+
receiver = undefined;
|
|
405
|
+
}
|
|
406
|
+
if (isThenable(value))
|
|
407
|
+
value = await value;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
catch (err) {
|
|
411
|
+
const ref = `err_${this.#nextError++}`;
|
|
412
|
+
this.#errors.set(ref, err);
|
|
413
|
+
const described = describeError(err);
|
|
414
|
+
const attempt = err?.paymentAttemptId;
|
|
415
|
+
this.#record({
|
|
416
|
+
path: callPath,
|
|
417
|
+
duration_ms: Date.now() - started,
|
|
418
|
+
ok: false,
|
|
419
|
+
code: described.code ?? described.name,
|
|
420
|
+
...(typeof attempt === "string" ? { payment_attempt_id: attempt } : {}),
|
|
421
|
+
});
|
|
422
|
+
return JSON.stringify({ ok: false, error: { ...described, error_ref: ref } });
|
|
423
|
+
}
|
|
424
|
+
finally {
|
|
425
|
+
this.#inflight--;
|
|
426
|
+
}
|
|
427
|
+
this.#record({ path: callPath, duration_ms: Date.now() - started, ok: true });
|
|
428
|
+
return this.#encodeResult(value, receiver, callPath);
|
|
429
|
+
}
|
|
430
|
+
#encodeResult(value, receiver, path) {
|
|
431
|
+
if (value instanceof Uint8Array || value instanceof ArrayBuffer) {
|
|
432
|
+
const bytes = value instanceof ArrayBuffer ? new Uint8Array(value) : value;
|
|
433
|
+
if (bytes.byteLength > CHAIN_MAX_TRANSFER_BYTES / 4)
|
|
434
|
+
return this.#tooLarge(path, bytes.byteLength);
|
|
435
|
+
return JSON.stringify({ ok: true, value: { __r402: { t: "bytes", v: Array.from(bytes) } } });
|
|
436
|
+
}
|
|
437
|
+
if (isJsonData(value)) {
|
|
438
|
+
const json = value === undefined ? undefined : JSON.stringify(value);
|
|
439
|
+
if (json !== undefined && json.length > CHAIN_MAX_TRANSFER_BYTES)
|
|
440
|
+
return this.#tooLarge(path, json.length);
|
|
441
|
+
return json === undefined ? JSON.stringify({ ok: true }) : `{"ok":true,"value":${json}}`;
|
|
442
|
+
}
|
|
443
|
+
const id = `h${this.#nextHandle++}`;
|
|
444
|
+
this.#handles.set(id, { value, receiver, path });
|
|
445
|
+
return JSON.stringify({ ok: true, value: { __r402: { t: "handle", v: id, path } } });
|
|
446
|
+
}
|
|
447
|
+
#tooLarge(path, bytes) {
|
|
448
|
+
return JSON.stringify({
|
|
449
|
+
ok: false,
|
|
450
|
+
error: {
|
|
451
|
+
name: "RangeError",
|
|
452
|
+
code: "RUN_VALUE_TOO_LARGE",
|
|
453
|
+
message: `${path} returned ${bytes} bytes, over the ${CHAIN_MAX_TRANSFER_BYTES}-byte transfer cap. Ask the SDK for less (a filter, a limit, a page).`,
|
|
454
|
+
},
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
#record(call) {
|
|
458
|
+
if (this.calls.length >= CHAIN_MAX_CALLS) {
|
|
459
|
+
this.callsDropped++;
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
this.calls.push(call);
|
|
463
|
+
}
|
|
464
|
+
#decodeArg(v) {
|
|
465
|
+
if (Array.isArray(v))
|
|
466
|
+
return v.map((x) => this.#decodeArg(x));
|
|
467
|
+
if (v && typeof v === "object") {
|
|
468
|
+
const keys = Object.keys(v);
|
|
469
|
+
if (keys.length === 1 && keys[0] === "__r402") {
|
|
470
|
+
const tag = v.__r402;
|
|
471
|
+
switch (tag.t) {
|
|
472
|
+
case "undefined":
|
|
473
|
+
return undefined;
|
|
474
|
+
case "number":
|
|
475
|
+
return Number(tag.v);
|
|
476
|
+
case "bigint":
|
|
477
|
+
return BigInt(String(tag.v));
|
|
478
|
+
case "date":
|
|
479
|
+
return new Date(Number(tag.v));
|
|
480
|
+
case "bytes":
|
|
481
|
+
return Uint8Array.from(tag.v);
|
|
482
|
+
case "map":
|
|
483
|
+
return new Map(tag.v.map(([k, x]) => [this.#decodeArg(k), this.#decodeArg(x)]));
|
|
484
|
+
case "set":
|
|
485
|
+
return new Set(tag.v.map((x) => this.#decodeArg(x)));
|
|
486
|
+
case "handle": {
|
|
487
|
+
const entry = this.#handles.get(String(tag.v));
|
|
488
|
+
if (!entry)
|
|
489
|
+
throw new TypeError("that handle belongs to another run");
|
|
490
|
+
return entry.value;
|
|
491
|
+
}
|
|
492
|
+
default:
|
|
493
|
+
throw new TypeError(`unknown argument tag ${String(tag.t)}`);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
const out = {};
|
|
497
|
+
for (const k of keys)
|
|
498
|
+
out[k] = this.#decodeArg(v[k]);
|
|
499
|
+
return out;
|
|
500
|
+
}
|
|
501
|
+
return v;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
//# sourceMappingURL=sandbox-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-proxy.js","sourceRoot":"","sources":["../src/sandbox-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `run` sandbox: a TypeScript snippet executes inside QuickJS compiled to
|
|
3
|
+
* WebAssembly (the asyncify build of `quickjs-emscripten`), never inside Node.
|
|
4
|
+
*
|
|
5
|
+
* A QuickJS runtime can touch the host only through functions the host binds
|
|
6
|
+
* into it, so `require`, `process`, `fetch`, `import()`, timers, and every Node
|
|
7
|
+
* builtin are absent by construction: there is nothing to deny. What the
|
|
8
|
+
* snippet does see is the global inventory below (`SANDBOX_GLOBALS`, pinned by
|
|
9
|
+
* `sandbox.test.ts`): the ECMAScript builtins QuickJS ships, the web builtins
|
|
10
|
+
* this module adds in plain JavaScript (`URL`, `TextEncoder`, `TextDecoder`,
|
|
11
|
+
* `structuredClone`, `crypto.randomUUID`), a captured `console`, and whatever
|
|
12
|
+
* an extension installs (the `r` recorder from `./sandbox-proxy.ts`).
|
|
13
|
+
*
|
|
14
|
+
* Each run gets its own WebAssembly module instance, runtime, and context, so
|
|
15
|
+
* nothing survives from one run to the next and a run that ends badly cannot
|
|
16
|
+
* poison another. Bounds: a memory limit on the runtime, a stack limit, and a
|
|
17
|
+
* deadline enforced two ways — the interrupt handler stops JavaScript that is
|
|
18
|
+
* running past it, and the event loop stops waiting on the host past it. An
|
|
19
|
+
* async host call already in flight at the deadline is allowed to settle
|
|
20
|
+
* before the run returns, because its side effect is real either way.
|
|
21
|
+
*
|
|
22
|
+
* The source is TypeScript or JavaScript. It is wrapped as the body of an
|
|
23
|
+
* async function (so top-level `await` and `return` both work), types are
|
|
24
|
+
* stripped on the host with `node:module`'s `stripTypeScriptTypes` (strip-only:
|
|
25
|
+
* `enum` and parameter properties are syntax errors, as in Node), the result is
|
|
26
|
+
* parsed, and when the body ends in an expression statement that statement is
|
|
27
|
+
* rewritten into a `return` from the parse tree, never by string search.
|
|
28
|
+
*/
|
|
29
|
+
/** 64 MB: the runtime's allocation ceiling. */
|
|
30
|
+
export declare const SANDBOX_MEMORY_LIMIT_BYTES: number;
|
|
31
|
+
/** The interpreter's own stack ceiling, well inside the WebAssembly stack. */
|
|
32
|
+
export declare const SANDBOX_STACK_LIMIT_BYTES: number;
|
|
33
|
+
/** The serialized (compact JSON) value a run may return. */
|
|
34
|
+
export declare const SANDBOX_MAX_VALUE_BYTES: number;
|
|
35
|
+
/** Console lines retained per run. */
|
|
36
|
+
export declare const SANDBOX_MAX_LOG_LINES = 500;
|
|
37
|
+
/** Characters retained per console line. */
|
|
38
|
+
export declare const SANDBOX_MAX_LOG_LINE_CHARS = 2048;
|
|
39
|
+
/**
|
|
40
|
+
* The snippet's global inventory, sorted. `r` is present when the chain proxy
|
|
41
|
+
* is installed (always, in the `run` tool). A new global is a deliberate diff
|
|
42
|
+
* of this list and of the snapshot test.
|
|
43
|
+
*/
|
|
44
|
+
export declare const SANDBOX_GLOBALS: readonly ["AggregateError", "Array", "ArrayBuffer", "BigInt", "BigInt64Array", "BigUint64Array", "Boolean", "DataView", "Date", "Error", "EvalError", "FinalizationRegistry", "Float16Array", "Float32Array", "Float64Array", "Function", "Infinity", "Int16Array", "Int32Array", "Int8Array", "InternalError", "Iterator", "JSON", "Map", "Math", "NaN", "Number", "Object", "Promise", "Proxy", "RangeError", "ReferenceError", "Reflect", "RegExp", "Set", "SharedArrayBuffer", "String", "Symbol", "SyntaxError", "TextDecoder", "TextEncoder", "TypeError", "URIError", "URL", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "WeakMap", "WeakRef", "WeakSet", "console", "crypto", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "eval", "globalThis", "isFinite", "isNaN", "parseFloat", "parseInt", "r", "structuredClone", "undefined", "unescape"];
|
|
45
|
+
export type SandboxErrorCode = "RUN_SYNTAX_ERROR" | "RUN_TIMEOUT" | "RUN_MEMORY_EXCEEDED" | "RUN_VALUE_NOT_SERIALIZABLE" | "RUN_VALUE_TOO_LARGE" | "RUN_EXCEPTION";
|
|
46
|
+
export interface SandboxLogLine {
|
|
47
|
+
level: "log" | "info" | "warn" | "error";
|
|
48
|
+
line: string;
|
|
49
|
+
}
|
|
50
|
+
/** What the snippet threw, as far as the sandbox can describe it without trusting it. */
|
|
51
|
+
export interface SandboxThrown {
|
|
52
|
+
name: string;
|
|
53
|
+
message: string;
|
|
54
|
+
/** A string `code` property on the thrown value, when it had one. */
|
|
55
|
+
code?: string;
|
|
56
|
+
/** A string `error_ref` property on the thrown value (set by the chain proxy on host errors). */
|
|
57
|
+
error_ref?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface SandboxError {
|
|
60
|
+
code: SandboxErrorCode;
|
|
61
|
+
message: string;
|
|
62
|
+
line?: number;
|
|
63
|
+
column?: number;
|
|
64
|
+
thrown?: SandboxThrown;
|
|
65
|
+
}
|
|
66
|
+
export interface SandboxOutcome {
|
|
67
|
+
status: "ok" | "error";
|
|
68
|
+
/** Compact JSON of the value, when `status` is `ok` and the value was not `undefined`. */
|
|
69
|
+
value_json?: string;
|
|
70
|
+
/** `"undefined"` when the snippet produced `undefined` (reported as `null` data). */
|
|
71
|
+
value_kind?: "undefined";
|
|
72
|
+
error?: SandboxError;
|
|
73
|
+
logs: SandboxLogLine[];
|
|
74
|
+
/** Console lines past {@link SANDBOX_MAX_LOG_LINES} that were not retained. */
|
|
75
|
+
logs_dropped: number;
|
|
76
|
+
/** True when the deadline passed (the run was stopped or stopped waiting). */
|
|
77
|
+
timed_out: boolean;
|
|
78
|
+
duration_ms: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Something the host installs into the sandbox before the snippet runs.
|
|
82
|
+
* `install` is the source of a function expression `(host) => { … }` evaluated
|
|
83
|
+
* inside the sandbox and called once with an object carrying the bound host
|
|
84
|
+
* functions; it may define globals and keeps the host functions in its closure,
|
|
85
|
+
* so no host function is ever a global.
|
|
86
|
+
*/
|
|
87
|
+
export interface SandboxExtension {
|
|
88
|
+
install: string;
|
|
89
|
+
/** Synchronous host functions: string (or undefined) arguments, string (or undefined) result. */
|
|
90
|
+
sync?: Record<string, (...args: Array<string | undefined>) => string | undefined>;
|
|
91
|
+
/**
|
|
92
|
+
* Asynchronous host functions: string arguments, resolve to a string. They
|
|
93
|
+
* should not reject; encode failures in the string. A rejection becomes a
|
|
94
|
+
* plain `Error` inside the sandbox.
|
|
95
|
+
*/
|
|
96
|
+
async?: Record<string, (...args: Array<string | undefined>) => Promise<string>>;
|
|
97
|
+
}
|
|
98
|
+
export interface SandboxRunOptions {
|
|
99
|
+
code: string;
|
|
100
|
+
timeoutMs: number;
|
|
101
|
+
memoryLimitBytes?: number;
|
|
102
|
+
maxValueBytes?: number;
|
|
103
|
+
extensions?: SandboxExtension[];
|
|
104
|
+
}
|
|
105
|
+
export type PreparedSnippet = {
|
|
106
|
+
ok: true;
|
|
107
|
+
source: string;
|
|
108
|
+
} | {
|
|
109
|
+
ok: false;
|
|
110
|
+
error: SandboxError;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Wrap, strip types, parse, and rewrite the final expression statement into a
|
|
114
|
+
* `return`. The result is the source of one async function expression.
|
|
115
|
+
*/
|
|
116
|
+
export declare function prepareSnippet(code: string): PreparedSnippet;
|
|
117
|
+
/** Run one snippet to completion (or to its bound) and describe how it ended. */
|
|
118
|
+
export declare function runInSandbox(opts: SandboxRunOptions): Promise<SandboxOutcome>;
|
|
119
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|