run402 3.7.4 → 3.7.6

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 CHANGED
@@ -103,7 +103,7 @@ jobs:
103
103
  steps:
104
104
  - uses: actions/checkout@v4
105
105
  - name: Deploy to run402
106
- run: npx --yes run402@1.60.0 deploy apply --manifest 'run402.deploy.json' --project 'prj_...'
106
+ run: npx --yes run402@3.7.5 deploy apply --manifest 'run402.deploy.json' --project 'prj_...'
107
107
  ```
108
108
 
109
109
  CI deploys can ship `site`, `functions`, `database`, and absent/current `base` changes. Route declarations are allowed only when the binding was linked with covering `--route-scope` patterns (`/admin` exact, `/api/*` final wildcard); no scopes means no CI route authority. Keep secrets, domains, subdomains, checks, non-current base changes, and out-of-scope routes in a local `run402 deploy apply` where the full allowance-backed authority is present.
@@ -138,7 +138,7 @@ run402 functions rebuild <id> --all # refresh every function in the project
138
138
  Functions run on Node 22 with `@run402/functions` auto-bundled. Inside the handler:
139
139
 
140
140
  ```ts
141
- import { db, adminDb, getUser, email, ai } from "@run402/functions";
141
+ import { db, adminDb, auth, email, ai } from "@run402/functions";
142
142
  ```
143
143
 
144
144
  `db(req)` is the caller-context client (RLS applies); `adminDb()` bypasses RLS for platform-authored writes.
@@ -266,14 +266,15 @@ Same content also at [`cli/llms-cli.txt`](./llms-cli.txt) in the repo. Treat tha
266
266
 
267
267
  ## Other interfaces
268
268
 
269
- `run402` is one of five surfaces:
269
+ `run402` is one of the public Run402 surfaces:
270
270
 
271
271
  - [`@run402/sdk`](https://www.npmjs.com/package/@run402/sdk) — typed TypeScript client (isomorphic + Node entry)
272
272
  - [`run402-mcp`](https://www.npmjs.com/package/run402-mcp) — MCP server (Claude Desktop, Cursor, Cline, Claude Code)
273
273
  - [`@run402/functions`](https://www.npmjs.com/package/@run402/functions) — in-function helper imported inside deployed functions
274
+ - [`@run402/astro`](https://www.npmjs.com/package/@run402/astro) — Astro SSR, ISR cache, hosted auth, and image integration
274
275
  - OpenClaw skill — script-based skill for OpenClaw agents
275
276
 
276
- All five release in lockstep at the same version and share `@run402/sdk` as the kernel.
277
+ The in-repo packages `run402`, `run402-mcp`, and `@run402/sdk` release in lockstep. `@run402/astro` and `@run402/functions` publish on their own cadences.
277
278
 
278
279
  ## License
279
280
 
package/lib/email.mjs CHANGED
@@ -73,7 +73,7 @@ Usage:
73
73
  run402 email <subcommand> [args...]
74
74
 
75
75
  Subcommands:
76
- create <slug> [--project <id>] Create a mailbox (<slug>@mail.run402.com)
76
+ create <slug> [--project <id>] Create a project-scoped mailbox local part
77
77
  mailboxes [--project <id>] List mailboxes with default-role metadata
78
78
  and gateway next_actions
79
79
  defaults [--outbound <slug|id>] [--auth-sender <slug|id>] [--project <id>]
@@ -238,14 +238,15 @@ Usage:
238
238
 
239
239
  Arguments:
240
240
  <slug> Mailbox slug (3-63 chars, lowercase alphanumeric +
241
- hyphens, no consecutive hyphens). Becomes
242
- <slug>@mail.run402.com.
241
+ hyphens, no consecutive hyphens). The response's
242
+ managed_address is
243
+ <slug>@<project-mail-host>.mail.run402.com.
243
244
 
244
245
  Options:
245
246
  --project <id> Project ID (defaults to the active project)
246
247
 
247
248
  Notes:
248
- - Up to 5 mailboxes per project (create distinct slugs, e.g. sign, support)
249
+ - Up to 5 mailboxes per project; the same slug may be used by another project
249
250
 
250
251
  Examples:
251
252
  run402 email create my-app
@@ -320,12 +321,17 @@ function summarizeMailboxForDefaults(m) {
320
321
  mailbox_id: m.mailbox_id,
321
322
  slug: m.slug,
322
323
  address: m.address,
324
+ managed_address: m.managed_address,
323
325
  status: m.status,
324
326
  is_default_outbound: m.is_default_outbound ?? false,
325
327
  is_auth_sender: m.is_auth_sender ?? false,
326
328
  can_send: m.can_send,
329
+ can_receive: m.can_receive,
327
330
  send_blocked_reason: m.send_blocked_reason ?? null,
328
331
  domain_kind: m.domain_kind,
332
+ address_domain: m.address_domain,
333
+ managed_domain: m.managed_domain,
334
+ custom_domain_ready: m.custom_domain_ready,
329
335
  footer_policy: m.footer_policy,
330
336
  effective_footer_policy: m.effective_footer_policy,
331
337
  footer_policy_locked_reason: m.footer_policy_locked_reason ?? null,
@@ -336,13 +342,18 @@ function mailboxInfoPayload(m) {
336
342
  return {
337
343
  mailbox_id: m.mailbox_id,
338
344
  address: m.address,
345
+ managed_address: m.managed_address,
339
346
  slug: m.slug,
340
347
  status: m.status,
341
348
  is_default_outbound: m.is_default_outbound,
342
349
  is_auth_sender: m.is_auth_sender,
343
350
  can_send: m.can_send,
351
+ can_receive: m.can_receive,
344
352
  send_blocked_reason: m.send_blocked_reason,
345
353
  domain_kind: m.domain_kind,
354
+ address_domain: m.address_domain,
355
+ managed_domain: m.managed_domain,
356
+ custom_domain_ready: m.custom_domain_ready,
346
357
  footer_policy: m.footer_policy,
347
358
  effective_footer_policy: m.effective_footer_policy,
348
359
  footer_policy_locked_reason: m.footer_policy_locked_reason,
@@ -428,8 +439,14 @@ async function create(args) {
428
439
  console.log(JSON.stringify({
429
440
  mailbox_id: data.mailbox_id,
430
441
  address: data.address,
442
+ managed_address: data.managed_address,
431
443
  slug: data.slug,
432
444
  status: data.status,
445
+ domain_kind: data.domain_kind,
446
+ address_domain: data.address_domain,
447
+ managed_domain: data.managed_domain,
448
+ custom_domain_ready: data.custom_domain_ready,
449
+ can_receive: data.can_receive,
433
450
  footer_policy: data.footer_policy,
434
451
  effective_footer_policy: data.effective_footer_policy,
435
452
  footer_policy_locked_reason: data.footer_policy_locked_reason,
package/lib/up.mjs CHANGED
@@ -7,9 +7,11 @@ import { assertKnownFlags, flagValue, normalizeArgv, positionalArgs } from "./ar
7
7
  const HELP = `run402 up — Provision/link/deploy the current app
8
8
 
9
9
  Usage:
10
- run402 up [--name <name>] [--project <id>] [--manifest <path>] [--dir <path>] [--tier <tier>] [-y|--yes] [--check|--print-spec|--plan|--require-plan <id>] [--quiet]
10
+ run402 up [repo-or-path] [--name <name>] [--project <id>] [--manifest <path>] [--dir <path>] [--tier <tier>] [-y|--yes] [--check|--print-spec|--plan|--require-plan <id>] [--json|--json-stream] [--quiet]
11
11
 
12
12
  Options:
13
+ repo-or-path Local app directory or public Git repository URL. Defaults
14
+ to the current directory.
13
15
  --name <name> Project display name when up needs to create a project.
14
16
  Not a deploy manifest field and never renames a project.
15
17
  --project <id> Explicit project id. Highest-priority project selector.
@@ -33,6 +35,12 @@ Options:
33
35
  --allow-warning <code>
34
36
  Acknowledge a reviewed deploy warning code (repeatable).
35
37
  --allow-warnings Acknowledge all reviewed deploy warnings.
38
+ --allow-prune Approve destructive managed-resource prune steps for app manifests.
39
+ --max-spend-usd <n> Maximum spend up may approve for app readiness.
40
+ --build-mode <mode> Override app build mode: local, remote, or sandbox.
41
+ --allow-shell-build Approve shell-string build commands in run402.json.
42
+ --json Emit one final JSON object on stdout.
43
+ --json-stream Emit NDJSON progress events on stdout and a final result event.
36
44
  --quiet Suppress action progress events on stderr.
37
45
 
38
46
  Project resolution:
@@ -40,6 +48,7 @@ Project resolution:
40
48
  project creation from --name > approved active-project fallback.
41
49
 
42
50
  Examples:
51
+ run402 up https://github.com/kychee-com/kysigned --name kysigned2 --yes --json
43
52
  run402 up --name my-app -y
44
53
  run402 up --manifest run402.deploy.ts --check
45
54
  run402 up --manifest run402.deploy.ts --plan
@@ -47,6 +56,7 @@ Examples:
47
56
  `;
48
57
 
49
58
  const TIERS = new Set(["prototype", "hobby", "team"]);
59
+ const BUILD_MODES = new Set(["local", "remote", "sandbox"]);
50
60
 
51
61
  export async function run(args = []) {
52
62
  const parsed = normalizeArgv(args);
@@ -56,8 +66,36 @@ export async function run(args = []) {
56
66
  }
57
67
  assertKnownFlags(
58
68
  parsed,
59
- ["--help", "-h", "-y", "--yes", "--dry-run", "--check", "--print-spec", "--plan", "--quiet", "--final-only", "--allow-warnings"],
60
- ["--name", "--project", "--manifest", "--dir", "--tier", "--idempotency-key", "--allow-warning", "--require-plan", "--plan-fingerprint"],
69
+ [
70
+ "--help",
71
+ "-h",
72
+ "-y",
73
+ "--yes",
74
+ "--dry-run",
75
+ "--check",
76
+ "--print-spec",
77
+ "--plan",
78
+ "--quiet",
79
+ "--final-only",
80
+ "--allow-warnings",
81
+ "--allow-prune",
82
+ "--allow-shell-build",
83
+ "--json",
84
+ "--json-stream",
85
+ ],
86
+ [
87
+ "--name",
88
+ "--project",
89
+ "--manifest",
90
+ "--dir",
91
+ "--tier",
92
+ "--idempotency-key",
93
+ "--allow-warning",
94
+ "--require-plan",
95
+ "--plan-fingerprint",
96
+ "--max-spend-usd",
97
+ "--build-mode",
98
+ ],
61
99
  );
62
100
  const extras = positionalArgs(parsed, [
63
101
  "--name",
@@ -69,14 +107,24 @@ export async function run(args = []) {
69
107
  "--allow-warning",
70
108
  "--require-plan",
71
109
  "--plan-fingerprint",
110
+ "--max-spend-usd",
111
+ "--build-mode",
72
112
  ]);
73
- if (extras.length > 0) {
113
+ if (extras.length > 1) {
74
114
  fail({
75
115
  code: "BAD_USAGE",
76
- message: `Unexpected argument for up: ${extras[0]}`,
116
+ message: `Unexpected argument for up: ${extras[1]}`,
77
117
  hint: "Use `run402 up --help`.",
78
118
  });
79
119
  }
120
+ const source = extras[0] ?? undefined;
121
+ if (source && flagValue(parsed, "--dir")) {
122
+ fail({
123
+ code: "BAD_USAGE",
124
+ message: "Pass either a positional repo/path source or --dir, not both.",
125
+ details: { source, dir: flagValue(parsed, "--dir") },
126
+ });
127
+ }
80
128
 
81
129
  const tier = flagValue(parsed, "--tier") ?? undefined;
82
130
  if (tier && !TIERS.has(tier)) {
@@ -87,8 +135,28 @@ export async function run(args = []) {
87
135
  });
88
136
  }
89
137
 
138
+ const buildMode = flagValue(parsed, "--build-mode") ?? undefined;
139
+ if (buildMode && !BUILD_MODES.has(buildMode)) {
140
+ fail({
141
+ code: "BAD_FLAG",
142
+ message: "--build-mode must be one of: local, remote, sandbox",
143
+ details: { flag: "--build-mode", value: buildMode, allowed: [...BUILD_MODES] },
144
+ });
145
+ }
146
+
147
+ const maxSpendRaw = flagValue(parsed, "--max-spend-usd");
148
+ const maxSpendUsd = maxSpendRaw === null ? undefined : Number(maxSpendRaw);
149
+ if (maxSpendRaw !== null && (!Number.isFinite(maxSpendUsd) || maxSpendUsd < 0)) {
150
+ fail({
151
+ code: "BAD_FLAG",
152
+ message: "--max-spend-usd must be a non-negative number",
153
+ details: { flag: "--max-spend-usd", value: maxSpendRaw },
154
+ });
155
+ }
156
+
90
157
  const yes = parsed.includes("-y") || parsed.includes("--yes");
91
- const quiet = parsed.includes("--quiet") || parsed.includes("--final-only");
158
+ const jsonStream = parsed.includes("--json-stream");
159
+ const quiet = parsed.includes("--quiet") || parsed.includes("--final-only") || jsonStream;
92
160
  const mode = parseExecutionMode(parsed);
93
161
  const dryRun = parsed.includes("--dry-run");
94
162
  if (dryRun && mode !== undefined) {
@@ -110,24 +178,39 @@ export async function run(args = []) {
110
178
  try {
111
179
  const sdk = getSdk();
112
180
  const result = await sdk.up({
181
+ source,
113
182
  name: flagValue(parsed, "--name") ?? undefined,
114
183
  projectId: flagValue(parsed, "--project") ?? undefined,
115
184
  manifest: flagValue(parsed, "--manifest") ?? undefined,
116
185
  dir: flagValue(parsed, "--dir") ?? undefined,
117
186
  tier,
118
187
  idempotencyKey: flagValue(parsed, "--idempotency-key") ?? undefined,
188
+ allowPrune: parsed.includes("--allow-prune") ? true : undefined,
189
+ maxSpendUsd,
190
+ buildMode,
191
+ allowShellBuild: parsed.includes("--allow-shell-build") ? true : undefined,
119
192
  allowWarnings: parsed.includes("--allow-warnings") ? true : undefined,
120
193
  allowWarningCodes,
121
194
  }, {
122
195
  ...(mode !== undefined ? { mode } : {}),
123
196
  dryRun,
124
197
  approval: makeApproval(yes),
125
- onEvent: quiet ? undefined : (event) => {
126
- console.error(JSON.stringify(event));
127
- },
198
+ onEvent: jsonStream
199
+ ? (event) => console.log(JSON.stringify({ type: "action.event", event }))
200
+ : quiet
201
+ ? undefined
202
+ : (event) => {
203
+ console.error(JSON.stringify(event));
204
+ },
128
205
  });
129
- if (mode === "printSpec") {
206
+ if (jsonStream) {
207
+ console.log(JSON.stringify({ type: "run402.up.result", result }));
208
+ } else if (mode === "printSpec") {
130
209
  console.log(JSON.stringify(result.result?.spec ?? null, null, 2));
210
+ } else if (result?.result?.app_result && !parsed.includes("--json")) {
211
+ console.log(formatAppUpHuman(result.result.app_result));
212
+ } else if (!parsed.includes("--json") && shouldRenderHumanSuccess(result)) {
213
+ console.log(formatLegacyUpSuccess(result));
131
214
  } else {
132
215
  console.log(JSON.stringify(result, null, 2));
133
216
  }
@@ -207,3 +290,56 @@ function makeApproval(yes) {
207
290
  },
208
291
  };
209
292
  }
293
+
294
+ function shouldRenderHumanSuccess(result) {
295
+ return result?.action === "up" &&
296
+ result?.dry_run === false &&
297
+ result?.mode === "apply" &&
298
+ result?.result?.deploy?.release_id;
299
+ }
300
+
301
+ function formatLegacyUpSuccess(result) {
302
+ const urls = result?.result?.deploy?.urls ?? {};
303
+ const origin = urls.site ?? urls.subdomain ?? urls.deployment;
304
+ const lines = [];
305
+ if (origin) lines.push(`Success! Project is up at: ${origin}`);
306
+ else lines.push("Success! Project is up.");
307
+ const releaseId = result?.result?.deploy?.release_id;
308
+ if (releaseId) lines.push(`Release: ${releaseId}`);
309
+ return lines.join("\n");
310
+ }
311
+
312
+ function formatAppUpHuman(appResult) {
313
+ const lines = [];
314
+ const status = appResult?.status ?? "unknown";
315
+ const origin = appResult?.project?.public_origin;
316
+
317
+ if (status === "succeeded" && origin) {
318
+ lines.push(`Success! Project is up at: ${origin}`);
319
+ } else if (status === "succeeded") {
320
+ lines.push("Success! Project is up.");
321
+ } else if (status === "planned") {
322
+ lines.push("Run402 up plan is ready.");
323
+ if (origin) lines.push(`Planned project URL: ${origin}`);
324
+ } else if (status === "blocked") {
325
+ lines.push("Run402 up is blocked.");
326
+ } else {
327
+ lines.push(`Run402 up status: ${status}`);
328
+ }
329
+
330
+ const diagnostics = Array.isArray(appResult?.diagnostics) ? appResult.diagnostics : [];
331
+ for (const diagnostic of diagnostics) {
332
+ if (diagnostic?.message) lines.push(`- ${diagnostic.message}`);
333
+ }
334
+
335
+ const nextActions = Array.isArray(appResult?.next_actions) ? appResult.next_actions : [];
336
+ if (nextActions.length > 0) {
337
+ lines.push("Next:");
338
+ for (const action of nextActions) {
339
+ if (action?.message) lines.push(`- ${action.message}`);
340
+ if (action?.command) lines.push(` ${action.command}`);
341
+ }
342
+ }
343
+
344
+ return lines.join("\n");
345
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run402",
3
- "version": "3.7.4",
3
+ "version": "3.7.6",
4
4
  "description": "CLI for Run402 — provision Postgres databases, deploy static sites, generate images, and manage wallets via x402 and MPP micropayments.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,4 +1,5 @@
1
1
  import type { DeployResult, PlanResponse, ReleaseSpec } from "./namespaces/deploy.types.js";
2
+ import type { Run402AppInstallGraph, Run402AppUpResultEnvelope } from "./app-up.js";
2
3
  import type { ProvisionResult } from "./namespaces/projects.types.js";
3
4
  import type { TierName, TierSetResult } from "./namespaces/tier.js";
4
5
  import type { Run402ExecutionMode } from "./config.js";
@@ -28,6 +29,8 @@ export interface Run402TierSetActionInput {
28
29
  }
29
30
  export interface Run402UpActionInput {
30
31
  type: typeof Run402Action.Up;
32
+ /** Local app path or repository URL. Defaults to `dir` / cwd. */
33
+ source?: string;
31
34
  /** Workspace directory to inspect. Defaults to `process.cwd()` in the Node SDK. */
