run402 4.101.0 → 4.103.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 +0 -23
- package/lib/command-manifest.mjs +0 -24
- package/lib/contacts.mjs +6 -6
- package/lib/doctor-source-scan.test.mjs +29 -0
- package/lib/doctor.mjs +2 -1
- package/lib/escalations.mjs +0 -25
- package/lib/projects.mjs +52 -28
- package/lib/subscriptions.mjs +1 -1
- package/package.json +1 -1
- package/sdk/dist/namespaces/projects.d.ts +17 -6
- package/sdk/dist/namespaces/projects.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.js +29 -9
- package/sdk/dist/namespaces/projects.js.map +1 -1
- package/sdk/dist/namespaces/projects.types.d.ts +67 -0
- package/sdk/dist/namespaces/projects.types.d.ts.map +1 -1
- package/sdk/dist/node/doctor.d.ts +1 -1
- package/sdk/dist/node/doctor.d.ts.map +1 -1
- package/sdk/dist/node/doctor.js +37 -1
- package/sdk/dist/node/doctor.js.map +1 -1
- package/sdk/dist/node/source-scan.d.ts.map +1 -1
- package/sdk/dist/node/source-scan.js +29 -0
- package/sdk/dist/node/source-scan.js.map +1 -1
- package/sdk/dist/scoped.d.ts +3 -2
- package/sdk/dist/scoped.d.ts.map +1 -1
- package/sdk/dist/scoped.js +3 -0
- package/sdk/dist/scoped.js.map +1 -1
- package/vault-surface.json +1 -1
- package/lib/notifications.mjs +0 -70
package/cli.mjs
CHANGED
|
@@ -384,24 +384,6 @@ switch (cmd) {
|
|
|
384
384
|
await run(sub, rest);
|
|
385
385
|
break;
|
|
386
386
|
}
|
|
387
|
-
// `message` is RESERVED, not merely renamed: it is being kept free for
|
|
388
|
-
// addressed agent/human messaging. Aliasing it to feedback would cement the
|
|
389
|
-
// old meaning on the exact noun that is about to mean something else.
|
|
390
|
-
case "message": {
|
|
391
|
-
const { fail } = await import("./lib/sdk-errors.mjs");
|
|
392
|
-
fail({
|
|
393
|
-
code: "COMMAND_REMOVED",
|
|
394
|
-
message: "`run402 message` was renamed to `run402 feedback`.",
|
|
395
|
-
hint: "run402 feedback send \"<text>\"",
|
|
396
|
-
details: { was: "message", now: "feedback", reserved: "the `message` noun is reserved for addressed agent/human messaging" },
|
|
397
|
-
next_actions: [
|
|
398
|
-
{ type: "edit_request", command: "run402 feedback send \"<text>\"", why: "Send feedback to the Run402 developers." },
|
|
399
|
-
{ type: "edit_request", command: "run402 messages send \"<text>\"", why: "Message the other agents working in this room." },
|
|
400
|
-
{ type: "edit_request", command: "run402 escalations raise \"<text>\"", why: "Page a human and wait for a named one to take it." },
|
|
401
|
-
],
|
|
402
|
-
});
|
|
403
|
-
break;
|
|
404
|
-
}
|
|
405
387
|
case "agent": {
|
|
406
388
|
const { run } = await import("./lib/agent.mjs");
|
|
407
389
|
await run(sub, rest);
|
|
@@ -472,11 +454,6 @@ switch (cmd) {
|
|
|
472
454
|
await run(sub, rest);
|
|
473
455
|
break;
|
|
474
456
|
}
|
|
475
|
-
case "notifications": {
|
|
476
|
-
const { run } = await import("./lib/notifications.mjs");
|
|
477
|
-
await run(sub, rest);
|
|
478
|
-
break;
|
|
479
|
-
}
|
|
480
457
|
case "webhook-secret": {
|
|
481
458
|
const { run } = await import("./lib/webhook-secret.mjs");
|
|
482
459
|
await run(sub, rest);
|
package/lib/command-manifest.mjs
CHANGED
|
@@ -484,28 +484,4 @@ export const COMMAND_MANIFEST = [
|
|
|
484
484
|
// completeness check against cli.mjs's dispatch switch.
|
|
485
485
|
export const SKIPPED_FAMILIES = {
|
|
486
486
|
"dev": "interactive wrapper that spawns `astro dev`",
|
|
487
|
-
// RESERVED, not dispatched: every `run402 message …` fails with
|
|
488
|
-
// COMMAND_REMOVED pointing at `feedback send` / `messages send` /
|
|
489
|
-
// `escalations raise`. It has no subcommands to manifest because it takes
|
|
490
|
-
// none — the noun is being held for addressed agent/human messaging.
|
|
491
|
-
"message": "reserved noun; fails with COMMAND_REMOVED (renamed to `feedback`)",
|
|
492
|
-
// Split into `deliveries` / `contacts` / `subscriptions`; every subcommand
|
|
493
|
-
// answers COMMAND_REMOVED naming its successor.
|
|
494
|
-
"notifications": "reserved group; split by legible-cli-surface",
|
|
495
|
-
};
|
|
496
|
-
|
|
497
|
-
/**
|
|
498
|
-
* SUBCOMMAND spellings kept alive only to answer `COMMAND_REMOVED`.
|
|
499
|
-
*
|
|
500
|
-
* A retired spelling still needs a `case` branch — that branch IS the redirect,
|
|
501
|
-
* and without it a caller gets a generic "unknown subcommand" instead of being
|
|
502
|
-
* told where the verb went. But it is not a command: it dispatches nothing and
|
|
503
|
-
* belongs in no capability mapping, so the inventory gate must not demand one.
|
|
504
|
-
*
|
|
505
|
-
* The family-level equivalent is SKIPPED_FAMILIES above. This exists because
|
|
506
|
-
* some spellings are retired INSIDE a family rather than as a whole family,
|
|
507
|
-
* which the family list cannot express.
|
|
508
|
-
*/
|
|
509
|
-
export const RESERVED_SUBCOMMANDS = {
|
|
510
|
-
"escalations:contacts": "merged into `contacts` — the ladder and Telegram channels are one question",
|
|
511
487
|
};
|
package/lib/contacts.mjs
CHANGED
|
@@ -83,7 +83,7 @@ async function preferences(args) {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
if (positionals[0] !== "set") {
|
|
86
|
-
fail({ code: "BAD_USAGE", message: "Usage: run402
|
|
86
|
+
fail({ code: "BAD_USAGE", message: "Usage: run402 contacts preferences [set <key>=<value> ...]" });
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// SET — parse remaining positional args as key=value
|
|
@@ -171,7 +171,7 @@ async function channelsConnect(args) {
|
|
|
171
171
|
if (positionals.length === 0) {
|
|
172
172
|
fail({
|
|
173
173
|
code: "BAD_USAGE",
|
|
174
|
-
message: "Usage: run402
|
|
174
|
+
message: "Usage: run402 contacts connect telegram [--label <name>]",
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
if (positionals[0] !== "telegram") {
|
|
@@ -209,7 +209,7 @@ async function channelsConnect(args) {
|
|
|
209
209
|
return;
|
|
210
210
|
}
|
|
211
211
|
console.error("Timed out waiting for you to tap the link — the connect code has expired.");
|
|
212
|
-
console.error("Run `run402
|
|
212
|
+
console.error("Run `run402 contacts connect telegram` again for a fresh link.");
|
|
213
213
|
console.log(JSON.stringify({ ...pending, connected: false, timed_out: true }, null, 2));
|
|
214
214
|
process.exit(1);
|
|
215
215
|
}
|
|
@@ -229,7 +229,7 @@ async function channelsRevoke(args) {
|
|
|
229
229
|
const [bindingId] = requirePositionalCount(a, [], {
|
|
230
230
|
min: 1,
|
|
231
231
|
max: 1,
|
|
232
|
-
command: "run402
|
|
232
|
+
command: "run402 contacts rm <contact_id>",
|
|
233
233
|
missing: "Missing <binding_id>.",
|
|
234
234
|
});
|
|
235
235
|
walletAuthHeaders("/agent/v1/notifications/channels/telegram");
|
|
@@ -264,8 +264,8 @@ async function runChannels(args) {
|
|
|
264
264
|
await channelsRevoke(rest);
|
|
265
265
|
return;
|
|
266
266
|
}
|
|
267
|
-
failUnknownSubcommand("
|
|
268
|
-
hint: "Run `run402
|
|
267
|
+
failUnknownSubcommand("contacts", channelsAction, {
|
|
268
|
+
hint: "Run `run402 contacts --help` for usage.",
|
|
269
269
|
});
|
|
270
270
|
}
|
|
271
271
|
|
|
@@ -519,3 +519,32 @@ describe("scanSourceFiles — explicit file list (GH-409)", () => {
|
|
|
519
519
|
);
|
|
520
520
|
});
|
|
521
521
|
});
|
|
522
|
+
|
|
523
|
+
describe("scanFileContent — the service key inside a user's request (SERVICE_KEY_IN_USER_REQUEST)", () => {
|
|
524
|
+
it("flags adminDb() in a file that reads the current user", () => {
|
|
525
|
+
const content = [
|
|
526
|
+
'import { adminDb, auth } from "@run402/functions";',
|
|
527
|
+
"const user = await auth.requireUser();",
|
|
528
|
+
'const rows = await adminDb().from("posts").select("*");',
|
|
529
|
+
].join("\n");
|
|
530
|
+
const f = scanFileContent(content).find((x) => x.code === "SERVICE_KEY_IN_USER_REQUEST");
|
|
531
|
+
assert.ok(f, "expected a SERVICE_KEY_IN_USER_REQUEST finding");
|
|
532
|
+
assert.equal(f.severity, SCAN_SEVERITY.WARN);
|
|
533
|
+
assert.equal(f.line, 3);
|
|
534
|
+
assert.match(f.fix, /db\(req\)/);
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
it("does not flag adminDb() in a file that never reads a user", () => {
|
|
538
|
+
const content = 'import { adminDb } from "@run402/functions";\nawait adminDb().sql("DELETE FROM sessions WHERE expires_at < now()");';
|
|
539
|
+
assert.ok(!scanFileContent(content).some((x) => x.code === "SERVICE_KEY_IN_USER_REQUEST"));
|
|
540
|
+
});
|
|
541
|
+
|
|
542
|
+
it("is silenced by `// run402-allow-admin-db:` on the line before", () => {
|
|
543
|
+
const content = [
|
|
544
|
+
"const user = await auth.user();",
|
|
545
|
+
"// run402-allow-admin-db: admin-only action, checked above",
|
|
546
|
+
'await adminDb().from("audit").insert({ actor: user.id });',
|
|
547
|
+
].join("\n");
|
|
548
|
+
assert.ok(!scanFileContent(content).some((x) => x.code === "SERVICE_KEY_IN_USER_REQUEST"));
|
|
549
|
+
});
|
|
550
|
+
});
|
package/lib/doctor.mjs
CHANGED
|
@@ -51,7 +51,8 @@ Output:
|
|
|
51
51
|
api_reachable error, tier inactive / frozen / past_due /
|
|
52
52
|
dormant / missing / error, error-severity source_scan findings
|
|
53
53
|
advisory a warning that never stops a deploy: account_health,
|
|
54
|
-
recovery_posture, vault, runtime_staleness,
|
|
54
|
+
recovery_posture, vault, runtime_staleness, retiring_routes,
|
|
55
|
+
cli_update gaps
|
|
55
56
|
info ok / skipped / unknown
|
|
56
57
|
Agents: branch on \`ok\`; read \`warnings[]\` (one entry per gap) for the
|
|
57
58
|
non-blocking gaps and \`blocking[]\` for what to fix when \`ok\` is false.
|
package/lib/escalations.mjs
CHANGED
|
@@ -226,24 +226,6 @@ async function resolveCmd(args) {
|
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
async function contacts(args) {
|
|
230
|
-
// Merged into `run402 contacts` (legible-cli-surface D4): the escalation
|
|
231
|
-
// ladder and Telegram channels were the same idea — "where a human is
|
|
232
|
-
// reachable" — under two names, and neither spelling suggested the other
|
|
233
|
-
// existed. Reserved, not aliased.
|
|
234
|
-
const [sub] = Array.isArray(args) ? args : [];
|
|
235
|
-
fail({
|
|
236
|
-
code: "COMMAND_REMOVED",
|
|
237
|
-
message: "`run402 escalations contacts` moved to `run402 contacts`.",
|
|
238
|
-
hint: sub === "remove" ? "run402 contacts rm <contact_id>" : `run402 contacts ${sub ?? "list"}`,
|
|
239
|
-
details: {
|
|
240
|
-
was: `escalations contacts${sub ? ` ${sub}` : ""}`,
|
|
241
|
-
now: "contacts",
|
|
242
|
-
why: "the paging ladder and Telegram channels are one question — where a human is reachable",
|
|
243
|
-
},
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
|
|
247
229
|
export async function run(sub, args) {
|
|
248
230
|
const argv = Array.isArray(args) ? args : [];
|
|
249
231
|
if (!sub || hasHelp([sub, ...argv])) {
|
|
@@ -266,15 +248,8 @@ export async function run(sub, args) {
|
|
|
266
248
|
case "resolve":
|
|
267
249
|
await resolveCmd(argv);
|
|
268
250
|
break;
|
|
269
|
-
case "contacts":
|
|
270
|
-
await contacts(argv);
|
|
271
|
-
break;
|
|
272
251
|
default:
|
|
273
252
|
failUnknownSubcommand("escalations", sub, {
|
|
274
|
-
// `contacts` is a nested group, so it has no manifest row of its own —
|
|
275
|
-
// without this it would be missing from the suggestion list a lost
|
|
276
|
-
// agent reads.
|
|
277
|
-
extraSubcommands: ["contacts"],
|
|
278
253
|
hint: "Run `run402 escalations --help` for usage.",
|
|
279
254
|
});
|
|
280
255
|
}
|
package/lib/projects.mjs
CHANGED
|
@@ -208,6 +208,7 @@ Examples:
|
|
|
208
208
|
Usage:
|
|
209
209
|
run402 projects sql "<query>" [--project <project_id>] [options]
|
|
210
210
|
run402 projects sql --file <path> [--project <project_id>] [options]
|
|
211
|
+
run402 projects sql --batch <path> [--transaction all|each] [--project <project_id>]
|
|
211
212
|
|
|
212
213
|
Legacy (still supported):
|
|
213
214
|
run402 projects sql <prj_id> "<query>" [options]
|
|
@@ -220,11 +221,21 @@ Options:
|
|
|
220
221
|
prj_... positional is also still accepted)
|
|
221
222
|
--file <path> Read SQL from a file instead of an inline query
|
|
222
223
|
--params '<json>' JSON array of parameters for a parameterized query
|
|
224
|
+
--batch <path> Run several statements from a JSON file: an array of
|
|
225
|
+
{ "sql": "...", "params": [...] } (one statement each)
|
|
226
|
+
--transaction <all|each>
|
|
227
|
+
With --batch: "all" (default) rolls back every statement
|
|
228
|
+
on the first failure; "each" commits each on its own
|
|
229
|
+
|
|
230
|
+
Result: { rows, row_count, fields, statements, warnings }. warnings[] never
|
|
231
|
+
changes the result: SCHEMA_CHANGE_OUTSIDE_MIGRATION means a schema change on
|
|
232
|
+
a released project belongs in spec.database.migrations.
|
|
223
233
|
|
|
224
234
|
Examples:
|
|
225
235
|
run402 projects sql "SELECT * FROM users LIMIT 5" --project prj_abc123
|
|
226
236
|
run402 projects sql "SELECT * FROM users WHERE id = $1" --params '[42]'
|
|
227
237
|
run402 projects sql --file setup.sql --project prj_abc123
|
|
238
|
+
run402 projects sql --batch seed.json --transaction all --project prj_abc123
|
|
228
239
|
`,
|
|
229
240
|
costs: `run402 projects costs — Show admin-only per-project finance
|
|
230
241
|
|
|
@@ -642,40 +653,23 @@ async function current() {
|
|
|
642
653
|
console.log(JSON.stringify(out, null, 2));
|
|
643
654
|
}
|
|
644
655
|
|
|
645
|
-
function commandMoved(name) {
|
|
646
|
-
fail({
|
|
647
|
-
code: "COMMAND_MOVED",
|
|
648
|
-
message: `run402 projects ${name} moved to the explicit local credential-cache surface.`,
|
|
649
|
-
hint: "Use `run402 credentials project-keys status/export --project <project_id>`.",
|
|
650
|
-
details: {
|
|
651
|
-
old_command: `projects ${name}`,
|
|
652
|
-
new_command: name === "keys" ? "credentials project-keys export --reveal" : "credentials project-keys status",
|
|
653
|
-
source: "local_cache",
|
|
654
|
-
},
|
|
655
|
-
next_actions: [
|
|
656
|
-
{
|
|
657
|
-
type: "run_command",
|
|
658
|
-
command: "run402 credentials project-keys status --project <project_id>",
|
|
659
|
-
why: "Inspect cached key presence without revealing secrets.",
|
|
660
|
-
},
|
|
661
|
-
{
|
|
662
|
-
type: "run_command",
|
|
663
|
-
command: "run402 credentials project-keys export --project <project_id> --reveal",
|
|
664
|
-
why: "Reveal cached project keys only when you explicitly need secret material.",
|
|
665
|
-
},
|
|
666
|
-
],
|
|
667
|
-
});
|
|
668
|
-
}
|
|
669
|
-
|
|
670
656
|
async function sqlCmd(projectId, args = []) {
|
|
671
657
|
let file = null;
|
|
672
658
|
let query = null;
|
|
673
659
|
let paramsRaw = null;
|
|
660
|
+
let batchFile = null;
|
|
661
|
+
let transaction = null;
|
|
674
662
|
for (let i = 0; i < args.length; i++) {
|
|
675
663
|
if (args[i] === "--file" && args[i + 1]) { file = args[++i]; }
|
|
676
664
|
else if (args[i] === "--params" && args[i + 1]) { paramsRaw = args[++i]; }
|
|
665
|
+
else if (args[i] === "--batch" && args[i + 1]) { batchFile = args[++i]; }
|
|
666
|
+
else if (args[i] === "--transaction" && args[i + 1]) { transaction = args[++i]; }
|
|
677
667
|
else if (!query && !args[i].startsWith("--")) { query = args[i]; }
|
|
678
668
|
}
|
|
669
|
+
if (batchFile) return sqlBatchCmd(projectId, batchFile, transaction, { query, file, paramsRaw });
|
|
670
|
+
if (transaction) {
|
|
671
|
+
fail({ code: "BAD_USAGE", message: "--transaction applies only with --batch <path>." });
|
|
672
|
+
}
|
|
679
673
|
if (file) validateRegularFile(file, "--file");
|
|
680
674
|
const sql = file ? readFileSync(file, "utf-8") : query;
|
|
681
675
|
if (!sql) {
|
|
@@ -703,6 +697,38 @@ async function sqlCmd(projectId, args = []) {
|
|
|
703
697
|
}
|
|
704
698
|
}
|
|
705
699
|
|
|
700
|
+
async function sqlBatchCmd(projectId, batchFile, transaction, others) {
|
|
701
|
+
if (others.query || others.file || others.paramsRaw) {
|
|
702
|
+
fail({ code: "BAD_USAGE", message: "--batch takes its statements from the file; drop the inline query, --file, and --params." });
|
|
703
|
+
}
|
|
704
|
+
if (transaction !== null && transaction !== "all" && transaction !== "each") {
|
|
705
|
+
fail({ code: "BAD_USAGE", message: "--transaction must be all or each." });
|
|
706
|
+
}
|
|
707
|
+
validateRegularFile(batchFile, "--batch");
|
|
708
|
+
let parsed;
|
|
709
|
+
try {
|
|
710
|
+
parsed = JSON.parse(readFileSync(batchFile, "utf-8"));
|
|
711
|
+
} catch (err) {
|
|
712
|
+
fail({ code: "BAD_USAGE", message: `--batch ${batchFile} is not valid JSON: ${err.message}` });
|
|
713
|
+
}
|
|
714
|
+
const statements = Array.isArray(parsed) ? parsed : parsed?.statements;
|
|
715
|
+
if (!Array.isArray(statements) || statements.length === 0) {
|
|
716
|
+
fail({
|
|
717
|
+
code: "BAD_USAGE",
|
|
718
|
+
message: "--batch expects a JSON array of { \"sql\": \"...\", \"params\": [...] } statements.",
|
|
719
|
+
hint: "One statement per entry, e.g. [{\"sql\":\"INSERT INTO t VALUES ($1)\",\"params\":[1]},{\"sql\":\"SELECT * FROM t\"}]",
|
|
720
|
+
});
|
|
721
|
+
}
|
|
722
|
+
const tx = transaction ?? (Array.isArray(parsed) ? undefined : parsed?.transaction);
|
|
723
|
+
try {
|
|
724
|
+
const data = await getSdk().projects.sqlBatch(projectId, statements, tx ? { transaction: tx } : {});
|
|
725
|
+
console.log(JSON.stringify(data, null, 2));
|
|
726
|
+
if (data && data.status === "partial") process.exitCode = 1;
|
|
727
|
+
} catch (err) {
|
|
728
|
+
reportSdkError(err);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
706
732
|
function toCliExposeValidationResult(data) {
|
|
707
733
|
if (!data || typeof data !== "object" || Array.isArray(data)) return data;
|
|
708
734
|
if ("has_errors" in data) return data;
|
|
@@ -875,7 +901,7 @@ const FLAGS_BY_SUB = {
|
|
|
875
901
|
"get-expose": { known: ["--project"], values: ["--project"] },
|
|
876
902
|
"promote-user": { known: ["--project"], values: ["--project"] },
|
|
877
903
|
"demote-user": { known: ["--project"], values: ["--project"] },
|
|
878
|
-
sql: { known: ["--project", "--file", "--params"], values: ["--project", "--file", "--params"] },
|
|
904
|
+
sql: { known: ["--project", "--file", "--params", "--batch", "--transaction"], values: ["--project", "--file", "--params", "--batch", "--transaction"] },
|
|
879
905
|
costs: { known: ["--project", "--window"], values: ["--project", "--window"] },
|
|
880
906
|
"apply-expose": { known: ["--project", "--file"], values: ["--project", "--file"] },
|
|
881
907
|
"validate-expose": {
|
|
@@ -919,8 +945,6 @@ export async function run(sub, args) {
|
|
|
919
945
|
case "rename": { const { projectId, rest } = resolveProjectSelector(args, { rejectBareFirst: true, valueFlags: FLAGS_BY_SUB.rename.values }); await rename(projectId, rest); break; }
|
|
920
946
|
case "tenant-payments": { const { projectId, rest } = resolveProjectSelector(args, { rejectBareFirst: true, valueFlags: FLAGS_BY_SUB["tenant-payments"].values }); await tenantPayments(projectId, rest); break; }
|
|
921
947
|
case "get": { const { projectId } = resolveProjectSelector(args, { rejectBareFirst: true }); await get(projectId); break; }
|
|
922
|
-
case "info": commandMoved("info"); break;
|
|
923
|
-
case "keys": commandMoved("keys"); break;
|
|
924
948
|
case "sql": { const { projectId, rest } = resolveProjectSelector(args, { maxBarePositionals: 1, valueFlags: FLAGS_BY_SUB.sql.values, rejectBareFirstWhenFlagPresent: ["--file"] }); await sqlCmd(projectId, rest); break; }
|
|
925
949
|
case "rest": { const { projectId, rest: restArgs } = resolveProjectSelector(args, { valueFlags: FLAGS_BY_SUB.rest.values }); await rest(projectId, restArgs); break; }
|
|
926
950
|
case "usage": { const { projectId } = resolveProjectSelector(args, { rejectBareFirst: true }); await usage(projectId); break; }
|
package/lib/subscriptions.mjs
CHANGED
|
@@ -119,7 +119,7 @@ async function rulesRm(args) {
|
|
|
119
119
|
const [ruleId] = requirePositionalCount(a, [], {
|
|
120
120
|
min: 1,
|
|
121
121
|
max: 1,
|
|
122
|
-
command: "run402
|
|
122
|
+
command: "run402 subscriptions rm <subscription_id>",
|
|
123
123
|
missing: "Missing <rule_id>.",
|
|
124
124
|
});
|
|
125
125
|
walletAuthHeaders("/agent/v1/notifications/rules");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "run402",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.103.0",
|
|
4
4
|
"description": "CLI for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import type { Client } from "../kernel.js";
|
|
14
14
|
import type { ProjectKeys } from "../credentials.js";
|
|
15
15
|
import type { ExposeManifest } from "./deploy.types.js";
|
|
16
|
-
import type { ExposeManifestValidationInput, ExposeManifestValidationResult, ListProjectsOptions, ListProjectsResult, ProjectDetail, ProjectInfo, ProjectRestOptions, ProjectRestResponse, ProvisionOptions, ProvisionResult, QuoteResult, RenameProjectResult, SetRepoNameResult, SchemaReport, ListTenantPaymentsOptions, TenantPaymentListResult, UsageReport, ValidateExposeOptions } from "./projects.types.js";
|
|
16
|
+
import type { SqlBatchOptions, SqlBatchResult, SqlBatchStatement, SqlResult, ExposeManifestValidationInput, ExposeManifestValidationResult, ListProjectsOptions, ListProjectsResult, ProjectDetail, ProjectInfo, ProjectRestOptions, ProjectRestResponse, ProvisionOptions, ProvisionResult, QuoteResult, RenameProjectResult, SetRepoNameResult, SchemaReport, ListTenantPaymentsOptions, TenantPaymentListResult, UsageReport, ValidateExposeOptions } from "./projects.types.js";
|
|
17
17
|
export declare class Projects {
|
|
18
18
|
private readonly client;
|
|
19
19
|
readonly schema: (id: string) => Promise<SchemaReport>;
|
|
@@ -113,12 +113,23 @@ export declare class Projects {
|
|
|
113
113
|
* constraints, and RLS policies.
|
|
114
114
|
*/
|
|
115
115
|
getSchema(id: string): Promise<SchemaReport>;
|
|
116
|
-
/** Run SQL against the project's database using the service key
|
|
117
|
-
*
|
|
118
|
-
*
|
|
116
|
+
/** Run SQL against the project's database using the service key
|
|
117
|
+
* (`POST /projects/v1/:project_id/sql`). Returns the gateway envelope
|
|
118
|
+
* verbatim: `{ status, schema, rows, row_count, fields, statements,
|
|
119
|
+
* warnings }`. `rows` and `fields` come from the last statement and
|
|
119
120
|
* `row_count` is that statement's count; `statements[]` carries each
|
|
120
|
-
* statement's `{ command, row_count }` for a multi-statement
|
|
121
|
-
|
|
121
|
+
* statement's `{ command, row_count }` for a multi-statement text.
|
|
122
|
+
* `warnings[]` never changes the result: `SCHEMA_CHANGE_OUTSIDE_MIGRATION`
|
|
123
|
+
* means a schema change on a released project belongs in a migration, and
|
|
124
|
+
* `MULTI_STATEMENT_TEXT_BODY` points at {@link sqlBatch}. */
|
|
125
|
+
sql(id: string, sql: string, params?: unknown[]): Promise<SqlResult>;
|
|
126
|
+
/** Run several statements (1 to 100, one statement each) with an explicit
|
|
127
|
+
* transaction (`POST /projects/v1/:project_id/sql/batch`). With
|
|
128
|
+
* `transaction: "all"` (default) the first failure rolls back the batch and
|
|
129
|
+
* throws `SQL_BATCH_STATEMENT_FAILED` naming the statement's index; with
|
|
130
|
+
* `"each"` every statement commits on its own and `results[i].status` says
|
|
131
|
+
* how each went. */
|
|
132
|
+
sqlBatch(id: string, statements: SqlBatchStatement[], opts?: SqlBatchOptions): Promise<SqlBatchResult>;
|
|
122
133
|
/** Query or mutate a project table through PostgREST. */
|
|
123
134
|
rest<T = unknown>(id: string, table: string, options?: ProjectRestOptions): Promise<T>;
|
|
124
135
|
/** Query or mutate a project table through PostgREST and preserve HTTP status. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EACV,6BAA6B,EAE7B,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,WAAW,EAEX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAoC7B,qBAAa,QAAQ;IAOP,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;gBAErC,MAAM,EAAE,MAAM;IAiB3C;;;;;;;;OAQG;IACG,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IA0CtE;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAavC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,IAAI,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkCvE;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQ3E;;;;;;;;OAQG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQ9E;;;;;OAKG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,yBAA8B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAYnH;;;OAGG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAShD;;;OAGG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IASlD
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ function normalizeListProjectsResult(result) {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
// The SQL response is returned VERBATIM in the wire shape:
|
|
29
|
-
// { status, schema, rows, row_count, fields, statements } (snake_case, docs/style.md).
|
|
29
|
+
// { status, schema, rows, row_count, fields, statements, warnings } (snake_case, docs/style.md).
|
|
30
30
|
// A former normalization here renamed row_count -> rowCount, which made the
|
|
31
31
|
// SDK the odd layer out — the gateway, the in-function `adminDb().sql()`
|
|
32
32
|
// runtime, and the CLI all speak row_count. One logical operation, one shape.
|
|
@@ -270,15 +270,19 @@ export class Projects {
|
|
|
270
270
|
context: "fetching schema",
|
|
271
271
|
});
|
|
272
272
|
}
|
|
273
|
-
/** Run SQL against the project's database using the service key
|
|
274
|
-
*
|
|
275
|
-
*
|
|
273
|
+
/** Run SQL against the project's database using the service key
|
|
274
|
+
* (`POST /projects/v1/:project_id/sql`). Returns the gateway envelope
|
|
275
|
+
* verbatim: `{ status, schema, rows, row_count, fields, statements,
|
|
276
|
+
* warnings }`. `rows` and `fields` come from the last statement and
|
|
276
277
|
* `row_count` is that statement's count; `statements[]` carries each
|
|
277
|
-
* statement's `{ command, row_count }` for a multi-statement
|
|
278
|
+
* statement's `{ command, row_count }` for a multi-statement text.
|
|
279
|
+
* `warnings[]` never changes the result: `SCHEMA_CHANGE_OUTSIDE_MIGRATION`
|
|
280
|
+
* means a schema change on a released project belongs in a migration, and
|
|
281
|
+
* `MULTI_STATEMENT_TEXT_BODY` points at {@link sqlBatch}. */
|
|
278
282
|
async sql(id, sql, params) {
|
|
279
283
|
const keys = await requireProjectCredentials(this.client, id, "running SQL");
|
|
280
284
|
const useParams = Array.isArray(params) && params.length > 0;
|
|
281
|
-
return this.client.request(`/projects/v1
|
|
285
|
+
return this.client.request(`/projects/v1/${id}/sql`, {
|
|
282
286
|
method: "POST",
|
|
283
287
|
headers: {
|
|
284
288
|
Authorization: `Bearer ${keys.service_key}`,
|
|
@@ -289,6 +293,21 @@ export class Projects {
|
|
|
289
293
|
context: "running SQL",
|
|
290
294
|
});
|
|
291
295
|
}
|
|
296
|
+
/** Run several statements (1 to 100, one statement each) with an explicit
|
|
297
|
+
* transaction (`POST /projects/v1/:project_id/sql/batch`). With
|
|
298
|
+
* `transaction: "all"` (default) the first failure rolls back the batch and
|
|
299
|
+
* throws `SQL_BATCH_STATEMENT_FAILED` naming the statement's index; with
|
|
300
|
+
* `"each"` every statement commits on its own and `results[i].status` says
|
|
301
|
+
* how each went. */
|
|
302
|
+
async sqlBatch(id, statements, opts = {}) {
|
|
303
|
+
const keys = await requireProjectCredentials(this.client, id, "running a SQL batch");
|
|
304
|
+
return this.client.request(`/projects/v1/${id}/sql/batch`, {
|
|
305
|
+
method: "POST",
|
|
306
|
+
headers: { Authorization: `Bearer ${keys.service_key}` },
|
|
307
|
+
body: { statements, transaction: opts.transaction ?? "all" },
|
|
308
|
+
context: "running a SQL batch",
|
|
309
|
+
});
|
|
310
|
+
}
|
|
292
311
|
/** Query or mutate a project table through PostgREST. */
|
|
293
312
|
async rest(id, table, options) {
|
|
294
313
|
return (await this.restResponse(id, table, options)).body;
|
|
@@ -308,10 +327,11 @@ export class Projects {
|
|
|
308
327
|
if (method !== "GET")
|
|
309
328
|
headers.Prefer = "return=representation";
|
|
310
329
|
// The gateway rejects the service_role on the public PostgREST path
|
|
311
|
-
// (/rest/v1/*), so service-key REST is routed through the
|
|
312
|
-
// route (/
|
|
330
|
+
// (/rest/v1/*), so service-key REST is routed through the project's
|
|
331
|
+
// service REST route (/projects/v1/:project_id/rest/*). Anon keys use the
|
|
332
|
+
// public path.
|
|
313
333
|
const path = useService
|
|
314
|
-
? `/
|
|
334
|
+
? `/projects/v1/${id}/rest/${encodeURIComponent(table)}${query}`
|
|
315
335
|
: `/rest/v1/${encodeURIComponent(table)}${query}`;
|
|
316
336
|
try {
|
|
317
337
|
return await this.client.requestWithResponse(path, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -345,6 +345,73 @@ export interface SchemaReport {
|
|
|
345
345
|
schema: string;
|
|
346
346
|
tables: TableSchema[];
|
|
347
347
|
}
|
|
348
|
+
/** A warning on a SQL result. A warning never changes the result. */
|
|
349
|
+
export interface SqlWarning {
|
|
350
|
+
/** `ROUTE_RETIRING` (a retiring route was called), `SCHEMA_CHANGE_OUTSIDE_MIGRATION`
|
|
351
|
+
* (DDL on a project with a live release, which the release no longer
|
|
352
|
+
* describes), or `MULTI_STATEMENT_TEXT_BODY` (several statements in one text
|
|
353
|
+
* body; use {@link Projects.sqlBatch}). Future codes remain valid strings. */
|
|
354
|
+
code: "ROUTE_RETIRING" | "SCHEMA_CHANGE_OUTSIDE_MIGRATION" | "MULTI_STATEMENT_TEXT_BODY" | (string & {});
|
|
355
|
+
severity?: string;
|
|
356
|
+
message: string;
|
|
357
|
+
next_actions: Array<Record<string, unknown>>;
|
|
358
|
+
[key: string]: unknown;
|
|
359
|
+
}
|
|
360
|
+
/** One result column: its name and Postgres type. */
|
|
361
|
+
export interface SqlField {
|
|
362
|
+
name: string;
|
|
363
|
+
type: string;
|
|
364
|
+
}
|
|
365
|
+
/** The result of {@link Projects.sql}, in the wire shape. */
|
|
366
|
+
export interface SqlResult {
|
|
367
|
+
status: string;
|
|
368
|
+
schema: string;
|
|
369
|
+
/** The last statement's rows. */
|
|
370
|
+
rows: Array<Record<string, unknown>>;
|
|
371
|
+
/** The last statement's row count (returned or affected). */
|
|
372
|
+
row_count: number;
|
|
373
|
+
/** The last statement's columns. */
|
|
374
|
+
fields: SqlField[];
|
|
375
|
+
/** One entry per statement, in order; their sum is a batch's total. */
|
|
376
|
+
statements: Array<{
|
|
377
|
+
command: string | null;
|
|
378
|
+
row_count: number;
|
|
379
|
+
}>;
|
|
380
|
+
warnings: SqlWarning[];
|
|
381
|
+
}
|
|
382
|
+
/** One statement in a {@link Projects.sqlBatch} call: exactly one SQL statement. */
|
|
383
|
+
export interface SqlBatchStatement {
|
|
384
|
+
sql: string;
|
|
385
|
+
params?: unknown[];
|
|
386
|
+
}
|
|
387
|
+
export interface SqlBatchOptions {
|
|
388
|
+
/** `all` (default): one transaction; the first failure rolls back every
|
|
389
|
+
* statement and throws `SQL_BATCH_STATEMENT_FAILED` naming its index.
|
|
390
|
+
* `each`: every statement in its own transaction; failures are reported
|
|
391
|
+
* per statement and later statements still run. */
|
|
392
|
+
transaction?: "all" | "each";
|
|
393
|
+
}
|
|
394
|
+
export type SqlBatchStatementResult = {
|
|
395
|
+
index: number;
|
|
396
|
+
status: "ok";
|
|
397
|
+
command: string | null;
|
|
398
|
+
rows: Array<Record<string, unknown>>;
|
|
399
|
+
row_count: number;
|
|
400
|
+
fields: SqlField[];
|
|
401
|
+
} | {
|
|
402
|
+
index: number;
|
|
403
|
+
status: "error";
|
|
404
|
+
message: string;
|
|
405
|
+
};
|
|
406
|
+
/** The result of {@link Projects.sqlBatch}. `status` is `partial` when a
|
|
407
|
+
* statement failed under `transaction: "each"`. */
|
|
408
|
+
export interface SqlBatchResult {
|
|
409
|
+
status: "ok" | "partial";
|
|
410
|
+
schema: string;
|
|
411
|
+
transaction: "all" | "each";
|
|
412
|
+
results: SqlBatchStatementResult[];
|
|
413
|
+
warnings: SqlWarning[];
|
|
414
|
+
}
|
|
348
415
|
export type ProjectRestMethod = "GET" | "POST" | "PATCH" | "DELETE";
|
|
349
416
|
export type ProjectRestKeyType = "anon" | "service";
|
|
350
417
|
export interface ProjectRestOptions {
|