run402 4.94.0 → 4.95.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.
Files changed (131) hide show
  1. package/README.md +20 -20
  2. package/cli.mjs +7 -19
  3. package/gitvault-surface.json +2 -2
  4. package/lib/admin.mjs +5 -5
  5. package/lib/ai.mjs +5 -5
  6. package/lib/apps.mjs +9 -9
  7. package/lib/archives.mjs +371 -8
  8. package/lib/argparse.mjs +5 -5
  9. package/lib/assets.mjs +12 -12
  10. package/lib/auth.mjs +34 -34
  11. package/lib/branches.mjs +7 -7
  12. package/lib/buzz-doctor.mjs +1 -1
  13. package/lib/buzz-notifications.mjs +4 -4
  14. package/lib/buzz.mjs +2 -2
  15. package/lib/cache.mjs +1 -1
  16. package/lib/cdn.mjs +2 -2
  17. package/lib/ci.mjs +8 -8
  18. package/lib/claims.mjs +2 -2
  19. package/lib/command-manifest.mjs +35 -36
  20. package/lib/config.mjs +4 -4
  21. package/lib/contacts.mjs +3 -3
  22. package/lib/contracts.mjs +11 -11
  23. package/lib/credentials.mjs +31 -31
  24. package/lib/delegates.mjs +13 -13
  25. package/lib/deliveries.mjs +2 -2
  26. package/lib/deploy-v2.mjs +9 -9
  27. package/lib/dev.mjs +3 -3
  28. package/lib/doctor.mjs +6 -6
  29. package/lib/domains.mjs +27 -27
  30. package/lib/email.mjs +38 -38
  31. package/lib/errors.mjs +40 -24
  32. package/lib/escalations.mjs +4 -4
  33. package/lib/events.mjs +32 -25
  34. package/lib/feedback.mjs +2 -2
  35. package/lib/functions.mjs +34 -34
  36. package/lib/gitvault-scaffold.mjs +2 -2
  37. package/lib/gitvault.mjs +2 -2
  38. package/lib/grants.mjs +7 -7
  39. package/lib/image.mjs +7 -7
  40. package/lib/init.mjs +3 -3
  41. package/lib/jobs.mjs +15 -15
  42. package/lib/live.mjs +1 -1
  43. package/lib/logs.mjs +8 -8
  44. package/lib/messages.mjs +5 -5
  45. package/lib/next-actions.mjs +1 -1
  46. package/lib/org-context.mjs +13 -13
  47. package/lib/{org.mjs → orgs.mjs} +124 -163
  48. package/lib/projects.mjs +45 -56
  49. package/lib/repos.mjs +23 -23
  50. package/lib/rooms.mjs +2 -2
  51. package/lib/sdk-errors.mjs +1 -1
  52. package/lib/secrets.mjs +13 -13
  53. package/lib/sites.mjs +14 -14
  54. package/lib/snapshots.mjs +10 -10
  55. package/lib/subdomains.mjs +12 -12
  56. package/lib/subscriptions.mjs +2 -2
  57. package/lib/transfer.mjs +1 -1
  58. package/lib/up.mjs +7 -7
  59. package/lib/wallet-context.mjs +1 -1
  60. package/lib/wallets.mjs +1 -1
  61. package/lib/webhooks.mjs +8 -8
  62. package/lib/whoami.mjs +32 -5
  63. package/package.json +1 -1
  64. package/sdk/dist/actions.d.ts +3 -3
  65. package/sdk/dist/actions.d.ts.map +1 -1
  66. package/sdk/dist/app-up.d.ts +2 -2
  67. package/sdk/dist/app-up.d.ts.map +1 -1
  68. package/sdk/dist/config.d.ts +1 -2
  69. package/sdk/dist/config.d.ts.map +1 -1
  70. package/sdk/dist/config.js.map +1 -1
  71. package/sdk/dist/credentials.d.ts +1 -1
  72. package/sdk/dist/errors.d.ts +2 -2
  73. package/sdk/dist/errors.d.ts.map +1 -1
  74. package/sdk/dist/errors.js +1 -1
  75. package/sdk/dist/errors.js.map +1 -1
  76. package/sdk/dist/index.js +1 -1
  77. package/sdk/dist/index.js.map +1 -1
  78. package/sdk/dist/namespaces/admin.d.ts +1 -1
  79. package/sdk/dist/namespaces/admin.d.ts.map +1 -1
  80. package/sdk/dist/namespaces/ai.d.ts +1 -1
  81. package/sdk/dist/namespaces/ai.js +2 -2
  82. package/sdk/dist/namespaces/ai.js.map +1 -1
  83. package/sdk/dist/namespaces/assets.js +1 -1
  84. package/sdk/dist/namespaces/assets.js.map +1 -1
  85. package/sdk/dist/namespaces/ci.js +3 -3
  86. package/sdk/dist/namespaces/ci.js.map +1 -1
  87. package/sdk/dist/namespaces/deploy.d.ts.map +1 -1
  88. package/sdk/dist/namespaces/deploy.js +26 -27
  89. package/sdk/dist/namespaces/deploy.js.map +1 -1
  90. package/sdk/dist/namespaces/deploy.types.d.ts +2 -2
  91. package/sdk/dist/namespaces/deploy.types.d.ts.map +1 -1
  92. package/sdk/dist/namespaces/domains.d.ts +10 -2
  93. package/sdk/dist/namespaces/domains.d.ts.map +1 -1
  94. package/sdk/dist/namespaces/domains.js +10 -5
  95. package/sdk/dist/namespaces/domains.js.map +1 -1
  96. package/sdk/dist/namespaces/errors.js +1 -1
  97. package/sdk/dist/namespaces/functions.js +1 -1
  98. package/sdk/dist/namespaces/functions.js.map +1 -1
  99. package/sdk/dist/namespaces/gitvault.d.ts +2 -2
  100. package/sdk/dist/namespaces/gitvault.js +4 -4
  101. package/sdk/dist/namespaces/gitvault.js.map +1 -1
  102. package/sdk/dist/namespaces/tier.d.ts +1 -1
  103. package/sdk/dist/namespaces/transfers.d.ts +46 -15
  104. package/sdk/dist/namespaces/transfers.d.ts.map +1 -1
  105. package/sdk/dist/namespaces/transfers.js.map +1 -1
  106. package/sdk/dist/node/actions-node.js +8 -8
  107. package/sdk/dist/node/actions-node.js.map +1 -1
  108. package/sdk/dist/node/assets-node.js +6 -6
  109. package/sdk/dist/node/assets-node.js.map +1 -1
  110. package/sdk/dist/node/ci.js +1 -1
  111. package/sdk/dist/node/ci.js.map +1 -1
  112. package/sdk/dist/node/credentials.d.ts +1 -1
  113. package/sdk/dist/node/credentials.js +1 -1
  114. package/sdk/dist/node/deploy-manifest.d.ts +3 -5
  115. package/sdk/dist/node/deploy-manifest.d.ts.map +1 -1
  116. package/sdk/dist/node/deploy-manifest.js +3 -12
  117. package/sdk/dist/node/deploy-manifest.js.map +1 -1
  118. package/sdk/dist/node/gitvault-apply.js +1 -1
  119. package/sdk/dist/node/gitvault-apply.js.map +1 -1
  120. package/sdk/dist/node/manifest-export.js +2 -2
  121. package/sdk/dist/node/manifest-export.js.map +1 -1
  122. package/sdk/dist/node/org-adopt.js +1 -1
  123. package/sdk/dist/node/org-adopt.js.map +1 -1
  124. package/sdk/dist/node/sites-node.js +1 -1
  125. package/sdk/dist/node/sites-node.js.map +1 -1
  126. package/sdk/dist/scoped.d.ts +8 -8
  127. package/sdk/dist/scoped.d.ts.map +1 -1
  128. package/sdk/dist/scoped.js +3 -3
  129. package/sdk/dist/scoped.js.map +1 -1
  130. package/lib/cloud.mjs +0 -256
  131. package/lib/core.mjs +0 -123