32
35
  dir?: string;
33
36
  /** Explicit deploy manifest path. Defaults to manifest discovery inside `dir`. */
@@ -45,6 +48,14 @@ export interface Run402UpActionInput {
45
48
  orgId?: string;
46
49
  /** Root idempotency key. Child mutation keys are derived from this value. */
47
50
  idempotencyKey?: string;
51
+ /** Approve destructive managed-resource prune/down operations for app-aware up. */
52
+ allowPrune?: boolean;
53
+ /** Maximum allowed spend in USD for app-aware up. Spend-impacting nodes block above this cap. */
54
+ maxSpendUsd?: number;
55
+ /** Override app build mode for app-aware up. */
56
+ buildMode?: "local" | "remote" | "sandbox";
57
+ /** Stronger approval for shell-string build commands in app-aware up. */
58
+ allowShellBuild?: boolean;
48
59
  /** Continue past deploy-plan warnings, forwarded to `apply()`. */
49
60
  allowWarnings?: boolean;
50
61
  /** Continue past selected deploy-plan warnings, forwarded to `apply()`. */
@@ -61,7 +72,7 @@ export interface Run402ActionApprovalRequest {
61
72
  message: string;
62
73
  mutations: Run402ActionMutation[];
63
74
  }
64
- export type Run402ActionMutation = "allowance.create" | "allowance.faucet" | "tier.set" | "projects.provision" | "workspace.link.write" | "deploy.apply";
75
+ export type Run402ActionMutation = "allowance.create" | "allowance.faucet" | "tier.set" | "projects.provision" | "workspace.link.write" | "app.source.resolve" | "app.install" | "deploy.apply";
65
76
  export interface Run402ActionRunOptions {
66
77
  /**
67
78
  * Canonical execution mode for typed-config workflows.
@@ -120,6 +131,8 @@ export interface Run402UpResult {
120
131
  project_id: string;
121
132
  manifest_path: string;
122
133
  workspace_link_path?: string;
134
+ app_graph?: Run402AppInstallGraph;
135
+ app_result?: Run402AppUpResultEnvelope;
123
136
  spec?: ReleaseSpec;
124
137
  plan?: PlanResponse;
125
138
  deploy?: DeployResult;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB,EAAE,oBAAoB;IACvC,OAAO,EAAE,UAAU;IACnB,EAAE,EAAE,IAAI;CACA,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iBAAiB,EAAE,oBAAoB;IACvC,OAAO,EAAE,UAAU;IACnB,EAAE,EAAE,IAAI;CACA,CAAC"}