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.
- package/README.md +20 -20
- package/cli.mjs +7 -19
- package/gitvault-surface.json +2 -2
- 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/command-manifest.mjs +35 -36
- package/lib/config.mjs +4 -4
- package/lib/contacts.mjs +3 -3
- package/lib/contracts.mjs +11 -11
- package/lib/credentials.mjs +31 -31
- package/lib/delegates.mjs +13 -13
- package/lib/deliveries.mjs +2 -2
- package/lib/deploy-v2.mjs +9 -9
- package/lib/dev.mjs +3 -3
- package/lib/doctor.mjs +6 -6
- 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/gitvault-scaffold.mjs +2 -2
- package/lib/gitvault.mjs +2 -2
- package/lib/grants.mjs +7 -7
- package/lib/image.mjs +7 -7
- package/lib/init.mjs +3 -3
- 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 +1 -1
- package/lib/org-context.mjs +13 -13
- package/lib/{org.mjs → orgs.mjs} +124 -163
- package/lib/projects.mjs +45 -56
- package/lib/repos.mjs +23 -23
- 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 +7 -7
- 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 +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 +2 -2
- 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.js +1 -1
- 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.map +1 -1
- package/sdk/dist/namespaces/deploy.js +26 -27
- package/sdk/dist/namespaces/deploy.js.map +1 -1
- package/sdk/dist/namespaces/deploy.types.d.ts +2 -2
- 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/gitvault.d.ts +2 -2
- package/sdk/dist/namespaces/gitvault.js +4 -4
- package/sdk/dist/namespaces/gitvault.js.map +1 -1
- package/sdk/dist/namespaces/tier.d.ts +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/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/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/gitvault-apply.js +1 -1
- package/sdk/dist/node/gitvault-apply.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/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/lib/cloud.mjs +0 -256
- 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
|
|
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
|
|
|
@@ -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
|
@@ -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,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
|
|
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
|
|
126
|
-
run402
|
|
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 "
|
|
291
|
-
const { run } = await import("./lib/
|
|
278
|
+
case "orgs": {
|
|
279
|
+
const { run } = await import("./lib/orgs.mjs");
|
|
292
280
|
await run(sub, rest);
|
|
293
281
|
break;
|
|
294
282
|
}
|
package/gitvault-surface.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"surface_version": "4.
|
|
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 <
|
|
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 <
|
|
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>
|