swallowkit 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/cli/commands/create-migration.d.ts +3 -0
  2. package/dist/cli/commands/create-migration.d.ts.map +1 -0
  3. package/dist/cli/commands/create-migration.js +16 -0
  4. package/dist/cli/commands/create-migration.js.map +1 -0
  5. package/dist/cli/commands/index.d.ts +2 -0
  6. package/dist/cli/commands/index.d.ts.map +1 -1
  7. package/dist/cli/commands/index.js +5 -1
  8. package/dist/cli/commands/index.js.map +1 -1
  9. package/dist/cli/commands/init.d.ts.map +1 -1
  10. package/dist/cli/commands/init.js +2 -0
  11. package/dist/cli/commands/init.js.map +1 -1
  12. package/dist/cli/commands/migrations.d.ts +3 -0
  13. package/dist/cli/commands/migrations.d.ts.map +1 -0
  14. package/dist/cli/commands/migrations.js +22 -0
  15. package/dist/cli/commands/migrations.js.map +1 -0
  16. package/dist/cli/commands/provision.d.ts +1 -1
  17. package/dist/cli/commands/provision.d.ts.map +1 -1
  18. package/dist/cli/commands/provision.js +95 -185
  19. package/dist/cli/commands/provision.js.map +1 -1
  20. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  21. package/dist/cli/commands/scaffold.js +6 -130
  22. package/dist/cli/commands/scaffold.js.map +1 -1
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +4 -0
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/core/operations/migration-generator.d.ts +10 -0
  27. package/dist/core/operations/migration-generator.d.ts.map +1 -0
  28. package/dist/core/operations/migration-generator.js +194 -0
  29. package/dist/core/operations/migration-generator.js.map +1 -0
  30. package/dist/core/operations/provision-operations.d.ts +19 -0
  31. package/dist/core/operations/provision-operations.d.ts.map +1 -1
  32. package/dist/core/operations/provision-operations.js +299 -30
  33. package/dist/core/operations/provision-operations.js.map +1 -1
  34. package/dist/core/project/capabilities.js +1 -1
  35. package/dist/core/project/capabilities.js.map +1 -1
  36. package/dist/core/project/infra.d.ts +4 -0
  37. package/dist/core/project/infra.d.ts.map +1 -1
  38. package/dist/core/project/infra.js +19 -1
  39. package/dist/core/project/infra.js.map +1 -1
  40. package/dist/core/project/migrations.d.ts +53 -0
  41. package/dist/core/project/migrations.d.ts.map +1 -0
  42. package/dist/core/project/migrations.js +262 -0
  43. package/dist/core/project/migrations.js.map +1 -0
  44. package/dist/core/project/workflows.d.ts.map +1 -1
  45. package/dist/core/project/workflows.js +7 -3
  46. package/dist/core/project/workflows.js.map +1 -1
  47. package/dist/machine/index.d.ts.map +1 -1
  48. package/dist/machine/index.js +6 -0
  49. package/dist/machine/index.js.map +1 -1
  50. package/dist/mcp/index.d.ts.map +1 -1
  51. package/dist/mcp/index.js +11 -2
  52. package/dist/mcp/index.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/__tests__/agent-loop-phase34.test.ts +139 -0
  55. package/src/__tests__/init.test.ts +8 -0
  56. package/src/__tests__/migration.test.ts +116 -0
  57. package/src/__tests__/scaffold.test.ts +7 -4
  58. package/src/cli/commands/create-migration.ts +13 -0
  59. package/src/cli/commands/index.ts +2 -0
  60. package/src/cli/commands/init.ts +2 -0
  61. package/src/cli/commands/migrations.ts +20 -0
  62. package/src/cli/commands/provision.ts +115 -184
  63. package/src/cli/commands/scaffold.ts +6 -145
  64. package/src/cli/index.ts +4 -0
  65. package/src/core/operations/migration-generator.ts +188 -0
  66. package/src/core/operations/provision-operations.ts +391 -44
  67. package/src/core/project/capabilities.ts +1 -1
  68. package/src/core/project/infra.ts +23 -1
  69. package/src/core/project/migrations.ts +274 -0
  70. package/src/core/project/workflows.ts +7 -3
  71. package/src/machine/index.ts +7 -1
  72. package/src/mcp/index.ts +8 -2
@@ -44,6 +44,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
44
44
  exports.planProvisionOperation = planProvisionOperation;
45
45
  exports.applyProvisionOperation = applyProvisionOperation;
46
46
  const crypto = __importStar(require("crypto"));
47
+ const fs = __importStar(require("fs"));
47
48
  const path = __importStar(require("path"));
48
49
  const child_process_1 = require("child_process");
49
50
  const errors_1 = require("../../machine/errors");
@@ -51,6 +52,7 @@ const version_1 = require("../../version");
51
52
  const infra_1 = require("../project/infra");
52
53
  const state_1 = require("../project/state");
53
54
  const file_session_1 = require("./file-session");
55
+ const migrations_1 = require("../project/migrations");
54
56
  const RESOURCE_GROUP_PATTERN = /^[A-Za-z0-9._()-]{1,90}$/;
55
57
  const LOCATION_PATTERN = /^[a-z0-9]{3,30}$/;
56
58
  const SUBSCRIPTION_PATTERN = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