package/README.md CHANGED
@@ -82,7 +82,7 @@ A hosted git remote, encrypted before it leaves the machine — no deploy, no ma
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 org 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 <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.
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 <id> "CREATE TABLE items (id serial PRIMARY KEY, …)"
148
- run402 projects validate-expose <id> --file manifest.json # check auth manifest, no mutation
149
- run402 projects apply-expose <id> --file manifest.json # declare what's reachable
150
- run402 projects rest <id> items "select=*&order=id.desc&limit=10"
151
- run402 projects schema <id> # introspect tables + RLS
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 <id> my-fn --file fn.ts \
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 <id> my-fn --tail 100 --request-id req_abc123 --follow
231
- run402 functions logs --request-id req_abc123 --project <id> # <name> optional with --request-id: every function is searched
232
- run402 functions logs my-fn --project <id> --all # include the Lambda INIT_START / REPORT lines
233
- run402 logs --request-id req_abc123 --project <id> # the x-run402-request-id response header, no function name needed
234
- run402 functions invoke my-fn --project <id> --body-file request.json
235
- run402 functions invoke paid-fn --project <id> --body-file request.json --idempotency-key paid:call:123 --wait
236
- run402 functions rebuild <id> my-fn # refresh ONE function onto the current runtime
237
- run402 functions rebuild <id> --all # refresh every function in the project
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 <id> OPENAI_API_KEY --file ./.secrets/openai-key
262
- printf %s "$OPENAI_API_KEY" | run402 secrets set <id> OPENAI_API_KEY --stdin
263
- run402 secrets list <id>
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
 
