swallowkit 2.0.0-alpha.6 → 2.0.0-alpha.7

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.
@@ -1,6 +1,8 @@
1
1
  import { Command } from "commander";
2
2
  import { ApplyProvisionResult, ProvisionPlanData } from "../../core/operations/provision-operations";
3
+ export declare function formatProvisionError(error: unknown): string;
3
4
  export declare function describeProvisionAction(plan: Pick<ProvisionPlanData, "mode" | "resourceGroup" | "location" | "pendingMigrations">): string;
4
5
  export declare function formatProvisionResult(result: ApplyProvisionResult): string;
6
+ export declare function createProvisionCommand(): Command;
5
7
  export declare const provisionCommand: Command;
6
8
  //# sourceMappingURL=provision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,EAKlB,MAAM,4CAA4C,CAAC;AAIpD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,mBAAmB,CAAC,GAAG,MAAM,CAe1I;AAsCD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAsB1E;AA+BD,eAAO,MAAM,gBAAgB,SAsGzB,CAAC"}
1
+ {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAG5C,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,EAKlB,MAAM,4CAA4C,CAAC;AAiBpD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAuB3D;AA8CD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,mBAAmB,CAAC,GAAG,MAAM,CAe1I;AAsCD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CA4B1E;AA+BD,wBAAgB,sBAAsB,IAAI,OAAO,CAyHhD;AAED,eAAO,MAAM,gBAAgB,SAA2B,CAAC"}
@@ -4,14 +4,101 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.provisionCommand = void 0;
7
+ exports.formatProvisionError = formatProvisionError;
7
8
  exports.describeProvisionAction = describeProvisionAction;
8
9
  exports.formatProvisionResult = formatProvisionResult;
10
+ exports.createProvisionCommand = createProvisionCommand;
9
11
  const commander_1 = require("commander");
10
12
  const prompts_1 = __importDefault(require("prompts"));
11
13
  const config_1 = require("../../core/config");
12
14
  const provision_operations_1 = require("../../core/operations/provision-operations");
13
15
  const errors_1 = require("../../machine/errors");
14
16
  const azure_diagnostics_1 = require("../../utils/azure-diagnostics");
17
+ const azure_cli_1 = require("../../utils/azure-cli");
18
+ function humanProvisionMessage(message) {
19
+ return message
20
+ .replace(/swallowkit machine inspect provision --plan/g, "swallowkit provision --status")
21
+ .replace(/swallowkit machine apply provision --plan/g, "swallowkit provision --resume")
22
+ .replace(/plan provision/g, "swallowkit provision")
23
+ .replace(/\b[Pp]lan\b/g, "Execution")
24
+ .replace(/preview/g, "deployment preparation")
25
+ .replace(/after approval/g, "")
26
+ .replace(/--approve/g, "")
27
+ .replace(/ {2,}/g, " ");
28
+ }
29
+ function formatProvisionError(error) {
30
+ if (!(error instanceof errors_1.MachineCommandError))
31
+ return error instanceof Error ? error.message : String(error);
32
+ const message = error.code === "azure-deployment-failed" ? error.message : humanProvisionMessage(error.message);
33
+ const lines = [...new Set(message.split("\n"))];
34
+ const details = error.details;
35
+ if (details?.deployment) {
36
+ lines.push(`Deployment: ${details.deployment.reference.name}; state: ${details.deployment.state}`);
37
+ }
38
+ for (const diagnostic of details?.diagnostics ?? []) {
39
+ if (diagnostic.failureKind || diagnostic.outputTruncated)
40
+ lines.push((0, azure_diagnostics_1.formatAzureDiagnostic)(diagnostic));
41
+ }
42
+ const runId = details?.runId;
43
+ if (runId) {
44
+ lines.push(`Check: swallowkit provision --status ${runId}`);
45
+ if (error.code !== "azure-deployment-failed")
46
+ lines.push(`Resume: swallowkit provision --resume ${runId}`);
47
+ else
48
+ lines.push("Azure reported a terminal failure. Resuming only observes that failed deployment; correct its cause before explicitly deploying again.");
49
+ }
50
+ else {
51
+ for (const action of error.nextActions ?? []) {
52
+ const command = humanProvisionMessage(action.command);
53
+ if (!command.includes("machine "))
54
+ lines.push(command);
55
+ }
56
+ }
57
+ return lines.join("\n");
58
+ }
59
+ async function printProvisionSetup(result) {
60
+ if (!result.deployment || result.status !== "complete")
61
+ return;
62
+ const reference = result.deployment.reference;
63
+ const fields = ["staticWebAppName", "staticWebAppUrl", "functionsAppName", "functionsAppUrl", "cosmosDbAccountName", "cosmosDatabaseName"];
64
+ let outputs;
65
+ try {
66
+ const response = await (0, azure_cli_1.runAzCliAsync)([
67
+ "deployment",
68
+ "group",
69
+ "show",
70
+ "--name",
71
+ reference.name.startsWith("swallowkit-migration-") ? "swallowkit-baseline" : reference.name,
72
+ "--resource-group",
73
+ reference.resourceGroup,
74
+ "--subscription",
75
+ reference.subscription,
76
+ "--query",
77
+ `{${fields.map((field) => `${field}:properties.outputs.${field}.value`).join(",")}}`,
78
+ "-o",
79
+ "json",
80
+ ], { timeout: 30000 });
81
+ if (response.status !== 0 || response.failureKind || response.stdoutTruncated)
82
+ throw new Error("Output query did not complete.");
83
+ const parsed = JSON.parse(response.stdout);
84
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
85
+ throw new Error("Invalid resource output.");
86
+ outputs = parsed;
87
+ }
88
+ catch {
89
+ console.warn("Deployment succeeded, but resource information could not be read. Inspect the deployment's named outputs in Azure Portal; do not redeploy just to retrieve them.");
90
+ return;
91
+ }
92
+ console.log("\nResource information:");
93
+ for (const field of fields) {
94
+ if (typeof outputs[field] === "string")
95
+ console.log(` ${field}: ${outputs[field]}`);
96
+ }
97
+ console.log("\nCI/CD settings:");
98
+ console.log(` AZURE_FUNCTIONAPP_NAME: ${typeof outputs.functionsAppName === "string" ? outputs.functionsAppName : "<functions-app-name>"}`);
99
+ console.log(" Retrieve AZURE_STATIC_WEB_APPS_API_TOKEN and AZURE_FUNCTIONAPP_PUBLISH_PROFILE privately from Azure Portal and save them in your CI/CD secrets.");
100
+ console.log(" Secret values are not printed or stored by SwallowKit. Trigger the first application deployment after configuring CI/CD.");
101
+ }
15
102
  function describeProvisionAction(plan) {
16
103
  switch (plan.mode) {
17
104
  case "bootstrap":
@@ -47,12 +134,16 @@ const SWA_REGIONS = [
47
134
  { title: "West Europe (westeurope)", value: "westeurope" },
48
135
  ];
49
136
  function formatProvisionResult(result) {
50
- const outcome = result.outcome === "succeeded" ? "✅ Provisioning completed, including migration tags and the local ledger."
51
- : result.outcome === "in-progress" ? "⏳ Azure deployment is still in progress. The local wait ended; this is not an Azure failure."
52
- : result.outcome === "partial" ? "⚠️ Provisioning is partially complete. Finish migration bookkeeping from the checkpoint; do not redeploy the baseline."
53
- : result.outcome === "failed" ? "❌ Azure deployment reached a failed/cancelled terminal state."
137
+ const outcome = result.outcome === "succeeded"
138
+ ? "✅ Provisioning completed, including migration tags and the local ledger."
139
+ : result.outcome === "in-progress"
140
+ ? "⏳ Azure deployment is still in progress. The local wait ended; this is not an Azure failure."
141
+ : result.outcome === "partial"
142
+ ? "⚠️ Provisioning is partially complete. Finish migration bookkeeping from the checkpoint; do not redeploy the baseline."
143
+ : result.outcome === "failed"
144
+ ? "❌ Azure deployment reached a failed/cancelled terminal state."
54
145
  : "⚠️ Azure deployment result is unknown. A local az interruption does not prove an Azure failure.";
55
- const lines = [outcome, `Run: ${result.runId}; resource group: ${result.resourceGroup}`];
146
+ const lines = [outcome, `Resource group: ${result.resourceGroup}`];
56
147
  if (result.deployment) {
57
148
  const reference = result.deployment.reference;
58
149
  lines.push(`Deployment: ${reference.name}; subscription: ${reference.subscription}; state: ${result.deployment.state}${reference.id ? `; ID: ${reference.id}` : ""}`);
@@ -60,14 +151,18 @@ function formatProvisionResult(result) {
60
151
  lines.push(`${error.code}: ${error.message}`);
61
152
  }
62
153
  for (const warning of result.warnings)
63
- lines.push(`Warning: ${warning}`);
154
+ lines.push(`Warning: ${humanProvisionMessage(warning)}`);
64
155
  for (const diagnostic of result.diagnostics.filter((entry) => entry.failureKind || entry.outputTruncated)) {
65
156
  lines.push((0, azure_diagnostics_1.formatAzureDiagnostic)(diagnostic));
66
157
  }
67
158
  if (result.status !== "complete") {
68
159
  lines.push(`Check/wait: swallowkit provision --status ${result.runId} --wait-seconds 300`);
69
- lines.push(`Resume after approval: swallowkit provision --resume ${result.runId} --approve`);
70
- lines.push("Azure may continue after Ctrl+C or process termination. No Azure cancellation or deletion is performed.");
160
+ if (result.outcome !== "failed")
161
+ lines.push(`Resume: swallowkit provision --resume ${result.runId}`);
162
+ if (result.outcome !== "failed")
163
+ lines.push("Azure may continue after Ctrl+C or process termination. No Azure cancellation or deletion is performed.");
164
+ else
165
+ lines.push("Azure reported a terminal failure. Correct its cause before explicitly deploying again; resuming does not repair a failed deployment.");
71
166
  }
72
167
  return lines.join("\n");
73
168
  }
@@ -100,106 +195,113 @@ async function resolveLocations(options) {
100
195
  throw new Error("Region selection cancelled.");
101
196
  return { location, swaLocation };
102
197
  }
103
- exports.provisionCommand = new commander_1.Command("provision")
104
- .description("Bootstrap, adopt, migrate, or explicitly reconcile Azure resources")
105
- .option("-g, --resource-group <name>", "Resource group name (required for a new preview)")
106
- .option("--subscription <id>", "Azure subscription ID")
107
- .option("--location <region>", "Primary location for Functions and Cosmos DB")
108
- .option("--swa-location <region>", "Static Web App location")
109
- .option("--what-if", "Include Azure what-if evidence in the preview", false)
110
- .option("--adopt-existing", "Adopt an existing untagged resource group without deploying main.bicep", false)
111
- .option("--baseline <version>", "Baseline version for adoption (currently 0)")
112
- .option("--reconcile", "Explicitly redeploy infra/main.bicep", false)
113
- .option("--approve", "Run the displayed Azure commands without the confirmation prompt", false)
114
- .option("--status <runId>", "Read an existing execution checkpoint and Azure deployment state without writes")
115
- .option("--resume <runId>", "Resume an approved checkpoint without resubmitting attempted deployments")
116
- .option("--resume-deployment <name>", "Recover an older untracked baseline deployment after verifying its template and parameters")
117
- .option("--wait-seconds <seconds>", "Bounded state wait, 0-3600 seconds (default: 300; status: 0)")
118
- .action(async (options) => {
119
- (0, config_1.ensureSwallowKitProject)("provision");
120
- const waitSeconds = options.waitSeconds === undefined ? undefined : Number(options.waitSeconds);
121
- if ((options.resume && options.status) || ((options.resume || options.status) && (options.resourceGroup || options.resumeDeployment || options.reconcile || options.adoptExisting || options.subscription || options.location || options.swaLocation || options.whatIf || options.baseline !== undefined))) {
122
- throw new errors_1.MachineCommandError("invalid-arguments", "Use --status or --resume with the checkpoint ID alone; its original Azure target and reviewed files are preserved.", undefined, "blocked");
123
- }
124
- if (options.status) {
125
- const result = await (0, provision_operations_1.inspectProvisionOperation)({ planId: options.status, waitSeconds });
126
- console.log(formatProvisionResult(result));
127
- if (result.status === "blocked" || result.status === "failed")
128
- process.exitCode = 1;
129
- return;
130
- }
131
- if (options.resume) {
132
- let approved = options.approve === true;
133
- if (!approved && process.stdin.isTTY && process.stdout.isTTY) {
134
- const answer = await (0, prompts_1.default)({ type: "confirm", name: "approved", message: "Resume the original reviewed run and finish pending steps? This requires explicit approval.", initial: false });
135
- approved = answer.approved === true;
198
+ function createProvisionCommand() {
199
+ return new commander_1.Command("provision")
200
+ .description("Deploy Azure infrastructure and show resource information and CI/CD setup")
201
+ .option("-g, --resource-group <name>", "Resource group name (required for deployment)")
202
+ .option("--subscription <id>", "Azure subscription ID")
203
+ .option("--location <region>", "Primary location for Functions and Cosmos DB")
204
+ .option("--swa-location <region>", "Static Web App location")
205
+ .option("--what-if", "Check Azure what-if before deployment", false)
206
+ .option("--adopt-existing", "Adopt an existing untagged resource group without deploying main.bicep", false)
207
+ .option("--baseline <version>", "Baseline version for adoption (currently 0)")
208
+ .option("--reconcile", "Explicitly redeploy infra/main.bicep", false)
209
+ .addOption(new commander_1.Option("--approve", "Compatibility option; invoking provision already requests execution").hideHelp())
210
+ .option("--status <runId>", "Read an existing execution checkpoint and Azure deployment state without writes")
211
+ .option("--resume <runId>", "Continue the original execution without resubmitting attempted deployments")
212
+ .option("--resume-deployment <name>", "Recover an older untracked baseline deployment after verifying its template and parameters")
213
+ .option("--wait-seconds <seconds>", "Bounded state wait, 0-3600 seconds (default: 300; status: 0)")
214
+ .action(async (options) => {
215
+ try {
216
+ (0, config_1.ensureSwallowKitProject)("provision");
217
+ const waitSeconds = options.waitSeconds === undefined ? undefined : Number(options.waitSeconds);
218
+ if ((options.resume && options.status) ||
219
+ ((options.resume || options.status) &&
220
+ (options.resourceGroup ||
221
+ options.resumeDeployment ||
222
+ options.reconcile ||
223
+ options.adoptExisting ||
224
+ options.subscription ||
225
+ options.location ||
226
+ options.swaLocation ||
227
+ options.whatIf ||
228
+ options.baseline !== undefined))) {
229
+ throw new errors_1.MachineCommandError("invalid-arguments", "Use --status or --resume with the checkpoint ID alone; its original Azure target and reviewed files are preserved.", undefined, "blocked");
230
+ }
231
+ if (options.status) {
232
+ const result = await (0, provision_operations_1.inspectProvisionOperation)({
233
+ planId: options.status,
234
+ waitSeconds,
235
+ });
236
+ console.log(formatProvisionResult(result));
237
+ if (result.status === "blocked" || result.status === "failed")
238
+ process.exitCode = 1;
239
+ return;
240
+ }
241
+ if (options.resume) {
242
+ const result = await (0, provision_operations_1.applyProvisionOperation)({
243
+ planId: options.resume,
244
+ approve: true,
245
+ waitSeconds,
246
+ });
247
+ console.log(formatProvisionResult(result));
248
+ await printProvisionSetup(result);
249
+ if (result.status === "blocked" || result.status === "failed")
250
+ process.exitCode = 1;
251
+ return;
252
+ }
253
+ if (!options.resourceGroup)
254
+ throw new errors_1.MachineCommandError("invalid-arguments", "Provision requires --resource-group.", undefined, "blocked");
255
+ const locations = await resolveLocations(options);
256
+ const baseline = options.baseline === undefined ? undefined : Number(options.baseline);
257
+ // Preview in memory: the same Azure checks as the agent workflow, but no saved plan file.
258
+ const preview = await (0, provision_operations_1.planProvisionOperation)({
259
+ resourceGroup: options.resourceGroup,
260
+ subscription: options.subscription,
261
+ location: locations.location,
262
+ swaLocation: locations.swaLocation,
263
+ whatIf: options.whatIf,
264
+ adoptExisting: options.adoptExisting,
265
+ baseline,
266
+ reconcile: options.reconcile,
267
+ resumeDeployment: options.resumeDeployment,
268
+ }, { persist: false });
269
+ for (const warning of preview.warnings)
270
+ console.warn(`Warning: ${warning}`);
271
+ if (preview.mode === "offline") {
272
+ console.log([
273
+ "",
274
+ "❌ Azure CLI is unavailable, so the current state of Azure could not be checked. Nothing was changed in Azure.",
275
+ " 1. Make sure `az --version` works in this terminal (install: https://aka.ms/azure-cli).",
276
+ " 2. Sign in with `az login` (and `az account set --subscription <id>` if needed).",
277
+ " 3. Run this command again.",
278
+ ].join("\n"));
279
+ process.exitCode = 1;
280
+ return;
281
+ }
282
+ if (preview.mode === "adoption-required") {
283
+ throw new Error("The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest.");
284
+ }
285
+ if (preview.mode === "noop") {
286
+ console.log(`Resource group ${preview.resourceGroup} is already up to date. Nothing to do.`);
287
+ return;
288
+ }
289
+ console.log(`\n${describeProvisionAction(preview)}`);
290
+ console.log("Deploying Azure infrastructure. Azure resources may incur charges.");
291
+ const result = await (0, provision_operations_1.executeProvisionPlan)(preview, {
292
+ approve: true,
293
+ retryHint: provision_operations_1.INTERACTIVE_PROVISION_RETRY_HINT,
294
+ waitSeconds,
295
+ });
296
+ console.log(formatProvisionResult(result));
297
+ await printProvisionSetup(result);
298
+ if (result.status === "blocked" || result.status === "failed")
299
+ process.exitCode = 1;
136
300
  }
137
- const result = await (0, provision_operations_1.applyProvisionOperation)({ planId: options.resume, approve: approved, waitSeconds });
138
- console.log(formatProvisionResult(result));
139
- if (result.status === "blocked" || result.status === "failed")
140
- process.exitCode = 1;
141
- return;
142
- }
143
- if (!options.resourceGroup)
144
- throw new errors_1.MachineCommandError("invalid-arguments", "New provision previews require --resource-group.", undefined, "blocked");
145
- const locations = await resolveLocations(options);
146
- const baseline = options.baseline === undefined ? undefined : Number(options.baseline);
147
- // Preview in memory: the same Azure checks as the agent workflow, but no saved plan file.
148
- const preview = await (0, provision_operations_1.planProvisionOperation)({
149
- resourceGroup: options.resourceGroup,
150
- subscription: options.subscription,
151
- location: locations.location,
152
- swaLocation: locations.swaLocation,
153
- whatIf: options.whatIf,
154
- adoptExisting: options.adoptExisting,
155
- baseline,
156
- reconcile: options.reconcile,
157
- resumeDeployment: options.resumeDeployment,
158
- }, { persist: false });
159
- for (const warning of preview.warnings)
160
- console.warn(`Warning: ${warning}`);
161
- if (preview.mode === "offline") {
162
- console.log([
163
- "",
164
- "❌ Azure CLI is unavailable, so the current state of Azure could not be checked. Nothing was changed in Azure.",
165
- " 1. Make sure `az --version` works in this terminal (install: https://aka.ms/azure-cli).",
166
- " 2. Sign in with `az login` (and `az account set --subscription <id>` if needed).",
167
- " 3. Run this command again.",
168
- ].join("\n"));
169
- process.exitCode = 1;
170
- return;
171
- }
172
- if (preview.mode === "adoption-required") {
173
- throw new Error('The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest.');
174
- }
175
- if (preview.mode === "noop") {
176
- console.log(`Resource group ${preview.resourceGroup} is already up to date. Nothing to do.`);
177
- return;
178
- }
179
- console.log(`\n${describeProvisionAction(preview)}`);
180
- console.log("The following Azure CLI commands will run:");
181
- for (const command of preview.commands)
182
- console.log(` ${command}`);
183
- let approved = options.approve === true;
184
- if (!approved) {
185
- if (!process.stdin.isTTY || !process.stdout.isTTY) {
186
- throw new Error("Non-interactive provision requires --approve after reviewing the commands above.");
301
+ catch (error) {
302
+ throw new Error(formatProvisionError(error));
187
303
  }
188
- const answer = await (0, prompts_1.default)({
189
- type: "confirm",
190
- name: "approved",
191
- message: "Run these Azure commands? This may create billable resources.",
192
- initial: false,
193
- });
194
- approved = answer.approved === true;
195
- }
196
- if (!approved) {
197
- console.log("Provision cancelled. Nothing was changed in Azure.");
198
- return;
199
- }
200
- const result = await (0, provision_operations_1.executeProvisionPlan)(preview, { approve: true, retryHint: provision_operations_1.INTERACTIVE_PROVISION_RETRY_HINT, waitSeconds });
201
- console.log(formatProvisionResult(result));
202
- if (result.status === "blocked" || result.status === "failed")
203
- process.exitCode = 1;
204
- });
304
+ });
305
+ }
306
+ exports.provisionCommand = createProvisionCommand();
205
307
  //# sourceMappingURL=provision.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -162,7 +162,7 @@ function createProgram(devCommandOverride = commands_1.devCommand) {
162
162
  });
163
163
  program.addCommand(devCommandOverride);
164
164
  program.addCommand(commands_1.devSeedsCommand);
165
- program.addCommand(provision_1.provisionCommand);
165
+ program.addCommand((0, provision_1.createProvisionCommand)());
166
166
  program.addCommand(migrations_1.migrationsCommand);
167
167
  program.addCommand(create_migration_1.createMigrationCommand);
168
168
  program.addCommand(configure_mcp_1.configureMcpCommand);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,0DAwBC;AAED,sCAkIC;AAqHD,wBAQC;AAGD,wCAuBC;AA9XD,iDAAyC;AACzC,2BAAkC;AAClC,2CAA6B;AAC7B,yCAAoC;AACpC,yCAA2G;AAC3G,oDAA8D;AAC9D,kEAAuF;AACvF,kEAAqE;AACrE,sDAA0D;AAC1D,4DAA+D;AAC/D,4DAA+D;AAC/D,kDAAqD;AACrD,oEAAyE;AACzE,yDAA6D;AAC7D,iDAAoD;AACpD,2CAA2C;AAC3C,wCAA6D;AAC7D,8CAAwD;AAExD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACzD,QAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,OAAiB,CAAC;AAE/F,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAgB;IAC9C,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,QAAQ,EAAE,CAAC,CAAC;IACb,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACvB,CAAC,YAAY,EAAE,CAAC,CAAC;IACjB,CAAC,QAAQ,EAAE,CAAC,CAAC;IACb,CAAC,YAAY,EAAE,CAAC,CAAC;IACjB,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,QAAQ,EAAE,CAAC,CAAC;IACb,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,WAAW,EAAE,CAAC,CAAC;IAChB,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACxB,CAAC,YAAY,EAAE,CAAC,CAAC;IACjB,CAAC,UAAU,EAAE,CAAC,CAAC;CAChB,CAAC,CAAC;AAEH,SAAS,0BAA0B;IACjC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAgB;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAAc;IACpD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,KAAK;QACL,GAAG,aAAa;QAChB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,qBAA8B,qBAAU;IACpE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CAAC,qFAAqF,CAAC;SAClG,OAAO,CAAC,mBAAW,CAAC,CAAC;IAExB,oBAAoB;IACpB,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,CAAC;SAC7D,MAAM,CAAC,wBAAwB,EAAE,iFAAiF,CAAC;SACnH,MAAM,CAAC,0BAA0B,EAAE,mDAAmD,EAAE,QAAQ,CAAC;SACjG,MAAM,CAAC,6BAA6B,EAAE,8DAA8D,CAAC;SACrG,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;SACpE,MAAM,CAAC,+BAA+B,EAAE,gEAAgE,CAAC;SACzG,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,CAAC;SAC1E,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;SAC9D,MAAM,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;SAC1E,MAAM,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;QAC/B,IAAA,sBAAW,EAAC;YACV,IAAI,EAAE,WAAW,IAAI,gBAAgB;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,0BAAe,CAAC,CAAC;IAEpC,OAAO,CAAC,UAAU,CAAC,IAAA,kCAAsB,GAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,yCAAsB,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,mCAAmB,CAAC,CAAC;IAExC,OAAO;SACJ,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,CAAC;SACjE,MAAM,CAAC,oBAAoB,EAAE,kEAAkE,CAAC;SAChG,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACzB,IAAA,6BAAkB,EAAC;YACjB,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,wFAAwF,CAAC;SACrG,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,WAAW,CAAC;SACzE,MAAM,CAAC,iBAAiB,EAAE,qDAAqD,CAAC;SAChF,MAAM,CAAC,YAAY,EAAE,2FAA2F,EAAE,KAAK,CAAC;SACxH,MAAM,CAAC,cAAc,EAAE,kHAAkH,EAAE,KAAK,CAAC;SACjJ,MAAM,CAAC,WAAW,EAAE,oDAAoD,EAAE,KAAK,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,iBAAiB,CAAC;gBACtB,KAAK;gBACL,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,IAAA,0BAAe,EAAC;YACpB,KAAK;YACL,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,qDAAqD,CAAC;SAClE,cAAc,CAAC,eAAe,EAAE,2BAA2B,CAAC;SAC5D,MAAM,CAAC,uBAAuB,EAAE,4CAA4C,EAAE,OAAO,CAAC;SACtF,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACxB,IAAA,mCAAmB,EAAC;YAClB,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,uBAAuB,EAAE,sEAAsE,EAAE,YAAY,CAAC;SACrH,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;SAC9D,MAAM,CAAC,4BAA4B,EAAE,oFAAoF,CAAC;SAC1H,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAA,yBAAc,EAAC;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;SACrG,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,aAAa,EAAE,2CAA2C,EAAE,KAAK,CAAC;SACzE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,gBAAgB,EAAE,qHAAqH,CAAC;SAC/I,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAA0G;IACzI,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,MAAM,IAAA,qCAAqB,EAAC,OAAO,CAAC,CAAC;IAElD,MAAM,WAAW,GAA2B;QAC1C,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS;QAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;QAClD,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,IAAI,YAAY,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC1F,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,8BAA8B,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,mEAAmE,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,0DAA0D,OAAO,CAAC,KAAK,sCAAsC,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC;IACrJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0DAA0D,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpI,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAgC;IAC9D,MAAM,UAAU,GAAG,IAAA,4BAAgB,GAAE,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAW,GAAE,CAAC;IAElC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;IAClG,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;QAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACnF,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,IAAI,CAAC,CAAC;QAEvC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG;oBACZ,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;oBACrC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;iBACpC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9D,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAA4B;IAC1D,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEvF,MAAM,WAAW,GAA2B;QAC1C,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,IAAI;KACZ,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC;QAC5G,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACxD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,CAAC,OAAO,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,CAC9K,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI;IACxD,0BAA0B,EAAE,CAAC;IAC7B,IAAI,IAAA,0BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,aAAa,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,0FAA0F;AAC1F,SAAgB,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,4BAAmB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,aAAa,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAA8C,CAAC;QACrE,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACzF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5G,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9E,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjE,MAAM,UAAU,GAAG,OAAO,CAAC,UAA2H,CAAC;gBACvJ,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,SAAS,YAAY,UAAU,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;YAC/I,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAmC;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAA,yCAAqB,EAAC,UAAU,CAAC,CAAC,CAAC;YACtH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/G,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACpG,CAAC;IACD,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -160,8 +160,8 @@ function inspectCapabilities() {
160
160
  completion: "status complete/outcome succeeded requires Azure Succeeded plus verified migration tags and local ledger completion. Running/Accepted -> in-progress; unreadable/not-found state -> blocked/outcome unknown; bookkeeping interruption after Azure Succeeded -> blocked/outcome partial; Failed/Canceled -> failed with Azure causes.",
161
161
  tracking: "Approved runs persist before Azure writes under .swallowkit/state/provision/. runId equals the original planId and preserves the subscription, RG, deployment ID/correlation, fingerprints and migration state. inspect provision is read-only; apply provision --plan resumes without re-submitting attempted deployments. Ctrl+C/termination may leave Azure running; never cancel/delete without explicit consent.",
162
162
  recovery: "For an older untracked baseline, plan provision --resume-deployment <name> compares the existing ARM template and non-secure parameters to the local Bicep/parameters. It observes that deployment and only tags/records it after Succeeded. Mismatches, unreadable evidence, secure parameters or non-baseline migrations block; do not use reconcile just to repair bookkeeping.",
163
- diagnostics: "Results include bounded/redacted stdout/stderr, omitted-output flags, exit code, signal, failure kind, elapsed time and deployment identity. Deployment output values are not returned. Never print --debug output, keys, tokens or connection strings.",
164
- approval: "Initial apply and every resume require explicit human approval. A passing local command or an ok envelope is not proof of completed Azure provisioning; inspect status, outcome and nextActions.",
163
+ diagnostics: "Machine/MCP results include bounded/redacted stdout/stderr, omitted-output flags, exit code, signal, failure kind, elapsed time and deployment identity, but no deployment outputs. Normal CLI shows named resource information and CI/CD setup guidance after success. Never print --debug output, keys, tokens or connection strings.",
164
+ approval: "Machine/MCP initial apply and every resume require explicit human approval. A human invoking normal provision or provision --resume explicitly requests execution without another confirmation prompt. Agents must not switch to normal CLI to bypass approval. A passing local command or an ok envelope is not proof of completed Azure provisioning; inspect status, outcome and nextActions.",
165
165
  },
166
166
  verifyChecks: {
167
167
  defaultChecks: ["structure", "drift", "typecheck", "backend-build"],
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CA4Q/D;AAED,eAAO,MAAM,aAAa,QAAwC,CAAC;AACnE,eAAO,MAAM,UAAU,QAAiC,CAAC;AAEzD,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9E;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7E"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CA8Q/D;AAED,eAAO,MAAM,aAAa,QAAwC,CAAC;AACnE,eAAO,MAAM,UAAU,QAAiC,CAAC;AAEzD,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9E;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7E"}
@@ -222,6 +222,8 @@ Goal: bootstrap Azure once, then apply only pending versioned infrastructure mig
222
222
  \`status: "requires-human"\` and \`requiresApproval: true\` by design.
223
223
  - Never pass \`--approve\` to \`apply provision\` unless a human explicitly
224
224
  instructed you to provision in this session.
225
+ - This plan/apply workflow is for agents. Humans normally run \`swallowkit provision\`
226
+ directly; do not switch to that command to bypass the agent approval gate.
225
227
  - Inspect infra locally first — no \`az\` calls are needed for inspection.
226
228
  - Never edit an applied migration. Create a corrective migration instead.
227
229
  - Never use \`--reconcile\` for an ordinary model or resource addition.
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBH,8CA4QC;AAMD,8CASC;AAGD,4CASC;AAMD,4CASC;AA3UD,uCAAyB;AACzB,2CAA6B;AAoB7B,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,MAAM,QAAQ,GAAgB;QAC5B,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,mCAAmC;QAC1C,SAAS,EAAE,sBAAsB;QACjC,gBAAgB,EACd,8PAA8P;QAChQ,OAAO,EAAE;;;;;;;;+BAQkB,MAAM;;;;;OAK9B,MAAM;;;;;;OAMN,MAAM;;;qDAGwC,MAAM;;;;;;;;;;;OAWpD,MAAM;;OAEN,MAAM;mCACsB,MAAM;;kBAEvB,MAAM;;;;;;;;;;;;CAYvB;KACE,CAAC;IAEF,MAAM,WAAW,GAAgB;QAC/B,QAAQ,EAAE,iBAAiB;QAC3B,KAAK,EAAE,iCAAiC;QACxC,SAAS,EAAE,yBAAyB;QACpC,gBAAgB,EACd,wSAAwS;QAC1S,OAAO,EAAE;;;;;;;;OAQN,MAAM;;;OAGN,MAAM;;cAEC,MAAM;eACL,MAAM;;;;;;CAMpB;KACE,CAAC;IAEF,MAAM,OAAO,GAAgB;QAC3B,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,6DAA6D;QACpE,SAAS,EAAE,qBAAqB;QAChC,gBAAgB,EACd,4WAA4W;QAC9W,OAAO,EAAE;;;;;;;;;;;;;kCAaqB,MAAM;;;OAGjC,MAAM;;OAEN,MAAM;;;;;;;;;eASE,MAAM;;;;;;;CAOpB;KACE,CAAC;IAEF,MAAM,YAAY,GAAgB;QAChC,QAAQ,EAAE,sBAAsB;QAChC,KAAK,EAAE,wBAAwB;QAC/B,SAAS,EAAE,0BAA0B;QACrC,gBAAgB,EACd,sTAAsT;QACxT,OAAO,EAAE;;;;;;OAMN,MAAM;;;;;;SAMJ,MAAM;;;;;;;;;;;;CAYd;KACE,CAAC;IAEF,MAAM,SAAS,GAAgB;QAC7B,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,2DAA2D;QAClE,SAAS,EAAE,sBAAsB;QACjC,gBAAgB,EACd,kRAAkR;QACpR,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;OAoBN,MAAM;;;OAGN,MAAM;;;qDAGwC,MAAM;;;;OAIpD,MAAM;;;OAGN,MAAM;;;OAGN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAwBZ;KACE,CAAC;IAEF,MAAM,KAAK,GAAgB;QACzB,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,4BAA4B;QACnC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;oCA0BuB,MAAM;CACzC;KACE,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAC1E,CAAC;AAEY,QAAA,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACtD,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAEzD,uDAAuD;AACvD,SAAgB,iBAAiB,CAAC,UAAkB,EAAE,MAAc;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAa,CAAC,CAAC;IACjD,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4DAA4D;AAC5D,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,OAAO,iBAAiB,CAAC,MAAM,CAAC;SAC7B,MAAM,CAAC,CAAC,GAAG,EAAwE,EAAE,CACpF,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAC/C;SACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,cAAc,GAAG,CAAC,SAAS,kBAAkB,GAAG,CAAC,gBAAgB,gDAAgD,GAAG,CAAC,OAAO,EAAE;KACxI,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,UAAkB,EAAE,MAAc;IACjE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/D,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swallowkit",
3
- "version": "2.0.0-alpha.6",
3
+ "version": "2.0.0-alpha.7",
4
4
  "description": "Type-safe schema-driven development toolkit for Next.js and React applications on Azure",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -60,6 +60,7 @@ describe("coding-agent instruction contract", () => {
60
60
  expect(agentsMd).toContain("machine inspect provision --plan <runId> --wait-seconds 300");
61
61
  expect(agentsMd).toContain("outcome: \"succeeded\"");
62
62
  expect(agentsMd).toContain("Never re-submit Bicep");
63
+ expect(agentsMd).toContain("must not switch to normal CLI to bypass it");
63
64
  expect(agentsMd).toContain("never bypass its\napproval gate");
64
65
  });
65
66
 
@@ -91,6 +92,7 @@ describe("coding-agent instruction contract", () => {
91
92
  expect(adapter).toContain("planning");
92
93
  expect(adapter).toContain("Never hand-edit deterministic SwallowKit-managed artifacts");
93
94
  expect(adapter).toContain("SwallowKit verification");
95
+ expect(adapter).toContain("approval");
94
96
  }
95
97
  });
96
98
 
@@ -113,6 +113,14 @@ if (args[0] === "--version") {
113
113
  process.stdout.write("{invalid JSON");
114
114
  } else if (value("--query") === "properties.parameters") {
115
115
  emit(state.parameters);
116
+ } else if (value("--query").includes("properties.outputs.")) {
117
+ if (state.outputQueryFails) {
118
+ console.error("ERROR: resource output query failed");
119
+ process.exitCode = 1;
120
+ } else {
121
+ const outputs = state.outputs ?? {};
122
+ emit(Object.fromEntries(["staticWebAppName", "staticWebAppUrl", "functionsAppName", "functionsAppUrl", "cosmosDbAccountName", "cosmosDatabaseName"].map(key => [key, outputs[key] ?? null])));
123
+ }
116
124
  } else {
117
125
  const states = state.states ?? ["Succeeded"];
118
126
  const provisioningState = states.length > 1 ? states.shift() : states[0];
@@ -8,7 +8,7 @@ import {
8
8
  } from "../core/operations/provision-operations";
9
9
  import * as migrations from "../core/project/migrations";
10
10
  import { loadProvisionRun, saveProvisionRun } from "../core/project/state";
11
- import { formatProvisionResult } from "../cli/commands/provision";
11
+ import { formatProvisionResult, formatProvisionError } from "../cli/commands/provision";
12
12
  import { formatCliError, runCli } from "../cli";
13
13
  import { runMachineCli } from "../machine";
14
14
  import { buildSwallowKitToolDefinitions } from "../mcp";
@@ -125,6 +125,8 @@ interface FixtureState {
125
125
  parameters: Record<string, { value: unknown; type?: string }>;
126
126
  error?: unknown;
127
127
  operations?: unknown[];
128
+ outputs?: Record<string, string>;
129
+ outputQueryFails?: boolean;
128
130
  }
129
131
 
130
132
  describe("provision execution, diagnosis and recovery using an az subprocess fixture", () => {
@@ -511,7 +513,7 @@ describe("provision execution, diagnosis and recovery using an az subprocess fix
511
513
  expect(read().deploymentCreates).toBe(3);
512
514
  expect(read().calls.filter(args => args[0] === "deployment" && args[2] === "create").map(args => args[args.indexOf("--name") + 1]))
513
515
  .toEqual(expect.arrayContaining(["swallowkit-baseline", ...plan.pendingMigrations.map(migration => `swallowkit-migration-${migration.version}-${migration.checksum.slice(0, 12)}`)]));
514
- });
516
+ }, 20000);
515
517
 
516
518
  it("recovers an older untracked Running deployment using matching ARM/parameter evidence and no create", async () => {
517
519
  update({ groupExists: true, states: ["Running"], deployments: { "swallowkit-baseline": { correlationId: "old-correlation", templateHash: "fixture-template-hash" } } });
@@ -559,4 +561,76 @@ describe("provision execution, diagnosis and recovery using an az subprocess fix
559
561
  expect(runner).toHaveBeenCalledWith(["inspect", "provision", "--plan", runId, "--wait-seconds", "0"]);
560
562
  expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 0 });
561
563
  });
564
+
565
+ it("treats normal provision invocation as consent without an extra prompt or machine instructions", async () => {
566
+ update({ outputs: { functionsAppName: "func-fixture", staticWebAppName: "swa-fixture", apiKey: "secret-not-for-terminal" } });
567
+ const logs: string[] = [];
568
+ jest.spyOn(console, "log").mockImplementation((text: unknown) => { logs.push(String(text)); });
569
+ await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
570
+ const output = logs.join("\n");
571
+ expect(output).toContain("Provisioning completed");
572
+ expect(output).toContain("AZURE_FUNCTIONAPP_NAME: func-fixture");
573
+ expect(output).toContain("AZURE_STATIC_WEB_APPS_API_TOKEN");
574
+ expect(output).not.toContain("secret-not-for-terminal");
575
+ expect(output).not.toMatch(/machine |--approve|Run these Azure commands|Plan /);
576
+ expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
577
+ expect(read().calls.some(args => args[0] === "staticwebapp" && args[1] === "secrets")).toBe(false);
578
+ });
579
+
580
+ it("keeps normal CLI terminal failure instructions human-only and does not suggest resuming as a repair", async () => {
581
+ update({ states: ["Failed"], error: { code: "NotFound", message: "Request url is invalid." } });
582
+ let failure: unknown;
583
+ try {
584
+ await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
585
+ } catch (error) { failure = error; }
586
+ const output = formatCliError(failure);
587
+ expect(output).toContain("NotFound: Request url is invalid.");
588
+ expect(output).toContain("swallowkit provision --status");
589
+ expect(output).not.toMatch(/machine |--plan|--approve|Resume:/);
590
+ expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 0 });
591
+ });
592
+
593
+ it("shows human commands when existing execution state blocks a new provision", async () => {
594
+ update({ states: ["Running"] });
595
+ const running = await executeProvisionPlan(await planProvisionOperation(options), { approve: true, waitSeconds: 0 });
596
+ let failure: unknown;
597
+ try { await planProvisionOperation(options); } catch (error) { failure = error; }
598
+ const output = formatProvisionError(failure);
599
+ expect(output).toContain(`swallowkit provision --status ${running.runId}`);
600
+ expect(output).not.toMatch(/machine |--plan|--approve/);
601
+ expect(read().deploymentCreates).toBe(1);
602
+ });
603
+
604
+ it("does not redeploy or report deployment failure when resource outputs cannot be read after success", async () => {
605
+ update({ outputQueryFails: true });
606
+ const warnings: string[] = [];
607
+ jest.spyOn(console, "log").mockImplementation(() => {});
608
+ jest.spyOn(console, "warn").mockImplementation((text: unknown) => { warnings.push(String(text)); });
609
+ await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
610
+ expect(warnings.join("\n")).toContain("Deployment succeeded, but resource information could not be read");
611
+ expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
612
+ });
613
+
614
+ it("resumes a human-invoked run without an additional approval and never resubmits Bicep", async () => {
615
+ update({ states: ["Running"] });
616
+ jest.spyOn(console, "log").mockImplementation(() => {});
617
+ await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation, "--wait-seconds", "0"]);
618
+ const file = fs.readdirSync(path.join(project, ".swallowkit", "state", "provision")).find(name => name.endsWith(".json"))!;
619
+ const runId = file.slice(0, -5);
620
+ update({ states: ["Succeeded"] });
621
+ await runCli(["node", "swallowkit", "provision", "--resume", runId]);
622
+ expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
623
+ expect(loadProvisionRun<{ outcome: string }>(runId)?.outcome).toBe("succeeded");
624
+ });
625
+
626
+ it("retains successful deployment when the output-reading helper throws", async () => {
627
+ const original = azureCli.runAzCliAsync;
628
+ jest.spyOn(azureCli, "runAzCliAsync").mockImplementation((args, runOptions) =>
629
+ args.some(arg => arg.includes("properties.outputs.")) ? Promise.reject(new Error("Fixture output transport failed")) : original(args, runOptions));
630
+ jest.spyOn(console, "log").mockImplementation(() => {});
631
+ const warning = jest.spyOn(console, "warn").mockImplementation(() => {});
632
+ await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
633
+ expect(warning).toHaveBeenCalledWith(expect.stringContaining("Deployment succeeded, but resource information could not be read"));
634
+ expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
635
+ });
562
636
  });
@@ -1,4 +1,4 @@
1
- import { Command } from "commander";
1
+ import { Command, Option } from "commander";
2
2
  import prompts from "prompts";
3
3
  import { ensureSwallowKitProject } from "../../core/config";
4
4
  import {
@@ -12,6 +12,88 @@ import {
12
12
  } from "../../core/operations/provision-operations";
13
13
  import { MachineCommandError } from "../../machine/errors";
14
14
  import { formatAzureDiagnostic } from "../../utils/azure-diagnostics";
15
+ import { runAzCliAsync } from "../../utils/azure-cli";
16
+
17
+ function humanProvisionMessage(message: string): string {
18
+ return message
19
+ .replace(/swallowkit machine inspect provision --plan/g, "swallowkit provision --status")
20
+ .replace(/swallowkit machine apply provision --plan/g, "swallowkit provision --resume")
21
+ .replace(/plan provision/g, "swallowkit provision")
22
+ .replace(/\b[Pp]lan\b/g, "Execution")
23
+ .replace(/preview/g, "deployment preparation")
24
+ .replace(/after approval/g, "")
25
+ .replace(/--approve/g, "")
26
+ .replace(/ {2,}/g, " ");
27
+ }
28
+
29
+ export function formatProvisionError(error: unknown): string {
30
+ if (!(error instanceof MachineCommandError)) return error instanceof Error ? error.message : String(error);
31
+ const message = error.code === "azure-deployment-failed" ? error.message : humanProvisionMessage(error.message);
32
+ const lines = [...new Set(message.split("\n"))];
33
+ const details = error.details as Partial<ApplyProvisionResult> | undefined;
34
+ if (details?.deployment) {
35
+ lines.push(`Deployment: ${details.deployment.reference.name}; state: ${details.deployment.state}`);
36
+ }
37
+ for (const diagnostic of details?.diagnostics ?? []) {
38
+ if (diagnostic.failureKind || diagnostic.outputTruncated) lines.push(formatAzureDiagnostic(diagnostic));
39
+ }
40
+ const runId = details?.runId;
41
+ if (runId) {
42
+ lines.push(`Check: swallowkit provision --status ${runId}`);
43
+ if (error.code !== "azure-deployment-failed") lines.push(`Resume: swallowkit provision --resume ${runId}`);
44
+ else lines.push("Azure reported a terminal failure. Resuming only observes that failed deployment; correct its cause before explicitly deploying again.");
45
+ } else {
46
+ for (const action of error.nextActions ?? []) {
47
+ const command = humanProvisionMessage(action.command);
48
+ if (!command.includes("machine ")) lines.push(command);
49
+ }
50
+ }
51
+ return lines.join("\n");
52
+ }
53
+
54
+ async function printProvisionSetup(result: ApplyProvisionResult): Promise<void> {
55
+ if (!result.deployment || result.status !== "complete") return;
56
+ const reference = result.deployment.reference;
57
+ const fields = ["staticWebAppName", "staticWebAppUrl", "functionsAppName", "functionsAppUrl", "cosmosDbAccountName", "cosmosDatabaseName"] as const;
58
+ let outputs: Record<string, unknown>;
59
+ try {
60
+ const response = await runAzCliAsync(
61
+ [
62
+ "deployment",
63
+ "group",
64
+ "show",
65
+ "--name",
66
+ reference.name.startsWith("swallowkit-migration-") ? "swallowkit-baseline" : reference.name,
67
+ "--resource-group",
68
+ reference.resourceGroup,
69
+ "--subscription",
70
+ reference.subscription,
71
+ "--query",
72
+ `{${fields.map((field) => `${field}:properties.outputs.${field}.value`).join(",")}}`,
73
+ "-o",
74
+ "json",
75
+ ],
76
+ { timeout: 30_000 }
77
+ );
78
+ if (response.status !== 0 || response.failureKind || response.stdoutTruncated) throw new Error("Output query did not complete.");
79
+ const parsed: unknown = JSON.parse(response.stdout);
80
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("Invalid resource output.");
81
+ outputs = parsed as Record<string, unknown>;
82
+ } catch {
83
+ console.warn(
84
+ "Deployment succeeded, but resource information could not be read. Inspect the deployment's named outputs in Azure Portal; do not redeploy just to retrieve them."
85
+ );
86
+ return;
87
+ }
88
+ console.log("\nResource information:");
89
+ for (const field of fields) {
90
+ if (typeof outputs[field] === "string") console.log(` ${field}: ${outputs[field]}`);
91
+ }
92
+ console.log("\nCI/CD settings:");
93
+ console.log(` AZURE_FUNCTIONAPP_NAME: ${typeof outputs.functionsAppName === "string" ? outputs.functionsAppName : "<functions-app-name>"}`);
94
+ console.log(" Retrieve AZURE_STATIC_WEB_APPS_API_TOKEN and AZURE_FUNCTIONAPP_PUBLISH_PROFILE privately from Azure Portal and save them in your CI/CD secrets.");
95
+ console.log(" Secret values are not printed or stored by SwallowKit. Trigger the first application deployment after configuring CI/CD.");
96
+ }
15
97
 
16
98
  export function describeProvisionAction(plan: Pick<ProvisionPlanData, "mode" | "resourceGroup" | "location" | "pendingMigrations">): string {
17
99
  switch (plan.mode) {
@@ -67,25 +149,31 @@ interface ProvisionCliOptions {
67
149
  }
68
150
 
69
151
  export function formatProvisionResult(result: ApplyProvisionResult): string {
70
- const outcome = result.outcome === "succeeded" ? "✅ Provisioning completed, including migration tags and the local ledger."
71
- : result.outcome === "in-progress" ? "⏳ Azure deployment is still in progress. The local wait ended; this is not an Azure failure."
72
- : result.outcome === "partial" ? "⚠️ Provisioning is partially complete. Finish migration bookkeeping from the checkpoint; do not redeploy the baseline."
73
- : result.outcome === "failed" ? "❌ Azure deployment reached a failed/cancelled terminal state."
74
- : "⚠️ Azure deployment result is unknown. A local az interruption does not prove an Azure failure.";
75
- const lines = [outcome, `Run: ${result.runId}; resource group: ${result.resourceGroup}`];
152
+ const outcome =
153
+ result.outcome === "succeeded"
154
+ ? "✅ Provisioning completed, including migration tags and the local ledger."
155
+ : result.outcome === "in-progress"
156
+ ? "⏳ Azure deployment is still in progress. The local wait ended; this is not an Azure failure."
157
+ : result.outcome === "partial"
158
+ ? "⚠️ Provisioning is partially complete. Finish migration bookkeeping from the checkpoint; do not redeploy the baseline."
159
+ : result.outcome === "failed"
160
+ ? "❌ Azure deployment reached a failed/cancelled terminal state."
161
+ : "⚠️ Azure deployment result is unknown. A local az interruption does not prove an Azure failure.";
162
+ const lines = [outcome, `Resource group: ${result.resourceGroup}`];
76
163
  if (result.deployment) {
77
164
  const reference = result.deployment.reference;
78
165
  lines.push(`Deployment: ${reference.name}; subscription: ${reference.subscription}; state: ${result.deployment.state}${reference.id ? `; ID: ${reference.id}` : ""}`);
79
166
  for (const error of result.deployment.errors) lines.push(`${error.code}: ${error.message}`);
80
167
  }
81
- for (const warning of result.warnings) lines.push(`Warning: ${warning}`);
168
+ for (const warning of result.warnings) lines.push(`Warning: ${humanProvisionMessage(warning)}`);
82
169
  for (const diagnostic of result.diagnostics.filter((entry) => entry.failureKind || entry.outputTruncated)) {
83
170
  lines.push(formatAzureDiagnostic(diagnostic));
84
171
  }
85
172
  if (result.status !== "complete") {
86
173
  lines.push(`Check/wait: swallowkit provision --status ${result.runId} --wait-seconds 300`);
87
- lines.push(`Resume after approval: swallowkit provision --resume ${result.runId} --approve`);
88
- lines.push("Azure may continue after Ctrl+C or process termination. No Azure cancellation or deletion is performed.");
174
+ if (result.outcome !== "failed") lines.push(`Resume: swallowkit provision --resume ${result.runId}`);
175
+ if (result.outcome !== "failed") lines.push("Azure may continue after Ctrl+C or process termination. No Azure cancellation or deletion is performed.");
176
+ else lines.push("Azure reported a terminal failure. Correct its cause before explicitly deploying again; resuming does not repair a failed deployment.");
89
177
  }
90
178
  return lines.join("\n");
91
179
  }
@@ -119,106 +207,127 @@ async function resolveLocations(options: ProvisionCliOptions): Promise<{ locatio
119
207
  return { location, swaLocation };
120
208
  }
121
209
 
122
- export const provisionCommand = new Command("provision")
123
- .description("Bootstrap, adopt, migrate, or explicitly reconcile Azure resources")
124
- .option("-g, --resource-group <name>", "Resource group name (required for a new preview)")
125
- .option("--subscription <id>", "Azure subscription ID")
126
- .option("--location <region>", "Primary location for Functions and Cosmos DB")
127
- .option("--swa-location <region>", "Static Web App location")
128
- .option("--what-if", "Include Azure what-if evidence in the preview", false)
129
- .option("--adopt-existing", "Adopt an existing untagged resource group without deploying main.bicep", false)
130
- .option("--baseline <version>", "Baseline version for adoption (currently 0)")
131
- .option("--reconcile", "Explicitly redeploy infra/main.bicep", false)
132
- .option("--approve", "Run the displayed Azure commands without the confirmation prompt", false)
133
- .option("--status <runId>", "Read an existing execution checkpoint and Azure deployment state without writes")
134
- .option("--resume <runId>", "Resume an approved checkpoint without resubmitting attempted deployments")
135
- .option("--resume-deployment <name>", "Recover an older untracked baseline deployment after verifying its template and parameters")
136
- .option("--wait-seconds <seconds>", "Bounded state wait, 0-3600 seconds (default: 300; status: 0)")
137
- .action(async (options: ProvisionCliOptions) => {
138
- ensureSwallowKitProject("provision");
139
- const waitSeconds = options.waitSeconds === undefined ? undefined : Number(options.waitSeconds);
140
- if ((options.resume && options.status) || ((options.resume || options.status) && (options.resourceGroup || options.resumeDeployment || options.reconcile || options.adoptExisting || options.subscription || options.location || options.swaLocation || options.whatIf || options.baseline !== undefined))) {
141
- throw new MachineCommandError("invalid-arguments", "Use --status or --resume with the checkpoint ID alone; its original Azure target and reviewed files are preserved.", undefined, "blocked");
142
- }
143
- if (options.status) {
144
- const result = await inspectProvisionOperation({ planId: options.status, waitSeconds });
145
- console.log(formatProvisionResult(result));
146
- if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
147
- return;
148
- }
149
- if (options.resume) {
150
- let approved = options.approve === true;
151
- if (!approved && process.stdin.isTTY && process.stdout.isTTY) {
152
- const answer = await prompts({ type: "confirm", name: "approved", message: "Resume the original reviewed run and finish pending steps? This requires explicit approval.", initial: false });
153
- approved = answer.approved === true;
154
- }
155
- const result = await applyProvisionOperation({ planId: options.resume, approve: approved, waitSeconds });
156
- console.log(formatProvisionResult(result));
157
- if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
158
- return;
159
- }
160
- if (!options.resourceGroup) throw new MachineCommandError("invalid-arguments", "New provision previews require --resource-group.", undefined, "blocked");
161
- const locations = await resolveLocations(options);
162
- const baseline = options.baseline === undefined ? undefined : Number(options.baseline);
163
- // Preview in memory: the same Azure checks as the agent workflow, but no saved plan file.
164
- const preview = await planProvisionOperation({
165
- resourceGroup: options.resourceGroup,
166
- subscription: options.subscription,
167
- location: locations.location,
168
- swaLocation: locations.swaLocation,
169
- whatIf: options.whatIf,
170
- adoptExisting: options.adoptExisting,
171
- baseline,
172
- reconcile: options.reconcile,
173
- resumeDeployment: options.resumeDeployment,
174
- }, { persist: false });
175
-
176
- for (const warning of preview.warnings) console.warn(`Warning: ${warning}`);
177
-
178
- if (preview.mode === "offline") {
179
- console.log([
180
- "",
181
- "❌ Azure CLI is unavailable, so the current state of Azure could not be checked. Nothing was changed in Azure.",
182
- " 1. Make sure `az --version` works in this terminal (install: https://aka.ms/azure-cli).",
183
- " 2. Sign in with `az login` (and `az account set --subscription <id>` if needed).",
184
- " 3. Run this command again.",
185
- ].join("\n"));
186
- process.exitCode = 1;
187
- return;
188
- }
210
+ export function createProvisionCommand(): Command {
211
+ return new Command("provision")
212
+ .description("Deploy Azure infrastructure and show resource information and CI/CD setup")
213
+ .option("-g, --resource-group <name>", "Resource group name (required for deployment)")
214
+ .option("--subscription <id>", "Azure subscription ID")
215
+ .option("--location <region>", "Primary location for Functions and Cosmos DB")
216
+ .option("--swa-location <region>", "Static Web App location")
217
+ .option("--what-if", "Check Azure what-if before deployment", false)
218
+ .option("--adopt-existing", "Adopt an existing untagged resource group without deploying main.bicep", false)
219
+ .option("--baseline <version>", "Baseline version for adoption (currently 0)")
220
+ .option("--reconcile", "Explicitly redeploy infra/main.bicep", false)
221
+ .addOption(new Option("--approve", "Compatibility option; invoking provision already requests execution").hideHelp())
222
+ .option("--status <runId>", "Read an existing execution checkpoint and Azure deployment state without writes")
223
+ .option("--resume <runId>", "Continue the original execution without resubmitting attempted deployments")
224
+ .option("--resume-deployment <name>", "Recover an older untracked baseline deployment after verifying its template and parameters")
225
+ .option("--wait-seconds <seconds>", "Bounded state wait, 0-3600 seconds (default: 300; status: 0)")
226
+ .action(async (options: ProvisionCliOptions) => {
227
+ try {
228
+ ensureSwallowKitProject("provision");
229
+ const waitSeconds = options.waitSeconds === undefined ? undefined : Number(options.waitSeconds);
230
+ if (
231
+ (options.resume && options.status) ||
232
+ ((options.resume || options.status) &&
233
+ (options.resourceGroup ||
234
+ options.resumeDeployment ||
235
+ options.reconcile ||
236
+ options.adoptExisting ||
237
+ options.subscription ||
238
+ options.location ||
239
+ options.swaLocation ||
240
+ options.whatIf ||
241
+ options.baseline !== undefined))
242
+ ) {
243
+ throw new MachineCommandError(
244
+ "invalid-arguments",
245
+ "Use --status or --resume with the checkpoint ID alone; its original Azure target and reviewed files are preserved.",
246
+ undefined,
247
+ "blocked"
248
+ );
249
+ }
250
+ if (options.status) {
251
+ const result = await inspectProvisionOperation({
252
+ planId: options.status,
253
+ waitSeconds,
254
+ });
255
+ console.log(formatProvisionResult(result));
256
+ if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
257
+ return;
258
+ }
259
+ if (options.resume) {
260
+ const result = await applyProvisionOperation({
261
+ planId: options.resume,
262
+ approve: true,
263
+ waitSeconds,
264
+ });
265
+ console.log(formatProvisionResult(result));
266
+ await printProvisionSetup(result);
267
+ if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
268
+ return;
269
+ }
270
+ if (!options.resourceGroup) throw new MachineCommandError("invalid-arguments", "Provision requires --resource-group.", undefined, "blocked");
271
+ const locations = await resolveLocations(options);
272
+ const baseline = options.baseline === undefined ? undefined : Number(options.baseline);
273
+ // Preview in memory: the same Azure checks as the agent workflow, but no saved plan file.
274
+ const preview = await planProvisionOperation(
275
+ {
276
+ resourceGroup: options.resourceGroup,
277
+ subscription: options.subscription,
278
+ location: locations.location,
279
+ swaLocation: locations.swaLocation,
280
+ whatIf: options.whatIf,
281
+ adoptExisting: options.adoptExisting,
282
+ baseline,
283
+ reconcile: options.reconcile,
284
+ resumeDeployment: options.resumeDeployment,
285
+ },
286
+ { persist: false }
287
+ );
189
288
 
190
- if (preview.mode === "adoption-required") {
191
- throw new Error('The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest.');
192
- }
289
+ for (const warning of preview.warnings) console.warn(`Warning: ${warning}`);
193
290
 
194
- if (preview.mode === "noop") {
195
- console.log(`Resource group ${preview.resourceGroup} is already up to date. Nothing to do.`);
196
- return;
197
- }
291
+ if (preview.mode === "offline") {
292
+ console.log(
293
+ [
294
+ "",
295
+ "❌ Azure CLI is unavailable, so the current state of Azure could not be checked. Nothing was changed in Azure.",
296
+ " 1. Make sure `az --version` works in this terminal (install: https://aka.ms/azure-cli).",
297
+ " 2. Sign in with `az login` (and `az account set --subscription <id>` if needed).",
298
+ " 3. Run this command again.",
299
+ ].join("\n")
300
+ );
301
+ process.exitCode = 1;
302
+ return;
303
+ }
304
+
305
+ if (preview.mode === "adoption-required") {
306
+ throw new Error(
307
+ "The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest."
308
+ );
309
+ }
310
+
311
+ if (preview.mode === "noop") {
312
+ console.log(`Resource group ${preview.resourceGroup} is already up to date. Nothing to do.`);
313
+ return;
314
+ }
198
315
 
199
- console.log(`\n${describeProvisionAction(preview)}`);
200
- console.log("The following Azure CLI commands will run:");
201
- for (const command of preview.commands) console.log(` ${command}`);
316
+ console.log(`\n${describeProvisionAction(preview)}`);
317
+ console.log("Deploying Azure infrastructure. Azure resources may incur charges.");
202
318
 
203
- let approved = options.approve === true;
204
- if (!approved) {
205
- if (!process.stdin.isTTY || !process.stdout.isTTY) {
206
- throw new Error("Non-interactive provision requires --approve after reviewing the commands above.");
319
+ const result = await executeProvisionPlan(preview, {
320
+ approve: true,
321
+ retryHint: INTERACTIVE_PROVISION_RETRY_HINT,
322
+ waitSeconds,
323
+ });
324
+ console.log(formatProvisionResult(result));
325
+ await printProvisionSetup(result);
326
+ if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
327
+ } catch (error) {
328
+ throw new Error(formatProvisionError(error));
207
329
  }
208
- const answer = await prompts({
209
- type: "confirm",
210
- name: "approved",
211
- message: "Run these Azure commands? This may create billable resources.",
212
- initial: false,
213
- });
214
- approved = answer.approved === true;
215
- }
216
- if (!approved) {
217
- console.log("Provision cancelled. Nothing was changed in Azure.");
218
- return;
219
- }
330
+ });
331
+ }
220
332
 
221
- const result = await executeProvisionPlan(preview, { approve: true, retryHint: INTERACTIVE_PROVISION_RETRY_HINT, waitSeconds });
222
- console.log(formatProvisionResult(result));
223
- if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
224
- });
333
+ export const provisionCommand = createProvisionCommand();
package/src/cli/index.ts CHANGED
@@ -5,7 +5,7 @@ import { readFileSync } from "fs";
5
5
  import * as path from "path";
6
6
  import { Command } from "commander";
7
7
  import { initCommand, devCommand, devSeedsCommand, scaffoldCommand, createModelCommand } from "./commands";
8
- import { provisionCommand } from "./commands/provision";
8
+ import { createProvisionCommand } from "./commands/provision";
9
9
  import { AzureCliDiagnostic, formatAzureDiagnostic } from "../utils/azure-diagnostics";
10
10
  import { createMigrationCommand } from "./commands/create-migration";
11
11
  import { migrationsCommand } from "./commands/migrations";
@@ -140,7 +140,7 @@ export function createProgram(devCommandOverride: Command = devCommand): Command
140
140
  program.addCommand(devCommandOverride);
141
141
  program.addCommand(devSeedsCommand);
142
142
 
143
- program.addCommand(provisionCommand);
143
+ program.addCommand(createProvisionCommand());
144
144
  program.addCommand(migrationsCommand);
145
145
  program.addCommand(createMigrationCommand);
146
146
  program.addCommand(configureMcpCommand);
@@ -224,6 +224,10 @@ required.
224
224
 
225
225
  Never invent or implicitly grant human approval.
226
226
 
227
+ Humans normally invoke `swallowkit provision` directly. Its invocation requests
228
+ execution without an additional confirmation. Agents must still use the
229
+ machine/MCP approval flow and must not switch to normal CLI to bypass it.
230
+
227
231
  ## Model Changes
228
232
 
229
233
  For an existing model change, the normal pattern is:
@@ -24,6 +24,8 @@ Always-on rules:
24
24
  after apply).
25
25
  - Use plan/apply for deterministic generation.
26
26
  - Respect all `requires-human` states and provisioning approval gates.
27
+ - Normal `swallowkit provision` is for humans. Agents must not use it to bypass
28
+ the machine/MCP approval flow.
27
29
  - Provision timeouts/Ctrl+C do not prove Azure failed. Inspect the original
28
30
  execution checkpoint with `machine inspect provision --plan <runId>`; resume
29
31
  `machine apply provision --plan <runId> --approve` only after explicit human
@@ -23,6 +23,8 @@ Key rules:
23
23
  after apply).
24
24
  - Use plan/apply for deterministic generation.
25
25
  - Respect `requires-human` states and other human approval gates.
26
+ - Normal `swallowkit provision` is a human-facing deployment command. Agents must
27
+ use the machine/MCP approval flow, not normal CLI as an approval bypass.
26
28
  - Provision timeouts/Ctrl+C do not prove Azure failed. Read `status`, `outcome`,
27
29
  and `nextActions`; inspect the original run with `machine inspect provision
28
30
  --plan <runId>`, then resume `machine apply provision --plan <runId> --approve`
@@ -237,8 +237,8 @@ export function inspectCapabilities(): CapabilitiesContract {
237
237
  completion: "status complete/outcome succeeded requires Azure Succeeded plus verified migration tags and local ledger completion. Running/Accepted -> in-progress; unreadable/not-found state -> blocked/outcome unknown; bookkeeping interruption after Azure Succeeded -> blocked/outcome partial; Failed/Canceled -> failed with Azure causes.",
238
238
  tracking: "Approved runs persist before Azure writes under .swallowkit/state/provision/. runId equals the original planId and preserves the subscription, RG, deployment ID/correlation, fingerprints and migration state. inspect provision is read-only; apply provision --plan resumes without re-submitting attempted deployments. Ctrl+C/termination may leave Azure running; never cancel/delete without explicit consent.",
239
239
  recovery: "For an older untracked baseline, plan provision --resume-deployment <name> compares the existing ARM template and non-secure parameters to the local Bicep/parameters. It observes that deployment and only tags/records it after Succeeded. Mismatches, unreadable evidence, secure parameters or non-baseline migrations block; do not use reconcile just to repair bookkeeping.",
240
- diagnostics: "Results include bounded/redacted stdout/stderr, omitted-output flags, exit code, signal, failure kind, elapsed time and deployment identity. Deployment output values are not returned. Never print --debug output, keys, tokens or connection strings.",
241
- approval: "Initial apply and every resume require explicit human approval. A passing local command or an ok envelope is not proof of completed Azure provisioning; inspect status, outcome and nextActions.",
240
+ diagnostics: "Machine/MCP results include bounded/redacted stdout/stderr, omitted-output flags, exit code, signal, failure kind, elapsed time and deployment identity, but no deployment outputs. Normal CLI shows named resource information and CI/CD setup guidance after success. Never print --debug output, keys, tokens or connection strings.",
241
+ approval: "Machine/MCP initial apply and every resume require explicit human approval. A human invoking normal provision or provision --resume explicitly requests execution without another confirmation prompt. Agents must not switch to normal CLI to bypass approval. A passing local command or an ok envelope is not proof of completed Azure provisioning; inspect status, outcome and nextActions.",
242
242
  },
243
243
  verifyChecks: {
244
244
  defaultChecks: ["structure", "drift", "typecheck", "backend-build"],
@@ -211,6 +211,8 @@ Goal: bootstrap Azure once, then apply only pending versioned infrastructure mig
211
211
  \`status: "requires-human"\` and \`requiresApproval: true\` by design.
212
212
  - Never pass \`--approve\` to \`apply provision\` unless a human explicitly
213
213
  instructed you to provision in this session.
214
+ - This plan/apply workflow is for agents. Humans normally run \`swallowkit provision\`
215
+ directly; do not switch to that command to bypass the agent approval gate.
214
216
  - Inspect infra locally first — no \`az\` calls are needed for inspection.
215
217
  - Never edit an applied migration. Create a corrective migration instead.
216
218
  - Never use \`--reconcile\` for an ordinary model or resource addition.