run402 2.16.1 → 2.18.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/cli.mjs CHANGED
@@ -25,6 +25,7 @@ Commands:
25
25
  allowance Manage your agent allowance (create, fund, balance, status)
26
26
  tier Manage tier subscription (status, set)
27
27
  projects Manage projects (provision, list, query, inspect, delete)
28
+ admin Platform-admin operations (lease-perpetual, archive, reactivate)
28
29
  deploy Unified deploy operations (requires active tier)
29
30
  ci Link GitHub Actions OIDC deploy bindings
30
31
  jobs Submit and inspect fixed platform-managed jobs
@@ -125,6 +126,11 @@ switch (cmd) {
125
126
  await run(sub, rest);
126
127
  break;
127
128
  }
129
+ case "admin": {
130
+ const { run } = await import("./lib/admin.mjs");
131
+ await run(sub, rest);
132
+ break;
133
+ }
128
134
  case "deploy": {
129
135
  const { run } = await import("./lib/deploy.mjs");
130
136
  await run([sub, ...rest].filter(Boolean));
package/lib/admin.mjs ADDED
@@ -0,0 +1,198 @@
1
+ import { getSdk } from "./sdk.mjs";
2
+ import { reportSdkError, fail } from "./sdk-errors.mjs";
3
+ import { assertKnownFlags, hasHelp, normalizeArgv } from "./argparse.mjs";
4
+
5
+ const HELP = `run402 admin — Platform-admin operations (v1.57+)
6
+
7
+ Usage:
8
+ run402 admin <subcommand> [args...]
9
+
10
+ Subcommands:
11
+ lease-perpetual <billing_account_id> (--enable | --disable)
12
+ Toggle the account-level escape hatch.
13
+ When enabled, the account never advances
14
+ past 'active' regardless of lease expiry.
15
+ If the account is currently in a grace
16
+ state, enabling reactivates it inline
17
+ (\`reactivated: true\` in the response).
18
+ Replaces the v1.56 per-project pin.
19
+
20
+ archive <project_id> [--reason "..."] Moderate-archive a single project. Sets
21
+ projects.archived_at = NOW(). Independent
22
+ of account lifecycle; the rest of the
23
+ account's projects keep serving.
24
+
25
+ reactivate <project_id> Un-archive a project (flips archived_at
26
+ back to NULL). In v1.57 this no longer
27
+ touches account-level lifecycle — to
28
+ reactivate a grace-state account, use
29
+ \`tier set <tier>\` or enable
30
+ lease-perpetual above.
31
+
32
+ Notes:
33
+ - All admin subcommands require platform-admin auth — the configured allowance
34
+ wallet must be a platform admin, or an admin OAuth session cookie must be
35
+ available. Regular project owners cannot run these.
36
+ - Output is JSON.
37
+
38
+ Examples:
39
+ run402 admin lease-perpetual ba_abc123 --enable
40
+ run402 admin lease-perpetual ba_abc123 --disable
41
+ run402 admin archive prj_abuse --reason "ToS violation"
42
+ run402 admin reactivate prj_abuse
43
+ `;
44
+
45
+ const SUB_HELP = {
46
+ "lease-perpetual": `run402 admin lease-perpetual — Toggle the account-level escape hatch
47
+
48
+ Usage:
49
+ run402 admin lease-perpetual <billing_account_id> (--enable | --disable)
50
+
51
+ Options:
52
+ --enable Set lease_perpetual = true (pins every project on the account)
53
+ --disable Set lease_perpetual = false (resumes normal lifecycle advancement)
54
+
55
+ Notes:
56
+ - Replaces the v1.56 per-project \`projects pin\` command (gateway endpoint
57
+ /projects/v1/admin/:id/pin was removed in v1.57).
58
+ - When --enable lands on a grace-state account (past_due / frozen / dormant),
59
+ the gateway reactivates inline and reports \`reactivated: true\`.
60
+
61
+ Examples:
62
+ run402 admin lease-perpetual ba_abc123 --enable
63
+ run402 admin lease-perpetual ba_abc123 --disable
64
+ `,
65
+ archive: `run402 admin archive — Moderate-archive a single project
66
+
67
+ Usage:
68
+ run402 admin archive <project_id> [--reason "..."]
69
+
70
+ Options:
71
+ --reason <text> Free-text moderation reason recorded in the audit log.
72
+
73
+ Notes:
74
+ - Sets projects.archived_at = NOW(). Independent of account-level lifecycle —
75
+ only this project goes dark; siblings on the same billing account keep
76
+ serving.
77
+ - No-op when the project is already archived (returns \`note: "already
78
+ archived"\` without changing archived_at).
79
+
80
+ Examples:
81
+ run402 admin archive prj_abuse --reason "ToS violation"
82
+ run402 admin archive prj_abuse
83
+ `,
84
+ reactivate: `run402 admin reactivate — Un-archive a project
85
+
86
+ Usage:
87
+ run402 admin reactivate <project_id>
88
+
89
+ Notes:
90
+ - Flips projects.archived_at back to NULL. In v1.57 this was narrowed:
91
+ account-level lifecycle reactivation is NOT triggered. Use
92
+ \`run402 tier set <tier>\` (the tier flow runs the lifecycle advance) or
93
+ \`run402 admin lease-perpetual <ba_id> --enable\` for that.
94
+ - No-op when the project is not archived (returns \`note: "not archived"\`).
95
+
96
+ Examples:
97
+ run402 admin reactivate prj_abuse
98
+ `,
99
+ };
100
+
101
+ const FLAGS_BY_SUB = {
102
+ "lease-perpetual": { known: ["--enable", "--disable"], values: [] },
103
+ archive: { known: ["--reason"], values: ["--reason"] },
104
+ reactivate: { known: [], values: [] },
105
+ };
106
+
107
+ function validateFlags(sub, args) {
108
+ const spec = FLAGS_BY_SUB[sub] ?? { known: [], values: [] };
109
+ assertKnownFlags(args, [...spec.known, "--help", "-h"], spec.values);
110
+ }
111
+
112
+ async function leasePerpetual(args) {
113
+ const accountId = args.find((a) => typeof a === "string" && !a.startsWith("--"));
114
+ const enable = args.includes("--enable");
115
+ const disable = args.includes("--disable");
116
+ if (!accountId) {
117
+ fail({
118
+ code: "BAD_USAGE",
119
+ message: "Missing <billing_account_id>.",
120
+ hint: "run402 admin lease-perpetual <billing_account_id> --enable | --disable",
121
+ });
122
+ }
123
+ if (enable === disable) {
124
+ fail({
125
+ code: "BAD_USAGE",
126
+ message: "Pass exactly one of --enable / --disable.",
127
+ hint: "run402 admin lease-perpetual <billing_account_id> --enable | --disable",
128
+ });
129
+ }
130
+ try {
131
+ const data = await getSdk().admin.setLeasePerpetual(accountId, enable);
132
+ console.log(JSON.stringify(data, null, 2));
133
+ } catch (err) {
134
+ reportSdkError(err);
135
+ }
136
+ }
137
+
138
+ async function archive(args) {
139
+ const projectId = args.find((a) => typeof a === "string" && !a.startsWith("--"));
140
+ if (!projectId) {
141
+ fail({
142
+ code: "BAD_USAGE",
143
+ message: "Missing <project_id>.",
144
+ hint: "run402 admin archive <project_id> [--reason \"...\"]",
145
+ });
146
+ }
147
+ let reason;
148
+ for (let i = 0; i < args.length; i++) {
149
+ if (args[i] === "--reason" && args[i + 1] !== undefined) {
150
+ reason = args[++i];
151
+ }
152
+ }
153
+ try {
154
+ const data = await getSdk().admin.archiveProject(projectId, reason !== undefined ? { reason } : {});
155
+ console.log(JSON.stringify(data, null, 2));
156
+ } catch (err) {
157
+ reportSdkError(err);
158
+ }
159
+ }
160
+
161
+ async function reactivate(args) {
162
+ const projectId = args.find((a) => typeof a === "string" && !a.startsWith("--"));
163
+ if (!projectId) {
164
+ fail({
165
+ code: "BAD_USAGE",
166
+ message: "Missing <project_id>.",
167
+ hint: "run402 admin reactivate <project_id>",
168
+ });
169
+ }
170
+ try {
171
+ const data = await getSdk().admin.reactivateProject(projectId);
172
+ console.log(JSON.stringify(data, null, 2));
173
+ } catch (err) {
174
+ reportSdkError(err);
175
+ }
176
+ }
177
+
178
+ export async function run(sub, args) {
179
+ if (!sub || sub === "--help" || sub === "-h") {
180
+ console.log(HELP);
181
+ process.exit(0);
182
+ }
183
+ args = normalizeArgv(args);
184
+ if (Array.isArray(args) && hasHelp(args)) {
185
+ console.log(SUB_HELP[sub] || HELP);
186
+ process.exit(0);
187
+ }
188
+ validateFlags(sub, args);
189
+ switch (sub) {
190
+ case "lease-perpetual": await leasePerpetual(args); break;
191
+ case "archive": await archive(args); break;
192
+ case "reactivate": await reactivate(args); break;
193
+ default:
194
+ console.error(`Unknown subcommand: ${sub}\n`);
195
+ console.log(HELP);
196
+ process.exit(1);
197
+ }
198
+ }
package/lib/deploy-v2.mjs CHANGED
@@ -40,6 +40,7 @@ const APPLY_HELP = `run402 deploy apply — Unified deploy primitive (v1.34+)
40
40
  Usage:
41
41
  run402 deploy apply --manifest <path> [--project <id>] [--quiet|--final-only] [--allow-warning <code>] [--allow-warnings]
42
42
  run402 deploy apply --spec '<json>' [--project <id>] [--quiet|--final-only] [--allow-warning <code>] [--allow-warnings]
43
+ run402 deploy apply --dir <build-output> [--manifest <path>] [--project <id>]
43
44
  cat spec.json | run402 deploy apply [--project <id>]
44
45
 
45
46
  Manifest format mirrors the MCP \`deploy\` tool's ReleaseSpec:
@@ -79,6 +80,12 @@ Complete static site + function + route manifest:
79
80
  Options:
80
81
  --manifest <path> Read the spec from this JSON file
81
82
  --spec '<json>' Inline JSON spec (single-quote in shell)
83
+ --dir <path> Read \`dist/run402/adapter.json\` from this directory and
84
+ merge the Astro release slice (site + functions + routes)
85
+ into the spec. Combine with --manifest to declare
86
+ database/secrets/subdomains/i18n in the manifest while
87
+ the slice carries the build output. Requires
88
+ @run402/astro installed in the project.
82
89
  --project <id> Override project_id from the manifest
83
90
  --quiet Suppress per-event JSON-line stderr (final result still on stdout)
84
91
  --final-only Alias for --quiet; final success/error envelope is still preserved
@@ -296,8 +303,8 @@ function makeStderrEventWriter(quiet) {
296
303
  }
297
304
 
298
305
  function parseApplyArgs(args) {
299
- const opts = { manifest: null, spec: null, project: null, quiet: false, allowWarnings: false, allowWarningCodes: [] };
300
- const allowedFlags = ["--manifest", "--spec", "--project", "--quiet", "--final-only", "--allow-warning", "--allow-warnings", "--help", "-h"];
306
+ const opts = { manifest: null, spec: null, dir: null, project: null, quiet: false, allowWarnings: false, allowWarningCodes: [] };
307
+ const allowedFlags = ["--manifest", "--spec", "--dir", "--project", "--quiet", "--final-only", "--allow-warning", "--allow-warnings", "--help", "-h"];
301
308
 
302
309
  for (let i = 0; i < args.length; i++) {
303
310
  const arg = args[i];
@@ -305,7 +312,7 @@ function parseApplyArgs(args) {
305
312
  console.log(APPLY_HELP);
306
313
  process.exit(0);
307
314
  }
308
- if (arg === "--manifest" || arg === "--spec" || arg === "--project" || arg === "--allow-warning") {
315
+ if (arg === "--manifest" || arg === "--spec" || arg === "--dir" || arg === "--project" || arg === "--allow-warning") {
309
316
  const value = args[i + 1];
310
317
  if (value === undefined || (typeof value === "string" && value.startsWith("--"))) {
311
318
  fail({
@@ -332,6 +339,15 @@ function parseApplyArgs(args) {
332
339
  });
333
340
  }
334
341
  opts.spec = value;
342
+ } else if (arg === "--dir") {
343
+ if (opts.dir !== null) {
344
+ fail({
345
+ code: "BAD_USAGE",
346
+ message: "--dir may only be provided once",
347
+ details: { flag: "--dir" },
348
+ });
349
+ }
350
+ opts.dir = value;
335
351
  } else if (arg === "--project") {
336
352
  opts.project = value;
337
353
  } else {
@@ -362,9 +378,63 @@ function parseApplyArgs(args) {
362
378
  function applySourceField(opts) {
363
379
  if (opts.manifest !== null) return "manifest";
364
380
  if (opts.spec !== null) return "spec";
381
+ if (opts.dir !== null && !hasStdinSource()) return "dir";
365
382
  return "stdin";
366
383
  }
367
384
 
385
+ async function mergeAstroReleaseSlice(spec, dirArg) {
386
+ let buildAstroReleaseSlice;
387
+ try {
388
+ ({ buildAstroReleaseSlice } = await import("@run402/astro/release-slice"));
389
+ } catch (err) {
390
+ fail({
391
+ code: "BAD_USAGE",
392
+ message:
393
+ "--dir requires @run402/astro to be installed in this project. Add it as a dependency (e.g., `npm install -D @run402/astro`).",
394
+ details: { flag: "--dir", import_error: err?.message ?? String(err) },
395
+ });
396
+ }
397
+
398
+ const distDirAbs = isAbsolute(dirArg) ? dirArg : resolve(process.cwd(), dirArg);
399
+
400
+ let slice;
401
+ try {
402
+ slice = await buildAstroReleaseSlice(distDirAbs);
403
+ } catch (err) {
404
+ if (err && typeof err === "object" && typeof err.code === "string" &&
405
+ err.code.startsWith("R402_ASTRO_ADAPTER_MANIFEST_")) {
406
+ fail({
407
+ code: err.code,
408
+ message: err.message,
409
+ hint: err.suggestedFix,
410
+ docs: err.docs,
411
+ details: {
412
+ flag: "--dir",
413
+ dir: distDirAbs,
414
+ file: err.file,
415
+ ...(err.observedVersion ? { observed_version: err.observedVersion } : {}),
416
+ },
417
+ });
418
+ }
419
+ throw err;
420
+ }
421
+
422
+ // Slice owns site/functions/routes. The caller's manifest can declare
423
+ // cross-cutting slices (database, secrets, i18n, subdomains) that the
424
+ // slice doesn't touch. On collision in `functions.replace`, the slice
425
+ // wins for its own function name; the caller's other functions are
426
+ // preserved. `site` and `routes` are whole-resource replacements — slice
427
+ // wins entirely on those.
428
+ spec.site = slice.site;
429
+ spec.routes = slice.routes;
430
+ const sliceFns = slice.functions?.replace ?? {};
431
+ const existingFns =
432
+ spec.functions && typeof spec.functions === "object" && spec.functions.replace
433
+ ? spec.functions.replace
434
+ : {};
435
+ spec.functions = { replace: { ...existingFns, ...sliceFns } };
436
+ }
437
+
368
438
  function validateApplySources(opts) {
369
439
  const sources = [];
370
440
  if (opts.manifest !== null) sources.push("--manifest");
@@ -398,6 +468,10 @@ async function applyCmd(args) {
398
468
  details: { flag: "--manifest", path: opts.manifest },
399
469
  });
400
470
  }
471
+ } else if (opts.dir !== null && !hasStdinSource()) {
472
+ // --dir without any other source: start from an empty spec and let the
473
+ // Astro release-slice fill in site/functions/routes below.
474
+ raw = "{}";
401
475
  } else {
402
476
  raw = await readStdin();
403
477
  }
@@ -417,6 +491,10 @@ async function applyCmd(args) {
417
491
  ...(manifestPath ? { path: manifestPath } : {}),
418
492
  });
419
493
 
494
+ if (opts.dir !== null) {
495
+ await mergeAstroReleaseSlice(spec, opts.dir);
496
+ }
497
+
420
498
  // GH-232: Reject empty specs client-side. Without this guard,
421
499
  // `run402 deploy apply --spec '{}'` (and `--manifest <empty>`) would silently
422
500
  // send an empty ReleaseSpec to /apply/v1/plans with no signal that nothing
package/lib/projects.mjs CHANGED
@@ -27,7 +27,6 @@ Subcommands:
27
27
  validate-expose [id] --file <path> Validate a manifest file without mutating the project
28
28
  get-expose [id] Get the current authorization manifest
29
29
  delete [id] --confirm Immediately and irreversibly delete a project (cascade purge) and remove from local state. Requires --confirm.
30
- pin [id] Pin a project (admin only; uses admin allowance wallet)
31
30
  promote-user [id] <email> Promote a user to project_admin role
32
31
  demote-user [id] <email> Demote a user from project_admin role
33
32
 
@@ -506,22 +505,6 @@ async function use(projectId) {
506
505
  }
507
506
  }
508
507
 
509
- async function pin(projectId) {
510
- if (!projectId) {
511
- fail({
512
- code: "BAD_USAGE",
513
- message: "Missing <project_id>.",
514
- hint: "run402 projects pin <project_id>",
515
- });
516
- }
517
- try {
518
- const data = await getSdk().projects.pin(projectId);
519
- console.log(JSON.stringify(data, null, 2));
520
- } catch (err) {
521
- reportSdkError(err);
522
- }
523
- }
524
-
525
508
  async function promoteUser(projectId, email) {
526
509
  if (!email) {
527
510
  fail({
@@ -593,6 +576,15 @@ export async function run(sub, args) {
593
576
  console.log(HELP);
594
577
  process.exit(0);
595
578
  }
579
+ // v1.57: `projects pin` was removed. Surface a specific hint pointing at the
580
+ // replacement before falling through to the unknown-subcommand handler.
581
+ if (sub === "pin") {
582
+ fail({
583
+ code: "REMOVED_COMMAND",
584
+ message: "`run402 projects pin` was removed in v1.57.",
585
+ hint: "Per-project pin is superseded by the account-level escape hatch. Use `run402 admin lease-perpetual <billing_account_id> --enable` (platform-admin only).",
586
+ });
587
+ }
596
588
  args = normalizeArgv(args);
597
589
  if (Array.isArray(args) && hasHelp(args)) {
598
590
  console.log(SUB_HELP[sub] || HELP);
@@ -615,7 +607,6 @@ export async function run(sub, args) {
615
607
  case "validate-expose": await validateExpose(args); break;
616
608
  case "get-expose": { const { projectId } = resolvePositionalProject(args, { rejectBareFirst: true }); await getExpose(projectId); break; }
617
609
  case "delete": { const { projectId, rest } = resolvePositionalProject(args, { rejectBareFirst: true }); await deleteProject(projectId, rest); break; }
618
- case "pin": { const { projectId } = resolvePositionalProject(args, { rejectBareFirst: true }); await pin(projectId); break; }
619
610
  case "promote-user": { const { projectId, rest } = resolvePositionalProject(args); await promoteUser(projectId, rest[0]); break; }
620
611
  case "demote-user": { const { projectId, rest } = resolvePositionalProject(args); await demoteUser(projectId, rest[0]); break; }
621
612
  default:
package/lib/status.mjs CHANGED
@@ -113,6 +113,11 @@ export async function run(args = []) {
113
113
  tier: tier && tier.tier
114
114
  ? { name: tier.tier, status: tier.status, expires: tier.lease_expires_at }
115
115
  : null,
116
+ // v1.57: lifecycle state and the per-account escape hatch moved to the
117
+ // billing account. Surface them at the top level so agents don't have to
118
+ // dig into the projects array to read them.
119
+ account_lifecycle_state: tier?.account_lifecycle_state ?? null,
120
+ lease_perpetual: tier?.lease_perpetual ?? null,
116
121
  // GH-32: `balance` used to mean the billing-account balance, which
117
122
  // confused people who expected their on-chain wallet balance. Split into
118
123
  // two unambiguous fields:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run402",
3
- "version": "2.16.1",
3
+ "version": "2.18.0",
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": {
@@ -138,6 +138,40 @@ export interface RotateWebhookSecretResult {
138
138
  grace_window_hours: number;
139
139
  note: string;
140
140
  }
141
+ export interface SetLeasePerpetualResult {
142
+ status: "ok";
143
+ billing_account_id: string;
144
+ lease_perpetual: boolean;
145
+ /**
146
+ * `true` when the toggle was `lease_perpetual: true` AND the account was in
147
+ * a grace state (past_due / frozen / dormant) and got pulled back to
148
+ * `active` inline. `false` otherwise (account was already active, or the
149
+ * toggle disabled perpetual).
150
+ */
151
+ reactivated: boolean;
152
+ }
153
+ export interface ArchiveProjectOptions {
154
+ /** Free-text moderation reason recorded in the audit log. */
155
+ reason?: string;
156
+ }
157
+ export interface ArchiveProjectResult {
158
+ status: "ok";
159
+ project_id: string;
160
+ /** ISO timestamp of the archive action. Absent when the project was already archived. */
161
+ archived_at?: string;
162
+ /** Echoes the moderator-supplied reason when the project was newly archived. */
163
+ reason?: string;
164
+ /** Set when the project was already archived; archived_at is then omitted. */
165
+ note?: "already archived";
166
+ }
167
+ export interface ReactivateProjectResult {
168
+ status: "ok";
169
+ project_id: string;
170
+ /** `true` when the call un-archived a previously archived project. */
171
+ reactivated?: true;
172
+ /** Set when the project was not archived to begin with — the call is a no-op. */
173
+ note?: "not archived";
174
+ }
141
175
  export interface OperatorStatusResult {
142
176
  operator_contact: {
143
177
  email_status: "none" | "pending" | "verified" | "bouncing";
@@ -212,5 +246,34 @@ export declare class Admin {
212
246
  * suitable admin headers.
213
247
  */
214
248
  getProjectFinance(projectId: string, opts?: AdminProjectFinanceOptions): Promise<AdminProjectFinanceResult>;
249
+ /**
250
+ * Toggle a billing account's `lease_perpetual` flag — the operator escape
251
+ * hatch that pins every project on the account (replaces the v1.56
252
+ * per-project `pin` removed in v1.57). When enabling on an account in a
253
+ * grace state, the gateway reactivates inline and reports it via
254
+ * `reactivated: true`.
255
+ *
256
+ * Platform-admin only. Calls
257
+ * `POST /billing-accounts/v1/admin/:id/lease-perpetual`.
258
+ */
259
+ setLeasePerpetual(billingAccountId: string, perpetual: boolean): Promise<SetLeasePerpetualResult>;
260
+ /**
261
+ * Operator moderation action — archive a single project (ToS / abuse).
262
+ * Sets `projects.archived_at` to NOW(). Independent of account-level
263
+ * lifecycle; the rest of the account's projects continue serving.
264
+ *
265
+ * Platform-admin only. Calls `POST /projects/v1/admin/:id/archive`.
266
+ */
267
+ archiveProject(projectId: string, opts?: ArchiveProjectOptions): Promise<ArchiveProjectResult>;
268
+ /**
269
+ * Operator "un-archive" — flips `projects.archived_at` back to NULL. In
270
+ * v1.57 this route was narrowed: it no longer touches account-level
271
+ * lifecycle. To reactivate a grace-state account, either subscribe a new
272
+ * tier (the tier flow runs `advanceLifecycleForAccount` inline) or set
273
+ * `lease_perpetual: true` via {@link setLeasePerpetual}.
274
+ *
275
+ * Platform-admin only. Calls `POST /projects/v1/admin/:id/reactivate`.
276
+ */
277
+ reactivateProject(projectId: string): Promise<ReactivateProjectResult>;
215
278
  }
216
279
  //# sourceMappingURL=admin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/namespaces/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/namespaces/admin.ts"],"names":[],"mappings":"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"}
@@ -134,5 +134,60 @@ export class Admin {
134
134
  context: "fetching project finance",
135
135
  });
136
136
  }
137
+ // -------------------------------------------------------------------------
138
+ // Operator-only project + billing-account actions (v1.57).
139
+ // -------------------------------------------------------------------------
140
+ /**
141
+ * Toggle a billing account's `lease_perpetual` flag — the operator escape
142
+ * hatch that pins every project on the account (replaces the v1.56
143
+ * per-project `pin` removed in v1.57). When enabling on an account in a
144
+ * grace state, the gateway reactivates inline and reports it via
145
+ * `reactivated: true`.
146
+ *
147
+ * Platform-admin only. Calls
148
+ * `POST /billing-accounts/v1/admin/:id/lease-perpetual`.
149
+ */
150
+ async setLeasePerpetual(billingAccountId, perpetual) {
151
+ return this.client.request(`/billing-accounts/v1/admin/${encodeURIComponent(billingAccountId)}/lease-perpetual`, {
152
+ method: "POST",
153
+ headers: { "X-Admin-Mode": "1" },
154
+ body: { lease_perpetual: perpetual },
155
+ context: "setting billing account lease_perpetual",
156
+ });
157
+ }
158
+ /**
159
+ * Operator moderation action — archive a single project (ToS / abuse).
160
+ * Sets `projects.archived_at` to NOW(). Independent of account-level
161
+ * lifecycle; the rest of the account's projects continue serving.
162
+ *
163
+ * Platform-admin only. Calls `POST /projects/v1/admin/:id/archive`.
164
+ */
165
+ async archiveProject(projectId, opts = {}) {
166
+ const body = {};
167
+ if (opts.reason !== undefined)
168
+ body.reason = opts.reason;
169
+ return this.client.request(`/projects/v1/admin/${encodeURIComponent(projectId)}/archive`, {
170
+ method: "POST",
171
+ headers: { "X-Admin-Mode": "1" },
172
+ body,
173
+ context: "archiving project",
174
+ });
175
+ }
176
+ /**
177
+ * Operator "un-archive" — flips `projects.archived_at` back to NULL. In
178
+ * v1.57 this route was narrowed: it no longer touches account-level
179
+ * lifecycle. To reactivate a grace-state account, either subscribe a new
180
+ * tier (the tier flow runs `advanceLifecycleForAccount` inline) or set
181
+ * `lease_perpetual: true` via {@link setLeasePerpetual}.
182
+ *
183
+ * Platform-admin only. Calls `POST /projects/v1/admin/:id/reactivate`.
184
+ */
185
+ async reactivateProject(projectId) {
186
+ return this.client.request(`/projects/v1/admin/${encodeURIComponent(projectId)}/reactivate`, {
187
+ method: "POST",
188
+ headers: { "X-Admin-Mode": "1" },
189
+ context: "reactivating project",
190
+ });
191
+ }
137
192
  }
138
193
  //# sourceMappingURL=admin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/namespaces/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/namespaces/admin.ts"],"names":[],"mappings":"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"}
@@ -1484,6 +1484,7 @@ const FUNCTION_SPEC_FIELDS = new Set([
1484
1484
  "schedule",
1485
1485
  "requireAuth",
1486
1486
  "requireRole",
1487
+ "class",
1487
1488
  ]);
1488
1489
  const FUNCTION_CONFIG_FIELDS = new Set(["timeoutSeconds", "memoryMb"]);
1489
1490
  const SITE_SPEC_FIELDS = new Set(["replace", "patch", "public_paths"]);
@@ -2382,6 +2383,8 @@ async function normalizeFunction(fn, remember) {
2382
2383
  out.requireAuth = fn.requireAuth;
2383
2384
  if (fn.requireRole !== undefined)
2384
2385
  out.requireRole = fn.requireRole;
2386
+ if (fn.class !== undefined)
2387
+ out.class = fn.class;
2385
2388
  if (fn.source !== undefined) {
2386
2389
  const resolved = await resolveContent(fn.source, "function source");
2387
2390
  out.source = remember(resolved);