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/README.md
CHANGED
|
@@ -61,7 +61,7 @@ Every mode (and `run402 deploy`) verifies the files the manifest references befo
|
|
|
61
61
|
|
|
62
62
|
### repos — host-blind encrypted git repos (zero deploy ceremony)
|
|
63
63
|
|
|
64
|
-
One noun,
|
|
64
|
+
One noun, seventeen verbs: KyGit is the brand, a vault is the resource, a repo is what you have.
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
67
|
run402 init # once per machine
|
|
@@ -76,13 +76,13 @@ run402 repos list --org org_1a2b3c
|
|
|
76
76
|
run402 repos delete --project prj_xyz --force # refuses without --force while the vault holds generations
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
A hosted git remote, encrypted before it leaves the machine — no deploy, no manifest, no app. `origin` is claimed additively — an existing `origin` is never touched, the run402 remote falls back to `run402` instead. A directory inside another repository is never scaffolded into that repository: the skip carries a `create_nested_repo` next action, `--nested` makes it its own nested repository (one line appended to the enclosing repository's local `.git/info/exclude`, nothing else touched), and `create` prints a `git push` next action only for a remote it actually added. Every mutating `repos` verb (`create`, `rename`, `delete`, `
|
|
79
|
+
A hosted git remote, encrypted before it leaves the machine — no deploy, no manifest, no app. `origin` is claimed additively — an existing `origin` is never touched, the run402 remote falls back to `run402` instead. A directory inside another repository is never scaffolded into that repository: the skip carries a `create_nested_repo` next action, `--nested` makes it its own nested repository (one line appended to the enclosing repository's local `.git/info/exclude`, nothing else touched), and `create` prints a `git push` next action only for a remote it actually added. Every mutating `repos` verb (`create`, `rename`, `delete`, `capture`, `policy`, `mirror`, `gc`, `handoff`, `resume`, `invite`, `join`) is CLI/OpenClaw-only by design — no MCP tool exists or will exist for them (one-shot recovery receipts, immutable generations, irreversible delete, single-use bearer keys). Three READ-ONLY tools do exist — `repos_view`, `repos_list_heads`, `repos_fsck` — teaching only `repos` spellings. See `run402 repos --help` for the full tiered surface (common: `create`/`view`/`list`; occasional: `capture`/`mirror`/`recover`/`handoff`/`resume`/`invite`/`join`; lifecycle: `rename`/`delete`; maintenance: `fsck`/`gc`/`access`/`policy`), and the CLI reference's `repos` section for the terminal-loss statement and the progressive backup warning.
|
|
80
80
|
|
|
81
81
|
**Handoff / resume.** `run402 repos handoff [--note-file <path>]` captures the actual working tree (staged/unstaged/untracked, like `git stash push -u`) into the vault and mints a single-use bearer key (`kgh1_…`, printed to stdout exactly once); `run402 repos resume <kgh1_…>` claims it on another machine, clones fresh, and reapplies the exact dirty state with `git stash apply --index`. No shared keystore, no shared wallet — the key is the whole handoff. On a wallet with no active tier, `resume` first folds the same cold-start chain `create` does (wallet → faucet → one x402 prototype payment); `--no-init` opts out, and the claim itself never waits on it. Sensitive untracked files (`.env`, `*.pem`, SSH/AWS/GPG dirs, …) are excluded from capture by default (`--include-sensitive <glob>` re-admits one). See the reference `run402.com/llms-cli.txt` for the full note-schema and flag reference.
|
|
82
82
|
|
|
83
83
|
**Invite / join.** The second claim kind beside handoff/resume: a Handoff passes the work on and the sender stops; an Invite grows the team while the sender keeps working. `run402 repos invite [--room <key>] [--note-file <path>]` captures the checkpoint exactly like `handoff` — the inviter's own worktree, index, branch, refs, and access are all untouched — registers the inviter's presence in a coordination room (the project's default room, or `--room <key>` for a named org room), mints a single-use bearer key (`kgi1_…`, printed to stdout exactly once), and posts ONE room message naming the checkpoint (never the key). `run402 repos join <kgi1_…>` folds the SAME cold-start chain `resume` does before the claim, clones fresh, restores the exact dirty state, pins the invite's room locally, registers its own presence, posts ONE arrival message, and reports the inviter (name, labels, liveness), the room's other live presences, and the last few messages. `run402 messages wait` is the room's blocking read from there — the agent's ear, never an error on silence. Neither `invite` nor `join` has an MCP tool, same reasoning as `handoff`/`resume`.
|
|
84
84
|
|
|
85
|
-
**Named addressing.** `run402
|
|
85
|
+
**Named addressing.** `run402 orgs slug <slug>` (owner-only, small one-time fee) sets an org's globally-unique, address-form slug, after which `run402::<slug>/<name>` addresses any repo under it — `git push` to a name that doesn't exist yet push-to-creates it. `run402 repos rename <name> [--project <project_id>]` claims the per-org-unique `<name>` half explicitly (no fee); `repos create` claims one automatically, best-effort, when the org already has a slug. Also CLI/SDK-only — no MCP tool.
|
|
86
86
|
|
|
87
87
|
### Wallet
|
|
88
88
|
|
|
@@ -144,11 +144,11 @@ reconciliation.
|
|
|
144
144
|
### Database
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
|
-
run402 projects sql <
|
|
148
|
-
run402 projects validate-expose <
|
|
149
|
-
run402 projects apply-expose <
|
|
150
|
-
run402 projects rest <
|
|
151
|
-
run402 projects schema <
|
|
147
|
+
run402 projects sql <project_id> "CREATE TABLE items (id serial PRIMARY KEY, …)"
|
|
148
|
+
run402 projects validate-expose <project_id> --file manifest.json # check auth manifest, no mutation
|
|
149
|
+
run402 projects apply-expose <project_id> --file manifest.json # declare what's reachable
|
|
150
|
+
run402 projects rest <project_id> items "select=*&order=id.desc&limit=10"
|
|
151
|
+
run402 projects schema <project_id> # introspect tables + RLS
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
### Static sites
|
|
@@ -223,18 +223,18 @@ The returned `cdn_url` is content-addressed (`pr-<public_id>.run402.com/_blob/<k
|
|
|
223
223
|
### Functions
|
|
224
224
|
|
|
225
225
|
```bash
|
|
226
|
-
run402 functions deploy <
|
|
226
|
+
run402 functions deploy <project_id> my-fn --file fn.ts \
|
|
227
227
|
--timeout 30 --memory 256 \
|
|
228
228
|
--schedule "*/15 * * * *" \
|
|
229
229
|
--deps "stripe,zod@^3"
|
|
230
|
-
run402 functions logs <
|
|
231
|
-
run402 functions logs --request-id req_abc123 --project <
|
|
232
|
-
run402 functions logs my-fn --project <
|
|
233
|
-
run402 logs --request-id req_abc123 --project <
|
|
234
|
-
run402 functions invoke my-fn --project <
|
|
235
|
-
run402 functions invoke paid-fn --project <
|
|
236
|
-
run402 functions rebuild <
|
|
237
|
-
run402 functions rebuild <
|
|
230
|
+
run402 functions logs <project_id> my-fn --tail 100 --request-id req_abc123 --follow
|
|
231
|
+
run402 functions logs --request-id req_abc123 --project <project_id> # <name> optional with --request-id: every function is searched
|
|
232
|
+
run402 functions logs my-fn --project <project_id> --all # include the Lambda INIT_START / REPORT lines
|
|
233
|
+
run402 logs --request-id req_abc123 --project <project_id> # the x-run402-request-id response header, no function name needed
|
|
234
|
+
run402 functions invoke my-fn --project <project_id> --body-file request.json
|
|
235
|
+
run402 functions invoke paid-fn --project <project_id> --body-file request.json --idempotency-key paid:call:123 --wait
|
|
236
|
+
run402 functions rebuild <project_id> my-fn # refresh ONE function onto the current runtime
|
|
237
|
+
run402 functions rebuild <project_id> --all # refresh every function in the project
|
|
238
238
|
```
|
|
239
239
|
|
|
240
240
|
Log reads are app-first: every entry carries `origin: "app" | "platform"`, the Lambda runtime lines (INIT_START, START/END/REPORT RequestId, billed duration) are hidden by default (`--app`), `--platform` shows only them and `--all` the raw stream; `hidden` counts what was dropped and a `hint` explains an empty result. `--request-id` accepts `req_`, `fnrun_`, and `fnatt_` ids, `--since` takes an ISO timestamp or epoch ms, and `run402 logs` rejects unknown flags.
|
|
@@ -258,9 +258,9 @@ import { db, adminDb, auth, email, ai } from "@run402/functions";
|
|
|
258
258
|
### Secrets
|
|
259
259
|
|
|
260
260
|
```bash
|
|
261
|
-
run402 secrets set <
|
|
262
|
-
printf %s "$OPENAI_API_KEY" | run402 secrets set <
|
|
263
|
-
run402 secrets list <
|
|
261
|
+
run402 secrets set <project_id> OPENAI_API_KEY --file ./.secrets/openai-key
|
|
262
|
+
printf %s "$OPENAI_API_KEY" | run402 secrets set <project_id> OPENAI_API_KEY --stdin
|
|
263
|
+
run402 secrets list <project_id>
|
|
264
264
|
run402 deploy --manifest run402.deploy.json # manifest uses secrets.require, not values
|
|
265
265
|
```
|
|
266
266
|
|
|
@@ -323,7 +323,7 @@ run402 doctor # { ok, blocking[], warnings[], checks[] }
|
|
|
323
323
|
run402 doctor --refresh # live npm check for a newer run402
|
|
324
324
|
```
|
|
325
325
|
|
|
326
|
-
`ok` is structural: `true` exactly when `blocking[]` is empty. Every check carries `severity: "blocking" | "advisory" | "info"`; advisory findings (an unbound contact passkey, a degraded recovery posture on another org, a stale CLI,
|
|
326
|
+
`ok` is structural: `true` exactly when `blocking[]` is empty. Every check carries `severity: "blocking" | "advisory" | "info"`; advisory findings (an unbound contact passkey, a degraded recovery posture on another org, a stale CLI, vault gaps) land in `warnings[]` without changing `ok` or the exit code. The `tier` check's `status` is a fixed vocabulary (`ok | inactive | frozen | past_due | dormant | purged | missing | unknown | error`, never a tier name; see `value.tier` / `value.lifecycle`), and a wallet whose own org holds no tier but can reach another org's projects reports `missing` as advisory (`TIER_MISSING_ON_OWN_ORG`).
|
|
327
327
|
|
|
328
328
|
## State
|
|
329
329
|
|
|
@@ -355,13 +355,13 @@ A person signs in; the agent is your wallet (`run402 status` shows the wallet's
|
|
|
355
355
|
- `run402 whoami` — principal, memberships, `session.grade`, and the write approvals cached on this machine.
|
|
356
356
|
- `run402 approve --action <capability> (--org <org_id> | --project <project_id>)` — passkey-signed write approval for one action on one target; a person without a wallet needs it to provision, deploy, or write secrets (an interactive `provision`/`deploy` opens it for you).
|
|
357
357
|
- `run402 logout` — revoke the session server-side and clear it and every write approval locally.
|
|
358
|
-
- `run402
|
|
358
|
+
- `run402 orgs list` — your orgs joined with the account overview (tier, lifecycle, quotas, allowance, advisories).
|
|
359
359
|
|
|
360
360
|
Not exposed as MCP tools by design — MCP authenticates as the agent (wallet), and a person's session must not become its ambient authority.
|
|
361
361
|
|
|
362
362
|
## Active project (sticky default)
|
|
363
363
|
|
|
364
|
-
After `provision`, the new project becomes the active one. `run402 projects use <
|
|
364
|
+
After `provision`, the new project becomes the active one. `run402 projects use <project_id>` switches it. Most commands that take `<project_id>` default to the active project when omitted.
|
|
365
365
|
|
|
366
366
|
## Help
|
|
367
367
|
|
package/cli.mjs
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { readFileSync } from "node:fs";
|
|
8
8
|
import * as nodeModule from "node:module";
|
|
9
9
|
|
|
10
|
-
//
|
|
10
|
+
// vault-startup-amortization (D2): on-disk V8 compile cache for the
|
|
11
11
|
// lazily-imported subcommand graphs. Feature-guarded (Node 22.8+) and
|
|
12
12
|
// try/caught — absence or an unwritable cache dir degrade silently.
|
|
13
13
|
try {
|
|
@@ -72,13 +72,13 @@ AUTHORITY — who may act, and with what credential
|
|
|
72
72
|
credentials Manage local credential material (project-keys)
|
|
73
73
|
delegates Scoped deploy credentials for agents (create, list, revoke, rotate)
|
|
74
74
|
grants Per-project capability grants for agent/CI principals (create, revoke)
|
|
75
|
-
|
|
75
|
+
orgs Organizations, members, invites & audit (list, get, members, invite, audit)
|
|
76
76
|
identity Public proof-backed external agent identity links
|
|
77
77
|
auth Manage project user authentication (magic link, passwords, settings)
|
|
78
78
|
ci Link GitHub Actions OIDC deploy bindings
|
|
79
79
|
login Sign in as a person (browser passkey; --device for a read-only session)
|
|
80
80
|
logout End your sign-in session and clear it from this machine
|
|
81
|
-
whoami Who this CLI acts as: principal, memberships, session grade
|
|
81
|
+
whoami Who this CLI acts as: principal, memberships, session grade (--set-name sets your name)
|
|
82
82
|
approve Write approval for one action on one target (provision, deploy, secrets)
|
|
83
83
|
|
|
84
84
|
DELIVER — reach a human when something happens
|
|
@@ -94,10 +94,7 @@ PLATFORM — everything else, and the things still finding a home
|
|
|
94
94
|
contracts KMS signers ($0.04/day rental + $0.000005/sign)
|
|
95
95
|
jobs Submit and inspect platform-managed jobs
|
|
96
96
|
transfer Project transfer to a wallet, an email, or an owned org (init, preview, list, accept, cancel)
|
|
97
|
-
cloud
|
|
98
|
-
archives Inspect and verify portable project archives locally
|
|
99
|
-
gitvault RETIRED — moved to repos (repo-surface-consolidation); every spelling answers COMMAND_MOVED/COMMAND_REMOVED
|
|
100
|
-
source-access RETIRED — moved into repos (recovery-bundle + access); every spelling answers COMMAND_MOVED
|
|
97
|
+
archives Portable project archives (create, status, download --target cloud; inspect, verify; import --target core)
|
|
101
98
|
buzz Buzz human/community/agent control-plane workflows
|
|
102
99
|
apps Browse and manage the app marketplace
|
|
103
100
|
ai AI translation and moderation tools
|
|
@@ -105,7 +102,6 @@ PLATFORM — everything else, and the things still finding a home
|
|
|
105
102
|
cdn CloudFront CDN diagnostics (wait-fresh) for public asset URLs
|
|
106
103
|
cache Inspect and invalidate the SSR origin cache (inspect, invalidate)
|
|
107
104
|
agent Manage agent identity (contact info)
|
|
108
|
-
core Local Run402 Core import helpers
|
|
109
105
|
dev Run Astro dev with Run402 env + credentials in scope
|
|
110
106
|
|
|
111
107
|
Global options (any command):
|
|
@@ -122,8 +118,8 @@ Examples:
|
|
|
122
118
|
run402 deploy --manifest app.json
|
|
123
119
|
run402 snapshots list --project prj_...
|
|
124
120
|
run402 branches create --project prj_... --ttl-days 7 --json
|
|
125
|
-
run402
|
|
126
|
-
run402
|
|
121
|
+
run402 archives create --project <project_id> --target cloud --wait --output ./project.r402ar --json
|
|
122
|
+
run402 archives import ./project.r402ar --target core --name imported-project --env-file ./required.env --json
|
|
127
123
|
run402 jobs submit --file job.json
|
|
128
124
|
run402 projects list
|
|
129
125
|
run402 projects sql "SELECT * FROM users LIMIT 5" --project <project_id>
|
|
@@ -234,14 +230,6 @@ switch (cmd) {
|
|
|
234
230
|
await run(sub, rest);
|
|
235
231
|
break;
|
|
236
232
|
}
|
|
237
|
-
// `repo` singular resolves identically to `repos` (design D1 — agents type
|
|
238
|
-
// what `gh repo` already taught them). Its own case block, not a
|
|
239
|
-
// fall-through, so cli-conventions-gate's per-line family scanner sees it.
|
|
240
|
-
case "repo": {
|
|
241
|
-
const { run } = await import("./lib/repos.mjs");
|
|
242
|
-
await run(sub, rest);
|
|
243
|
-
break;
|
|
244
|
-
}
|
|
245
233
|
case "snapshots": {
|
|
246
234
|
const { run } = await import("./lib/snapshots.mjs");
|
|
247
235
|
await run(sub, rest);
|
|
@@ -257,21 +245,11 @@ switch (cmd) {
|
|
|
257
245
|
await run(sub, rest);
|
|
258
246
|
break;
|
|
259
247
|
}
|
|
260
|
-
case "cloud": {
|
|
261
|
-
const { run } = await import("./lib/cloud.mjs");
|
|
262
|
-
await run(sub, rest);
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
248
|
case "archives": {
|
|
266
249
|
const { run } = await import("./lib/archives.mjs");
|
|
267
250
|
await run(sub, rest);
|
|
268
251
|
break;
|
|
269
252
|
}
|
|
270
|
-
case "core": {
|
|
271
|
-
const { run } = await import("./lib/core.mjs");
|
|
272
|
-
await run(sub, rest);
|
|
273
|
-
break;
|
|
274
|
-
}
|
|
275
253
|
case "deploy": {
|
|
276
254
|
const { run } = await import("./lib/deploy.mjs");
|
|
277
255
|
await run([sub, ...rest].filter(Boolean));
|
|
@@ -287,8 +265,8 @@ switch (cmd) {
|
|
|
287
265
|
await run(sub, rest);
|
|
288
266
|
break;
|
|
289
267
|
}
|
|
290
|
-
case "
|
|
291
|
-
const { run } = await import("./lib/
|
|
268
|
+
case "orgs": {
|
|
269
|
+
const { run } = await import("./lib/orgs.mjs");
|
|
292
270
|
await run(sub, rest);
|
|
293
271
|
break;
|
|
294
272
|
}
|
|
@@ -337,11 +315,6 @@ switch (cmd) {
|
|
|
337
315
|
await run(sub, rest);
|
|
338
316
|
break;
|
|
339
317
|
}
|
|
340
|
-
case "gitvault": {
|
|
341
|
-
const { run } = await import("./lib/gitvault.mjs");
|
|
342
|
-
await run(sub, rest);
|
|
343
|
-
break;
|
|
344
|
-
}
|
|
345
318
|
case "escalations": {
|
|
346
319
|
const { run } = await import("./lib/escalations.mjs");
|
|
347
320
|
await run(sub, rest);
|
|
@@ -460,11 +433,6 @@ switch (cmd) {
|
|
|
460
433
|
await run([sub, ...rest].filter(Boolean));
|
|
461
434
|
break;
|
|
462
435
|
}
|
|
463
|
-
case "source-access": {
|
|
464
|
-
const { run } = await import("./lib/source-access.mjs");
|
|
465
|
-
await run(sub, rest);
|
|
466
|
-
break;
|
|
467
|
-
}
|
|
468
436
|
case "auth": {
|
|
469
437
|
const { run } = await import("./lib/auth.mjs");
|
|
470
438
|
await run(sub, rest);
|
package/core-dist/keystore.js
CHANGED
|
@@ -190,7 +190,7 @@ export function removeProject(projectId, path) {
|
|
|
190
190
|
* bucket, not "unknown") and PERMANENTLY shadows every later wallet-scoped
|
|
191
191
|
* activation for every caller that reads through this module: `resolveProjectId`
|
|
192
192
|
* / `resolveProject` (cli/lib/config.mjs), `projects current`, and every
|
|
193
|
-
*
|
|
193
|
+
* vault-verb target resolution. The failure it causes: `repos create`
|
|
194
194
|
* calls `projects.provision`, whose `creds.setActiveProject` correctly
|
|
195
195
|
* persists the new project under the real wallet's scoped bucket AND the
|
|
196
196
|
* flat fallback, yet every CLI read of "the active project" resolves the
|
package/git-remote-run402.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* `git-remote-run402` — the THIN CLIENT (
|
|
3
|
+
* `git-remote-run402` — the THIN CLIENT (vault-persistent-helper).
|
|
4
4
|
*
|
|
5
5
|
* git spawns a fresh helper process per remote operation, so everything warm
|
|
6
6
|
* dies per command — Node boot, the SDK graph, the signer, the paid stack,
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* when that is impossible does it load the full session module and run
|
|
11
11
|
* in-process — which is byte-identical to the pre-daemon behavior.
|
|
12
12
|
*
|
|
13
|
-
* INVARIANTS (spec:
|
|
13
|
+
* INVARIANTS (spec: vault-client-surface, "A resident helper engine…"):
|
|
14
14
|
* - The daemon is never load-bearing: any failure to use it — absent,
|
|
15
15
|
* busy, stale, mismatched, dying mid-handshake — falls back silently to
|
|
16
16
|
* the in-process path. The handshake completes BEFORE this client
|
|
@@ -35,7 +35,7 @@ import net from "node:net";
|
|
|
35
35
|
import { spawn } from "node:child_process";
|
|
36
36
|
import { daemonSocketPath, daemonRunnerPath, DAEMON_PROTOCOL_VERSION, cliVersion, forwardableEnv } from "./lib/daemon-path.mjs";
|
|
37
37
|
|
|
38
|
-
//
|
|
38
|
+
// vault-startup-amortization (D2): on-disk V8 compile cache for every
|
|
39
39
|
// module loaded from here on. Feature-guarded (Node 22.8+) and try/caught
|
|
40
40
|
// (a read-only install dir degrades silently).
|
|
41
41
|
try {
|
|
@@ -201,11 +201,11 @@ if (invokedDirectly) {
|
|
|
201
201
|
process.exitCode = code;
|
|
202
202
|
} else {
|
|
203
203
|
// Fallback: today's in-process path, byte-identical. Fire the prewarm
|
|
204
|
-
// BEFORE the heavy graph evaluates (
|
|
204
|
+
// BEFORE the heavy graph evaluates (vault-startup-amortization D1),
|
|
205
205
|
// and leave a daemon behind for next time.
|
|
206
206
|
if (daemonEnabled) spawnDaemon();
|
|
207
|
-
const {
|
|
208
|
-
|
|
207
|
+
const { prewarmVaultConnection } = await import("./sdk/dist/node/vault-prewarm.js");
|
|
208
|
+
prewarmVaultConnection();
|
|
209
209
|
const { runHelperSession } = await import("./lib/remote-helper-session.mjs");
|
|
210
210
|
process.exitCode = await runHelperSession(argv);
|
|
211
211
|
}
|
package/lib/admin.mjs
CHANGED
|
@@ -17,12 +17,12 @@ Subcommands:
|
|
|
17
17
|
(\`reactivated: true\` in the response).
|
|
18
18
|
Replaces the v1.56 per-project pin.
|
|
19
19
|
|
|
20
|
-
archive [--project <
|
|
20
|
+
archive [--project <project_id>] [--reason "..."] Moderate-archive a single project. Sets
|
|
21
21
|
projects.archived_at = NOW(). Independent
|
|
22
22
|
of organization lifecycle; the rest of the
|
|
23
23
|
organization's projects keep serving.
|
|
24
24
|
|
|
25
|
-
reactivate [--project <
|
|
25
|
+
reactivate [--project <project_id>] Un-archive a project (flips archived_at
|
|
26
26
|
back to NULL). In v1.57 this no longer
|
|
27
27
|
touches organization-level lifecycle — to
|
|
28
28
|
reactivate a grace-state account, use
|
|
@@ -65,7 +65,7 @@ Examples:
|
|
|
65
65
|
archive: `run402 admin archive — Moderate-archive a single project
|
|
66
66
|
|
|
67
67
|
Usage:
|
|
68
|
-
run402 admin archive [--project <
|
|
68
|
+
run402 admin archive [--project <project_id>] [--reason "..."]
|
|
69
69
|
|
|
70
70
|
Legacy (still supported):
|
|
71
71
|
run402 admin archive <project_id> [--reason "..."]
|
|
@@ -87,7 +87,7 @@ Examples:
|
|
|
87
87
|
reactivate: `run402 admin reactivate — Un-archive a project
|
|
88
88
|
|
|
89
89
|
Usage:
|
|
90
|
-
run402 admin reactivate [--project <
|
|
90
|
+
run402 admin reactivate [--project <project_id>]
|
|
91
91
|
|
|
92
92
|
Legacy (still supported):
|
|
93
93
|
run402 admin reactivate <project_id>
|
|
@@ -143,7 +143,7 @@ async function leasePerpetual(args) {
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
async function archive(args) {
|
|
146
|
-
// Canonical: --project <
|
|
146
|
+
// Canonical: --project <project_id>; legacy leading prj_... positional kept.
|
|
147
147
|
const { projectId, rest } = resolveProjectSelector(args, { valueFlags: FLAGS_BY_SUB.archive.values });
|
|
148
148
|
let reason;
|
|
149
149
|
for (let i = 0; i < rest.length; i++) {
|
package/lib/ai.mjs
CHANGED
|
@@ -24,7 +24,7 @@ Examples:
|
|
|
24
24
|
|
|
25
25
|
Notes:
|
|
26
26
|
- [project_id] defaults to the active project when omitted (set with
|
|
27
|
-
'run402 projects use <
|
|
27
|
+
'run402 projects use <project_id>'). Project IDs start with 'prj_'; any first
|
|
28
28
|
positional that doesn't is treated as the next argument instead.
|
|
29
29
|
- translate requires the AI Translation add-on on the project
|
|
30
30
|
- moderate is free for all projects
|
|
@@ -47,7 +47,7 @@ Options:
|
|
|
47
47
|
--to <lang> Target language code (required, e.g. es, ja, fr)
|
|
48
48
|
--from <lang> Source language code (optional; auto-detected if omitted)
|
|
49
49
|
--context <hint> Optional translation hint (e.g. "formal business email")
|
|
50
|
-
--project <
|
|
50
|
+
--project <project_id> Project ID (alternative to the positional argument)
|
|
51
51
|
|
|
52
52
|
Notes:
|
|
53
53
|
- Requires the AI Translation add-on on the project
|
|
@@ -71,7 +71,7 @@ Arguments:
|
|
|
71
71
|
<text> Text to check (quote it to preserve spaces)
|
|
72
72
|
|
|
73
73
|
Options:
|
|
74
|
-
--project <
|
|
74
|
+
--project <project_id> Project ID (alternative to the positional argument)
|
|
75
75
|
|
|
76
76
|
Notes:
|
|
77
77
|
- Free for all projects; uses the project's service key
|
|
@@ -91,7 +91,7 @@ Arguments:
|
|
|
91
91
|
Must start with 'prj_'; any other first positional is an error.
|
|
92
92
|
|
|
93
93
|
Options:
|
|
94
|
-
--project <
|
|
94
|
+
--project <project_id> Project ID (alternative to the positional argument)
|
|
95
95
|
|
|
96
96
|
Notes:
|
|
97
97
|
- Reports translation word quota and usage; only meaningful with the
|
|
@@ -111,7 +111,7 @@ async function translate(args) {
|
|
|
111
111
|
args = normalizeArgv(args);
|
|
112
112
|
assertKnownFlags(args, TRANSLATE_VALUE_FLAGS, TRANSLATE_VALUE_FLAGS);
|
|
113
113
|
|
|
114
|
-
// --project <
|
|
114
|
+
// --project <project_id> wins over positional, mirroring previous behavior.
|
|
115
115
|
const projectOpt = flagValue(args, "--project");
|
|
116
116
|
const to = flagValue(args, "--to");
|
|
117
117
|
const from = flagValue(args, "--from");
|
package/lib/apps.mjs
CHANGED
|
@@ -12,13 +12,13 @@ Subcommands:
|
|
|
12
12
|
browse [--tag <tag>] Browse public apps
|
|
13
13
|
fork <version_id> --name <name> [--subdomain <name>]
|
|
14
14
|
Fork a published app into your own project
|
|
15
|
-
publish [--project <
|
|
15
|
+
publish [--project <project_id>] [--description <desc>] [--tags <t1,t2>] [--visibility <v>] [--fork-allowed]
|
|
16
16
|
Publish a project as an app
|
|
17
|
-
versions [--project <
|
|
17
|
+
versions [--project <project_id>] List published versions of a project
|
|
18
18
|
inspect <version_id> Inspect a published app version
|
|
19
|
-
update <version_id> [--project <
|
|
19
|
+
update <version_id> [--project <project_id>] [--description <desc>] [--tags <t1,t2>] [--visibility <v>] [--fork-allowed] [--no-fork]
|
|
20
20
|
Update a published version
|
|
21
|
-
delete <version_id> [--project <
|
|
21
|
+
delete <version_id> [--project <project_id>] Delete a published version
|
|
22
22
|
|
|
23
23
|
Legacy (still supported): the old positional forms keep working, e.g.
|
|
24
24
|
run402 apps fork <version_id> <name>
|
|
@@ -72,13 +72,13 @@ Examples:
|
|
|
72
72
|
publish: `run402 apps publish — Publish a project as an app
|
|
73
73
|
|
|
74
74
|
Usage:
|
|
75
|
-
run402 apps publish [--project <
|
|
75
|
+
run402 apps publish [--project <project_id>] [options]
|
|
76
76
|
|
|
77
77
|
Legacy (still supported):
|
|
78
78
|
run402 apps publish <project_id> [options]
|
|
79
79
|
|
|
80
80
|
Options (project):
|
|
81
|
-
--project <
|
|
81
|
+
--project <project_id> Project ID to publish (defaults to the active project)
|
|
82
82
|
|
|
83
83
|
Options:
|
|
84
84
|
--description <d> Human-readable description of the app
|
|
@@ -93,7 +93,7 @@ Examples:
|
|
|
93
93
|
update: `run402 apps update — Update a published version's metadata
|
|
94
94
|
|
|
95
95
|
Usage:
|
|
96
|
-
run402 apps update <version_id> [--project <
|
|
96
|
+
run402 apps update <version_id> [--project <project_id>] [options]
|
|
97
97
|
|
|
98
98
|
Legacy (still supported):
|
|
99
99
|
run402 apps update <project_id> <version_id> [options]
|
|
@@ -127,7 +127,7 @@ Examples:
|
|
|
127
127
|
versions: `run402 apps versions — List published versions of a project
|
|
128
128
|
|
|
129
129
|
Usage:
|
|
130
|
-
run402 apps versions [--project <
|
|
130
|
+
run402 apps versions [--project <project_id>]
|
|
131
131
|
|
|
132
132
|
Legacy (still supported):
|
|
133
133
|
run402 apps versions <project_id>
|
|
@@ -138,7 +138,7 @@ Examples:
|
|
|
138
138
|
delete: `run402 apps delete — Delete a published version
|
|
139
139
|
|
|
140
140
|
Usage:
|
|
141
|
-
run402 apps delete <version_id> [--project <
|
|
141
|
+
run402 apps delete <version_id> [--project <project_id>]
|
|
142
142
|
|
|
143
143
|
Legacy (still supported):
|
|
144
144
|
run402 apps delete <project_id> <version_id>
|