@@ -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 org list` — your orgs joined with the account overview (tier, lifecycle, quotas, allowance, advisories).
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 <id>` switches it. Most commands that take `<id>` default to the active project when omitted.
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
@@ -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
- org Org membership, invites & audit (whoami, list, member, invite, audit)
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,8 +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 Cloud portability archive export (archives create/download/status)
98
- archives Inspect and verify portable project archives locally
97
+ archives Portable project archives (create, status, download --target cloud; inspect, verify; import --target core)
99
98
  gitvault RETIRED — moved to repos (repo-surface-consolidation); every spelling answers COMMAND_MOVED/COMMAND_REMOVED
100
99
  source-access RETIRED — moved into repos (recovery-bundle + access); every spelling answers COMMAND_MOVED
101
100
  buzz Buzz human/community/agent control-plane workflows
@@ -105,7 +104,6 @@ PLATFORM — everything else, and the things still finding a home
105
104
  cdn CloudFront CDN diagnostics (wait-fresh) for public asset URLs
106
105
  cache Inspect and invalidate the SSR origin cache (inspect, invalidate)
107
106
  agent Manage agent identity (contact info)
108
- core Local Run402 Core import helpers
109
107
  dev Run Astro dev with Run402 env + credentials in scope
110
108
 
111
109
  Global options (any command):
@@ -122,8 +120,8 @@ Examples:
122
120
  run402 deploy --manifest app.json
123
121
  run402 snapshots list --project prj_...
124
122
  run402 branches create --project prj_... --ttl-days 7 --json
125
- run402 cloud archives create --project prj_... --wait --output ./project.r402ar --json
126
- run402 core projects import ./project.r402ar --name imported-project --env-file ./required.env --json
123
+ run402 archives create --project <project_id> --target cloud --wait --output ./project.r402ar --json
124
+ run402 archives import ./project.r402ar --target core --name imported-project --env-file ./required.env --json
127
125
  run402 jobs submit --file job.json
128
126
  run402 projects list
129
127
  run402 projects sql "SELECT * FROM users LIMIT 5" --project <project_id>
@@ -257,21 +255,11 @@ switch (cmd) {
257
255
  await run(sub, rest);
258
256
  break;
259
257
  }
260
- case "cloud": {
261
- const { run } = await import("./lib/cloud.mjs");
262
- await run(sub, rest);
263
- break;
264
- }
265
258
  case "archives": {
266
259
  const { run } = await import("./lib/archives.mjs");
267
260
  await run(sub, rest);
268
261
  break;
269
262
  }
270
- case "core": {
271
- const { run } = await import("./lib/core.mjs");
272
- await run(sub, rest);
273
- break;
274
- }
275
263
  case "deploy": {
276
264
  const { run } = await import("./lib/deploy.mjs");
277
265
  await run([sub, ...rest].filter(Boolean));
@@ -287,8 +275,8 @@ switch (cmd) {
287
275
  await run(sub, rest);
288
276
  break;
289
277
  }
290
- case "org": {
291
- const { run } = await import("./lib/org.mjs");
278
+ case "orgs": {
279
+ const { run } = await import("./lib/orgs.mjs");
292
280
  await run(sub, rest);
293
281
  break;
294
282
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "surface_version": "4.94.0",
2
+ "surface_version": "4.95.0",
3
3
  "verbs": [
4
4
  "repos create",
5
5
  "repos list",
@@ -26,7 +26,7 @@
26
26
  "retired_spellings": [
27
27
  {
28
28
  "spelling": "gitvault init",
29
- "successor": "moved to `repos create --project <id>`"
29
+ "successor": "moved to `repos create --project <project_id>`"
30
30
  },
31
31
  {
32
32
  "spelling": "gitvault status",
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 <id>] [--reason "..."] Moderate-archive a single project. Sets
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 <id>] Un-archive a project (flips archived_at
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 <id>] [--reason "..."]
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 <id>]
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 <id>; legacy leading prj_... positional kept.
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 <id>'). Project IDs start with 'prj_'; any first
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 <id> Project ID (alternative to the positional argument)
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 <id> Project ID (alternative to the positional argument)
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 <id> Project ID (alternative to the positional argument)
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 <id> wins over positional, mirroring previous behavior.
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 <id>] [--description <desc>] [--tags <t1,t2>] [--visibility <v>] [--fork-allowed]
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 <id>] List published versions of a 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 <id>] [--description <desc>] [--tags <t1,t2>] [--visibility <v>] [--fork-allowed] [--no-fork]
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 <id>] Delete a published version
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 <id>] [options]
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 <id> Project ID to publish (defaults to the active 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 <id>] [options]
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 <id>]
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 <id>]
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>