run402 4.72.1 → 4.73.1
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/gitvault-surface.json +1 -1
- package/lib/deploy-v2.mjs +13 -79
- package/lib/gitvault-scaffold.mjs +23 -8
- package/lib/init.mjs +48 -0
- package/lib/org.mjs +21 -5
- package/lib/projects.mjs +3 -15
- package/lib/up.mjs +29 -6
- package/package.json +1 -1
- package/sdk/dist/actions.d.ts +27 -1
- package/sdk/dist/actions.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.js +85 -1
- package/sdk/dist/namespaces/deploy.js.map +1 -1
- package/sdk/dist/namespaces/deploy.types.d.ts +57 -0
- package/sdk/dist/namespaces/deploy.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/gitvault.d.ts +6 -0
- package/sdk/dist/namespaces/gitvault.d.ts.map +1 -1
- package/sdk/dist/namespaces/gitvault.js +38 -43
- package/sdk/dist/namespaces/gitvault.js.map +1 -1
- package/sdk/dist/namespaces/org.d.ts +8 -0
- package/sdk/dist/namespaces/org.d.ts.map +1 -1
- package/sdk/dist/namespaces/org.js +14 -0
- package/sdk/dist/namespaces/org.js.map +1 -1
- package/sdk/dist/node/actions-node.d.ts.map +1 -1
- package/sdk/dist/node/actions-node.js +87 -2
- package/sdk/dist/node/actions-node.js.map +1 -1
- package/sdk/dist/node/client-detect.d.ts +10 -0
- package/sdk/dist/node/client-detect.d.ts.map +1 -0
- package/sdk/dist/node/client-detect.js +10 -0
- package/sdk/dist/node/client-detect.js.map +1 -0
- package/sdk/dist/node/deploy-manifest.js +6 -8
- package/sdk/dist/node/deploy-manifest.js.map +1 -1
package/gitvault-surface.json
CHANGED
package/lib/deploy-v2.mjs
CHANGED
|
@@ -46,8 +46,8 @@ import { sdkStats, printVerboseStats } from "./stats.mjs";
|
|
|
46
46
|
const APPLY_HELP = `run402 deploy apply — Unified deploy primitive (v1.34+)
|
|
47
47
|
|
|
48
48
|
Usage:
|
|
49
|
-
run402 deploy apply --manifest <path> [--project <id>] [--check|--print-spec|--plan|--
|
|
50
|
-
run402 deploy apply --spec '<json>' [--project <id>] [--check|--print-spec|--plan|--
|
|
49
|
+
run402 deploy apply --manifest <path> [--project <id>] [--check|--print-spec|--plan|--require-plan <id>] [--no-rehearse] [--quiet|--final-only] [--json]
|
|
50
|
+
run402 deploy apply --spec '<json>' [--project <id>] [--check|--print-spec|--plan|--require-plan <id>] [--no-rehearse] [--quiet|--final-only] [--json]
|
|
51
51
|
run402 deploy apply --dir <build-output> [--manifest <path>] [--project <id>]
|
|
52
52
|
cat spec.json | run402 deploy apply [--project <id>]
|
|
53
53
|
|
|
@@ -98,9 +98,10 @@ Options:
|
|
|
98
98
|
--check Validate and normalize locally. No gateway calls or uploads.
|
|
99
99
|
--print-spec Print the normalized ReleaseSpec JSON. No gateway calls or uploads.
|
|
100
100
|
--plan Ask the gateway for a reviewed plan. No upload or commit.
|
|
101
|
-
--rehearse
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
--no-rehearse Skip the automatic rehearsal. By default a migration-bearing plan
|
|
102
|
+
against a project with a live release is rehearsed on a contained
|
|
103
|
+
branch and committed only on a passing report (result.rehearsal);
|
|
104
|
+
a first deploy has nothing to protect and commits directly.
|
|
104
105
|
--require-plan <id> Apply only if this reviewed plan still matches.
|
|
105
106
|
--json No-op compatibility flag; success output is always JSON.
|
|
106
107
|
--quiet Suppress per-event JSON-line stderr (final result still on stdout)
|
|
@@ -237,8 +238,9 @@ Options:
|
|
|
237
238
|
failed rehearsals keep it), keep, always. When omitted,
|
|
238
239
|
the gateway default (on_pass) applies.
|
|
239
240
|
|
|
240
|
-
|
|
241
|
-
|
|
241
|
+
Rehearsal is automatic in \`run402 up\` / \`run402 deploy apply\` for a
|
|
242
|
+
migration-bearing plan against a project with a live release; this verb is the
|
|
243
|
+
primitive for rehearsing an already-persisted plan without committing.
|
|
242
244
|
`;
|
|
243
245
|
|
|
244
246
|
const RELEASE_HELP = `run402 deploy release — Inspect deploy release inventory and diffs
|
|
@@ -660,12 +662,11 @@ function parseApplyArgs(args) {
|
|
|
660
662
|
allowWarningCodes: [],
|
|
661
663
|
mode: null,
|
|
662
664
|
planFingerprint: null,
|
|
663
|
-
|
|
664
|
-
commitAfterRehearse: false,
|
|
665
|
+
noRehearse: false,
|
|
665
666
|
allowDirty: false,
|
|
666
667
|
verbose: false,
|
|
667
668
|
};
|
|
668
|
-
const allowedFlags = ["--manifest", "--spec", "--dir", "--project", "--quiet", "--final-only", "--json", "--allow-warning", "--allow-warnings", "--check", "--print-spec", "--plan", "--rehearse", "--
|
|
669
|
+
const allowedFlags = ["--manifest", "--spec", "--dir", "--project", "--quiet", "--final-only", "--json", "--allow-warning", "--allow-warnings", "--check", "--print-spec", "--plan", "--no-rehearse", "--require-plan", "--plan-fingerprint", "--allow-dirty", "-v", "--verbose", "--help", "-h"];
|
|
669
670
|
|
|
670
671
|
for (let i = 0; i < args.length; i++) {
|
|
671
672
|
const arg = args[i];
|
|
@@ -715,15 +716,6 @@ function parseApplyArgs(args) {
|
|
|
715
716
|
opts.allowWarningCodes.push(value);
|
|
716
717
|
} else if (arg === "--require-plan") {
|
|
717
718
|
setApplyMode(opts, { kind: "applyReviewed", planId: value }, "--require-plan");
|
|
718
|
-
} else if (arg === "--teardown") {
|
|
719
|
-
if (!["keep", "on_pass", "always"].includes(value)) {
|
|
720
|
-
fail({
|
|
721
|
-
code: "BAD_USAGE",
|
|
722
|
-
message: "--teardown must be one of: keep, on_pass, always",
|
|
723
|
-
details: { flag: "--teardown", value },
|
|
724
|
-
});
|
|
725
|
-
}
|
|
726
|
-
opts.rehearsalTeardown = value;
|
|
727
719
|
} else {
|
|
728
720
|
opts.planFingerprint = value;
|
|
729
721
|
}
|
|
@@ -738,8 +730,7 @@ function parseApplyArgs(args) {
|
|
|
738
730
|
if (arg === "--check") { setApplyMode(opts, "check", "--check"); continue; }
|
|
739
731
|
if (arg === "--print-spec") { setApplyMode(opts, "printSpec", "--print-spec"); continue; }
|
|
740
732
|
if (arg === "--plan") { setApplyMode(opts, "plan", "--plan"); continue; }
|
|
741
|
-
if (arg === "--rehearse") {
|
|
742
|
-
if (arg === "--commit") { opts.commitAfterRehearse = true; continue; }
|
|
733
|
+
if (arg === "--no-rehearse") { opts.noRehearse = true; continue; }
|
|
743
734
|
if (typeof arg === "string" && arg.startsWith("-")) {
|
|
744
735
|
fail({
|
|
745
736
|
code: "BAD_USAGE",
|
|
@@ -770,14 +761,6 @@ function parseApplyArgs(args) {
|
|
|
770
761
|
});
|
|
771
762
|
}
|
|
772
763
|
}
|
|
773
|
-
if (opts.commitAfterRehearse && opts.mode !== "rehearse") {
|
|
774
|
-
fail({
|
|
775
|
-
code: "BAD_USAGE",
|
|
776
|
-
message: "--commit can only be used with --rehearse.",
|
|
777
|
-
details: { flag: "--commit" },
|
|
778
|
-
});
|
|
779
|
-
}
|
|
780
|
-
|
|
781
764
|
return opts;
|
|
782
765
|
}
|
|
783
766
|
|
|
@@ -1201,56 +1184,6 @@ async function applyCmd(args) {
|
|
|
1201
1184
|
console.log(JSON.stringify(result.plan, null, 2));
|
|
1202
1185
|
return;
|
|
1203
1186
|
}
|
|
1204
|
-
if (opts.mode === "rehearse") {
|
|
1205
|
-
const sdk = getSdk(sdkOpts);
|
|
1206
|
-
const planned = await sdk._applyEngine.plan(releaseSpec, { idempotencyKey });
|
|
1207
|
-
const planId = planned.plan.plan_id;
|
|
1208
|
-
if (!planId) {
|
|
1209
|
-
fail({
|
|
1210
|
-
code: "DRY_RUN_PLAN_NOT_COMMITTABLE",
|
|
1211
|
-
message: "Rehearsal requires a persisted plan_id, but the plan response did not include one.",
|
|
1212
|
-
details: { project_id: releaseSpec.project },
|
|
1213
|
-
});
|
|
1214
|
-
}
|
|
1215
|
-
await sdk._applyEngine.upload(planned.plan, {
|
|
1216
|
-
project: releaseSpec.project,
|
|
1217
|
-
byteReaders: planned.byteReaders,
|
|
1218
|
-
onEvent: makeStderrEventWriter(opts.quiet),
|
|
1219
|
-
});
|
|
1220
|
-
const rehearsal = await withAutoApprove(() =>
|
|
1221
|
-
sdk._applyEngine.rehearse(planId, {
|
|
1222
|
-
project: releaseSpec.project,
|
|
1223
|
-
teardown: opts.rehearsalTeardown,
|
|
1224
|
-
}),
|
|
1225
|
-
);
|
|
1226
|
-
if (rehearsal.report.status !== "passed") {
|
|
1227
|
-
console.log(JSON.stringify({
|
|
1228
|
-
ok: false,
|
|
1229
|
-
project_id: releaseSpec.project,
|
|
1230
|
-
plan_id: planId,
|
|
1231
|
-
rehearsal,
|
|
1232
|
-
commit_command: `run402 deploy apply --require-plan ${planId}${planned.plan.plan_fingerprint ? ` --plan-fingerprint ${planned.plan.plan_fingerprint}` : ""}`,
|
|
1233
|
-
}, null, 2));
|
|
1234
|
-
process.exit(1);
|
|
1235
|
-
}
|
|
1236
|
-
if (opts.commitAfterRehearse) {
|
|
1237
|
-
const committed = await sdk._applyEngine.commit(planId, {
|
|
1238
|
-
project: releaseSpec.project,
|
|
1239
|
-
onEvent: makeStderrEventWriter(opts.quiet),
|
|
1240
|
-
idempotencyKey,
|
|
1241
|
-
});
|
|
1242
|
-
console.log(JSON.stringify({ ok: true, project_id: releaseSpec.project, plan: planned.plan, rehearsal, commit: committed }, null, 2));
|
|
1243
|
-
return;
|
|
1244
|
-
}
|
|
1245
|
-
console.log(JSON.stringify({
|
|
1246
|
-
ok: true,
|
|
1247
|
-
project_id: releaseSpec.project,
|
|
1248
|
-
plan: planned.plan,
|
|
1249
|
-
rehearsal,
|
|
1250
|
-
commit_command: `run402 deploy apply --require-plan ${planId}${planned.plan.plan_fingerprint ? ` --plan-fingerprint ${planned.plan.plan_fingerprint}` : ""}`,
|
|
1251
|
-
}, null, 2));
|
|
1252
|
-
return;
|
|
1253
|
-
}
|
|
1254
1187
|
const requiredPlan = opts.mode && opts.mode.kind === "applyReviewed"
|
|
1255
1188
|
? { planId: opts.mode.planId, ...(opts.mode.planFingerprint ? { planFingerprint: opts.mode.planFingerprint } : {}) }
|
|
1256
1189
|
: undefined;
|
|
@@ -1269,6 +1202,7 @@ async function applyCmd(args) {
|
|
|
1269
1202
|
idempotencyKey,
|
|
1270
1203
|
allowWarnings: opts.allowWarnings,
|
|
1271
1204
|
allowWarningCodes: opts.allowWarningCodes,
|
|
1205
|
+
...(opts.noRehearse ? { noRehearse: true } : {}),
|
|
1272
1206
|
...(requiredPlan ? { requiredPlan } : {}),
|
|
1273
1207
|
},
|
|
1274
1208
|
target: isCoreApiTarget() ? "core" : "cloud",
|
|
@@ -3,16 +3,19 @@
|
|
|
3
3
|
*
|
|
4
4
|
* `run402 init`'s 5b block pioneered this pattern; this module is the same
|
|
5
5
|
* additive-only, non-fatal-in-every-branch scaffold factored out so
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* apart. `
|
|
6
|
+
* `run402 up` and `run402 repos create` report through the IDENTICAL
|
|
7
|
+
* `gitvault` / `gitvault_skipped` / `gitvault_error` summary keys `init`
|
|
8
|
+
* already uses (plus `status` / `reason` / `toplevel`), instead of
|
|
9
|
+
* near-copies drifting apart. `projects provision` never scaffolds: it is
|
|
10
|
+
* the provisioning primitive and has no local side effects. `init.mjs` itself is left untouched — its own scaffold block is
|
|
10
11
|
* shipped and tested; this module exists for the NEW callers task 2.4 adds.
|
|
11
12
|
*
|
|
12
13
|
* Never creates a repository on its own unless `createRepoIfMissing` is
|
|
13
14
|
* explicit (mirrors `init`'s `--git-remote` opt-in): a directory the caller
|
|
14
|
-
* did not ask to turn into a repository is left alone.
|
|
15
|
-
* touched or
|
|
15
|
+
* did not ask to turn into a repository is left alone. The remote is always
|
|
16
|
+
* `run402` and `origin` is never touched or claimed; a directory that lies
|
|
17
|
+
* inside ANOTHER repository is reported `skipped` with the enclosing
|
|
18
|
+
* toplevel named — that repository is never touched (first-deploy-agent-dx). Every
|
|
16
19
|
* branch is non-fatal — a missing git, an unresolvable org, or an
|
|
17
20
|
* unreachable gateway all report and return, never throw.
|
|
18
21
|
*/
|
|
@@ -25,10 +28,10 @@ import { resolveOwningOrgId } from "./org-context.mjs";
|
|
|
25
28
|
* @param {string} options.projectId The project the remote should point at.
|
|
26
29
|
* @param {string} [options.orgId] Explicit owning org. Resolved via `resolveOwningOrgId` when omitted.
|
|
27
30
|
* @param {boolean} [options.createRepoIfMissing] Opt into `git init`-ing `repoDir` when it is not a repository yet.
|
|
28
|
-
* @returns {Promise<{gitvault: object|null, gitvault_skipped?: string, gitvault_error?: {code: string, message: string}}>}
|
|
31
|
+
* @returns {Promise<{status: "scaffolded"|"skipped"|"error", reason?: string, toplevel?: string|null, gitvault: object|null, gitvault_skipped?: string, gitvault_error?: {code: string, message: string}}>}
|
|
29
32
|
*/
|
|
30
33
|
export async function scaffoldGitvaultRemote({ repoDir = process.cwd(), projectId, orgId, createRepoIfMissing = false } = {}) {
|
|
31
|
-
const out = { gitvault: null };
|
|
34
|
+
const out = { gitvault: null, status: "skipped" };
|
|
32
35
|
try {
|
|
33
36
|
const { hardenedGit } = await import("#sdk/node");
|
|
34
37
|
let insideRepo = true;
|
|
@@ -38,21 +41,33 @@ export async function scaffoldGitvaultRemote({ repoDir = process.cwd(), projectI
|
|
|
38
41
|
insideRepo = false;
|
|
39
42
|
}
|
|
40
43
|
if (!insideRepo && !createRepoIfMissing) {
|
|
44
|
+
out.reason = "not_a_repository";
|
|
41
45
|
out.gitvault_skipped = "not a git repository — re-run with --git-remote to create one and add the remote";
|
|
42
46
|
return out;
|
|
43
47
|
}
|
|
44
48
|
const resolvedOrgId = orgId ?? (await resolveOwningOrgId(projectId));
|
|
45
49
|
if (!resolvedOrgId) {
|
|
50
|
+
out.reason = "org_unresolved";
|
|
46
51
|
out.gitvault_skipped = `could not resolve the owning org for ${projectId} — the run402 remote was not added`;
|
|
47
52
|
return out;
|
|
48
53
|
}
|
|
49
54
|
const remote = await getSdk().gitvault.scaffoldRemote({ repo_dir: repoDir, org_id: resolvedOrgId, project_id: projectId });
|
|
55
|
+
if (remote.status === "skipped") {
|
|
56
|
+
// The app root lies INSIDE some other repository (first-deploy-agent-dx
|
|
57
|
+
// D3): that repository is never touched. Say which one, and why.
|
|
58
|
+
out.reason = "inside_other_repository";
|
|
59
|
+
out.toplevel = remote.toplevel ?? null;
|
|
60
|
+
out.gitvault_skipped = remote.reason;
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
50
63
|
// `allocated: false` is stated, not left to be inferred: this is local
|
|
51
64
|
// git only — no vault exists for the project yet (allocation happens
|
|
52
65
|
// lazily on first push, or explicitly via `run402 repos create --project <id>`).
|
|
66
|
+
out.status = "scaffolded";
|
|
53
67
|
out.gitvault = { ...remote, allocated: false };
|
|
54
68
|
} catch (err) {
|
|
55
69
|
out.gitvault = null;
|
|
70
|
+
out.status = "error";
|
|
56
71
|
out.gitvault_error = { code: err?.body?.code ?? err?.code ?? "GITVAULT_SCAFFOLD_FAILED", message: err?.message ?? String(err) };
|
|
57
72
|
}
|
|
58
73
|
return out;
|
package/lib/init.mjs
CHANGED
|
@@ -38,6 +38,11 @@ Options:
|
|
|
38
38
|
--switch-rail Confirm switching the persisted payment rail. Re-running
|
|
39
39
|
init with the SAME rail as the existing allowance is always
|
|
40
40
|
idempotent and does not need this flag.
|
|
41
|
+
--name <name> Set this principal's display name (1-64 chars) — what promotion
|
|
42
|
+
credit, \`run402 up\`'s room presence, and audit surfaces show
|
|
43
|
+
for you. \`run402 up\` sets a detected default (claude-code,
|
|
44
|
+
codex, cursor, or agent) when it is empty; change it any time
|
|
45
|
+
with \`run402 org whoami --set-name <name>\`.
|
|
41
46
|
--git-remote Also 'git init' the current directory when it is not a
|
|
42
47
|
repository yet, so the gitvault remote can be added there.
|
|
43
48
|
Opt-in on purpose: init is often run outside a project
|
|
@@ -144,6 +149,26 @@ function parseVoucherFlag(args) {
|
|
|
144
149
|
* runs, so `run402 init --git-remote mpp` still selects the mpp rail (the same
|
|
145
150
|
* reason `--voucher` is stripped first).
|
|
146
151
|
*/
|
|
152
|
+
/** Pull `--flag <value>` (or `--flag=<value>`) out of argv; returns { args, value }. */
|
|
153
|
+
function parseValueFlag(args, flag) {
|
|
154
|
+
const out = [];
|
|
155
|
+
let value;
|
|
156
|
+
for (let i = 0; i < args.length; i++) {
|
|
157
|
+
const arg = args[i];
|
|
158
|
+
if (arg === flag) {
|
|
159
|
+
value = args[i + 1] ?? "";
|
|
160
|
+
i += 1;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (typeof arg === "string" && arg.startsWith(`${flag}=`)) {
|
|
164
|
+
value = arg.slice(flag.length + 1);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
out.push(arg);
|
|
168
|
+
}
|
|
169
|
+
return { args: out, value };
|
|
170
|
+
}
|
|
171
|
+
|
|
147
172
|
function parseGitRemoteFlag(args) {
|
|
148
173
|
const idx = args.indexOf("--git-remote");
|
|
149
174
|
if (idx === -1) return { value: false, args };
|
|
@@ -233,6 +258,16 @@ export async function run(args = []) {
|
|
|
233
258
|
args = parsedGitRemote.args;
|
|
234
259
|
const scaffoldGitRemote = parsedGitRemote.value;
|
|
235
260
|
|
|
261
|
+
// principal-display-name (first-deploy-agent-dx): `--name <name>` sets this
|
|
262
|
+
// principal's display name once (PATCH /agent/v1/me). Stripped here so the
|
|
263
|
+
// rail/positional logic never sees it.
|
|
264
|
+
const parsedName = parseValueFlag(args, "--name");
|
|
265
|
+
args = parsedName.args;
|
|
266
|
+
const displayName = parsedName.value;
|
|
267
|
+
if (displayName !== undefined && displayName.trim() === "") {
|
|
268
|
+
fail({ code: "BAD_USAGE", message: "--name requires a non-empty value.", details: { flag: "--name" } });
|
|
269
|
+
}
|
|
270
|
+
|
|
236
271
|
const parsedApiBase = parseApiBaseFlag(args);
|
|
237
272
|
if (parsedApiBase.value) {
|
|
238
273
|
if (parsedApiBase.args.some((arg) => typeof arg === "string" && !arg.startsWith("--"))) {
|
|
@@ -668,5 +703,18 @@ export async function run(args = []) {
|
|
|
668
703
|
}
|
|
669
704
|
write("");
|
|
670
705
|
|
|
706
|
+
// 5c. Display name (principal-display-name). Best-effort: a hiccup never
|
|
707
|
+
// fails init — the summary says what happened.
|
|
708
|
+
if (displayName !== undefined) {
|
|
709
|
+
try {
|
|
710
|
+
const me = await getSdk().orgs.setDisplayName(displayName.trim());
|
|
711
|
+
summary.display_name = me?.principal?.display_name ?? displayName.trim();
|
|
712
|
+
line("Name", summary.display_name);
|
|
713
|
+
} catch (err) {
|
|
714
|
+
summary.display_name = null;
|
|
715
|
+
summary.display_name_error = { code: err?.body?.code ?? err?.code ?? "DISPLAY_NAME_FAILED", message: err?.message ?? String(err) };
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
|
|
671
719
|
console.log(JSON.stringify(summary, null, 2));
|
|
672
720
|
}
|
package/lib/org.mjs
CHANGED
|
@@ -34,6 +34,7 @@ Usage:
|
|
|
34
34
|
run402 org payout-wallet [<org_id>] <wallet_address> (or: --clear to remove the explicit default)
|
|
35
35
|
run402 org slug <slug> [--org <org_id>]
|
|
36
36
|
run402 org whoami
|
|
37
|
+
run402 org whoami --set-name <name>
|
|
37
38
|
run402 org use <org_id>
|
|
38
39
|
run402 org current
|
|
39
40
|
run402 org clear
|
|
@@ -171,12 +172,14 @@ explicit default; a single active org wallet may still resolve automatically.
|
|
|
171
172
|
The JSON response includes recovery.status, active_wallet_count, and
|
|
172
173
|
next_actions for PAYOUT_WALLET_REQUIRED / PAYOUT_WALLET_AMBIGUOUS setup.
|
|
173
174
|
`,
|
|
174
|
-
whoami: `run402 org whoami — resolved principal + org memberships
|
|
175
|
+
whoami: `run402 org whoami — resolved principal + org memberships (and set your display name)
|
|
175
176
|
|
|
176
177
|
Usage:
|
|
177
178
|
run402 org whoami
|
|
178
179
|
|
|
179
|
-
Calls GET /agent/v1/whoami
|
|
180
|
+
Calls GET /agent/v1/whoami (or PATCH /agent/v1/me with --set-name, 1-64 chars: the name promotion
|
|
181
|
+
credit, \`run402 up\`'s room presence, and audit surfaces show for this principal — \`up\` sets a
|
|
182
|
+
detected default when it is empty). Returns the control-plane principal (id/type/display_name/created_at),
|
|
180
183
|
authenticator_id, and every org membership (org_id, display_name, role, status). REMOTE identity;
|
|
181
184
|
for local wallet/profile state use 'run402 status'.
|
|
182
185
|
`,
|
|
@@ -336,10 +339,23 @@ async function list(args) {
|
|
|
336
339
|
|
|
337
340
|
async function whoami(args) {
|
|
338
341
|
const a = normalizeArgv(args);
|
|
339
|
-
assertKnownFlags(a, ["--help", "-h"]);
|
|
340
|
-
requirePositionalCount(a, [], { min: 0, max: 0, command: "run402 org whoami" });
|
|
342
|
+
assertKnownFlags(a, ["--help", "-h", "--set-name"], ["--set-name"]);
|
|
343
|
+
requirePositionalCount(positionalArgs(a, ["--set-name"]), ["--set-name"], { min: 0, max: 0, command: "run402 org whoami" });
|
|
344
|
+
const setName = flagValue(a, "--set-name");
|
|
345
|
+
if (setName !== null && setName.trim() === "") {
|
|
346
|
+
fail({
|
|
347
|
+
code: "BAD_USAGE",
|
|
348
|
+
message: "--set-name must not be empty.",
|
|
349
|
+
details: { field: "--set-name" },
|
|
350
|
+
hint: "Pass a 1-64 character display name.",
|
|
351
|
+
});
|
|
352
|
+
}
|
|
341
353
|
try {
|
|
342
|
-
|
|
354
|
+
// principal-display-name (first-deploy-agent-dx): `--set-name` is the
|
|
355
|
+
// explicit setter (PATCH /agent/v1/me); the name is what promotion credit,
|
|
356
|
+
// `up`'s room presence, and audit surfaces show for this principal.
|
|
357
|
+
const me = setName !== null ? await getSdk().orgs.setDisplayName(setName.trim()) : await getSdk().orgs.whoami();
|
|
358
|
+
console.log(JSON.stringify(me, null, 2));
|
|
343
359
|
} catch (err) {
|
|
344
360
|
reportSdkError(err);
|
|
345
361
|
}
|
package/lib/projects.mjs
CHANGED
|
@@ -6,7 +6,6 @@ import { withAutoApprove } from "./operator.mjs";
|
|
|
6
6
|
import { getSdk } from "./sdk.mjs";
|
|
7
7
|
import { reportSdkError, fail, parseFlagJson } from "./sdk-errors.mjs";
|
|
8
8
|
import { stampOrgFromProject } from "./org-context.mjs";
|
|
9
|
-
import { scaffoldGitvaultRemote } from "./gitvault-scaffold.mjs";
|
|
10
9
|
import { assertKnownFlags, failBadProjectId, flagValue, hasHelp, normalizeArgv, positionalArgs, resolveProjectSelector, validateRegularFile, failUnknownSubcommand } from "./argparse.mjs";
|
|
11
10
|
|
|
12
11
|
const HELP = `run402 projects — Manage your deployed Run402 projects
|
|
@@ -300,19 +299,9 @@ async function quote() {
|
|
|
300
299
|
}
|
|
301
300
|
}
|
|
302
301
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
* scaffolding the git remote here is a pure Anticipatory fold, zero extra
|
|
307
|
-
* round-trips beyond the one org lookup provision needed anyway when `--org`
|
|
308
|
-
* was not given explicitly. `provision` has no `--git-remote` opt-in, so a
|
|
309
|
-
* directory that is not already a repository is left untouched, exactly like
|
|
310
|
-
* `run402 init`'s own scaffold (shared via `gitvault-scaffold.mjs`, which
|
|
311
|
-
* emits the SAME `gitvault` / `gitvault_skipped` / `gitvault_error` keys).
|
|
312
|
-
*/
|
|
313
|
-
async function foldGitvaultScaffold(out, projectId, explicitOrgId) {
|
|
314
|
-
Object.assign(out, await scaffoldGitvaultRemote({ repoDir: process.cwd(), projectId, orgId: explicitOrgId }));
|
|
315
|
-
}
|
|
302
|
+
// `projects provision` is the provisioning PRIMITIVE and has no local side
|
|
303
|
+
// effects: it never inspects or mutates git (first-deploy-agent-dx). Git
|
|
304
|
+
// scaffolding lives in `run402 up` and `run402 init`, on the app root only.
|
|
316
305
|
|
|
317
306
|
async function provision(args) {
|
|
318
307
|
const opts = { tier: "prototype", name: undefined, orgId: undefined, idempotencyKey: undefined };
|
|
@@ -388,7 +377,6 @@ async function provision(args) {
|
|
|
388
377
|
out.note = `active project changed: ${activeBefore} -> ${activeAfter}`;
|
|
389
378
|
out.previous_active_project_id = activeBefore;
|
|
390
379
|
}
|
|
391
|
-
await foldGitvaultScaffold(out, data.project_id, opts.orgId);
|
|
392
380
|
console.log(JSON.stringify(out, null, 2));
|
|
393
381
|
} catch (err) {
|
|
394
382
|
reportSdkError(err);
|
package/lib/up.mjs
CHANGED
|
@@ -51,6 +51,11 @@ Options:
|
|
|
51
51
|
--no-propagation-wait
|
|
52
52
|
Return propagation_pending immediately when the edge is
|
|
53
53
|
still settling.
|
|
54
|
+
--no-rehearse Skip the automatic rehearsal. By default a migration-
|
|
55
|
+
bearing deploy against a project with a live release is
|
|
56
|
+
rehearsed on a contained branch and committed only on a
|
|
57
|
+
passing report; a first deploy has nothing to protect and
|
|
58
|
+
commits directly (result.deploy.rehearsal says which).
|
|
54
59
|
--repo-only Provision + scaffold the run402 remote + first push,
|
|
55
60
|
and stop there — no deploy. The vault-only track
|
|
56
61
|
(D8), composed through up instead of run402 repos
|
|
@@ -58,12 +63,22 @@ Options:
|
|
|
58
63
|
--require-plan/--verify.
|
|
59
64
|
|
|
60
65
|
Repo composition (D4): against a local directory (not a git URL source), up
|
|
61
|
-
composes git init (only when not already a repository) +
|
|
62
|
-
run402 remote scaffold (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
composes git init (only when the app root is not already a repository) +
|
|
67
|
+
provision + a run402 remote scaffold (origin is never claimed) + a first
|
|
68
|
+
gitvault push — one command, the fly-launch shape. The app root is the
|
|
69
|
+
manifest's directory; an app root that lies INSIDE another repository is
|
|
70
|
+
left untouched (result.repo.status "skipped", reason
|
|
71
|
+
"inside_other_repository", toplevel named). The scaffold and first push are
|
|
72
|
+
best-effort: a git or vault hiccup never turns an otherwise-successful deploy
|
|
73
|
+
into a failure, and is reported under result.repo (default apply) or result
|
|
74
|
+
(--repo-only) instead.
|
|
75
|
+
|
|
76
|
+
Identity: up makes sure this principal has a display name before the deploy
|
|
77
|
+
that will be credited to it — an existing name is kept, otherwise the
|
|
78
|
+
detected client name (claude-code, codex, cursor, or agent) is set (approved
|
|
79
|
+
by -y, or asked once) — and joins the project room under it. Change it any
|
|
80
|
+
time with 'run402 org whoami --set-name <name>'. Reported under
|
|
81
|
+
result.identity.
|
|
67
82
|
--json Emit one final JSON object on stdout (default; compatibility no-op).
|
|
68
83
|
--human Emit the legacy human success/blocking summary on stdout.
|
|
69
84
|
--json-stream Emit NDJSON progress events on stdout and a final result event.
|
|
@@ -149,6 +164,7 @@ export async function run(args = []) {
|
|
|
149
164
|
"--human",
|
|
150
165
|
"--json-stream",
|
|
151
166
|
"--repo-only",
|
|
167
|
+
"--no-rehearse",
|
|
152
168
|
],
|
|
153
169
|
[
|
|
154
170
|
"--name",
|
|
@@ -309,6 +325,7 @@ export async function run(args = []) {
|
|
|
309
325
|
allowWarningCodes,
|
|
310
326
|
propagationBudgetSeconds,
|
|
311
327
|
propagationWait: parsed.includes("--no-propagation-wait") ? false : undefined,
|
|
328
|
+
noRehearse: parsed.includes("--no-rehearse") ? true : undefined,
|
|
312
329
|
}, {
|
|
313
330
|
...(mode !== undefined ? { mode } : {}),
|
|
314
331
|
dryRun,
|
|
@@ -627,6 +644,12 @@ async function composeRepoPushStep({ sdk, workDir, projectId, createdRepository
|
|
|
627
644
|
const scaffold = await scaffoldGitvaultRemote({ repoDir: workDir, projectId, orgId: orgId ?? undefined, createRepoIfMissing: false });
|
|
628
645
|
if (createdRepository && scaffold.gitvault) scaffold.gitvault.created_repository = true;
|
|
629
646
|
const out = { ...scaffold, first_push: null, first_push_error: null };
|
|
647
|
+
if (scaffold.status !== "scaffolded") {
|
|
648
|
+
// Nothing was scaffolded (the app root is inside another repository, or
|
|
649
|
+
// the org could not be resolved): never push from a repository we did
|
|
650
|
+
// not set up. `status`/`reason` already say why.
|
|
651
|
+
return out;
|
|
652
|
+
}
|
|
630
653
|
if (!orgId) {
|
|
631
654
|
out.first_push_error = { code: "GITVAULT_ORG_UNRESOLVED", message: `could not resolve the owning org for ${projectId} — the first push was skipped` };
|
|
632
655
|
return out;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "run402",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.73.1",
|
|
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": {
|
package/sdk/dist/actions.d.ts
CHANGED
|
@@ -66,6 +66,26 @@ export interface Run402UpActionInput {
|
|
|
66
66
|
propagationBudgetSeconds?: number;
|
|
67
67
|
/** Disable waiting for fresh edge propagation. Verify returns propagation_pending immediately. */
|
|
68
68
|
propagationWait?: boolean;
|
|
69
|
+
/** Skip the automatic rehearsal a migration-bearing deploy against a
|
|
70
|
+
* project with a live release gets. Default false. */
|
|
71
|
+
noRehearse?: boolean;
|
|
72
|
+
/** Explicit display name to set on the principal when it has none yet.
|
|
73
|
+
* Omitted: the detected client name (`claude-code`, `codex`, `cursor`,
|
|
74
|
+
* or `agent`) is used and reported as `identity.source: "detected"`. */
|
|
75
|
+
identityName?: string;
|
|
76
|
+
}
|
|
77
|
+
/** How `up` resolved the principal's display name (first-deploy-agent-dx). */
|
|
78
|
+
export interface Run402UpIdentity {
|
|
79
|
+
display_name: string | null;
|
|
80
|
+
/** `existing`: already set; `explicit`: set now from `identityName`;
|
|
81
|
+
* `detected`: set now from the detected client; `unavailable`: could not
|
|
82
|
+
* be read or set (never fails the deploy). */
|
|
83
|
+
source: "existing" | "explicit" | "detected" | "unavailable";
|
|
84
|
+
/** The project room presence `up` registered under that name, when it could. */
|
|
85
|
+
presence?: {
|
|
86
|
+
presence_id: string;
|
|
87
|
+
name: string;
|
|
88
|
+
} | null;
|
|
69
89
|
}
|
|
70
90
|
export type Run402ActionApproval = "never" | "yes" | Run402InteractiveActionApproval;
|
|
71
91
|
export interface Run402InteractiveActionApproval {
|
|
@@ -78,7 +98,7 @@ export interface Run402ActionApprovalRequest {
|
|
|
78
98
|
message: string;
|
|
79
99
|
mutations: Run402ActionMutation[];
|
|
80
100
|
}
|
|
81
|
-
export type Run402ActionMutation = "allowance.create" | "allowance.faucet" | "tier.set" | "projects.provision" | "workspace.link.write" | "app.source.resolve" | "app.install" | "app.mailbox.ensure" | "app.secret.ensure" | "app.build" | "app.webhook.ensure" | "app.verify" | "deploy.apply";
|
|
101
|
+
export type Run402ActionMutation = "allowance.create" | "allowance.faucet" | "tier.set" | "projects.provision" | "workspace.link.write" | "app.source.resolve" | "app.install" | "app.mailbox.ensure" | "app.secret.ensure" | "app.build" | "app.webhook.ensure" | "app.verify" | "identity.name.set" | "deploy.apply";
|
|
82
102
|
export interface Run402ActionRunOptions {
|
|
83
103
|
/**
|
|
84
104
|
* Canonical execution mode for typed-config workflows.
|
|
@@ -161,6 +181,12 @@ export interface Run402UpResult {
|
|
|
161
181
|
};
|
|
162
182
|
/** Deploy-manifest verify rollup (app manifests: `app_result.verify`). */
|
|
163
183
|
verify?: Run402AppUpVerifyResult;
|
|
184
|
+
/** The principal's display name as resolved before the deploy. */
|
|
185
|
+
identity?: Run402UpIdentity;
|
|
186
|
+
/** Git scaffold + first vault push outcome, attached by the CLI's `up`
|
|
187
|
+
* composition (never by the SDK action): `status: "scaffolded" | "skipped"`
|
|
188
|
+
* with `reason: "inside_other_repository" | "not_a_repository" | …`. */
|
|
189
|
+
repo?: Record<string, unknown>;
|
|
164
190
|
}
|
|
165
191
|
export type Run402ProjectsProvisionActionResult = Run402ActionResult<ProvisionResult>;
|
|
166
192
|
export type Run402TierSetActionResult = Run402ActionResult<TierSetResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAC1B,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAEjD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GACzB,kCAAkC,GAClC,wBAAwB,GACxB,mBAAmB,CAAC;AAExB,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,OAAO,YAAY,CAAC,iBAAiB,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IAClC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,YAAY,CAAC,EAAE,CAAC;IAC7B,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,8FAA8F;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8FAA8F;IAC9F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kGAAkG;IAClG,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/namespaces/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAqB3C,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EAQtB,WAAW,EACX,oBAAoB,EAEpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EAIvB,yBAAyB,EACzB,uBAAuB,EAUvB,iBAAiB,EAGjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/namespaces/deploy.ts"],"names":[],"mappings":"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"}
|