run402 4.94.0 → 4.96.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 +23 -23
- package/cli.mjs +8 -40
- package/core-dist/keystore.js +1 -1
- package/git-remote-run402.mjs +6 -6
- package/lib/admin.mjs +5 -5
- package/lib/ai.mjs +5 -5
- package/lib/apps.mjs +9 -9
- package/lib/archives.mjs +371 -8
- package/lib/argparse.mjs +5 -5
- package/lib/assets.mjs +12 -12
- package/lib/auth.mjs +34 -34
- package/lib/branches.mjs +7 -7
- package/lib/buzz-doctor.mjs +1 -1
- package/lib/buzz-notifications.mjs +4 -4
- package/lib/buzz.mjs +2 -2
- package/lib/cache.mjs +1 -1
- package/lib/cdn.mjs +2 -2
- package/lib/ci.mjs +8 -8
- package/lib/claims.mjs +2 -2
- package/lib/cold-start.mjs +2 -2
- package/lib/command-manifest.mjs +37 -76
- package/lib/config.mjs +4 -4
- package/lib/contacts.mjs +3 -3
- package/lib/contracts.mjs +11 -11
- package/lib/credentials.mjs +32 -32
- package/lib/daemon-path.mjs +3 -3
- package/lib/delegates.mjs +13 -13
- package/lib/deliveries.mjs +2 -2
- package/lib/deploy-v2.mjs +26 -26
- package/lib/dev.mjs +3 -3
- package/lib/doctor.mjs +49 -58
- package/lib/domains.mjs +27 -27
- package/lib/email.mjs +38 -38
- package/lib/errors.mjs +40 -24
- package/lib/escalations.mjs +4 -4
- package/lib/events.mjs +32 -25
- package/lib/feedback.mjs +2 -2
- package/lib/functions.mjs +34 -34
- package/lib/grants.mjs +7 -7
- package/lib/image.mjs +7 -7
- package/lib/init.mjs +32 -32
- package/lib/jobs.mjs +15 -15
- package/lib/live.mjs +1 -1
- package/lib/logs.mjs +8 -8
- package/lib/messages.mjs +5 -5
- package/lib/next-actions.mjs +2 -2
- package/lib/org-context.mjs +22 -22
- package/lib/{org.mjs → orgs.mjs} +140 -179
- package/lib/path-lookup.mjs +7 -10
- package/lib/path-lookup.test.mjs +19 -21
- package/lib/projects.mjs +45 -56
- package/lib/remote-helper-session.mjs +93 -93
- package/lib/repos.mjs +196 -197
- package/lib/rooms-context.mjs +7 -7
- package/lib/rooms.mjs +2 -2
- package/lib/sdk-errors.mjs +1 -1
- package/lib/secrets.mjs +13 -13
- package/lib/sites.mjs +14 -14
- package/lib/snapshots.mjs +10 -10
- package/lib/subdomains.mjs +12 -12
- package/lib/subscriptions.mjs +2 -2
- package/lib/transfer.mjs +1 -1
- package/lib/up.mjs +21 -21
- package/lib/{gitvault-capabilities.mjs → vault-capabilities.mjs} +10 -14
- package/lib/{gitvault-daemon-run.mjs → vault-daemon-run.mjs} +2 -2
- package/lib/{gitvault-daemon.mjs → vault-daemon.mjs} +23 -23
- package/lib/{gitvault-scaffold.mjs → vault-scaffold.mjs} +14 -14
- package/lib/{gitvault-target.mjs → vault-target.mjs} +22 -17
- package/lib/wallet-context.mjs +1 -1
- package/lib/wallets.mjs +1 -1
- package/lib/webhooks.mjs +8 -8
- package/lib/whoami.mjs +32 -5
- package/package.json +2 -2
- package/sdk/core-dist/keystore.js +1 -1
- package/sdk/dist/actions.d.ts +3 -3
- package/sdk/dist/actions.d.ts.map +1 -1
- package/sdk/dist/app-up.d.ts +2 -2
- package/sdk/dist/app-up.d.ts.map +1 -1
- package/sdk/dist/config.d.ts +1 -2
- package/sdk/dist/config.d.ts.map +1 -1
- package/sdk/dist/config.js.map +1 -1
- package/sdk/dist/credentials.d.ts +1 -1
- package/sdk/dist/errors.d.ts +6 -6
- package/sdk/dist/errors.d.ts.map +1 -1
- package/sdk/dist/errors.js +1 -1
- package/sdk/dist/errors.js.map +1 -1
- package/sdk/dist/index.d.ts +9 -9
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +9 -9
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/namespaces/admin.d.ts +1 -1
- package/sdk/dist/namespaces/admin.d.ts.map +1 -1
- package/sdk/dist/namespaces/ai.d.ts +1 -1
- package/sdk/dist/namespaces/ai.js +2 -2
- package/sdk/dist/namespaces/ai.js.map +1 -1
- package/sdk/dist/namespaces/assets.js +1 -1
- package/sdk/dist/namespaces/assets.js.map +1 -1
- package/sdk/dist/namespaces/ci.js +3 -3
- package/sdk/dist/namespaces/ci.js.map +1 -1
- package/sdk/dist/namespaces/deploy.d.ts +5 -5
- package/sdk/dist/namespaces/deploy.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.js +45 -46
- package/sdk/dist/namespaces/deploy.js.map +1 -1
- package/sdk/dist/namespaces/deploy.types.d.ts +19 -19
- package/sdk/dist/namespaces/deploy.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/domains.d.ts +10 -2
- package/sdk/dist/namespaces/domains.d.ts.map +1 -1
- package/sdk/dist/namespaces/domains.js +10 -5
- package/sdk/dist/namespaces/domains.js.map +1 -1
- package/sdk/dist/namespaces/errors.js +1 -1
- package/sdk/dist/namespaces/functions.js +1 -1
- package/sdk/dist/namespaces/functions.js.map +1 -1
- package/sdk/dist/namespaces/org.d.ts +2 -2
- package/sdk/dist/namespaces/org.js +2 -2
- package/sdk/dist/namespaces/org.types.d.ts +3 -3
- package/sdk/dist/namespaces/pay.js +1 -1
- package/sdk/dist/namespaces/{gitvault.d.ts → repos.d.ts} +438 -451
- package/sdk/dist/namespaces/repos.d.ts.map +1 -0
- package/sdk/dist/namespaces/{gitvault.js → repos.js} +454 -462
- package/sdk/dist/namespaces/repos.js.map +1 -0
- package/sdk/dist/namespaces/rooms.js +2 -2
- package/sdk/dist/namespaces/rooms.js.map +1 -1
- package/sdk/dist/namespaces/session.d.ts +2 -2
- package/sdk/dist/namespaces/session.d.ts.map +1 -1
- package/sdk/dist/namespaces/session.js +2 -2
- package/sdk/dist/namespaces/session.js.map +1 -1
- package/sdk/dist/namespaces/tier.d.ts +4 -4
- package/sdk/dist/namespaces/tier.d.ts.map +1 -1
- package/sdk/dist/namespaces/transfers.d.ts +46 -15
- package/sdk/dist/namespaces/transfers.d.ts.map +1 -1
- package/sdk/dist/namespaces/transfers.js.map +1 -1
- package/sdk/dist/namespaces/{gitvault.crypto.d.ts → vault.crypto.d.ts} +141 -141
- package/sdk/dist/namespaces/vault.crypto.d.ts.map +1 -0
- package/sdk/dist/namespaces/{gitvault.crypto.js → vault.crypto.js} +173 -173
- package/sdk/dist/namespaces/vault.crypto.js.map +1 -0
- package/sdk/dist/namespaces/{gitvault.types.d.ts → vault.types.d.ts} +136 -136
- package/sdk/dist/namespaces/vault.types.d.ts.map +1 -0
- package/sdk/dist/namespaces/{gitvault.types.js → vault.types.js} +4 -4
- package/sdk/dist/namespaces/vault.types.js.map +1 -0
- package/sdk/dist/node/actions-node.js +8 -8
- package/sdk/dist/node/actions-node.js.map +1 -1
- package/sdk/dist/node/assets-node.js +6 -6
- package/sdk/dist/node/assets-node.js.map +1 -1
- package/sdk/dist/node/bearer-redeem-key.d.ts +1 -1
- package/sdk/dist/node/bearer-redeem-key.js +5 -5
- package/sdk/dist/node/bearer-redeem-key.js.map +1 -1
- package/sdk/dist/node/ci.js +1 -1
- package/sdk/dist/node/ci.js.map +1 -1
- package/sdk/dist/node/credentials.d.ts +1 -1
- package/sdk/dist/node/credentials.js +1 -1
- package/sdk/dist/node/deploy-manifest.d.ts +3 -5
- package/sdk/dist/node/deploy-manifest.d.ts.map +1 -1
- package/sdk/dist/node/deploy-manifest.js +3 -12
- package/sdk/dist/node/deploy-manifest.js.map +1 -1
- package/sdk/dist/node/http-dispatcher.js +5 -5
- package/sdk/dist/node/http-dispatcher.js.map +1 -1
- package/sdk/dist/node/index.d.ts +29 -29
- package/sdk/dist/node/index.d.ts.map +1 -1
- package/sdk/dist/node/index.js +39 -39
- package/sdk/dist/node/index.js.map +1 -1
- package/sdk/dist/node/manifest-export.js +2 -2
- package/sdk/dist/node/manifest-export.js.map +1 -1
- package/sdk/dist/node/org-adopt.js +1 -1
- package/sdk/dist/node/org-adopt.js.map +1 -1
- package/sdk/dist/node/sites-node.js +1 -1
- package/sdk/dist/node/sites-node.js.map +1 -1
- package/sdk/dist/node/{gitvault-address.d.ts → vault-address.d.ts} +42 -42
- package/sdk/dist/node/vault-address.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-address.js → vault-address.js} +43 -43
- package/sdk/dist/node/vault-address.js.map +1 -0
- package/sdk/dist/node/{gitvault-apply.d.ts → vault-apply.d.ts} +27 -27
- package/sdk/dist/node/vault-apply.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-apply.js → vault-apply.js} +38 -38
- package/sdk/dist/node/vault-apply.js.map +1 -0
- package/sdk/dist/node/vault-byo-config.d.ts +29 -0
- package/sdk/dist/node/vault-byo-config.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-byo-config.js → vault-byo-config.js} +18 -18
- package/sdk/dist/node/vault-byo-config.js.map +1 -0
- package/sdk/dist/node/vault-byo-probe.d.ts +20 -0
- package/sdk/dist/node/vault-byo-probe.d.ts.map +1 -0
- package/sdk/dist/node/vault-byo-probe.js +57 -0
- package/sdk/dist/node/vault-byo-probe.js.map +1 -0
- package/sdk/dist/node/{gitvault-creation-journal.d.ts → vault-creation-journal.d.ts} +69 -69
- package/sdk/dist/node/vault-creation-journal.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-creation-journal.js → vault-creation-journal.js} +54 -54
- package/sdk/dist/node/vault-creation-journal.js.map +1 -0
- package/sdk/dist/node/{gitvault-degraded-read.d.ts → vault-degraded-read.d.ts} +34 -34
- package/sdk/dist/node/vault-degraded-read.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-degraded-read.js → vault-degraded-read.js} +24 -24
- package/sdk/dist/node/vault-degraded-read.js.map +1 -0
- package/sdk/dist/node/{gitvault-deploy.d.ts → vault-deploy.d.ts} +67 -67
- package/sdk/dist/node/vault-deploy.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-deploy.js → vault-deploy.js} +27 -27
- package/sdk/dist/node/vault-deploy.js.map +1 -0
- package/sdk/dist/node/{gitvault-edge-fetch.d.ts → vault-edge-fetch.d.ts} +9 -9
- package/sdk/dist/node/vault-edge-fetch.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-edge-fetch.js → vault-edge-fetch.js} +11 -11
- package/sdk/dist/node/vault-edge-fetch.js.map +1 -0
- package/sdk/dist/node/{gitvault-handoff.d.ts → vault-handoff.d.ts} +9 -9
- package/sdk/dist/node/vault-handoff.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-handoff.js → vault-handoff.js} +24 -24
- package/sdk/dist/node/vault-handoff.js.map +1 -0
- package/sdk/dist/node/{gitvault-keystore.d.ts → vault-keystore.d.ts} +87 -77
- package/sdk/dist/node/vault-keystore.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-keystore.js → vault-keystore.js} +105 -68
- package/sdk/dist/node/vault-keystore.js.map +1 -0
- package/sdk/dist/node/{gitvault-member-bundle.d.ts → vault-member-bundle.d.ts} +17 -17
- package/sdk/dist/node/vault-member-bundle.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-member-bundle.js → vault-member-bundle.js} +11 -11
- package/sdk/dist/node/vault-member-bundle.js.map +1 -0
- package/sdk/dist/node/{gitvault-mirror-backend.d.ts → vault-mirror-backend.d.ts} +26 -26
- package/sdk/dist/node/vault-mirror-backend.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-mirror-backend.js → vault-mirror-backend.js} +25 -25
- package/sdk/dist/node/vault-mirror-backend.js.map +1 -0
- package/sdk/dist/node/{gitvault-mirror-config.d.ts → vault-mirror-config.d.ts} +23 -23
- package/sdk/dist/node/vault-mirror-config.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-mirror-config.js → vault-mirror-config.js} +16 -16
- package/sdk/dist/node/vault-mirror-config.js.map +1 -0
- package/sdk/dist/node/{gitvault-mirror.d.ts → vault-mirror.d.ts} +36 -36
- package/sdk/dist/node/vault-mirror.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-mirror.js → vault-mirror.js} +75 -75
- package/sdk/dist/node/vault-mirror.js.map +1 -0
- package/sdk/dist/node/{gitvault-native-crypto.d.ts → vault-native-crypto.d.ts} +10 -10
- package/sdk/dist/node/vault-native-crypto.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-native-crypto.js → vault-native-crypto.js} +16 -16
- package/sdk/dist/node/vault-native-crypto.js.map +1 -0
- package/sdk/dist/node/{gitvault-open-or-create.d.ts → vault-open-or-create.d.ts} +16 -16
- package/sdk/dist/node/vault-open-or-create.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-open-or-create.js → vault-open-or-create.js} +10 -10
- package/sdk/dist/node/vault-open-or-create.js.map +1 -0
- package/sdk/dist/node/{gitvault-prewarm.d.ts → vault-prewarm.d.ts} +13 -13
- package/sdk/dist/node/vault-prewarm.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-prewarm.js → vault-prewarm.js} +25 -25
- package/sdk/dist/node/vault-prewarm.js.map +1 -0
- package/sdk/dist/node/{gitvault-profile-scan.d.ts → vault-profile-scan.d.ts} +3 -3
- package/sdk/dist/node/vault-profile-scan.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-profile-scan.js → vault-profile-scan.js} +12 -12
- package/sdk/dist/node/vault-profile-scan.js.map +1 -0
- package/sdk/dist/node/{gitvault-prune.d.ts → vault-prune.d.ts} +61 -61
- package/sdk/dist/node/vault-prune.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-prune.js → vault-prune.js} +34 -34
- package/sdk/dist/node/vault-prune.js.map +1 -0
- package/sdk/dist/node/{gitvault-publication.d.ts → vault-publication.d.ts} +399 -399
- package/sdk/dist/node/vault-publication.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-publication.js → vault-publication.js} +584 -584
- package/sdk/dist/node/vault-publication.js.map +1 -0
- package/sdk/dist/node/{gitvault-push-to-create.d.ts → vault-push-to-create.d.ts} +16 -16
- package/sdk/dist/node/vault-push-to-create.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-push-to-create.js → vault-push-to-create.js} +9 -9
- package/sdk/dist/node/vault-push-to-create.js.map +1 -0
- package/sdk/dist/node/{gitvault-recover.d.ts → vault-recover.d.ts} +50 -50
- package/sdk/dist/node/vault-recover.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-recover.js → vault-recover.js} +84 -84
- package/sdk/dist/node/vault-recover.js.map +1 -0
- package/sdk/dist/node/{gitvault-restore.d.ts → vault-restore.d.ts} +8 -8
- package/sdk/dist/node/vault-restore.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-restore.js → vault-restore.js} +11 -11
- package/sdk/dist/node/vault-restore.js.map +1 -0
- package/sdk/dist/node/{gitvault-snapshot.d.ts → vault-snapshot.d.ts} +48 -48
- package/sdk/dist/node/vault-snapshot.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-snapshot.js → vault-snapshot.js} +61 -61
- package/sdk/dist/node/vault-snapshot.js.map +1 -0
- package/sdk/dist/node/{gitvault-writer-state.d.ts → vault-writer-state.d.ts} +8 -8
- package/sdk/dist/node/vault-writer-state.d.ts.map +1 -0
- package/sdk/dist/node/{gitvault-writer-state.js → vault-writer-state.js} +15 -15
- package/sdk/dist/node/vault-writer-state.js.map +1 -0
- package/sdk/dist/node/workflow-output.js +4 -4
- package/sdk/dist/node/workflow-output.js.map +1 -1
- package/sdk/dist/scoped.d.ts +8 -8
- package/sdk/dist/scoped.d.ts.map +1 -1
- package/sdk/dist/scoped.js +3 -3
- package/sdk/dist/scoped.js.map +1 -1
- package/vault-surface.json +40 -0
- package/gitvault-surface.json +0 -89
- package/lib/cloud.mjs +0 -256
- package/lib/core.mjs +0 -123
- package/lib/gitvault.mjs +0 -163
- package/lib/source-access.mjs +0 -70
- package/sdk/dist/namespaces/gitvault.crypto.d.ts.map +0 -1
- package/sdk/dist/namespaces/gitvault.crypto.js.map +0 -1
- package/sdk/dist/namespaces/gitvault.d.ts.map +0 -1
- package/sdk/dist/namespaces/gitvault.js.map +0 -1
- package/sdk/dist/namespaces/gitvault.types.d.ts.map +0 -1
- package/sdk/dist/namespaces/gitvault.types.js.map +0 -1
- package/sdk/dist/node/gitvault-address.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-address.js.map +0 -1
- package/sdk/dist/node/gitvault-apply.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-apply.js.map +0 -1
- package/sdk/dist/node/gitvault-byo-config.d.ts +0 -29
- package/sdk/dist/node/gitvault-byo-config.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-byo-config.js.map +0 -1
- package/sdk/dist/node/gitvault-byo-probe.d.ts +0 -20
- package/sdk/dist/node/gitvault-byo-probe.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-byo-probe.js +0 -57
- package/sdk/dist/node/gitvault-byo-probe.js.map +0 -1
- package/sdk/dist/node/gitvault-creation-journal.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-creation-journal.js.map +0 -1
- package/sdk/dist/node/gitvault-degraded-read.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-degraded-read.js.map +0 -1
- package/sdk/dist/node/gitvault-deploy.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-deploy.js.map +0 -1
- package/sdk/dist/node/gitvault-edge-fetch.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-edge-fetch.js.map +0 -1
- package/sdk/dist/node/gitvault-handoff.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-handoff.js.map +0 -1
- package/sdk/dist/node/gitvault-keystore.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-keystore.js.map +0 -1
- package/sdk/dist/node/gitvault-member-bundle.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-member-bundle.js.map +0 -1
- package/sdk/dist/node/gitvault-mirror-backend.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-mirror-backend.js.map +0 -1
- package/sdk/dist/node/gitvault-mirror-config.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-mirror-config.js.map +0 -1
- package/sdk/dist/node/gitvault-mirror.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-mirror.js.map +0 -1
- package/sdk/dist/node/gitvault-native-crypto.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-native-crypto.js.map +0 -1
- package/sdk/dist/node/gitvault-open-or-create.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-open-or-create.js.map +0 -1
- package/sdk/dist/node/gitvault-prewarm.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-prewarm.js.map +0 -1
- package/sdk/dist/node/gitvault-profile-scan.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-profile-scan.js.map +0 -1
- package/sdk/dist/node/gitvault-prune.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-prune.js.map +0 -1
- package/sdk/dist/node/gitvault-publication.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-publication.js.map +0 -1
- package/sdk/dist/node/gitvault-push-to-create.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-push-to-create.js.map +0 -1
- package/sdk/dist/node/gitvault-recover.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-recover.js.map +0 -1
- package/sdk/dist/node/gitvault-restore.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-restore.js.map +0 -1
- package/sdk/dist/node/gitvault-snapshot.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-snapshot.js.map +0 -1
- package/sdk/dist/node/gitvault-writer-state.d.ts.map +0 -1
- package/sdk/dist/node/gitvault-writer-state.js.map +0 -1
package/lib/functions.mjs
CHANGED
|
@@ -31,7 +31,7 @@ export function parseLogSinceFlag(since) {
|
|
|
31
31
|
return new Date(ms).toISOString();
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
/** `--request-id <
|
|
34
|
+
/** `--request-id <request_id>` must be a req_ / fnrun_ / fnatt_ correlation id. */
|
|
35
35
|
export function assertLogRequestIdFlag(requestId) {
|
|
36
36
|
if (requestId !== undefined && !FUNCTION_LOG_REQUEST_ID_RE.test(requestId)) {
|
|
37
37
|
fail({
|
|
@@ -77,29 +77,29 @@ Usage:
|
|
|
77
77
|
run402 functions <subcommand> [args...]
|
|
78
78
|
|
|
79
79
|
Subcommands:
|
|
80
|
-
deploy <name> --file <file> [--project <
|
|
80
|
+
deploy <name> --file <file> [--project <project_id>] [--timeout <s>] [--memory <mb>] [--deps <pkg,...>] [--schedule <cron>]
|
|
81
81
|
Deploy a function to a project
|
|
82
|
-
invoke <name> [--project <
|
|
82
|
+
invoke <name> [--project <project_id>] [--method <M>] [--body <json> | --body-file <path>] [--idempotency-key <key>] [--wait] [--timeout-ms <ms>] [--poll-interval-ms <ms>] [--raw]
|
|
83
83
|
Invoke a deployed function. Default
|
|
84
84
|
wraps the SDK result as JSON on stdout.
|
|
85
85
|
--raw prints the response body verbatim
|
|
86
86
|
(string body → text + newline, JSON
|
|
87
87
|
body → pretty-printed JSON).
|
|
88
|
-
logs [<name>] [--project <
|
|
88
|
+
logs [<name>] [--project <project_id>] [--tail <n>] [--since <ts>] [--request-id <request_id>] [--app|--platform|--all] [--follow]
|
|
89
89
|
Get function logs (app output by default;
|
|
90
90
|
omit <name> with --request-id to search
|
|
91
91
|
every function)
|
|
92
92
|
runs <action> ... Create, inspect, cancel, redrive, and
|
|
93
93
|
wait for durable function runs
|
|
94
|
-
update <name> [--project <
|
|
94
|
+
update <name> [--project <project_id>] [--schedule <cron>] [--schedule-remove] [--timeout <s>] [--memory <mb>]
|
|
95
95
|
Update function schedule or config without re-deploying
|
|
96
|
-
rebuild [<name>] [--all] [--project <
|
|
96
|
+
rebuild [<name>] [--all] [--project <project_id>]
|
|
97
97
|
Refresh function(s) onto the current platform
|
|
98
98
|
runtime (re-bundles from stored source; no
|
|
99
99
|
source change). Pass <name> for one function
|
|
100
100
|
or --all for every function in the project.
|
|
101
|
-
list [--project <
|
|
102
|
-
delete <name> [--project <
|
|
101
|
+
list [--project <project_id>] List all functions for a project
|
|
102
|
+
delete <name> [--project <project_id>] Delete a function
|
|
103
103
|
|
|
104
104
|
Legacy (still supported): a leading prj_... positional selects the project,
|
|
105
105
|
e.g. run402 functions deploy prj_abc123 stripe-webhook --file handler.ts
|
|
@@ -138,7 +138,7 @@ const SUB_HELP = {
|
|
|
138
138
|
deploy: `run402 functions deploy — Deploy a function to a project
|
|
139
139
|
|
|
140
140
|
Usage:
|
|
141
|
-
run402 functions deploy <name> --file <file> [--project <
|
|
141
|
+
run402 functions deploy <name> --file <file> [--project <project_id>] [options]
|
|
142
142
|
|
|
143
143
|
Legacy (still supported):
|
|
144
144
|
run402 functions deploy <project_id> <name> --file <file> [options]
|
|
@@ -147,7 +147,7 @@ Arguments:
|
|
|
147
147
|
<name> Function name (used in the invoke URL path)
|
|
148
148
|
|
|
149
149
|
Options:
|
|
150
|
-
--project <
|
|
150
|
+
--project <project_id> Target project ID (defaults to the active project)
|
|
151
151
|
--file <file> Required: path to the function source file
|
|
152
152
|
--timeout <s> Runtime timeout in seconds
|
|
153
153
|
--memory <mb> Memory in MB
|
|
@@ -183,7 +183,7 @@ Examples:
|
|
|
183
183
|
invoke: `run402 functions invoke — Invoke a deployed function
|
|
184
184
|
|
|
185
185
|
Usage:
|
|
186
|
-
run402 functions invoke <name> [--project <
|
|
186
|
+
run402 functions invoke <name> [--project <project_id>] [options]
|
|
187
187
|
|
|
188
188
|
Legacy (still supported):
|
|
189
189
|
run402 functions invoke <project_id> <name> [options]
|
|
@@ -192,7 +192,7 @@ Arguments:
|
|
|
192
192
|
<name> Function name
|
|
193
193
|
|
|
194
194
|
Options:
|
|
195
|
-
--project <
|
|
195
|
+
--project <project_id> Target project ID (defaults to the active project)
|
|
196
196
|
--method <M> HTTP method (default POST)
|
|
197
197
|
--body <json> Inline JSON request body (ignored for GET/HEAD). The CLI
|
|
198
198
|
validates it before sending; shell-corrupted JSON fails.
|
|
@@ -232,8 +232,8 @@ Examples:
|
|
|
232
232
|
logs: `run402 functions logs — Fetch or tail function logs
|
|
233
233
|
|
|
234
234
|
Usage:
|
|
235
|
-
run402 functions logs <name> [--project <
|
|
236
|
-
run402 functions logs --request-id <
|
|
235
|
+
run402 functions logs <name> [--project <project_id>] [options]
|
|
236
|
+
run402 functions logs --request-id <request_id> [--project <project_id>] [options]
|
|
237
237
|
|
|
238
238
|
Legacy (still supported):
|
|
239
239
|
run402 functions logs <project_id> <name> [options]
|
|
@@ -244,11 +244,11 @@ Arguments:
|
|
|
244
244
|
and each entry carries its "function".
|
|
245
245
|
|
|
246
246
|
Options:
|
|
247
|
-
--project <
|
|
247
|
+
--project <project_id> Target project ID (defaults to the active project)
|
|
248
248
|
--tail <n> Number of most-recent entries (default 50, max 1000).
|
|
249
249
|
Bounds the read BEFORE the origin filter below.
|
|
250
250
|
--since <ts> ISO timestamp or epoch ms; only entries after this
|
|
251
|
-
--request-id <
|
|
251
|
+
--request-id <request_id> Only entries correlated to this req_ (the
|
|
252
252
|
x-run402-request-id response header), fnrun_, or fnatt_ id
|
|
253
253
|
--app Only the function's own output (default). Lambda runtime
|
|
254
254
|
lines (INIT_START, START/END/REPORT RequestId, billed
|
|
@@ -274,12 +274,12 @@ Examples:
|
|
|
274
274
|
runs: `run402 functions runs — Manage durable function runs
|
|
275
275
|
|
|
276
276
|
Usage:
|
|
277
|
-
run402 functions runs create <function_name> --event-type <type> --idempotency-key <key> [--project <
|
|
278
|
-
run402 functions runs list <function_name> [--project <
|
|
279
|
-
run402 functions runs get <run_id> [--project <
|
|
280
|
-
run402 functions runs logs <run_id> [--project <
|
|
281
|
-
run402 functions runs cancel <run_id> [--project <
|
|
282
|
-
run402 functions runs redrive <run_id> [--project <
|
|
277
|
+
run402 functions runs create <function_name> --event-type <type> --idempotency-key <key> [--project <project_id>] [options]
|
|
278
|
+
run402 functions runs list <function_name> [--project <project_id>] [options]
|
|
279
|
+
run402 functions runs get <run_id> [--project <project_id>]
|
|
280
|
+
run402 functions runs logs <run_id> [--project <project_id>] [--tail <n>] [--since <ts>]
|
|
281
|
+
run402 functions runs cancel <run_id> [--project <project_id>]
|
|
282
|
+
run402 functions runs redrive <run_id> [--project <project_id>] [options]
|
|
283
283
|
|
|
284
284
|
Legacy (still supported): a leading prj_... positional selects the project,
|
|
285
285
|
e.g. run402 functions runs get <project_id> <run_id>
|
|
@@ -313,7 +313,7 @@ Examples:
|
|
|
313
313
|
update: `run402 functions update — Update function config without re-deploying
|
|
314
314
|
|
|
315
315
|
Usage:
|
|
316
|
-
run402 functions update <name> [--project <
|
|
316
|
+
run402 functions update <name> [--project <project_id>] [options]
|
|
317
317
|
|
|
318
318
|
Legacy (still supported):
|
|
319
319
|
run402 functions update <project_id> <name> [options]
|
|
@@ -322,7 +322,7 @@ Arguments:
|
|
|
322
322
|
<name> Function name
|
|
323
323
|
|
|
324
324
|
Options:
|
|
325
|
-
--project <
|
|
325
|
+
--project <project_id> Target project ID (defaults to the active project)
|
|
326
326
|
--schedule <cron> New cron schedule (pass '' to clear)
|
|
327
327
|
--schedule-remove Explicitly remove the schedule
|
|
328
328
|
--timeout <s> Runtime timeout in seconds
|
|
@@ -339,8 +339,8 @@ Examples:
|
|
|
339
339
|
rebuild: `run402 functions rebuild — Refresh function(s) onto the current platform runtime
|
|
340
340
|
|
|
341
341
|
Usage:
|
|
342
|
-
run402 functions rebuild <name> [--project <
|
|
343
|
-
run402 functions rebuild --all [--project <
|
|
342
|
+
run402 functions rebuild <name> [--project <project_id>]
|
|
343
|
+
run402 functions rebuild --all [--project <project_id>]
|
|
344
344
|
|
|
345
345
|
Legacy (still supported):
|
|
346
346
|
run402 functions rebuild <project_id> <name>
|
|
@@ -350,7 +350,7 @@ Arguments:
|
|
|
350
350
|
<name> Function name to rebuild (omit when using --all)
|
|
351
351
|
|
|
352
352
|
Options:
|
|
353
|
-
--project <
|
|
353
|
+
--project <project_id> Target project ID (defaults to the active project)
|
|
354
354
|
--all Rebuild every function in the project
|
|
355
355
|
|
|
356
356
|
What it does:
|
|
@@ -382,13 +382,13 @@ Examples:
|
|
|
382
382
|
list: `run402 functions list — List all functions for a project
|
|
383
383
|
|
|
384
384
|
Usage:
|
|
385
|
-
run402 functions list [--project <
|
|
385
|
+
run402 functions list [--project <project_id>]
|
|
386
386
|
|
|
387
387
|
Legacy (still supported):
|
|
388
388
|
run402 functions list <project_id>
|
|
389
389
|
|
|
390
390
|
Options:
|
|
391
|
-
--project <
|
|
391
|
+
--project <project_id> Target project ID (defaults to the active project)
|
|
392
392
|
|
|
393
393
|
Examples:
|
|
394
394
|
run402 functions list --project prj_abc123
|
|
@@ -396,7 +396,7 @@ Examples:
|
|
|
396
396
|
delete: `run402 functions delete — Delete a function from a project
|
|
397
397
|
|
|
398
398
|
Usage:
|
|
399
|
-
run402 functions delete <name> [--project <
|
|
399
|
+
run402 functions delete <name> [--project <project_id>]
|
|
400
400
|
|
|
401
401
|
Legacy (still supported):
|
|
402
402
|
run402 functions delete <project_id> <name>
|
|
@@ -405,7 +405,7 @@ Arguments:
|
|
|
405
405
|
<name> Function name to delete
|
|
406
406
|
|
|
407
407
|
Options:
|
|
408
|
-
--project <
|
|
408
|
+
--project <project_id> Target project ID (defaults to the active project)
|
|
409
409
|
|
|
410
410
|
Examples:
|
|
411
411
|
run402 functions delete stripe-webhook --project prj_abc123
|
|
@@ -532,7 +532,7 @@ function validateInvokeJsonBody(value, source, projectId, name) {
|
|
|
532
532
|
}
|
|
533
533
|
|
|
534
534
|
async function logs(projectId, name, args) {
|
|
535
|
-
const usage = "run402 functions logs <name> [--project <
|
|
535
|
+
const usage = "run402 functions logs <name> [--project <project_id>] [--tail <n>] [--since <ts>] [--request-id <request_id>] [--app|--platform|--all] [--follow] | run402 functions logs --request-id <request_id> [--project <project_id>]";
|
|
536
536
|
assertRequiredProject(projectId, usage);
|
|
537
537
|
assertKnownFlags(
|
|
538
538
|
args,
|
|
@@ -921,7 +921,7 @@ async function update(projectId, name, args) {
|
|
|
921
921
|
|
|
922
922
|
const UNLOCKED_DEPS_HINT =
|
|
923
923
|
"Function was deployed before dependency locking — redeploy from source " +
|
|
924
|
-
"(run402 functions deploy <
|
|
924
|
+
"(run402 functions deploy <project_id> <name> --file <file>) to refresh its runtime instead.";
|
|
925
925
|
|
|
926
926
|
// Annotate a `rebuild --all` batch with an actionable hint on per-function
|
|
927
927
|
// CANNOT_REBUILD_UNLOCKED_DEPS refusals. The batch endpoint returns 200 with
|
|
@@ -1031,7 +1031,7 @@ export async function run(sub, args) {
|
|
|
1031
1031
|
console.log(SUB_HELP[sub] || HELP);
|
|
1032
1032
|
process.exit(0);
|
|
1033
1033
|
}
|
|
1034
|
-
// Project selection (CLI-wide convention): `--project <
|
|
1034
|
+
// Project selection (CLI-wide convention): `--project <project_id>` wins, else a
|
|
1035
1035
|
// legacy leading `prj_...` positional, else the active project. Computed
|
|
1036
1036
|
// lazily so unknown subcommands never trip project resolution.
|
|
1037
1037
|
const select = () => resolveProjectSelector(args);
|
package/lib/grants.mjs
CHANGED
|
@@ -15,9 +15,9 @@ Usage:
|
|
|
15
15
|
run402 grants <subcommand> [args...]
|
|
16
16
|
|
|
17
17
|
Subcommands:
|
|
18
|
-
create <wallet> --capability <cap> [--project <
|
|
18
|
+
create <wallet> --capability <cap> [--project <project_id>] [--policy <json>] [--expires <iso8601>]
|
|
19
19
|
Issue a capability grant (owner of the project's org)
|
|
20
|
-
revoke <grant_id> [--project <
|
|
20
|
+
revoke <grant_id> [--project <project_id>]
|
|
21
21
|
Revoke a capability grant
|
|
22
22
|
|
|
23
23
|
Legacy (still supported):
|
|
@@ -40,7 +40,7 @@ const SUB_HELP = {
|
|
|
40
40
|
create: `run402 grants create — issue a per-project capability grant
|
|
41
41
|
|
|
42
42
|
Usage:
|
|
43
|
-
run402 grants create <wallet> --capability <cap> [--project <
|
|
43
|
+
run402 grants create <wallet> --capability <cap> [--project <project_id>] [--policy <json>] [--expires <iso8601>]
|
|
44
44
|
|
|
45
45
|
Legacy (still supported):
|
|
46
46
|
run402 grants create <project_id> <wallet> <capability> [options]
|
|
@@ -49,7 +49,7 @@ Arguments:
|
|
|
49
49
|
<wallet> EVM address or named wallet the grant is issued to
|
|
50
50
|
|
|
51
51
|
Options:
|
|
52
|
-
--project <
|
|
52
|
+
--project <project_id> Project to grant access to (defaults to the active project)
|
|
53
53
|
--capability <cap> e.g. deploy, functions:write (alternative to the legacy positional)
|
|
54
54
|
--policy <json> Capability-scoping policy object (gateway-interpreted)
|
|
55
55
|
--expires <iso8601> Expiry timestamp; omit for a non-expiring grant
|
|
@@ -59,7 +59,7 @@ Requires you to be an owner of the project's org.
|
|
|
59
59
|
revoke: `run402 grants revoke — revoke a per-project capability grant
|
|
60
60
|
|
|
61
61
|
Usage:
|
|
62
|
-
run402 grants revoke <grant_id> [--project <
|
|
62
|
+
run402 grants revoke <grant_id> [--project <project_id>]
|
|
63
63
|
|
|
64
64
|
Legacy (still supported):
|
|
65
65
|
run402 grants revoke <project_id> <grant_id>
|
|
@@ -81,7 +81,7 @@ async function create(args) {
|
|
|
81
81
|
const pos = requirePositionalCount(rest, CREATE_VALUE_FLAGS, {
|
|
82
82
|
min: expected,
|
|
83
83
|
max: expected,
|
|
84
|
-
command: "run402 grants create <wallet> --capability <cap> [--project <
|
|
84
|
+
command: "run402 grants create <wallet> --capability <cap> [--project <project_id>] [--policy <json>] [--expires <iso8601>]",
|
|
85
85
|
missing: capabilityFlag ? "Missing <wallet>." : "Missing <wallet> and/or <capability>.",
|
|
86
86
|
});
|
|
87
87
|
const wallet = pos[0];
|
|
@@ -107,7 +107,7 @@ async function revoke(args) {
|
|
|
107
107
|
const [grantId] = requirePositionalCount(rest, ["--project"], {
|
|
108
108
|
min: 1,
|
|
109
109
|
max: 1,
|
|
110
|
-
command: "run402 grants revoke <grant_id> [--project <
|
|
110
|
+
command: "run402 grants revoke <grant_id> [--project <project_id>]",
|
|
111
111
|
missing: "Missing <grant_id>.",
|
|
112
112
|
});
|
|
113
113
|
try {
|
package/lib/image.mjs
CHANGED
|
@@ -17,7 +17,7 @@ Options:
|
|
|
17
17
|
--org <org_id> The paying organization when the wallet belongs to more
|
|
18
18
|
than one (Lightning rail); x402 ignores it. Omitted, it
|
|
19
19
|
is the current org (RUN402_ORG, the .run402.json binding,
|
|
20
|
-
run402
|
|
20
|
+
run402 orgs use, or the active project's owning org)
|
|
21
21
|
--help, -h Show this help message
|
|
22
22
|
|
|
23
23
|
Examples:
|
|
@@ -53,7 +53,7 @@ Options:
|
|
|
53
53
|
--org <org_id> The paying organization when the wallet belongs to more
|
|
54
54
|
than one (Lightning rail); x402 ignores it. Omitted, it
|
|
55
55
|
is the current org (RUN402_ORG, the .run402.json binding,
|
|
56
|
-
run402
|
|
56
|
+
run402 orgs use, or the active project's owning org)
|
|
57
57
|
|
|
58
58
|
Notes:
|
|
59
59
|
- Requires a funded wallet (run402 init && run402 wallets fund)
|
|
@@ -112,7 +112,7 @@ export async function run(sub, args) {
|
|
|
112
112
|
|
|
113
113
|
// The paying organization rides the ONE shared org chain (--org, then
|
|
114
114
|
// RUN402_ORG / RUN402_ROOM / RUN402_PROJECT_ID, then the .run402.json
|
|
115
|
-
// binding, then `
|
|
115
|
+
// binding, then `orgs use` / the active project's owning org). Only the
|
|
116
116
|
// Lightning rail reads it — a multi-org principal is refused
|
|
117
117
|
// ORGANIZATION_SELECTION_REQUIRED without one — and x402 ignores it, so
|
|
118
118
|
// resolving it is never a reason to refuse an x402 purchase: `optional`
|
|
@@ -150,12 +150,12 @@ function reportOrgSelectionError(err, org) {
|
|
|
150
150
|
code,
|
|
151
151
|
message: err.message,
|
|
152
152
|
hint:
|
|
153
|
-
`Pass --org <org_id> (one of: ${ids.join(", ") || "run402
|
|
154
|
-
"run402
|
|
153
|
+
`Pass --org <org_id> (one of: ${ids.join(", ") || "run402 orgs list"}) or select a current organization with ` +
|
|
154
|
+
"run402 orgs use <org_id>. Only the Lightning rail needs it; x402 ignores it.",
|
|
155
155
|
details: { ...details, organization_ids: ids, org_source: org?.source ?? null, org_source_detail: org?.sourceDetail ?? null },
|
|
156
156
|
next_actions: err.nextActions ?? [
|
|
157
157
|
nextAction("edit_request", { command: 'run402 image generate "<prompt>" --org <org_id>', why: "Name the paying organization on this call." }),
|
|
158
|
-
nextAction("edit_request", { command: "run402
|
|
158
|
+
nextAction("edit_request", { command: "run402 orgs use <org_id>", why: "Select a current organization for this profile." }),
|
|
159
159
|
],
|
|
160
160
|
});
|
|
161
161
|
}
|
|
@@ -165,7 +165,7 @@ function reportOrgSelectionError(err, org) {
|
|
|
165
165
|
message: err.message,
|
|
166
166
|
hint:
|
|
167
167
|
`The paying organization ${org.orgId} came from ${org.sourceDetail} (${org.source}) and this principal holds no billing role there. ` +
|
|
168
|
-
"Pass --org <org_id> for an organization you can bill, or run: run402
|
|
168
|
+
"Pass --org <org_id> for an organization you can bill, or run: run402 orgs use <org_id>",
|
|
169
169
|
details: { ...details, org_source: org.source, org_source_detail: org.sourceDetail },
|
|
170
170
|
next_actions: err.nextActions,
|
|
171
171
|
});
|
package/lib/init.mjs
CHANGED
|
@@ -49,9 +49,9 @@ Options:
|
|
|
49
49
|
client (claude-code, codex, cursor, or grok; RUN402_CLIENT=<name>
|
|
50
50
|
declares one that is not auto-detected) and otherwise writes
|
|
51
51
|
nothing; RUN402_AGENT_NAME=<name> sets or overrides it. Change
|
|
52
|
-
it any time with \`run402
|
|
52
|
+
it any time with \`run402 whoami --set-name <name>\`.
|
|
53
53
|
--git-remote Also 'git init' the current directory when it is not a
|
|
54
|
-
repository yet, so the
|
|
54
|
+
repository yet, so the vault remote can be added there.
|
|
55
55
|
Opt-in on purpose: init is often run outside a project
|
|
56
56
|
directory and must never create a repository somewhere you
|
|
57
57
|
did not ask it to. Inside an EXISTING repository the remote
|
|
@@ -62,14 +62,14 @@ Output:
|
|
|
62
62
|
tier, projects_saved, active_project_id, next_step }. Progress lines
|
|
63
63
|
(Config / Wallet / Balance / Tier / Next) go to stderr so a human
|
|
64
64
|
re-running interactively sees what's happening while a script piping stdout
|
|
65
|
-
to jq stays clean. The summary also carries {
|
|
66
|
-
remote), or {
|
|
67
|
-
added, or {
|
|
65
|
+
to jq stays clean. The summary also carries { vault } (the scaffolded
|
|
66
|
+
remote), or { vault: null, vault_skipped } naming why no remote was
|
|
67
|
+
added, or { vault: null, vault_error } when it could not be added.
|
|
68
68
|
\`projects_saved\` counts projects with LOCAL keys; \`active_project_id\` is the
|
|
69
|
-
project the
|
|
69
|
+
project the vault scaffold acted on.
|
|
70
70
|
|
|
71
71
|
init scaffolds the git remote only. It does NOT allocate the vault — that is
|
|
72
|
-
\`run402 repos create --project <
|
|
72
|
+
\`run402 repos create --project <project_id>\`, which mints key material and a
|
|
73
73
|
recovery receipt and therefore stays an explicit step.
|
|
74
74
|
|
|
75
75
|
Steps (idempotent when re-run with the same rail; pass --switch-rail to change rails):
|
|
@@ -215,13 +215,13 @@ function errorMessage(err) {
|
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
/**
|
|
218
|
-
* Which project the
|
|
218
|
+
* Which project the vault scaffold acts on — and why it may act on none.
|
|
219
219
|
*
|
|
220
220
|
* The CLI-wide resolution order (`RUN402_PROJECT_ID`, then the active
|
|
221
221
|
* project), not `getActiveProjectId()` alone. Reading only the active project
|
|
222
222
|
* meant an agent that had exported `RUN402_PROJECT_ID` — the normal way to
|
|
223
223
|
* address a project without mutating machine state — got a silent no-op: no
|
|
224
|
-
* remote, no allocation, and no `
|
|
224
|
+
* remote, no allocation, and no `vault` key in the summary at all, with
|
|
225
225
|
* nothing anywhere saying `run402 projects use` was a prerequisite
|
|
226
226
|
* (dogfood #1, finding A). A command that exits 0 having done nothing is worse
|
|
227
227
|
* than an error, so the no-project case names itself.
|
|
@@ -375,7 +375,7 @@ export async function run(args = []) {
|
|
|
375
375
|
...(voucherCode ? { voucher: null } : {}),
|
|
376
376
|
tier: null,
|
|
377
377
|
projects_saved: 0,
|
|
378
|
-
/** The project init acted on — the input to the
|
|
378
|
+
/** The project init acted on — the input to the vault scaffold decision. */
|
|
379
379
|
active_project_id: null,
|
|
380
380
|
next_actions: [],
|
|
381
381
|
next_step: null,
|
|
@@ -637,17 +637,17 @@ export async function run(args = []) {
|
|
|
637
637
|
// local keys, so it is legitimately not counted here; `active_project_id`
|
|
638
638
|
// below is the field that says which project init actually acted on, and
|
|
639
639
|
// reading `projects_saved: 0` as "init did nothing" is what made the
|
|
640
|
-
//
|
|
640
|
+
// vault skip look silent (dogfood #1, finding A).
|
|
641
641
|
summary.projects_saved = Object.keys(store.projects).length;
|
|
642
642
|
line("Projects", `${summary.projects_saved} saved`);
|
|
643
643
|
|
|
644
|
-
// 5b.
|
|
644
|
+
// 5b. vault git remote (vault-client-surface, task 5.7).
|
|
645
645
|
//
|
|
646
646
|
// Purely LOCAL git. No vault is allocated and no key material is written
|
|
647
647
|
// here — the spec is explicit that neither exists until first capture, so the
|
|
648
648
|
// cold-start path gains no prompt and no new failure mode. Allocation happens
|
|
649
|
-
// on the first `git push origin <branch>` or `run402
|
|
650
|
-
// repo-first-onramp) — NOT on deploy: `
|
|
649
|
+
// on the first `git push origin <branch>` or `run402 repos capture` (D2,
|
|
650
|
+
// repo-first-onramp) — NOT on deploy: `applyWithVault` only ever reads an
|
|
651
651
|
// EXISTING vault's policy (D3) and never allocates one that does not exist,
|
|
652
652
|
// so a project with no vault deploys exactly as it always did.
|
|
653
653
|
//
|
|
@@ -664,11 +664,11 @@ export async function run(args = []) {
|
|
|
664
664
|
const { projectId: activeProjectId, skipped: noProjectSkip } = resolveScaffoldProject();
|
|
665
665
|
summary.active_project_id = activeProjectId;
|
|
666
666
|
if (noProjectSkip) {
|
|
667
|
-
summary.
|
|
668
|
-
summary.
|
|
669
|
-
line("
|
|
667
|
+
summary.vault = null;
|
|
668
|
+
summary.vault_skipped = noProjectSkip;
|
|
669
|
+
line("Vault", "skipped — no project selected (run402 projects use <project_id>)");
|
|
670
670
|
} else {
|
|
671
|
-
summary.
|
|
671
|
+
summary.vault = null;
|
|
672
672
|
try {
|
|
673
673
|
// Dynamic import: the scaffold is the only thing here that needs the
|
|
674
674
|
// Node SDK's hardened git runner, and a top-level import would drag it
|
|
@@ -681,43 +681,43 @@ export async function run(args = []) {
|
|
|
681
681
|
insideRepo = false;
|
|
682
682
|
}
|
|
683
683
|
if (!insideRepo && !scaffoldGitRemote) {
|
|
684
|
-
summary.
|
|
685
|
-
line("
|
|
684
|
+
summary.vault_skipped = "not a git repository — re-run with --git-remote to create one and add the remote";
|
|
685
|
+
line("Vault", "skipped — not a git repository (--git-remote creates one)");
|
|
686
686
|
} else {
|
|
687
687
|
const orgId = await resolveOwningOrgId(activeProjectId);
|
|
688
688
|
if (!orgId) {
|
|
689
|
-
summary.
|
|
690
|
-
line("
|
|
689
|
+
summary.vault_skipped = `could not resolve the owning org for ${activeProjectId} — the run402 remote was not added`;
|
|
690
|
+
line("Vault", "skipped — owning org unresolved");
|
|
691
691
|
} else {
|
|
692
|
-
const remote = await getSdk().
|
|
692
|
+
const remote = await getSdk().repos.scaffoldRemote({
|
|
693
693
|
repo_dir: process.cwd(),
|
|
694
694
|
org_id: orgId,
|
|
695
695
|
project_id: activeProjectId,
|
|
696
696
|
});
|
|
697
697
|
// `allocated: false` is stated, not left to be inferred: this was
|
|
698
698
|
// local git only, and no vault exists for the project yet.
|
|
699
|
-
summary.
|
|
699
|
+
summary.vault = { ...remote, allocated: false };
|
|
700
700
|
if (remote.already_present && remote.existing_url !== remote.url) {
|
|
701
701
|
// Left exactly as it was. Name the URL that is actually in place
|
|
702
702
|
// rather than implying the remote now points at this project.
|
|
703
|
-
line("
|
|
703
|
+
line("Vault", `remote '${remote.name}' already points at ${remote.existing_url} — left unchanged (${remote.reason})`);
|
|
704
704
|
} else if (remote.already_present) {
|
|
705
|
-
line("
|
|
705
|
+
line("Vault", `remote '${remote.name}' already set (${remote.url})`);
|
|
706
706
|
} else {
|
|
707
707
|
// D1: `origin` when it was free, `run402` when it was already
|
|
708
708
|
// taken by something else — `remote.reason` says which happened.
|
|
709
|
-
line("
|
|
709
|
+
line("Vault", `${remote.created_repository ? "initialized a repository and added" : "added"} remote '${remote.name}' -> ${remote.url} (${remote.reason})`);
|
|
710
710
|
}
|
|
711
711
|
}
|
|
712
712
|
}
|
|
713
713
|
} catch (err) {
|
|
714
714
|
const reason = errorMessage(err);
|
|
715
|
-
summary.
|
|
716
|
-
summary.
|
|
717
|
-
code: err?.body?.code ?? err?.code ?? "
|
|
715
|
+
summary.vault = null;
|
|
716
|
+
summary.vault_error = {
|
|
717
|
+
code: err?.body?.code ?? err?.code ?? "VAULT_SCAFFOLD_FAILED",
|
|
718
718
|
message: reason,
|
|
719
719
|
};
|
|
720
|
-
line("
|
|
720
|
+
line("Vault", `remote not added: ${reason}`);
|
|
721
721
|
}
|
|
722
722
|
}
|
|
723
723
|
|
|
@@ -736,7 +736,7 @@ export async function run(args = []) {
|
|
|
736
736
|
if (rows.length === 1) {
|
|
737
737
|
line("Org", `${rows[0].org_id}${rows[0].display_name ? ` (${rows[0].display_name})` : ""}`);
|
|
738
738
|
} else if (rows.length > 1) {
|
|
739
|
-
line("Org", `${rows.length} organizations — run402
|
|
739
|
+
line("Org", `${rows.length} organizations — run402 orgs list`);
|
|
740
740
|
}
|
|
741
741
|
} catch {
|
|
742
742
|
// Best-effort, exactly like the billing read: a listing failure must never
|
package/lib/jobs.mjs
CHANGED
|
@@ -48,13 +48,13 @@ const SUB_HELP = {
|
|
|
48
48
|
submit: `run402 jobs submit — Submit a managed job request
|
|
49
49
|
|
|
50
50
|
Usage:
|
|
51
|
-
run402 jobs submit --file <path> [--project <
|
|
52
|
-
run402 jobs submit --stdin [--project <
|
|
51
|
+
run402 jobs submit --file <path> [--project <project_id>]
|
|
52
|
+
run402 jobs submit --stdin [--project <project_id>]
|
|
53
53
|
|
|
54
54
|
Options:
|
|
55
55
|
--file <path> Read the JSON submit request from a file
|
|
56
56
|
--stdin Read the JSON submit request from stdin
|
|
57
|
-
--project <
|
|
57
|
+
--project <project_id> Project ID (defaults to the active project)
|
|
58
58
|
|
|
59
59
|
Example request:
|
|
60
60
|
{
|
|
@@ -72,36 +72,36 @@ Example request:
|
|
|
72
72
|
get: `run402 jobs get — Get a managed job run
|
|
73
73
|
|
|
74
74
|
Usage:
|
|
75
|
-
run402 jobs get <job_id> [--project <
|
|
75
|
+
run402 jobs get <job_id> [--project <project_id>]
|
|
76
76
|
|
|
77
77
|
Options:
|
|
78
|
-
--project <
|
|
78
|
+
--project <project_id> Project ID (defaults to the active project)
|
|
79
79
|
`,
|
|
80
80
|
logs: `run402 jobs logs — Read managed job logs
|
|
81
81
|
|
|
82
82
|
Usage:
|
|
83
|
-
run402 jobs logs <job_id> [--project <
|
|
83
|
+
run402 jobs logs <job_id> [--project <project_id>] [--tail <n>] [--since <iso>]
|
|
84
84
|
|
|
85
85
|
Options:
|
|
86
|
-
--project <
|
|
86
|
+
--project <project_id> Project ID (defaults to the active project)
|
|
87
87
|
--tail <n> Maximum entries to return (gateway max: 1000)
|
|
88
88
|
--since <iso> Only include logs at or after this ISO-8601 timestamp
|
|
89
89
|
`,
|
|
90
90
|
cancel: `run402 jobs cancel — Cancel a managed job run
|
|
91
91
|
|
|
92
92
|
Usage:
|
|
93
|
-
run402 jobs cancel <job_id> [--project <
|
|
93
|
+
run402 jobs cancel <job_id> [--project <project_id>]
|
|
94
94
|
|
|
95
95
|
Options:
|
|
96
|
-
--project <
|
|
96
|
+
--project <project_id> Project ID (defaults to the active project)
|
|
97
97
|
`,
|
|
98
98
|
purge: `run402 jobs purge — Purge all managed job runs for a project
|
|
99
99
|
|
|
100
100
|
Usage:
|
|
101
|
-
run402 jobs purge [--project <
|
|
101
|
+
run402 jobs purge [--project <project_id>]
|
|
102
102
|
|
|
103
103
|
Options:
|
|
104
|
-
--project <
|
|
104
|
+
--project <project_id> Project ID (defaults to the active project)
|
|
105
105
|
|
|
106
106
|
Deletes all project-scoped managed-job run records. Queued/running jobs are
|
|
107
107
|
included in the purge; known active runner instances are terminated first.
|
|
@@ -110,7 +110,7 @@ Prints { deleted_jobs, cancelled_active_jobs, terminated_instances }.
|
|
|
110
110
|
artifacts: `run402 jobs artifacts — Download outputs from a completed managed job
|
|
111
111
|
|
|
112
112
|
Usage:
|
|
113
|
-
run402 jobs artifacts get <job_id> <file> --output <path> [--project <
|
|
113
|
+
run402 jobs artifacts get <job_id> <file> --output <path> [--project <project_id>]
|
|
114
114
|
|
|
115
115
|
Actions:
|
|
116
116
|
get <job_id> <file> Download the named artifact to a local file
|
|
@@ -121,14 +121,14 @@ recorded filenames on a given run.
|
|
|
121
121
|
"artifacts get": `run402 jobs artifacts get — Download a completed job's artifact
|
|
122
122
|
|
|
123
123
|
Usage:
|
|
124
|
-
run402 jobs artifacts get <job_id> --file <name> --output <path> [--project <
|
|
124
|
+
run402 jobs artifacts get <job_id> --file <name> --output <path> [--project <project_id>]
|
|
125
125
|
|
|
126
126
|
Legacy (still supported):
|
|
127
|
-
run402 jobs artifacts get <job_id> <file> --output <path> [--project <
|
|
127
|
+
run402 jobs artifacts get <job_id> <file> --output <path> [--project <project_id>]
|
|
128
128
|
|
|
129
129
|
Options:
|
|
130
130
|
--output, -o <path> Local destination path (required)
|
|
131
|
-
--project <
|
|
131
|
+
--project <project_id> Project ID (defaults to the active project)
|
|
132
132
|
|
|
133
133
|
The job must be completed and the filename must be in its recorded artifact
|
|
134
134
|
set (see the 'artifacts' map from 'run402 jobs get <job_id>'); otherwise the
|
package/lib/live.mjs
CHANGED
|
@@ -23,7 +23,7 @@ Usage:
|
|
|
23
23
|
Options:
|
|
24
24
|
--tables <names> Comma-separated live table names (tables with "live": true in the
|
|
25
25
|
expose manifest). Required.
|
|
26
|
-
--project <
|
|
26
|
+
--project <project_id> Project to read (defaults to the active project)
|
|
27
27
|
--cursor <c> Resume from a cursor (a previous "cursor" or a change's cursor)
|
|
28
28
|
--as <audience> anon (project anon key; public-policy tables) or service (service
|
|
29
29
|
key; every hint, including owner-scoped ones). Default anon.
|
package/lib/logs.mjs
CHANGED
|
@@ -33,11 +33,11 @@ import {
|
|
|
33
33
|
const HELP = `run402 logs — Fetch function logs by request id
|
|
34
34
|
|
|
35
35
|
Usage:
|
|
36
|
-
run402 logs --request-id <
|
|
37
|
-
run402 logs --function <name> [--project <
|
|
36
|
+
run402 logs --request-id <request_id> [<function> | --function <name>] [--project <project_id>] [options]
|
|
37
|
+
run402 logs --function <name> [--project <project_id>] [options]
|
|
38
38
|
|
|
39
39
|
Required (one of):
|
|
40
|
-
--request-id <
|
|
40
|
+
--request-id <request_id> A req_... id (the x-run402-request-id response header),
|
|
41
41
|
or a fnrun_... / fnatt_... durable-run id. Without
|
|
42
42
|
--function, every function in the project is scanned.
|
|
43
43
|
--function <name> Limit to one function. Alone (no --request-id) this
|
|
@@ -45,7 +45,7 @@ Required (one of):
|
|
|
45
45
|
<function> means the same thing.
|
|
46
46
|
|
|
47
47
|
Optional:
|
|
48
|
-
--project <
|
|
48
|
+
--project <project_id> Project id (default: \$RUN402_PROJECT_ID, else the active project)
|
|
49
49
|
--tail <n> Max entries per function BEFORE the origin filter (default 100, max 1000)
|
|
50
50
|
--since <ts> ISO timestamp or epoch ms; only entries at or after this
|
|
51
51
|
--app Only the function's own output (default). Lambda runtime
|
|
@@ -77,7 +77,7 @@ Tip: the request id appears in:
|
|
|
77
77
|
- The 'x-run402-request-id' response header on every function response
|
|
78
78
|
- The 'requestId' field of any R402_SSR_RUNTIME_ERROR envelope
|
|
79
79
|
- The 'request_id' field in deploy / cache invalidate result envelopes
|
|
80
|
-
- The 'samples' of 'run402 errors' (each sample names a runnable logs command)
|
|
80
|
+
- The 'samples' of 'run402 errors list' (each sample names a runnable logs command)
|
|
81
81
|
`;
|
|
82
82
|
|
|
83
83
|
const VALUE_FLAGS = ["--request-id", "--function", "--project", "--tail", "--since"];
|
|
@@ -103,7 +103,7 @@ export async function run(sub, args = []) {
|
|
|
103
103
|
fail({
|
|
104
104
|
code: "BAD_USAGE",
|
|
105
105
|
message: `Unexpected argument: ${positionals[1]}`,
|
|
106
|
-
hint: "run402 logs [<function>] --request-id <
|
|
106
|
+
hint: "run402 logs [<function>] --request-id <request_id> [--project <project_id>]",
|
|
107
107
|
details: { argument: positionals[1] },
|
|
108
108
|
});
|
|
109
109
|
}
|
|
@@ -119,7 +119,7 @@ export async function run(sub, args = []) {
|
|
|
119
119
|
if (!requestId && !fnName) {
|
|
120
120
|
fail({
|
|
121
121
|
code: "BAD_USAGE",
|
|
122
|
-
message: "Missing --request-id <
|
|
122
|
+
message: "Missing --request-id <request_id> (or --function <name> for a plain tail).",
|
|
123
123
|
hint: "Pass the request id from the 'x-run402-request-id' response header.",
|
|
124
124
|
});
|
|
125
125
|
}
|
|
@@ -130,7 +130,7 @@ export async function run(sub, args = []) {
|
|
|
130
130
|
fail({
|
|
131
131
|
code: "BAD_USAGE",
|
|
132
132
|
message: "Missing project id.",
|
|
133
|
-
hint: "Pass --project <
|
|
133
|
+
hint: "Pass --project <project_id>, set RUN402_PROJECT_ID, or 'run402 projects use <project_id>'.",
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
|