@@ -67,22 +69,100 @@ function validateProvisionInputs(options) {
67
69
  }
68
70
  function isAzCliAvailable() {
69
71
  try {
70
- const result = (0, child_process_1.spawnSync)("az", ["--version"], { shell: true, stdio: "ignore", timeout: 30000 });
72
+ const result = (0, child_process_1.spawnSync)("az", ["--version"], { shell: false, stdio: "ignore", timeout: 30000 });
71
73
  return result.status === 0;
72
74
  }
73
75
  catch {
74
76
  return false;
75
77
  }
76
78
  }
77
- function buildProvisionCommands(options, mainBicepPath, parametersPath) {
79
+ function displayCommand(command) {
80
+ return [command.file, ...command.args.map((arg) => /\s/.test(arg) ? JSON.stringify(arg) : arg)].join(" ");
81
+ }
82
+ function runAz(args, timeout = 300000) {
83
+ const result = (0, child_process_1.spawnSync)("az", args, { shell: false, encoding: "utf-8", timeout });
84
+ return {
85
+ status: result.status,
86
+ stdout: result.stdout ?? "",
87
+ stderr: result.stderr ?? "",
88
+ };
89
+ }
90
+ function subscriptionArgs(subscription) {
91
+ return subscription ? ["--subscription", subscription] : [];
92
+ }
93
+ function buildBootstrapCommands(options, mainBicepPath, parametersPath) {
78
94
  const commands = [];
79
- if (options.subscription) {
80
- commands.push(`az account set --subscription ${options.subscription}`);
81
- }
82
- commands.push(`az group create --name ${options.resourceGroup} --location ${options.location}`);
83
- commands.push(`az deployment group create --resource-group ${options.resourceGroup} --template-file "${mainBicepPath}" --parameters "${parametersPath}" --parameters location=${options.location} --parameters swaLocation=${options.swaLocation}`);
95
+ commands.push({ file: "az", args: ["group", "create", "--name", options.resourceGroup, "--location", options.location, ...subscriptionArgs(options.subscription)], kind: "resource-group" });
96
+ commands.push({
97
+ file: "az",
98
+ args: ["deployment", "group", "create", "--name", "swallowkit-baseline", "--resource-group", options.resourceGroup, "--template-file", mainBicepPath, "--parameters", parametersPath, "--parameters", `location=${options.location}`, `swaLocation=${options.swaLocation}`, ...subscriptionArgs(options.subscription)],
99
+ kind: "deployment",
100
+ });
84
101
  return commands;
85
102
  }
103
+ function readProjectName(parametersPath) {
104
+ try {
105
+ const parameters = JSON.parse(fs.readFileSync(parametersPath, "utf-8"));
106
+ const projectName = parameters?.parameters?.projectName?.value;
107
+ if (typeof projectName === "string" && /^[A-Za-z0-9-]+$/.test(projectName))
108
+ return projectName;
109
+ }
110
+ catch {
111
+ // The caller reports the same actionable error for malformed and missing values.
112
+ }
113
+ throw new errors_1.MachineCommandError("invalid-infra-parameters", "infra/main.parameters.json must define parameters.projectName.value.", undefined, "blocked");
114
+ }
115
+ function inspectRemoteGroup(options) {
116
+ const existsResult = runAz(["group", "exists", "--name", options.resourceGroup, ...subscriptionArgs(options.subscription)], 60000);
117
+ if (existsResult.status !== 0) {
118
+ throw new errors_1.MachineCommandError("azure-state-query-failed", `Could not query resource group: ${(existsResult.stderr || existsResult.stdout || "").trim()}`, undefined, "blocked");
119
+ }
120
+ if ((existsResult.stdout || "").trim() !== "true")
121
+ return { exists: false, tags: {} };
122
+ const showResult = runAz(["group", "show", "--name", options.resourceGroup, ...subscriptionArgs(options.subscription), "--query", "{id:id,tags:tags}", "-o", "json"], 60000);
123
+ if (showResult.status !== 0) {
124
+ throw new errors_1.MachineCommandError("azure-state-query-failed", `Could not read resource group tags: ${(showResult.stderr || showResult.stdout || "").trim()}`, undefined, "blocked");
125
+ }
126
+ const parsed = JSON.parse(showResult.stdout || "{}");
127
+ return { exists: true, id: parsed.id, tags: parsed.tags ?? {} };
128
+ }
129
+ function tagCommand(resourceId, key, state, expectedState) {
130
+ return { file: "az", args: ["tag", "update", "--resource-id", resourceId, "--operation", "Merge", "--tags", `${key}=${(0, migrations_1.encodeMigrationState)(state)}`], kind: "tag", expectedState };
131
+ }
132
+ function bootstrapTagCommand(options, key, state) {
133
+ return { file: "az", args: ["group", "update", "--name", options.resourceGroup, "--set", `tags.${key}=${(0, migrations_1.encodeMigrationState)(state)}`, ...subscriptionArgs(options.subscription)], kind: "tag", expectedState: null };
134
+ }
135
+ function runBaseWhatIf(options, mainBicepPath, parametersPath) {
136
+ const result = runAz([
137
+ "deployment", "group", "what-if",
138
+ "--resource-group", options.resourceGroup,
139
+ "--template-file", mainBicepPath,
140
+ "--parameters", parametersPath,
141
+ "--parameters", `location=${options.location}`, `swaLocation=${options.swaLocation}`,
142
+ ...subscriptionArgs(options.subscription),
143
+ "--result-format", "FullResourcePayloads",
144
+ "--no-pretty-print",
145
+ "-o", "json",
146
+ ]);
147
+ if (result.status !== 0) {
148
+ throw new errors_1.MachineCommandError("what-if-failed", `az deployment group what-if failed: ${(result.stderr || result.stdout).trim().slice(0, 2000)}`, undefined, "blocked");
149
+ }
150
+ return result.stdout.trim();
151
+ }
152
+ function assertAdoptionWhatIfIsSafe(whatIfResult) {
153
+ try {
154
+ const parsed = JSON.parse(whatIfResult);
155
+ const destructive = (parsed.changes ?? []).filter((change) => change.changeType === "Create" || change.changeType === "Delete");
156
+ if (destructive.length > 0) {
157
+ throw new errors_1.MachineCommandError("adoption-drift-blocked", "Legacy adoption found resources that would be created or deleted. Move undeployed additions into migrations before adopting this environment.", { changes: destructive }, "blocked");
158
+ }
159
+ }
160
+ catch (error) {
161
+ if (error instanceof errors_1.MachineCommandError)
162
+ throw error;
163
+ throw new errors_1.MachineCommandError("what-if-invalid", "Azure what-if did not return valid JSON for legacy adoption.", undefined, "blocked");
164
+ }
165
+ }
86
166
  async function planProvisionOperation(options) {
87
167
  const projectRoot = process.cwd();
88
168
  validateProvisionInputs(options);
@@ -100,31 +180,153 @@ async function planProvisionOperation(options) {
100
180
  }
101
181
  const mainBicepPath = path.join(projectRoot, "infra", "main.bicep");
102
182
  const parametersPath = path.join(projectRoot, "infra", "main.parameters.json");
103
- const commands = buildProvisionCommands(options, mainBicepPath, parametersPath);
183
+ let mode = "offline";
184
+ let commandSpecs = buildBootstrapCommands(options, mainBicepPath, parametersPath);
185
+ let pendingMigrations = [];
186
+ let migrationTagKey;
187
+ let remoteState;
104
188
  let whatIfResult;
105
- if (options.whatIf) {
106
- if (!azCliAvailable) {
107
- throw new errors_1.MachineCommandError("az-cli-not-found", "Azure CLI is required for --what-if. Install it first: https://aka.ms/azure-cli", undefined, "blocked");
189
+ let manifestAfterApply;
190
+ let baselineDrift = [];
191
+ const manifestPath = path.join(projectRoot, migrations_1.MIGRATION_MANIFEST_PATH);
192
+ const manifest = fs.existsSync(manifestPath) ? (0, migrations_1.loadMigrationManifest)(projectRoot) : null;
193
+ if (manifest) {
194
+ for (const migration of manifest.migrations) {
195
+ const files = [migration.template, migration.parameters].filter((value) => Boolean(value));
196
+ for (const relativePath of files) {
197
+ if (!fs.existsSync(path.join(projectRoot, relativePath))) {
198
+ throw new errors_1.MachineCommandError("migration-file-not-found", `Migration file not found: ${relativePath}`, undefined, "blocked");
199
+ }
200
+ }
108
201
  }
109
- const whatIfArgs = [
110
- "deployment", "group", "what-if",
111
- "--resource-group", options.resourceGroup,
112
- "--template-file", `"${mainBicepPath}"`,
113
- "--parameters", `"${parametersPath}"`,
114
- "--parameters", `location=${options.location}`,
115
- "--parameters", `swaLocation=${options.swaLocation}`,
116
- "--no-pretty-print",
117
- ];
118
- const result = (0, child_process_1.spawnSync)("az", whatIfArgs, { shell: true, encoding: "utf-8", timeout: 300000 });
119
- if (result.status !== 0) {
120
- throw new errors_1.MachineCommandError("what-if-failed", `az deployment group what-if failed: ${(result.stderr || result.stdout || "").trim().slice(0, 2000)}`, undefined, "blocked");
202
+ baselineDrift = (0, migrations_1.findBaselineDrift)(manifest, projectRoot);
203
+ }
204
+ if (azCliAvailable) {
205
+ const remoteGroup = inspectRemoteGroup(options);
206
+ if (!manifest) {
207
+ if (remoteGroup.exists) {
208
+ throw new errors_1.MachineCommandError("migration-manifest-not-found", 'Existing Azure resources require migration tracking. Run "swallowkit migrations init --legacy-baseline" first.', undefined, "blocked");
209
+ }
210
+ throw new errors_1.MachineCommandError("migration-manifest-not-found", "Initialize a migration manifest before the first provision.", undefined, "blocked");
121
211
  }
122
- whatIfResult = (result.stdout || "").trim();
212
+ migrationTagKey = (0, migrations_1.getMigrationTagKey)(manifest.projectId);
213
+ if (!remoteGroup.exists) {
214
+ mode = "bootstrap";
215
+ const baselineFiles = (0, migrations_1.collectLegacyBaselineFiles)(projectRoot);
216
+ manifestAfterApply = {
217
+ ...manifest,
218
+ baseline: { ...manifest.baseline, files: baselineFiles, checksum: (0, migrations_1.computeBaselineChecksum)(baselineFiles) },
219
+ };
220
+ const baselineState = { schemaVersion: 1, version: 0, checksum: manifestAfterApply.baseline.checksum };
221
+ commandSpecs = [...buildBootstrapCommands(options, mainBicepPath, parametersPath), bootstrapTagCommand(options, migrationTagKey, baselineState)];
222
+ if (options.whatIf)
223
+ warnings.push("what-if-skipped: Resource-group-scope what-if requires the target resource group to exist.");
224
+ }
225
+ else {
226
+ if (baselineDrift.length > 0 && !options.reconcile) {
227
+ throw new errors_1.MachineCommandError("baseline-drift", "Baseline infrastructure files changed after migration tracking was initialized. Move additive changes into a migration or use --reconcile for an intentional full deployment.", { changedFiles: baselineDrift }, "blocked");
228
+ }
229
+ const tagValue = remoteGroup.tags[migrationTagKey];
230
+ remoteState = tagValue ? (0, migrations_1.decodeMigrationState)(tagValue) : null;
231
+ if (!remoteState) {
232
+ mode = "adoption-required";
233
+ commandSpecs = [];
234
+ if (options.reconcile && !manifest.baseline.legacy) {
235
+ whatIfResult = runBaseWhatIf(options, mainBicepPath, parametersPath);
236
+ warnings.push("Recovering an interrupted bootstrap by reconciling the baseline before recording migration state.");
237
+ mode = "reconcile";
238
+ const baselineFiles = (0, migrations_1.collectLegacyBaselineFiles)(projectRoot);
239
+ manifestAfterApply = {
240
+ ...manifest,
241
+ baseline: { ...manifest.baseline, files: baselineFiles, checksum: (0, migrations_1.computeBaselineChecksum)(baselineFiles) },
242
+ };
243
+ commandSpecs = buildBootstrapCommands(options, mainBicepPath, parametersPath).filter((command) => command.kind !== "resource-group");
244
+ commandSpecs.push(tagCommand(remoteGroup.id, migrationTagKey, { schemaVersion: 1, version: 0, checksum: manifestAfterApply.baseline.checksum }, null));
245
+ }
246
+ else if (options.adoptExisting) {
247
+ if (options.baseline !== 0) {
248
+ throw new errors_1.MachineCommandError("invalid-baseline", "Legacy adoption currently supports only --baseline 0.", undefined, "blocked");
249
+ }
250
+ if (!options.whatIf) {
251
+ throw new errors_1.MachineCommandError("adoption-what-if-required", "Legacy adoption requires --what-if before the baseline tag can be recorded.", undefined, "requires-human");
252
+ }
253
+ if (!manifest.baseline.legacy) {
254
+ throw new errors_1.MachineCommandError("invalid-baseline", "--adopt-existing requires a manifest created with migrations init --legacy-baseline.", undefined, "blocked");
255
+ }
256
+ whatIfResult = runBaseWhatIf(options, mainBicepPath, parametersPath);
257
+ assertAdoptionWhatIfIsSafe(whatIfResult);
258
+ warnings.push("Legacy adoption records the current environment as baseline 0 without deploying main.bicep. Review all Modify results before approval.");
259
+ mode = "adopt";
260
+ commandSpecs = [tagCommand(remoteGroup.id, migrationTagKey, { schemaVersion: 1, version: 0, checksum: manifest.baseline.checksum }, null)];
261
+ }
262
+ }
263
+ else if (options.reconcile) {
264
+ (0, migrations_1.selectPendingMigrations)(manifest, remoteState, projectRoot);
265
+ mode = "reconcile";
266
+ warnings.push("Reconcile redeploys infra/main.bicep and may reset template-managed properties such as Function App settings.");
267
+ whatIfResult = runBaseWhatIf(options, mainBicepPath, parametersPath);
268
+ commandSpecs = buildBootstrapCommands(options, mainBicepPath, parametersPath).filter((command) => command.kind !== "resource-group");
269
+ const baselineFiles = (0, migrations_1.collectLegacyBaselineFiles)(projectRoot);
270
+ manifestAfterApply = {
271
+ ...manifest,
272
+ baseline: { ...manifest.baseline, files: baselineFiles, checksum: (0, migrations_1.computeBaselineChecksum)(baselineFiles) },
273
+ };
274
+ const reconciledState = {
275
+ schemaVersion: 1,
276
+ version: remoteState.version,
277
+ checksum: (0, migrations_1.checksumAtVersion)(manifestAfterApply, remoteState.version, projectRoot),
278
+ };
279
+ commandSpecs.push(tagCommand(remoteGroup.id, migrationTagKey, reconciledState, remoteState));
280
+ }
281
+ else {
282
+ pendingMigrations = (0, migrations_1.selectPendingMigrations)(manifest, remoteState, projectRoot);
283
+ mode = pendingMigrations.length > 0 ? "migrate" : "noop";
284
+ commandSpecs = [];
285
+ const projectName = pendingMigrations.length > 0 ? readProjectName(parametersPath) : "";
286
+ let expectedState = remoteState;
287
+ for (const migration of pendingMigrations) {
288
+ commandSpecs.push({
289
+ file: "az",
290
+ args: [
291
+ "deployment", "group", "create",
292
+ "--name", "swallowkit-migration",
293
+ "--resource-group", options.resourceGroup,
294
+ "--template-file", path.join(projectRoot, migration.template),
295
+ ...(migration.parameters ? ["--parameters", path.join(projectRoot, migration.parameters)] : []),
296
+ "--parameters", `projectName=${projectName}`, `location=${options.location}`,
297
+ ...subscriptionArgs(options.subscription),
298
+ ],
299
+ kind: "migration",
300
+ expectedState,
301
+ });
302
+ const nextState = { schemaVersion: 1, version: migration.version, checksum: migration.cumulativeChecksum };
303
+ commandSpecs.push(tagCommand(remoteGroup.id, migrationTagKey, nextState, expectedState));
304
+ expectedState = nextState;
305
+ }
306
+ }
307
+ }
308
+ }
309
+ else if (options.whatIf || options.adoptExisting || options.reconcile) {
310
+ throw new errors_1.MachineCommandError("az-cli-not-found", "Azure CLI is required for --what-if, --adopt-existing, and --reconcile.", undefined, "blocked");
123
311
  }
124
312
  const fingerprints = {
125
313
  "infra/main.bicep": (0, file_session_1.hashFileIfExists)(mainBicepPath),
126
314
  "infra/main.parameters.json": (0, file_session_1.hashFileIfExists)(parametersPath),
127
315
  };
316
+ const baselineSnapshotChecksum = manifest
317
+ ? (0, migrations_1.computeBaselineChecksum)((0, migrations_1.collectLegacyBaselineFiles)(projectRoot))
318
+ : undefined;
319
+ if (manifest) {
320
+ fingerprints[migrations_1.MIGRATION_MANIFEST_PATH] = (0, file_session_1.hashFileIfExists)(manifestPath);
321
+ for (const baselineFile of manifest.baseline.files) {
322
+ fingerprints[baselineFile.path] = (0, file_session_1.hashFileIfExists)(path.join(projectRoot, baselineFile.path));
323
+ }
324
+ for (const migration of manifest.migrations) {
325
+ fingerprints[migration.template] = (0, file_session_1.hashFileIfExists)(path.join(projectRoot, migration.template));
326
+ if (migration.parameters)
327
+ fingerprints[migration.parameters] = (0, file_session_1.hashFileIfExists)(path.join(projectRoot, migration.parameters));
328
+ }
329
+ }
128
330
  const planId = crypto
129
331
  .createHash("sha256")
130
332
  .update(JSON.stringify({
@@ -132,6 +334,10 @@ async function planProvisionOperation(options) {
132
334
  location: options.location,
133
335
  swaLocation: options.swaLocation,
134
336
  subscription: options.subscription,
337
+ mode,
338
+ remoteState,
339
+ pendingMigrations: pendingMigrations.map((migration) => ({ version: migration.version, checksum: migration.checksum })),
340
+ baselineSnapshotChecksum,
135
341
  fingerprints,
136
342
  }))
137
343
  .digest("hex")
@@ -146,16 +352,53 @@ async function planProvisionOperation(options) {
146
352
  createdAt: new Date().toISOString(),
147
353
  swallowkitVersion: (0, version_1.getSwallowKitVersion)(),
148
354
  azCliAvailable,
355
+ mode,
149
356
  infra,
150
- commands,
357
+ commands: commandSpecs.map(displayCommand),
358
+ commandSpecs,
359
+ ...(migrationTagKey ? { migrationTagKey } : {}),
360
+ ...(remoteState !== undefined ? { remoteState } : {}),
361
+ pendingMigrations,
362
+ ...(manifestAfterApply ? { manifestAfterApply } : {}),
151
363
  ...(whatIfResult !== undefined ? { whatIfResult } : {}),
152
364
  warnings,
153
365
  requiresApproval: true,
154
366
  fingerprints,
367
+ ...(baselineSnapshotChecksum ? { baselineSnapshotChecksum } : {}),
155
368
  };
156
369
  (0, state_1.savePlanState)(plan, projectRoot);
157
370
  return plan;
158
371
  }
372
+ function statesEqual(left, right) {
373
+ return left?.version === right?.version && left?.checksum === right?.checksum;
374
+ }
375
+ function readRemoteMigrationState(plan) {
376
+ const group = inspectRemoteGroup(plan);
377
+ if (!group.exists || !plan.migrationTagKey)
378
+ return { group, state: null };
379
+ const tagValue = group.tags[plan.migrationTagKey];
380
+ return { group, state: tagValue ? (0, migrations_1.decodeMigrationState)(tagValue) : null };
381
+ }
382
+ function assertPlanRemoteState(plan, expected) {
383
+ if (plan.mode === "offline")
384
+ return;
385
+ const current = readRemoteMigrationState(plan);
386
+ if (plan.mode === "bootstrap") {
387
+ if (current.group.exists) {
388
+ throw new errors_1.MachineCommandError("stale-azure-state", "The resource group was created after this plan. Re-run plan provision.", undefined, "blocked");
389
+ }
390
+ return;
391
+ }
392
+ if (!current.group.exists || !statesEqual(current.state, expected)) {
393
+ throw new errors_1.MachineCommandError("stale-azure-state", "Azure migration state changed after this plan was created. Re-run plan provision.", { expected, actual: current.state, resourceGroupExists: current.group.exists }, "blocked");
394
+ }
395
+ }
396
+ function assertTagExpectedState(plan, expected) {
397
+ const current = readRemoteMigrationState(plan);
398
+ if (!current.group.exists || !statesEqual(current.state, expected)) {
399
+ throw new errors_1.MachineCommandError("stale-azure-state", "Azure migration state changed before its tag could be updated. Re-run plan provision.", { expected, actual: current.state, resourceGroupExists: current.group.exists }, "blocked");
400
+ }
401
+ }
159
402
  async function applyProvisionOperation(options) {
160
403
  const projectRoot = process.cwd();
161
404
  const plan = (0, state_1.loadPlanState)(options.planId, projectRoot);
@@ -172,22 +415,45 @@ async function applyProvisionOperation(options) {
172
415
  if (changedFiles.length > 0) {
173
416
  throw new errors_1.MachineCommandError("stale-plan", `Plan "${options.planId}" is stale: ${changedFiles.join(", ")} changed after the plan was created. Re-run "plan provision".`, { planId: options.planId, changedFiles }, "blocked");
174
417
  }
418
+ if (plan.baselineSnapshotChecksum) {
419
+ const currentBaselineChecksum = (0, migrations_1.computeBaselineChecksum)((0, migrations_1.collectLegacyBaselineFiles)(projectRoot));
420
+ if (currentBaselineChecksum !== plan.baselineSnapshotChecksum) {
421
+ throw new errors_1.MachineCommandError("stale-plan", `Plan "${options.planId}" is stale: baseline infrastructure inventory changed after the plan was created.`, { planId: options.planId }, "blocked");
422
+ }
423
+ }
175
424
  if (!options.approve) {
176
425
  throw new errors_1.MachineCommandError("approval-required", "Provisioning creates billable Azure resources and always requires human approval. Review plan.commands and re-run with --approve.", { planId: plan.planId, commands: plan.commands }, "requires-human");
177
426
  }
427
+ if (!plan.mode || !plan.commandSpecs) {
428
+ throw new errors_1.MachineCommandError("incompatible-plan", "This provision plan was created by an older SwallowKit version. Re-run plan provision.", undefined, "blocked");
429
+ }
430
+ if (plan.mode === "offline") {
431
+ throw new errors_1.MachineCommandError("online-plan-required", "Provision apply requires a fresh plan created while Azure CLI is available and authenticated.", undefined, "blocked");
432
+ }
433
+ if (plan.mode === "adoption-required") {
434
+ throw new errors_1.MachineCommandError("adoption-required", 'This existing resource group has no SwallowKit migration state. Re-plan with --adopt-existing --baseline 0 --what-if.', { planId: plan.planId }, "requires-human");
435
+ }
178
436
  if (!isAzCliAvailable()) {
179
437
  throw new errors_1.MachineCommandError("az-cli-not-found", "Azure CLI is not installed. Install it first: https://aka.ms/azure-cli", undefined, "blocked");
180
438
  }
181
439
  const executedCommands = [];
182
440
  const warnings = [...plan.warnings];
183
441
  let deploymentOutputs;
184
- for (const command of plan.commands) {
185
- const result = (0, child_process_1.spawnSync)(command, [], { shell: true, encoding: "utf-8" });
186
- executedCommands.push(command);
442
+ assertPlanRemoteState(plan, plan.remoteState);
443
+ for (const command of plan.commandSpecs) {
444
+ if (command.kind === "migration") {
445
+ assertPlanRemoteState(plan, command.expectedState);
446
+ }
447
+ if (command.kind === "tag") {
448
+ assertTagExpectedState(plan, command.expectedState);
449
+ }
450
+ const result = runAz(command.args);
451
+ const commandText = displayCommand(command);
452
+ executedCommands.push(commandText);
187
453
  if (result.status !== 0) {
188
- throw new errors_1.MachineCommandError("provision-failed", `Command failed: ${command}\n${(result.stderr || result.stdout || "").trim().slice(0, 4000)}`, { executedCommands }, "failed");
454
+ throw new errors_1.MachineCommandError("provision-failed", `Command failed: ${commandText}\n${(result.stderr || result.stdout).trim().slice(0, 4000)}`, { executedCommands }, "failed");
189
455
  }
190
- if (command.includes("deployment group create")) {
456
+ if (command.kind === "deployment" || command.kind === "migration") {
191
457
  try {
192
458
  const deployment = JSON.parse(result.stdout || "{}");
193
459
  deploymentOutputs = deployment.properties?.outputs;
@@ -197,6 +463,9 @@ async function applyProvisionOperation(options) {
197
463
  }
198
464
  }
199
465
  }
466
+ if (plan.manifestAfterApply) {
467
+ (0, migrations_1.replaceMigrationManifest)(plan.manifestAfterApply, projectRoot);
468
+ }
200
469
  (0, state_1.deletePlanState)(plan.planId, projectRoot);
201
470
  return {
202
471
  planId: plan.planId,
@@ -1 +1 @@
1
- {"version":3,"file":"provision-operations.js","sourceRoot":"","sources":["../../../src/core/operations/provision-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision-operations.js","sourceRoot":"","sources":["../../../src/core/operations/provision-operations.ts"],"names":[],"mappings":"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"}
@@ -120,7 +120,7 @@ function inspectCapabilities() {
120
120
  "inspect project | entities | routes | artifacts | boundaries | infra | drift | capabilities",
121
121
  "validate project",
122
122
  "generate model <names...> | generate scaffold <model>",
123
- "plan scaffold <models...> | plan auth --provider <p> [--scheme <name>] [--allowed-providers <csv>] | plan provision -g <rg> --location <loc> --swa-location <loc>",
123
+ "plan scaffold <models...> | plan auth --provider <p> [--scheme <name>] [--allowed-providers <csv>] | plan provision -g <rg> --location <loc> --swa-location <loc> [--adopt-existing --baseline 0 --what-if] [--reconcile --what-if]",
124
124
  "apply scaffold [models...] --plan <id> [--approve] | apply auth --plan <id> [--approve] | apply provision --plan <id> --approve",
125
125
  "verify project [--checks <ids>] [--compact]",
126
126
  "explain failure [--check <id>]",
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAsDH,kDAkIC;AAtLD,2CAAqD;AAoDrD,SAAgB,mBAAmB;IACjC,OAAO;QACL,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,IAAA,8BAAoB,GAAE;QACzC,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,WAAW,EACT,gQAAgQ;gBAClQ,MAAM,EACJ,2LAA2L;aAC9L;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,uEAAuE;gBACpF,MAAM,EAAE,oCAAoC;aAC7C;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,mJAAmJ;gBACrJ,MAAM,EAAE,2CAA2C;gBACnD,KAAK,EAAE,CAAC,2EAA2E,CAAC;aACrF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,qPAAqP;gBACvP,MAAM,EACJ,mNAAmN;aACtN;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,gJAAgJ;gBAClJ,MAAM,EACJ,8IAA8I;aACjJ;SACF;QACD,cAAc,EAAE;YACd,eAAe,EAAE;gBACf,kMAAkM;gBAClM,kGAAkG;gBAClG,gJAAgJ;gBAChJ,+HAA+H;gBAC/H,oHAAoH;gBACpH,sFAAsF;aACvF;YACD,KAAK,EAAE;gBACL,yIAAyI;gBACzI,sGAAsG;gBACtG,gHAAgH;aACjH;YACD,SAAS,EAAE;gBACT;oBACE,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,0FAA0F;oBACvG,cAAc,EAAE,CAAC,kDAAkD,EAAE,sDAAsD,CAAC;iBAC7H;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,8FAA8F;oBAC3G,cAAc,EAAE;wBACd,6IAA6I;qBAC9I;iBACF;gBACD;oBACE,QAAQ,EAAE,gBAAgB;oBAC1B,WAAW,EAAE,+GAA+G;oBAC5H,cAAc,EAAE;wBACd,mFAAmF;wBACnF,sEAAsE;qBACvE;iBACF;gBACD;oBACE,QAAQ,EAAE,MAAM;oBAChB,WAAW,EAAE,wCAAwC;oBACrD,cAAc,EAAE,EAAE;iBACnB;aACF;YACD,qBAAqB,EAAE;gBACrB,SAAS,EACP,kMAAkM;gBACpM,aAAa,EACX,kUAAkU;gBACpU,eAAe,EAAE,IAAI;aACtB;SACF;QACD,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,yFAAyF;gBACzF,yCAAyC;aAC1C;YACD,aAAa,EAAE;gBACb,+JAA+J;aAChK;YACD,QAAQ,EAAE;gBACR,oRAAoR;aACrR;SACF;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,uGAAuG;YACpH,SAAS,EACP,uPAAuP;SAC1P;QACD,OAAO,EAAE;YACP,eAAe,EAAE,oGAAoG;YACrH,UAAU,EAAE,iHAAiH;YAC7H,KAAK,EAAE,CAAC,yFAAyF,CAAC;SACnG;QACD,eAAe,EAAE;YACf,6FAA6F;YAC7F,kBAAkB;YAClB,uDAAuD;YACvD,mKAAmK;YACnK,iIAAiI;YACjI,6CAA6C;YAC7C,gCAAgC;SACjC;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;YAClD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;YACtC,YAAY,EAAE,wEAAwE;SACvF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAsDH,kDAkIC;AAtLD,2CAAqD;AAoDrD,SAAgB,mBAAmB;IACjC,OAAO;QACL,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,IAAA,8BAAoB,GAAE;QACzC,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,WAAW,EACT,gQAAgQ;gBAClQ,MAAM,EACJ,2LAA2L;aAC9L;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,uEAAuE;gBACpF,MAAM,EAAE,oCAAoC;aAC7C;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,mJAAmJ;gBACrJ,MAAM,EAAE,2CAA2C;gBACnD,KAAK,EAAE,CAAC,2EAA2E,CAAC;aACrF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,qPAAqP;gBACvP,MAAM,EACJ,mNAAmN;aACtN;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,gJAAgJ;gBAClJ,MAAM,EACJ,8IAA8I;aACjJ;SACF;QACD,cAAc,EAAE;YACd,eAAe,EAAE;gBACf,kMAAkM;gBAClM,kGAAkG;gBAClG,gJAAgJ;gBAChJ,+HAA+H;gBAC/H,oHAAoH;gBACpH,sFAAsF;aACvF;YACD,KAAK,EAAE;gBACL,yIAAyI;gBACzI,sGAAsG;gBACtG,gHAAgH;aACjH;YACD,SAAS,EAAE;gBACT;oBACE,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,0FAA0F;oBACvG,cAAc,EAAE,CAAC,kDAAkD,EAAE,sDAAsD,CAAC;iBAC7H;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,8FAA8F;oBAC3G,cAAc,EAAE;wBACd,6IAA6I;qBAC9I;iBACF;gBACD;oBACE,QAAQ,EAAE,gBAAgB;oBAC1B,WAAW,EAAE,+GAA+G;oBAC5H,cAAc,EAAE;wBACd,mFAAmF;wBACnF,sEAAsE;qBACvE;iBACF;gBACD;oBACE,QAAQ,EAAE,MAAM;oBAChB,WAAW,EAAE,wCAAwC;oBACrD,cAAc,EAAE,EAAE;iBACnB;aACF;YACD,qBAAqB,EAAE;gBACrB,SAAS,EACP,kMAAkM;gBACpM,aAAa,EACX,kUAAkU;gBACpU,eAAe,EAAE,IAAI;aACtB;SACF;QACD,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,yFAAyF;gBACzF,yCAAyC;aAC1C;YACD,aAAa,EAAE;gBACb,+JAA+J;aAChK;YACD,QAAQ,EAAE;gBACR,oRAAoR;aACrR;SACF;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,uGAAuG;YACpH,SAAS,EACP,uPAAuP;SAC1P;QACD,OAAO,EAAE;YACP,eAAe,EAAE,oGAAoG;YACrH,UAAU,EAAE,iHAAiH;YAC7H,KAAK,EAAE,CAAC,yFAAyF,CAAC;SACnG;QACD,eAAe,EAAE;YACf,6FAA6F;YAC7F,kBAAkB;YAClB,uDAAuD;YACvD,qOAAqO;YACrO,iIAAiI;YACjI,6CAA6C;YAC7C,gCAAgC;SACjC;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC;YAClD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;YACtC,YAAY,EAAE,wEAAwE;SACvF;KACF,CAAC;AACJ,CAAC"}
@@ -39,6 +39,10 @@ export interface InfraInspection {
39
39
  };
40
40
  moduleFiles: string[];
41
41
  containers: InfraContainer[];
42
+ migrations: {
43
+ manifestExists: boolean;
44
+ versions: number[];
45
+ };
42
46
  boundary: {
43
47
  zone: "shared";
44
48
  note: string;
@@ -1 +1 @@
1
- {"version":3,"file":"infra.d.ts","sourceRoot":"","sources":["../../../src/core/project/infra.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE;QACT,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,OAAO,EAAE,WAAW,EAAE,CAAC;QACvB,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAqFD,wBAAgB,YAAY,CAAC,WAAW,GAAE,MAAsB,GAAG,eAAe,CAwDjF"}
1
+ {"version":3,"file":"infra.d.ts","sourceRoot":"","sources":["../../../src/core/project/infra.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE;QACT,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,OAAO,EAAE,WAAW,EAAE,CAAC;QACvB,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE;QACV,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAqFD,wBAAgB,YAAY,CAAC,WAAW,GAAE,MAAsB,GAAG,eAAe,CA0EjF"}
@@ -142,6 +142,20 @@ function inspectInfra(projectRoot = process.cwd()) {
142
142
  }
143
143
  return { file: `infra/containers/${f}`, wired };
144
144
  });
145
+ const migrationManifestPath = path.join(infraDir, "migrations", "manifest.json");
146
+ let migrationVersions = [];
147
+ if (fs.existsSync(migrationManifestPath)) {
148
+ try {
149
+ const manifest = JSON.parse(fs.readFileSync(migrationManifestPath, "utf-8"));
150
+ migrationVersions = (manifest.migrations ?? [])
151
+ .map((migration) => migration.version)
152
+ .filter((version) => Number.isSafeInteger(version))
153
+ .sort((left, right) => left - right);
154
+ }
155
+ catch {
156
+ warnings.push("migration-manifest-invalid: infra/migrations/manifest.json is not valid JSON.");
157
+ }
158
+ }
145
159
  return {
146
160
  hasInfraDirectory,
147
161
  mainBicep: {
@@ -157,9 +171,13 @@ function inspectInfra(projectRoot = process.cwd()) {
157
171
  },
158
172
  moduleFiles,
159
173
  containers,
174
+ migrations: {
175
+ manifestExists: fs.existsSync(migrationManifestPath),
176
+ versions: migrationVersions,
177
+ },
160
178
  boundary: {
161
179
  zone: "shared",
162
- note: "infra/main.bicep is an extension point: scaffold appends container modules deterministically; humans may edit other sections. infra/containers/*.bicep are managed (regenerated by scaffold).",
180
+ note: "infra/main.bicep and modules form the baseline. New model containers and custom resources belong in immutable infra/migrations entries.",
163
181
  },
164
182
  warnings,
165
183
  };
@@ -1 +1 @@
1
- {"version":3,"file":"infra.js","sourceRoot":"","sources":["../../../src/core/project/infra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infra.js","sourceRoot":"","sources":["../../../src/core/project/infra.ts"],"names":[],"mappings":"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"}