agentera 3.0.0-dev.0 → 3.0.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,484 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { isFile, pathExists, resolvePath } from "../core/paths.js";
5
+ import { resolveSourceRoot } from "../core/sourceRoot.js";
6
+ import { loadRegistry } from "../registries/runtimeAdapterRegistry.js";
7
+ import { codexCopiedHooksAreAgenteraOnly, codexPluginHooksEnabled, retireCodexCopiedHookTrust, } from "../setup/codex.js";
8
+ import { hasManagedMarker, opencodeCommandTemplate, opencodeConfigDir, } from "../setup/doctor.js";
9
+ import { resolveUpdateChannel } from "./channels.js";
10
+ const PYTHON_MANAGED_PATTERNS = [
11
+ /hooks\/validate_artifact\.py/,
12
+ /\buv run\b/,
13
+ /\buvx\b/,
14
+ /scripts\/agentera/,
15
+ /\/app\/scripts\/agentera/,
16
+ /cursor_session_start\.py/,
17
+ /cursor_pre_tool_use\.py/,
18
+ /cursor_session_stop\.py/,
19
+ ];
20
+ const OPENCODE_COMMAND_NAMES = ["agentera"];
21
+ const OPENCODE_SKILL_NAMES = ["agentera", "hej"];
22
+ const CURSOR_AGENT_MARKER = "<!-- agentera: managed -->";
23
+ export function resolveNpxHookCommands(ctx) {
24
+ const env = ctx.env ?? process.env;
25
+ const home = ctx.home ?? env.HOME ?? os.homedir();
26
+ const sourceRoot = ctx.sourceRoot ?? resolveSourceRoot(env);
27
+ const channel = resolveUpdateChannel({
28
+ channel: ctx.channel ?? null,
29
+ env,
30
+ home,
31
+ sourceRoot,
32
+ });
33
+ const cliEntrypoint = channel.updateCommand.trim();
34
+ return {
35
+ cliEntrypoint,
36
+ validate: `${cliEntrypoint} hook validate-artifact`,
37
+ cursorSessionStart: `${cliEntrypoint} hook cursor-session-start`,
38
+ cursorSessionStop: `${cliEntrypoint} hook session-stop`,
39
+ cursorPreTool: `${cliEntrypoint} hook cursor-pre-tool-use`,
40
+ };
41
+ }
42
+ function textUsesPythonManagedEntrypoint(text) {
43
+ if (/AGENTERA_HOME\s*=/.test(text)) {
44
+ return true;
45
+ }
46
+ return PYTHON_MANAGED_PATTERNS.some((pattern) => pattern.test(text));
47
+ }
48
+ export function rewireRuntimeText(text, runtime, commands) {
49
+ let next = text;
50
+ next = next.replace(/uv run\s+\\?"?\$\{AGENTERA_HOME\}\/hooks\/validate_artifact\.py\\?"?/g, commands.validate);
51
+ next = next.replace(/uv run\s+\\?"?\$\{PLUGIN_ROOT\}\/hooks\/validate_artifact\.py\\?"?/g, commands.validate);
52
+ if (next.includes("validate_artifact.py")) {
53
+ next = next.replace(/["']?[^"'\n]*hooks\/validate_artifact\.py[^"'\n]*["']?/g, `"${commands.validate}"`);
54
+ }
55
+ next = next.replace(/["']?[^"'\n]*cursor_session_start\.py[^"'\n]*["']?/g, `"${commands.cursorSessionStart}"`);
56
+ next = next.replace(/["']?[^"'\n]*cursor_pre_tool_use\.py[^"'\n]*["']?/g, `"${commands.cursorPreTool}"`);
57
+ next = next.replace(/["']?[^"'\n]*cursor_session_stop\.py[^"'\n]*["']?/g, `"${commands.cursorSessionStop}"`);
58
+ next = next.replace(/["']?[^"'\n]*\/app\/scripts\/agentera[^"'\n]*["']?/g, `"${commands.cliEntrypoint}"`);
59
+ next = next.replace(/["']?[^"'\n]*scripts\/agentera[^"'\n]*["']?/g, `"${commands.cliEntrypoint}"`);
60
+ next = next.replace(/npx -y agentera hook /g, `${commands.cliEntrypoint} hook `);
61
+ next = next.replace(/npx -y agentera@latest hook /g, `${commands.cliEntrypoint} hook `);
62
+ if (runtime === "codex") {
63
+ next = next.replace(/AGENTERA_HOME\s*=\s*"[^"]*"/g, "");
64
+ next = next.replace(/AGENTERA_HOME\s*=\s*'[^']*'/g, "");
65
+ next = next.replace(/set\s*=\s*\{\s*,/g, "set = {");
66
+ next = next.replace(/,\s*,/g, ",");
67
+ next = next.replace(/,\s*\}/g, " }");
68
+ next = next.replace(/set\s*=\s*\{\s*\}/g, "set = { }");
69
+ }
70
+ return next;
71
+ }
72
+ function needsChannelNpxRewire(text, cliEntrypoint) {
73
+ if (/npx -y agentera hook /.test(text) && !text.includes(cliEntrypoint)) {
74
+ return true;
75
+ }
76
+ if (/npx -y agentera@latest hook /.test(text) && !text.includes(cliEntrypoint)) {
77
+ return true;
78
+ }
79
+ return false;
80
+ }
81
+ function pushRewireItem(items, runtime, filePath, commands) {
82
+ const text = fs.readFileSync(filePath, "utf8");
83
+ const needsBare = needsChannelNpxRewire(text, commands.cliEntrypoint);
84
+ if (!textUsesPythonManagedEntrypoint(text) && !needsBare) {
85
+ if (text.includes(commands.cliEntrypoint)) {
86
+ items.push({
87
+ status: "noop",
88
+ action: "rewire-runtime",
89
+ runtime,
90
+ source: filePath,
91
+ message: "runtime config already references npm self-contained entrypoint",
92
+ });
93
+ }
94
+ return;
95
+ }
96
+ const newText = rewireRuntimeText(text, runtime, commands);
97
+ const status = newText === text ? "blocked" : "pending";
98
+ items.push({
99
+ status,
100
+ action: "rewire-runtime",
101
+ runtime,
102
+ source: filePath,
103
+ target: filePath,
104
+ newText,
105
+ message: status === "pending"
106
+ ? "will rewire runtime config from Python managed app-home to npm self-contained entrypoint"
107
+ : "runtime config uses Python managed paths but could not be rewritten safely",
108
+ });
109
+ }
110
+ function hasCursorManagedAgentMarker(text) {
111
+ return text.includes(CURSOR_AGENT_MARKER);
112
+ }
113
+ function copyIfChanged(source, target) {
114
+ if (!isFile(source)) {
115
+ return false;
116
+ }
117
+ if (isFile(target)) {
118
+ const before = fs.readFileSync(source);
119
+ const after = fs.readFileSync(target);
120
+ if (before.equals(after)) {
121
+ return false;
122
+ }
123
+ }
124
+ fs.mkdirSync(path.dirname(target), { recursive: true });
125
+ fs.copyFileSync(source, target);
126
+ return true;
127
+ }
128
+ function planCodexItems(items, home, commands, force) {
129
+ const hooksPath = path.join(home, ".codex", "hooks", "codex-hooks.json");
130
+ const configPath = path.join(home, ".codex", "config.toml");
131
+ if (isFile(hooksPath)) {
132
+ pushRewireItem(items, "codex", hooksPath, commands);
133
+ }
134
+ if (isFile(configPath)) {
135
+ pushRewireItem(items, "codex", configPath, commands);
136
+ let configText = fs.readFileSync(configPath, "utf8");
137
+ if (isFile(hooksPath)) {
138
+ configText = fs.readFileSync(configPath, "utf8");
139
+ }
140
+ const pluginHooks = codexPluginHooksEnabled(configText);
141
+ if (pluginHooks && isFile(hooksPath)) {
142
+ let hooksText;
143
+ try {
144
+ hooksText = fs.readFileSync(hooksPath, "utf8");
145
+ }
146
+ catch {
147
+ hooksText = "";
148
+ }
149
+ if (codexCopiedHooksAreAgenteraOnly(hooksText)) {
150
+ items.push({
151
+ status: "pending",
152
+ action: "retire-hooks",
153
+ runtime: "codex",
154
+ source: hooksPath,
155
+ target: configPath,
156
+ message: "will remove Agentera-owned copied Codex hooks because plugin hooks are enabled",
157
+ });
158
+ }
159
+ else if (hooksText.includes("validate_artifact") || hooksText.includes("hook validate-artifact")) {
160
+ items.push({
161
+ status: force ? "pending" : "blocked",
162
+ action: "retire-hooks",
163
+ runtime: "codex",
164
+ source: hooksPath,
165
+ target: configPath,
166
+ message: "plugin hooks are enabled, but copied hook target needs manual review before retirement",
167
+ });
168
+ }
169
+ }
170
+ }
171
+ }
172
+ function planCursorItems(items, home, project, sourceRoot, commands) {
173
+ for (const hooksPath of [
174
+ path.join(project, ".cursor", "hooks.json"),
175
+ path.join(home, ".cursor", "hooks.json"),
176
+ ]) {
177
+ if (isFile(hooksPath)) {
178
+ pushRewireItem(items, "cursor", hooksPath, commands);
179
+ }
180
+ }
181
+ const agentsSource = path.join(sourceRoot, ".cursor", "agents");
182
+ const pluginSource = path.join(sourceRoot, ".cursor-plugin", "plugin.json");
183
+ for (const root of [project]) {
184
+ const agentsDir = path.join(root, ".cursor", "agents");
185
+ if (isFile(pluginSource) && root === project) {
186
+ const pluginTarget = path.join(root, ".cursor-plugin", "plugin.json");
187
+ if (!isFile(pluginTarget)) {
188
+ items.push({
189
+ status: "pending",
190
+ action: "copy-plugin",
191
+ runtime: "cursor",
192
+ source: pluginSource,
193
+ target: pluginTarget,
194
+ message: "will copy managed Cursor plugin manifest",
195
+ });
196
+ }
197
+ else if (!fs.readFileSync(pluginSource).equals(fs.readFileSync(pluginTarget))) {
198
+ items.push({
199
+ status: "pending",
200
+ action: "copy-plugin",
201
+ runtime: "cursor",
202
+ source: pluginSource,
203
+ target: pluginTarget,
204
+ message: "will refresh managed Cursor plugin manifest",
205
+ });
206
+ }
207
+ }
208
+ if (pathExists(agentsSource)) {
209
+ for (const entry of fs.readdirSync(agentsSource)) {
210
+ if (!entry.endsWith(".md"))
211
+ continue;
212
+ const src = path.join(agentsSource, entry);
213
+ const dst = path.join(agentsDir, entry);
214
+ if (!isFile(dst)) {
215
+ items.push({
216
+ status: "pending",
217
+ action: "copy-agent",
218
+ runtime: "cursor",
219
+ source: src,
220
+ target: dst,
221
+ message: "will copy managed Cursor capability agent",
222
+ });
223
+ continue;
224
+ }
225
+ const dstText = fs.readFileSync(dst, "utf8");
226
+ const srcText = fs.readFileSync(src, "utf8");
227
+ if (hasCursorManagedAgentMarker(dstText) && dstText !== srcText) {
228
+ items.push({
229
+ status: "pending",
230
+ action: "copy-agent",
231
+ runtime: "cursor",
232
+ source: src,
233
+ target: dst,
234
+ message: "will refresh stale managed Cursor capability agent",
235
+ });
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ function planOpencodeItems(items, home, sourceRoot, env, commands) {
242
+ const configDir = opencodeConfigDir(home, env);
243
+ const pluginSource = path.join(sourceRoot, ".opencode", "plugins", "agentera.js");
244
+ const pluginTarget = path.join(configDir, "plugins", "agentera.js");
245
+ if (isFile(pluginSource)) {
246
+ const needsCopy = !isFile(pluginTarget) ||
247
+ textUsesPythonManagedEntrypoint(fs.readFileSync(pluginTarget, "utf8")) ||
248
+ needsChannelNpxRewire(fs.readFileSync(pluginTarget, "utf8"), commands.cliEntrypoint);
249
+ items.push({
250
+ status: needsCopy ? "pending" : "noop",
251
+ action: "copy-plugin",
252
+ runtime: "opencode",
253
+ source: pluginSource,
254
+ target: pluginTarget,
255
+ message: needsCopy
256
+ ? "will copy current Agentera OpenCode plugin to native plugin path"
257
+ : "OpenCode plugin already current at native plugin path",
258
+ });
259
+ }
260
+ const commandsSourceDir = path.join(sourceRoot, ".opencode", "commands");
261
+ const commandsTargetDir = path.join(configDir, "commands");
262
+ for (const name of OPENCODE_COMMAND_NAMES) {
263
+ const src = path.join(commandsSourceDir, `${name}.md`);
264
+ const expected = opencodeCommandTemplate(name);
265
+ const dst = path.join(commandsTargetDir, `${name}.md`);
266
+ if (isFile(src)) {
267
+ const needsCopy = !isFile(dst) || (hasManagedMarker(fs.readFileSync(dst, "utf8")) && fs.readFileSync(dst, "utf8") !== expected);
268
+ items.push({
269
+ status: needsCopy ? "pending" : "noop",
270
+ action: "copy-command",
271
+ runtime: "opencode",
272
+ source: src,
273
+ target: dst,
274
+ message: needsCopy ? "will sync managed OpenCode command" : "OpenCode managed command already current",
275
+ });
276
+ }
277
+ }
278
+ const agentsSourceDir = path.join(sourceRoot, ".opencode", "agents");
279
+ const agentsTargetDir = path.join(configDir, "agents");
280
+ if (pathExists(agentsSourceDir)) {
281
+ for (const entry of fs.readdirSync(agentsSourceDir)) {
282
+ if (!entry.endsWith(".md"))
283
+ continue;
284
+ const src = path.join(agentsSourceDir, entry);
285
+ const dst = path.join(agentsTargetDir, entry);
286
+ const needsCopy = !isFile(dst) || !fs.readFileSync(src).equals(fs.readFileSync(dst));
287
+ items.push({
288
+ status: needsCopy ? "pending" : "noop",
289
+ action: "copy-agent",
290
+ runtime: "opencode",
291
+ source: src,
292
+ target: dst,
293
+ message: needsCopy ? "will copy managed OpenCode capability agent" : "OpenCode agent already current",
294
+ });
295
+ }
296
+ }
297
+ const skillsSourceRoot = path.join(sourceRoot, "skills");
298
+ const skillsTargetDir = path.join(configDir, "skills");
299
+ for (const name of OPENCODE_SKILL_NAMES) {
300
+ const src = path.join(skillsSourceRoot, name);
301
+ const dst = path.join(skillsTargetDir, name);
302
+ if (!isFile(path.join(src, "SKILL.md"))) {
303
+ continue;
304
+ }
305
+ if (!pathExists(dst)) {
306
+ items.push({
307
+ status: "pending",
308
+ action: "link-skill",
309
+ runtime: "opencode",
310
+ source: src,
311
+ target: dst,
312
+ message: "will create OpenCode skill link",
313
+ });
314
+ continue;
315
+ }
316
+ try {
317
+ const linkTarget = fs.readlinkSync(dst);
318
+ if (!linkTarget.includes("agentera") && path.basename(linkTarget) !== name) {
319
+ items.push({
320
+ status: "blocked",
321
+ action: "link-skill",
322
+ runtime: "opencode",
323
+ source: src,
324
+ target: dst,
325
+ message: "OpenCode skill path is user-owned; manual review required",
326
+ });
327
+ }
328
+ else if (path.resolve(path.dirname(dst), linkTarget) !== path.resolve(src)) {
329
+ items.push({
330
+ status: "pending",
331
+ action: "link-skill",
332
+ runtime: "opencode",
333
+ source: src,
334
+ target: dst,
335
+ message: "will update stale Agentera-managed OpenCode skill link",
336
+ });
337
+ }
338
+ }
339
+ catch {
340
+ items.push({
341
+ status: "pending",
342
+ action: "link-skill",
343
+ runtime: "opencode",
344
+ source: src,
345
+ target: dst,
346
+ message: "will replace non-symlink OpenCode skill path with managed link",
347
+ });
348
+ }
349
+ }
350
+ }
351
+ function walkJsonHookFiles(dir) {
352
+ if (!pathExists(dir)) {
353
+ return [];
354
+ }
355
+ const out = [];
356
+ const walk = (current) => {
357
+ for (const entry of fs.readdirSync(current)) {
358
+ const full = path.join(current, entry);
359
+ const st = fs.statSync(full);
360
+ if (st.isDirectory()) {
361
+ walk(full);
362
+ }
363
+ else if (entry.endsWith(".json")) {
364
+ out.push(full);
365
+ }
366
+ }
367
+ };
368
+ walk(dir);
369
+ return out;
370
+ }
371
+ function planCopilotItems(items, project, commands) {
372
+ const hooksDir = path.join(project, ".github", "hooks");
373
+ for (const hookFile of walkJsonHookFiles(hooksDir)) {
374
+ pushRewireItem(items, "copilot", hookFile, commands);
375
+ }
376
+ if (!items.some((item) => item.runtime === "copilot")) {
377
+ items.push({
378
+ status: "noop",
379
+ action: "configure",
380
+ runtime: "copilot",
381
+ message: "Copilot uses per-invocation AGENTERA_HOME; Agentera does not write shell startup files",
382
+ });
383
+ }
384
+ }
385
+ function planEnvRuntimeNoops(items, runtime, message) {
386
+ if (!items.some((item) => item.runtime === runtime)) {
387
+ items.push({ status: "noop", action: "configure", runtime, message });
388
+ }
389
+ }
390
+ export function planRuntimeMigrationItems(ctx) {
391
+ const home = resolvePath(ctx.home);
392
+ const project = resolvePath(ctx.project);
393
+ const env = ctx.env ?? { ...process.env, HOME: home };
394
+ const sourceRoot = resolvePath(ctx.sourceRoot ?? resolveSourceRoot(env));
395
+ const commands = resolveNpxHookCommands({ ...ctx, home, env, sourceRoot });
396
+ const items = [];
397
+ planCodexItems(items, home, commands, ctx.force);
398
+ planCursorItems(items, home, project, sourceRoot, commands);
399
+ planOpencodeItems(items, home, sourceRoot, env, commands);
400
+ planCopilotItems(items, project, commands);
401
+ planEnvRuntimeNoops(items, "claude", "Claude Code plugin installs expose the app home without local config writes; use --update-packages to refresh marketplace surfaces");
402
+ planEnvRuntimeNoops(items, "cursor-agent", "Cursor Agent CLI inherits workspace Cursor hooks; no separate managed install surface");
403
+ void loadRegistry();
404
+ return items;
405
+ }
406
+ export function applyRuntimeMigrationItem(item, commands) {
407
+ if (item.status !== "pending") {
408
+ return;
409
+ }
410
+ try {
411
+ switch (item.action) {
412
+ case "rewire-runtime": {
413
+ if (!item.target || item.newText === undefined) {
414
+ item.status = "failed";
415
+ item.message = "rewire-runtime missing target or newText";
416
+ return;
417
+ }
418
+ fs.writeFileSync(item.target, item.newText, "utf8");
419
+ item.status = "applied";
420
+ item.message = "runtime config rewired to npm self-contained entrypoint";
421
+ break;
422
+ }
423
+ case "copy-plugin":
424
+ case "copy-agent":
425
+ case "copy-command": {
426
+ if (!item.source || !item.target) {
427
+ item.status = "failed";
428
+ item.message = `${item.action} missing source or target`;
429
+ return;
430
+ }
431
+ copyIfChanged(item.source, item.target);
432
+ item.status = "applied";
433
+ item.message = `applied ${item.action}`;
434
+ break;
435
+ }
436
+ case "link-skill": {
437
+ if (!item.source || !item.target) {
438
+ item.status = "failed";
439
+ item.message = "link-skill missing source or target";
440
+ return;
441
+ }
442
+ fs.mkdirSync(path.dirname(item.target), { recursive: true });
443
+ if (pathExists(item.target)) {
444
+ fs.rmSync(item.target, { recursive: true, force: true });
445
+ }
446
+ fs.symlinkSync(item.source, item.target);
447
+ item.status = "applied";
448
+ item.message = "OpenCode skill link created";
449
+ break;
450
+ }
451
+ case "retire-hooks": {
452
+ if (!item.source) {
453
+ item.status = "failed";
454
+ item.message = "retire-hooks missing source";
455
+ return;
456
+ }
457
+ if (isFile(item.source)) {
458
+ fs.rmSync(item.source, { force: true });
459
+ }
460
+ if (item.target && isFile(item.target)) {
461
+ const configText = fs.readFileSync(item.target, "utf8");
462
+ const next = retireCodexCopiedHookTrust(configText, item.source);
463
+ fs.writeFileSync(item.target, next, "utf8");
464
+ }
465
+ item.status = "applied";
466
+ item.message = "retired Agentera-owned copied Codex hooks";
467
+ break;
468
+ }
469
+ default:
470
+ break;
471
+ }
472
+ }
473
+ catch (exc) {
474
+ item.status = "failed";
475
+ item.message = `${item.action} failed: ${exc.message}`;
476
+ }
477
+ }
478
+ export function applyRuntimeMigrationItems(items, ctx) {
479
+ const commands = resolveNpxHookCommands(ctx);
480
+ for (const item of items) {
481
+ applyRuntimeMigrationItem(item, commands);
482
+ }
483
+ }
484
+ //# sourceMappingURL=runtimeMigration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeMigration.js","sourceRoot":"","sources":["../../src/upgrade/runtimeMigration.ts"],"names":[],"mappings":"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"}
@@ -22,10 +22,6 @@ export function buildUpgradeCommands(args) {
22
22
  previewParts.push("--channel", args.channel.channel);
23
23
  applyParts.push("--channel", args.channel.channel);
24
24
  }
25
- if (args.targetMajor === 3) {
26
- previewParts.push("--target-major", "3");
27
- applyParts.push("--target-major", "3");
28
- }
29
25
  if (args.only && args.only.length > 0) {
30
26
  for (const phase of args.only) {
31
27
  previewParts.push("--only", phase);
@@ -1 +1 @@
1
- {"version":3,"file":"upgradeCommands.js","sourceRoot":"","sources":["../../src/upgrade/upgradeCommands.ts"],"names":[],"mappings":"AAaA,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,IAA8B;IAIjE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACtC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACzC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO;QACL,aAAa,EAAE,WAAW,CAAC,YAAY,CAAC;QACxC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"upgradeCommands.js","sourceRoot":"","sources":["../../src/upgrade/upgradeCommands.ts"],"names":[],"mappings":"AAYA,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,IAA8B;IAIjE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACtC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO;QACL,aAAa,EAAE,WAAW,CAAC,YAAY,CAAC;QACxC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC;KACtC,CAAC;AACJ,CAAC"}