@wrongstack/cli 1.0.35 → 1.0.36

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 (48) hide show
  1. package/dist/{acp-T77EAEDB.js → acp-QLU7T5WX.js} +3 -3
  2. package/dist/{auth-M6LXZTDA.js → auth-AED7RW7D.js} +5 -5
  3. package/dist/{automation-MCDFCIMV.js → automation-3E3AUPBF.js} +19 -4
  4. package/dist/{boot-auto-thin-YMAZI3QL.js → boot-auto-thin-AGJ6TAWY.js} +3 -3
  5. package/dist/{chunk-4BX2YDTQ.js → chunk-4JMAWKLA.js} +45 -4
  6. package/dist/{chunk-TWSQTQKR.js → chunk-4R6TVMYA.js} +2 -2
  7. package/dist/{chunk-HHRYIDOW.js → chunk-ACW64W4M.js} +34 -7
  8. package/dist/{chunk-LKFKO4JW.js → chunk-B6EHK772.js} +2 -2
  9. package/dist/{chunk-4UWCMBPG.js → chunk-BJH44J7G.js} +3 -3
  10. package/dist/{chunk-6Z6C6ZHH.js → chunk-GF7LUWQS.js} +4 -10
  11. package/dist/{chunk-TXAFIERF.js → chunk-L5NWFP5R.js} +2 -2
  12. package/dist/{chunk-LDXXMPMS.js → chunk-LPGZ3NUF.js} +20 -20
  13. package/dist/{chunk-GZSKLXYG.js → chunk-NEWXDNF2.js} +8 -8
  14. package/dist/{chunk-6SIUTX75.js → chunk-NOZJIN46.js} +1 -2
  15. package/dist/{chunk-KMU7GF7X.js → chunk-RE73FP2X.js} +2 -2
  16. package/dist/{chunk-LDV4ERNV.js → chunk-RYTSPBNM.js} +2 -2
  17. package/dist/{chunk-WTJDSTYD.js → chunk-T5KR6SNO.js} +2 -2
  18. package/dist/{chunk-ZYACRPLN.js → chunk-ULYAI7CP.js} +6 -3
  19. package/dist/{chunk-HLSHFXTO.js → chunk-WY74MMDB.js} +2 -2
  20. package/dist/{chunk-RWNI5OWT.js → chunk-ZWBI7ORM.js} +2 -2
  21. package/dist/{cli-context-II57EHD2.js → cli-context-I6HJCVCV.js} +76 -68
  22. package/dist/{cli-main-YR2WJCPL.js → cli-main-X7KD7IOC.js} +213 -153
  23. package/dist/{config-transfer-VOIFY7U4.js → config-transfer-YPD7HYXH.js} +6 -4
  24. package/dist/{execution-IBAZ2EIU.js → execution-M7D4KNBB.js} +37 -12
  25. package/dist/{hq-5OIEKB4V.js → hq-BBLGEEUH.js} +3 -3
  26. package/dist/{hq-server-DU3ZH3X7.js → hq-server-5TR6NBGS.js} +2 -2
  27. package/dist/{hq-service-LYZV7EK7.js → hq-service-4Q64WFNT.js} +2 -2
  28. package/dist/{import-claude-code-AYG24RG2.js → import-claude-code-GHIS2F7Y.js} +3 -3
  29. package/dist/index.js +4 -4
  30. package/dist/{mailbox-serve-S536N66F.js → mailbox-serve-DRWJVMYU.js} +2 -2
  31. package/dist/{modeldiag-NEPTLFZW.js → modeldiag-F3LUF4VJ.js} +3 -3
  32. package/dist/plugin-config.d.ts +6 -0
  33. package/dist/{plugin-usage-3TZGROK7.js → plugin-usage-EM752WHG.js} +3 -3
  34. package/dist/{plugins-ITH4SLO6.js → plugins-U6HQFJ7N.js} +4 -4
  35. package/dist/{providers-models-37DUV2GW.js → providers-models-S3S6VXME.js} +3 -3
  36. package/dist/{sage-FFKUOCQL.js → sage-BMRDJCDI.js} +9 -5
  37. package/dist/{sage-sync-ZMTHB477.js → sage-sync-PCWCNEUK.js} +2 -2
  38. package/dist/{sessions-config-VE26SB56.js → sessions-config-RQRQDW5Q.js} +2 -2
  39. package/dist/{short-circuit-flags-EXJBJ5GT.js → short-circuit-flags-IEV3FEOT.js} +2 -2
  40. package/dist/slash-commands/doctor.d.ts +0 -9
  41. package/dist/{standalone-auto-update-VQC4GYCM.js → standalone-auto-update-QUXOZ4B5.js} +13 -2
  42. package/dist/{subcommands-DTKBXLPU.js → subcommands-75IB23LS.js} +2 -2
  43. package/dist/{typesafe-NHC322W5.js → typesafe-KW2XHOG3.js} +2 -2
  44. package/dist/{update-6OEPAEUV.js → update-LHCWAWEZ.js} +2 -2
  45. package/dist/webui-server/credential-watcher.d.ts +3 -1
  46. package/dist/{webui-server-6IC3SLZG.js → webui-server-CUIFA25W.js} +5 -33
  47. package/dist/wiring/management-tools.d.ts +9 -1
  48. package/package.json +31 -31
@@ -14,7 +14,7 @@ import {
14
14
  setSuggestions,
15
15
  spawnHqAgent,
16
16
  terminateHqAgent
17
- } from "./chunk-6SIUTX75.js";
17
+ } from "./chunk-NOZJIN46.js";
18
18
  import {
19
19
  configureSimpleUiRuntimeContext,
20
20
  detectProjectFacts,
@@ -43,7 +43,7 @@ import {
43
43
  } from "./chunk-AT2A7RJZ.js";
44
44
  import {
45
45
  setupPlugins
46
- } from "./chunk-LKFKO4JW.js";
46
+ } from "./chunk-B6EHK772.js";
47
47
  import {
48
48
  fmtTaskResultLine,
49
49
  fmtTok,
@@ -65,11 +65,11 @@ import {
65
65
  persistAutonomySetting,
66
66
  persistConfigSetting,
67
67
  persistTelegramConfig
68
- } from "./chunk-KMU7GF7X.js";
68
+ } from "./chunk-RE73FP2X.js";
69
69
  import {
70
70
  effectiveMcpServers,
71
71
  parseLaunchMcpServers
72
- } from "./chunk-HLSHFXTO.js";
72
+ } from "./chunk-WY74MMDB.js";
73
73
  import {
74
74
  renderDeepHelpToString,
75
75
  renderFocusedHelpToString
@@ -86,7 +86,7 @@ import {
86
86
  import {
87
87
  PLUGIN_AUDIT_ENTRIES,
88
88
  runPluginManagementCommand
89
- } from "./chunk-HHRYIDOW.js";
89
+ } from "./chunk-ACW64W4M.js";
90
90
  import {
91
91
  BEHAVIOR_SECTION_KEYS
92
92
  } from "./chunk-M4G5FO7F.js";
@@ -98,7 +98,7 @@ import {
98
98
  } from "./chunk-CZTXF6HY.js";
99
99
  import {
100
100
  providerCloudConfig
101
- } from "./chunk-TXAFIERF.js";
101
+ } from "./chunk-L5NWFP5R.js";
102
102
  import {
103
103
  LOCAL_LLM_PRESETS,
104
104
  addCustomProvider,
@@ -111,7 +111,7 @@ import {
111
111
  runAuthLocal,
112
112
  runProviderAuthLogin,
113
113
  validateFamily
114
- } from "./chunk-GZSKLXYG.js";
114
+ } from "./chunk-NEWXDNF2.js";
115
115
  import "./chunk-YTEOAWOJ.js";
116
116
  import {
117
117
  buildPickableProviders,
@@ -124,14 +124,14 @@ import {
124
124
  normalizeKeys,
125
125
  nowIso,
126
126
  writeKeysBack
127
- } from "./chunk-ZYACRPLN.js";
127
+ } from "./chunk-ULYAI7CP.js";
128
128
  import {
129
129
  activeProfileConfigPath
130
130
  } from "./chunk-YMXXOOFN.js";
131
131
  import {
132
132
  appendHistory,
133
133
  backupCurrent
134
- } from "./chunk-4BX2YDTQ.js";
134
+ } from "./chunk-4JMAWKLA.js";
135
135
  import {
136
136
  createGracefulShutdown,
137
137
  formatAcpAgentList,
@@ -146,7 +146,7 @@ import {
146
146
  } from "./chunk-NRXWOMK7.js";
147
147
  import {
148
148
  startCliHqConnection
149
- } from "./chunk-4UWCMBPG.js";
149
+ } from "./chunk-BJH44J7G.js";
150
150
  import {
151
151
  buildProviderForId,
152
152
  resolveProviderCfg,
@@ -258,7 +258,7 @@ import { registerJevTools } from "@wrongstack/core/tools";
258
258
 
259
259
  // src/boot/event-wiring.ts
260
260
  import { randomBytes } from "node:crypto";
261
- import { color as color2, writeErr } from "@wrongstack/core/utils";
261
+ import { color as color2, sanitizeTerminalText, writeErr } from "@wrongstack/core/utils";
262
262
 
263
263
  // src/spinner.ts
264
264
  import { color } from "@wrongstack/core/utils";
@@ -414,7 +414,7 @@ function wireEventWiring(deps) {
414
414
  spinner.stop();
415
415
  streamingActive = true;
416
416
  }
417
- renderer.write(p.text);
417
+ renderer.write(sanitizeTerminalText(p.text));
418
418
  });
419
419
  evOn("iteration.completed", (e) => {
420
420
  if (!isCurrentSession(e.sessionId)) return;
@@ -2631,6 +2631,7 @@ import {
2631
2631
  createPluginManagerTool
2632
2632
  } from "@wrongstack/core/tools";
2633
2633
  import { updateJsonObjectFile } from "@wrongstack/core/utils";
2634
+ import { catalogProviderIdFor as catalogProviderIdFor2 } from "@wrongstack/providers";
2634
2635
  function registerCliManagementTools({
2635
2636
  toolRegistry,
2636
2637
  configStore,
@@ -2667,6 +2668,22 @@ function registerCliManagementTools({
2667
2668
  getCurrentTier: () => tierState.currentTier,
2668
2669
  getContextTokens: () => tierState.contextTokens > 0 ? tierState.contextTokens : void 0,
2669
2670
  getTurnsSinceTierSwitch: () => tierState.turns - tierState.switchedAtTurn,
2671
+ ...events?.emit ? {
2672
+ onEffortChanged: (change) => {
2673
+ events.emit?.("leader.effort_changed", change);
2674
+ }
2675
+ } : {},
2676
+ // `leader_effort_set` maps a request onto the levels the leader's model
2677
+ // documents. An alias (`work` → `type: "anthropic"`) reads the catalog entry.
2678
+ ...modelsRegistry ? {
2679
+ getReasoningConfig: async (providerId, modelId) => {
2680
+ const catalogId = catalogProviderIdFor2(
2681
+ providerId,
2682
+ configStore.get().providers?.[providerId]?.type
2683
+ );
2684
+ return (await modelsRegistry.getModel(catalogId, modelId))?.capabilities?.reasoningConfig;
2685
+ }
2686
+ } : {},
2670
2687
  onTierSwitched: (tier) => {
2671
2688
  tierState.currentTier = tier;
2672
2689
  tierState.switchedAtTurn = tierState.turns;
@@ -4376,8 +4393,8 @@ async function setupProviderStatus(input) {
4376
4393
  });
4377
4394
  await withFileLock(auditFile, async () => {
4378
4395
  try {
4379
- const stat6 = await fs3.stat(auditFile);
4380
- if (stat6.size > AUDIT_ROTATE_BYTES) {
4396
+ const stat7 = await fs3.stat(auditFile);
4397
+ if (stat7.size > AUDIT_ROTATE_BYTES) {
4381
4398
  await fs3.rename(auditFile, `${auditFile}.1`);
4382
4399
  }
4383
4400
  } catch (error) {
@@ -4614,6 +4631,7 @@ import {
4614
4631
  import { projectLastRequestTokens } from "@wrongstack/core/types/session-timeline";
4615
4632
  import {
4616
4633
  expectDefined,
4634
+ restoreLeaderEffortOverride,
4617
4635
  sessionScopedPath as sessionScopedPath2,
4618
4636
  toErrorMessage as toErrorMessage5
4619
4637
  } from "@wrongstack/core/utils";
@@ -4849,6 +4867,7 @@ async function setupSession(params) {
4849
4867
  restoreSessionSubagentModelPlan(context, restoredEvents);
4850
4868
  } else seedSessionSubagentPolicy(context);
4851
4869
  restoreRequiredSkillsFromEvents(context, restoredEvents);
4870
+ restoreLeaderEffortOverride(context.meta, restoredEvents);
4852
4871
  restoreSessionPermissionOverrides(context.meta, {
4853
4872
  events: restoredEvents,
4854
4873
  permissionOverrides: restoredPermissionOverrides
@@ -5186,7 +5205,7 @@ async function setupSessionRegistry(deps) {
5186
5205
  }
5187
5206
 
5188
5207
  // src/wiring/session-runtime.ts
5189
- import { catalogProviderIdFor as catalogProviderIdFor2 } from "@wrongstack/providers";
5208
+ import { catalogProviderIdFor as catalogProviderIdFor3 } from "@wrongstack/providers";
5190
5209
 
5191
5210
  // src/session-event-wiring.ts
5192
5211
  import {
@@ -5917,7 +5936,7 @@ function setupSessionRuntime(args) {
5917
5936
  const stats = new SessionStats(events, tokenCounter);
5918
5937
  let activeReasoningConfig;
5919
5938
  const warnedRuntimeMessages = /* @__PURE__ */ new Set();
5920
- const catalogIdOf = (providerId) => catalogProviderIdFor2(providerId, configStore.get().providers?.[providerId]?.type);
5939
+ const catalogIdOf = (providerId) => catalogProviderIdFor3(providerId, configStore.get().providers?.[providerId]?.type);
5921
5940
  const refreshActiveReasoningConfig = async (providerId, modelId) => {
5922
5941
  warnedRuntimeMessages.clear();
5923
5942
  try {
@@ -5995,12 +6014,14 @@ async function setupVectorMemory(args) {
5995
6014
  "transformers-models"
5996
6015
  );
5997
6016
  try {
5998
- vectorMemoryStore = new VectorMemoryStore({
5999
- provider: new TransformersEmbeddingProvider({
6000
- cacheDir: vectorMemoryModelCacheDir
6001
- }),
6002
- projectRoot
6003
- });
6017
+ const provider = new TransformersEmbeddingProvider({ cacheDir: vectorMemoryModelCacheDir });
6018
+ if (!provider.isInstalled()) {
6019
+ logger.debug?.(
6020
+ "vector memory off: optional @huggingface/transformers backend is not installed."
6021
+ );
6022
+ return { memoryStore, vectorMemoryStore: void 0, vectorMemoryModelCacheDir: "" };
6023
+ }
6024
+ vectorMemoryStore = new VectorMemoryStore({ provider, projectRoot });
6004
6025
  } catch (error) {
6005
6026
  const message = error instanceof Error ? error.message : String(error);
6006
6027
  logger.warn(
@@ -11707,12 +11728,12 @@ async function findTranscripts(root) {
11707
11728
  files.filter((file) => isSubagentTranscriptFile(file)).map(async (file) => {
11708
11729
  const fullPath = path16.join(directory, file);
11709
11730
  try {
11710
- const stat6 = await fs4.stat(fullPath);
11731
+ const stat7 = await fs4.stat(fullPath);
11711
11732
  return {
11712
11733
  runId,
11713
11734
  subagentId: file.replace(/\.jsonl$/, ""),
11714
11735
  file: fullPath,
11715
- size: stat6.size
11736
+ size: stat7.size
11716
11737
  };
11717
11738
  } catch {
11718
11739
  return null;
@@ -12676,7 +12697,7 @@ async function ensureStatuslineConfig() {
12676
12697
  let config;
12677
12698
  let sawFile = true;
12678
12699
  try {
12679
- raw = JSON.parse(await fs5.readFile(resolveConfigPath(), "utf8"));
12700
+ raw = JSON.parse((await fs5.readFile(resolveConfigPath(), "utf8")).replace(/^\uFEFF/, ""));
12680
12701
  config = parseDocument(raw);
12681
12702
  } catch (error) {
12682
12703
  if (isRecord(error) && error["code"] === "ENOENT") {
@@ -16434,6 +16455,7 @@ ${menu}` };
16434
16455
  import { spawn as spawn5 } from "node:child_process";
16435
16456
  import { StringDecoder } from "node:string_decoder";
16436
16457
  import { color as color24 } from "@wrongstack/core/utils";
16458
+ import { treeKill } from "@wrongstack/core/utils/tree-kill";
16437
16459
  var DEFAULT_TIMEOUT_MS = 6e4;
16438
16460
  var MAX_OUTPUT_LINES = 500;
16439
16461
  var MAX_STREAM_BYTES = 2 * 1024 * 1024;
@@ -16537,7 +16559,6 @@ function runCommand(cmd, cwd, timeout = DEFAULT_TIMEOUT_MS) {
16537
16559
  try {
16538
16560
  child = spawn5(command, spawnArgs, {
16539
16561
  cwd,
16540
- timeout,
16541
16562
  windowsHide: true,
16542
16563
  ...windowsVerbatimArguments ? { windowsVerbatimArguments } : {}
16543
16564
  });
@@ -16566,10 +16587,18 @@ function runCommand(cmd, cwd, timeout = DEFAULT_TIMEOUT_MS) {
16566
16587
  });
16567
16588
  child.stderr?.on("error", () => {
16568
16589
  });
16590
+ let killedByTimeout = false;
16591
+ const timer = timeout > 0 ? setTimeout(() => {
16592
+ killedByTimeout = true;
16593
+ treeKill(child);
16594
+ child.stdout?.destroy();
16595
+ child.stderr?.destroy();
16596
+ }, timeout) : void 0;
16569
16597
  let settled = false;
16570
16598
  const finish = (result) => {
16571
16599
  if (settled) return;
16572
16600
  settled = true;
16601
+ clearTimeout(timer);
16573
16602
  resolve11(result);
16574
16603
  };
16575
16604
  child.on("error", (err) => {
@@ -16582,7 +16611,7 @@ function runCommand(cmd, cwd, timeout = DEFAULT_TIMEOUT_MS) {
16582
16611
  });
16583
16612
  });
16584
16613
  child.on("close", (code, signal) => {
16585
- const timedOut = child.killed && code !== 0;
16614
+ const timedOut = killedByTimeout && code !== 0;
16586
16615
  const diedBySignal = signal !== null && !timedOut;
16587
16616
  const exitCode = timedOut ? EXIT_TIMEOUT : code ?? (diedBySignal ? foreignSignalExitCode(signal ?? "") : EXIT_SPAWN_FAILED);
16588
16617
  finish({
@@ -16700,7 +16729,7 @@ function buildStatsCommand(opts) {
16700
16729
  // src/slash-commands/doctor.ts
16701
16730
  import * as fs8 from "node:fs/promises";
16702
16731
  import * as path20 from "node:path";
16703
- import { atomicWrite as atomicWrite3, color as color25, toErrorMessage as toErrorMessage14 } from "@wrongstack/core/utils";
16732
+ import { atomicWrite as atomicWrite3, color as color25, toErrorMessage as toErrorMessage14, withFileLock as withFileLock2 } from "@wrongstack/core/utils";
16704
16733
 
16705
16734
  // src/config-doctor.ts
16706
16735
  import { isSecretField } from "@wrongstack/core/security";
@@ -17353,6 +17382,9 @@ async function runSessionsDoctor(opts, rest) {
17353
17382
  lines.push(color25.dim(" Journals were not modified."));
17354
17383
  return { message: lines.join("\n") };
17355
17384
  }
17385
+ function stripBom(raw) {
17386
+ return raw.replace(/^\uFEFF/, "");
17387
+ }
17356
17388
  function buildDoctorCommand(opts) {
17357
17389
  const help = [
17358
17390
  "Usage:",
@@ -17379,7 +17411,7 @@ function buildDoctorCommand(opts) {
17379
17411
  ].join("\n");
17380
17412
  async function loadPluginSchemas() {
17381
17413
  try {
17382
- const { BUILTIN_PLUGIN_FACTORIES } = await import("./plugins-ITH4SLO6.js");
17414
+ const { BUILTIN_PLUGIN_FACTORIES } = await import("./plugins-U6HQFJ7N.js");
17383
17415
  const settled = await Promise.allSettled(BUILTIN_PLUGIN_FACTORIES.map((f) => f()));
17384
17416
  const loaded = [];
17385
17417
  for (const s of settled) {
@@ -17411,7 +17443,7 @@ function buildDoctorCommand(opts) {
17411
17443
  for (const name of candidates) {
17412
17444
  try {
17413
17445
  const raw = await fs8.readFile(path20.join(dir, name), "utf8");
17414
- JSON.parse(raw);
17446
+ JSON.parse(stripBom(raw));
17415
17447
  return { name, raw };
17416
17448
  } catch {
17417
17449
  }
@@ -17462,10 +17494,10 @@ function buildDoctorCommand(opts) {
17462
17494
  let fixableCount = 0;
17463
17495
  const pluginSchemas = await loadPluginSchemas();
17464
17496
  for (const target of targets) {
17465
- let raw;
17466
- try {
17467
- raw = await fs8.readFile(target.file, "utf8");
17468
- } catch {
17497
+ if (!await fs8.stat(target.file).then(
17498
+ () => true,
17499
+ () => false
17500
+ )) {
17469
17501
  if (!target.isProject) {
17470
17502
  lines.push(
17471
17503
  "",
@@ -17475,79 +17507,98 @@ function buildDoctorCommand(opts) {
17475
17507
  }
17476
17508
  continue;
17477
17509
  }
17478
- lines.push("", `${color25.bold(target.label)} ${color25.dim(target.file)}`);
17479
- let parsed;
17480
- try {
17481
- parsed = JSON.parse(raw);
17482
- } catch (err) {
17483
- errorCount++;
17484
- const msg = toErrorMessage14(err);
17485
- lines.push(` ${color25.red("\u2717")} invalid JSON \u2014 ${msg}`);
17486
- if (!applyFixes) {
17487
- fixableCount++;
17510
+ const diagnoseTarget = async () => {
17511
+ let raw;
17512
+ try {
17513
+ raw = await fs8.readFile(target.file, "utf8");
17514
+ } catch {
17515
+ if (!target.isProject) {
17516
+ lines.push(
17517
+ "",
17518
+ `${color25.bold(target.label)} ${color25.dim(target.file)}`,
17519
+ color25.dim(" no config file \u2014 built-in defaults apply")
17520
+ );
17521
+ }
17522
+ return;
17523
+ }
17524
+ lines.push("", `${color25.bold(target.label)} ${color25.dim(target.file)}`);
17525
+ let parsed;
17526
+ try {
17527
+ parsed = JSON.parse(stripBom(raw));
17528
+ } catch (err) {
17529
+ errorCount++;
17530
+ const msg = toErrorMessage14(err);
17531
+ lines.push(` ${color25.red("\u2717")} invalid JSON \u2014 ${msg}`);
17532
+ if (!applyFixes) {
17533
+ fixableCount++;
17534
+ lines.push(
17535
+ color25.dim(" \u2192 run /doctor fix to restore from the newest parsable backup")
17536
+ );
17537
+ return;
17538
+ }
17539
+ const backup = await findParsableBackup(target.file);
17540
+ if (!backup) {
17541
+ lines.push(
17542
+ ` ${color25.red("\u2717")} no parsable backup found \u2014 restore the file manually`
17543
+ );
17544
+ return;
17545
+ }
17546
+ await backupSibling(target.file, raw, "broken.bak");
17547
+ await atomicWrite3(target.file, backup.raw);
17488
17548
  lines.push(
17489
- color25.dim(" \u2192 run /doctor fix to restore from the newest parsable backup")
17549
+ ` ${color25.green("\u2713")} restored from ${backup.name} ${color25.dim("(corrupt file kept as *.broken.bak)")}`
17490
17550
  );
17491
- continue;
17492
- }
17493
- const backup = await findParsableBackup(target.file);
17494
- if (!backup) {
17495
- lines.push(` ${color25.red("\u2717")} no parsable backup found \u2014 restore the file manually`);
17496
- continue;
17497
- }
17498
- await backupSibling(target.file, raw, "broken.bak");
17499
- await atomicWrite3(target.file, backup.raw);
17500
- lines.push(
17501
- ` ${color25.green("\u2713")} restored from ${backup.name} ${color25.dim("(corrupt file kept as *.broken.bak)")}`
17502
- );
17503
- raw = backup.raw;
17504
- parsed = JSON.parse(raw);
17505
- }
17506
- const report = diagnoseConfig(parsed, pluginSchemas);
17507
- if (target.isProject) {
17508
- const safe = filterSafeForProject(parsed);
17509
- for (const key of Object.keys(parsed)) {
17510
- if (!(key in safe)) {
17511
- report.findings.push({
17512
- path: key,
17513
- problem: "not project-safe \u2014 belongs in the active profile config (move it manually)",
17514
- severity: "warning"
17515
- });
17551
+ raw = backup.raw;
17552
+ parsed = JSON.parse(stripBom(raw));
17553
+ }
17554
+ const report = diagnoseConfig(parsed, pluginSchemas);
17555
+ if (target.isProject) {
17556
+ const safe = filterSafeForProject(parsed);
17557
+ for (const key of Object.keys(parsed)) {
17558
+ if (!(key in safe)) {
17559
+ report.findings.push({
17560
+ path: key,
17561
+ problem: "not project-safe \u2014 belongs in the active profile config (move it manually)",
17562
+ severity: "warning"
17563
+ });
17564
+ }
17516
17565
  }
17517
17566
  }
17518
- }
17519
- if (report.findings.length === 0) {
17520
- lines.push(` ${color25.green("\u2713")} healthy`);
17521
- continue;
17522
- }
17523
- const willWrite = applyFixes && report.changed;
17524
- for (const f of report.findings) {
17525
- if (f.severity === "error") errorCount++;
17526
- else warningCount++;
17527
- if (f.fix) fixableCount++;
17528
- lines.push(formatFinding(f, willWrite && !!f.fix));
17529
- }
17530
- if (willWrite) {
17531
- await backupSibling(target.file, raw);
17532
- await atomicWrite3(target.file, JSON.stringify(report.fixed, null, 2));
17533
- if (!target.isProject) {
17534
- try {
17535
- const homeFn = () => path20.dirname(path20.dirname(target.file));
17536
- await appendHistory(
17537
- parsed,
17538
- report.fixed,
17539
- "config doctor auto-fix",
17540
- homeFn,
17541
- target.file
17542
- );
17543
- } catch {
17567
+ if (report.findings.length === 0) {
17568
+ lines.push(` ${color25.green("\u2713")} healthy`);
17569
+ return;
17570
+ }
17571
+ const willWrite = applyFixes && report.changed;
17572
+ for (const f of report.findings) {
17573
+ if (f.severity === "error") errorCount++;
17574
+ else warningCount++;
17575
+ if (f.fix) fixableCount++;
17576
+ lines.push(formatFinding(f, willWrite && !!f.fix));
17577
+ }
17578
+ if (willWrite) {
17579
+ await backupSibling(target.file, raw);
17580
+ await atomicWrite3(target.file, JSON.stringify(report.fixed, null, 2));
17581
+ if (!target.isProject) {
17582
+ try {
17583
+ const homeFn = () => path20.dirname(path20.dirname(target.file));
17584
+ await appendHistory(
17585
+ parsed,
17586
+ report.fixed,
17587
+ "config doctor auto-fix",
17588
+ homeFn,
17589
+ target.file
17590
+ );
17591
+ } catch {
17592
+ }
17593
+ opts.configStore?.update(report.fixed);
17544
17594
  }
17545
- opts.configStore?.update(report.fixed);
17595
+ lines.push(
17596
+ ` ${color25.green("\u2713")} fixes written ${color25.dim("(backup: config.json.last + timestamped .bak)")}`
17597
+ );
17546
17598
  }
17547
- lines.push(
17548
- ` ${color25.green("\u2713")} fixes written ${color25.dim("(backup: config.json.last + timestamped .bak)")}`
17549
- );
17550
- }
17599
+ };
17600
+ if (applyFixes) await withFileLock2(target.file, diagnoseTarget);
17601
+ else await diagnoseTarget();
17551
17602
  }
17552
17603
  lines.push(
17553
17604
  "",
@@ -17564,7 +17615,7 @@ import {
17564
17615
  REASONING_EFFORT_LEVELS
17565
17616
  } from "@wrongstack/core/types";
17566
17617
  import { color as color26, updateJsonObjectFile as updateJsonObjectFile3 } from "@wrongstack/core/utils";
17567
- import { catalogProviderIdFor as catalogProviderIdFor3 } from "@wrongstack/providers";
17618
+ import { catalogProviderIdFor as catalogProviderIdFor4 } from "@wrongstack/providers";
17568
17619
  function buildEffortCommand(opts) {
17569
17620
  const levelsHint = REASONING_EFFORT_LEVELS.join("|");
17570
17621
  const help = [
@@ -17584,7 +17635,7 @@ function buildEffortCommand(opts) {
17584
17635
  if (!registry) return { levels: void 0, supported: void 0 };
17585
17636
  const config = opts.configStore.get();
17586
17637
  try {
17587
- const catalogId = catalogProviderIdFor3(
17638
+ const catalogId = catalogProviderIdFor4(
17588
17639
  config.provider,
17589
17640
  config.providers?.[config.provider]?.type
17590
17641
  );
@@ -20194,8 +20245,8 @@ async function withPreviewIndex(cwd, fn) {
20194
20245
  async function generateCommitMessageHeuristics(git) {
20195
20246
  const statsResult = await git(["diff", "--cached", "--stat"]);
20196
20247
  if (statsResult.code !== 0) return "chore: update";
20197
- const nameResult = await git(["diff", "--cached", "--name-only"]);
20198
- const files = nameResult.stdout.split("\n").filter(Boolean);
20248
+ const nameResult = await git(["diff", "--cached", "--name-only", "-z"]);
20249
+ const files = nameResult.stdout.split("\0").filter(Boolean);
20199
20250
  const commitType = detectCommitType(statsResult.stdout);
20200
20251
  let scope = "";
20201
20252
  if (files.length > 0) {
@@ -27309,16 +27360,14 @@ import {
27309
27360
  clearPlan,
27310
27361
  deriveTodosFromPlanItem,
27311
27362
  emptyPlan,
27312
- emptyTaskFile,
27313
27363
  formatPlan,
27314
27364
  formatPlanTemplates,
27315
27365
  getPlanTemplate,
27316
27366
  listPlanTemplates,
27317
27367
  loadPlan as loadPlan2,
27318
- loadTasks,
27319
27368
  mutatePlan,
27369
+ mutateTasks,
27320
27370
  removePlanItem,
27321
- saveTasks,
27322
27371
  setPlanItemStatus
27323
27372
  } from "@wrongstack/core/storage";
27324
27373
  import { formatTaskList, formatTodosList } from "@wrongstack/core/utils";
@@ -27402,7 +27451,6 @@ function buildPlanCommand(opts) {
27402
27451
  json
27403
27452
  );
27404
27453
  }
27405
- const taskFile = await loadTasks(taskPath) ?? emptyTaskFile(sessionId);
27406
27454
  const now = (/* @__PURE__ */ new Date()).toISOString();
27407
27455
  const task = {
27408
27456
  id: `task_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
@@ -27414,8 +27462,10 @@ function buildPlanCommand(opts) {
27414
27462
  createdAt: now,
27415
27463
  updatedAt: now
27416
27464
  };
27417
- taskFile.tasks.push(task);
27418
- await saveTasks(taskPath, taskFile);
27465
+ const taskFile = await mutateTasks(taskPath, sessionId, (file) => {
27466
+ file.tasks.push(task);
27467
+ return file;
27468
+ });
27419
27469
  return result(
27420
27470
  `Taskified "${item.title}" \u2192 task.
27421
27471
  ${formatTaskList(taskFile.tasks)}`,
@@ -30345,14 +30395,14 @@ function buildLoadCommand(opts) {
30345
30395
  const badge = s.outcome === "completed" ? color56.green("\u2713") : s.outcome === "aborted" ? color56.yellow("\u26A0") : s.outcome === "error" ? color56.red("\u2717") : color56.dim("?");
30346
30396
  parts2.push(badge);
30347
30397
  }
30348
- const stat6 = parts2.join(" ");
30398
+ const stat7 = parts2.join(" ");
30349
30399
  const date = color56.dim(s.startedAt.slice(0, 16).replace("T", " "));
30350
30400
  const archived = s.storageState === "cold" ? color56.dim(" gz") : "";
30351
30401
  const isCurrent = s.id === currentId;
30352
30402
  const marker = isCurrent ? color56.cyan(" (current)") : "";
30353
30403
  const label = s.name ? `${color56.bold(s.id)} ${color56.cyan(`(${s.name})`)}` : color56.bold(s.id);
30354
30404
  return ` ${label}${marker}${archived}
30355
- ${date} ${stat6}
30405
+ ${date} ${stat7}
30356
30406
  ${color56.dim(s.title)}`;
30357
30407
  });
30358
30408
  const msg = [
@@ -30404,14 +30454,14 @@ import {
30404
30454
  REASONING_EFFORT_LEVELS as REASONING_EFFORT_LEVELS2
30405
30455
  } from "@wrongstack/core/types";
30406
30456
  import { color as color57, expectDefined as expectDefined9, toErrorMessage as toErrorMessage31, updateJsonObjectFile as updateJsonObjectFile7 } from "@wrongstack/core/utils";
30407
- import { catalogProviderIdFor as catalogProviderIdFor4 } from "@wrongstack/providers";
30457
+ import { catalogProviderIdFor as catalogProviderIdFor5 } from "@wrongstack/providers";
30408
30458
  async function resolveCatalogModelIds(registry, config, providerIds) {
30409
30459
  const out = /* @__PURE__ */ new Map();
30410
30460
  if (!registry) return out;
30411
30461
  await Promise.all(
30412
30462
  providerIds.map(async (id) => {
30413
30463
  try {
30414
- const catalogId = catalogProviderIdFor4(id, config.providers?.[id]?.type);
30464
+ const catalogId = catalogProviderIdFor5(id, config.providers?.[id]?.type);
30415
30465
  const provider = await registry.getProvider(catalogId);
30416
30466
  if (provider)
30417
30467
  out.set(
@@ -32925,8 +32975,8 @@ async function addProjectCommand(opts, ctx, targetPath, displayName) {
32925
32975
  } catch {
32926
32976
  return { message: color64.red(`Directory not found: ${resolved}`) };
32927
32977
  }
32928
- const stat6 = await fs14.stat(resolved);
32929
- if (!stat6.isDirectory()) {
32978
+ const stat7 = await fs14.stat(resolved);
32979
+ if (!stat7.isDirectory()) {
32930
32980
  return { message: color64.red(`Not a directory: ${resolved}`) };
32931
32981
  }
32932
32982
  const manifest2 = await loadManifest(opts.paths?.globalConfig);
@@ -32995,8 +33045,8 @@ async function switchProjectCommand(opts, ctx, target, displayName) {
32995
33045
  } catch {
32996
33046
  return { message: color64.red(`Directory not found: ${resolved}`) };
32997
33047
  }
32998
- const stat6 = await fs14.stat(resolved);
32999
- if (!stat6.isDirectory()) {
33048
+ const stat7 = await fs14.stat(resolved);
33049
+ if (!stat7.isDirectory()) {
33000
33050
  return { message: color64.red(`Not a directory: ${resolved}`) };
33001
33051
  }
33002
33052
  let cliPath;
@@ -35592,18 +35642,17 @@ function buildSupervisorCommand(opts) {
35592
35642
  import { randomUUID as randomUUID9 } from "node:crypto";
35593
35643
  import {
35594
35644
  addPlanItem as addPlanItem2,
35595
- emptyPlan as emptyPlan2,
35596
35645
  formatPlan as formatPlan2,
35597
- loadPlan as loadPlan3,
35598
- loadTasks as loadTasks2,
35599
- mutateTasks,
35600
- saveCompletedWorkCheckpoint,
35601
- savePlan
35646
+ loadTasks,
35647
+ mutatePlan as mutatePlan2,
35648
+ mutateTasks as mutateTasks2,
35649
+ saveCompletedWorkCheckpoint
35602
35650
  } from "@wrongstack/core/storage";
35603
35651
  import {
35604
35652
  formatTaskList as formatTaskList2,
35605
35653
  formatTaskProgress,
35606
- recordCompletedWorkEvidence
35654
+ recordCompletedWorkEvidence,
35655
+ sanitizeTerminalText as sanitizeTerminalText2
35607
35656
  } from "@wrongstack/core/utils";
35608
35657
  import { todoTool as todoTool2 } from "@wrongstack/tools";
35609
35658
  function findTask(tasks, query) {
@@ -35682,7 +35731,7 @@ function buildTasksCommand(_opts) {
35682
35731
  const { cmd, rest } = parseSubcommand(args);
35683
35732
  const restJoined = rest.join(" ").trim();
35684
35733
  if (cmd === "" || cmd === "show" || cmd === "list") {
35685
- const file = await loadTasks2(taskPath);
35734
+ const file = await loadTasks(taskPath);
35686
35735
  const all = file?.tasks ?? [];
35687
35736
  const filterArg = restJoined.replace(/^--status\s+/, "").trim();
35688
35737
  const statusFilter = filterArg ? validateStatus(filterArg) : null;
@@ -35698,7 +35747,7 @@ function buildTasksCommand(_opts) {
35698
35747
  return { message: formatTaskList2(tasks) };
35699
35748
  }
35700
35749
  if (cmd === "progress" || cmd === "statusline") {
35701
- const file = await loadTasks2(taskPath);
35750
+ const file = await loadTasks(taskPath);
35702
35751
  return { message: formatTaskProgress(file?.tasks ?? []) };
35703
35752
  }
35704
35753
  if (cmd === "planify") {
@@ -35708,16 +35757,18 @@ function buildTasksCommand(_opts) {
35708
35757
  return { message: "Plan storage is not configured for this session." };
35709
35758
  }
35710
35759
  let outputMessage2 = "";
35711
- await mutateTasks(taskPath, sessionId, async (file) => {
35760
+ await mutateTasks2(taskPath, sessionId, async (file) => {
35712
35761
  const found = findTask(file.tasks, restJoined);
35713
35762
  if (!found) {
35714
35763
  outputMessage2 = `No task matched "${restJoined}".`;
35715
35764
  return file;
35716
35765
  }
35717
- const planCfg = await loadPlan3(planPath) ?? emptyPlan2(sessionId);
35718
- const { plan: updated } = addPlanItem2(planCfg, found.item.title, found.item.description);
35719
- await savePlan(planPath, updated);
35720
- outputMessage2 = `Planified "${found.item.title}" \u2192 plan item.
35766
+ const updated = await mutatePlan2(
35767
+ planPath,
35768
+ sessionId,
35769
+ (planCfg) => addPlanItem2(planCfg, found.item.title, found.item.description).plan
35770
+ );
35771
+ outputMessage2 = `Planified "${sanitizeTerminalText2(found.item.title)}" \u2192 plan item.
35721
35772
  ${formatPlan2(updated)}`;
35722
35773
  return file;
35723
35774
  });
@@ -35726,7 +35777,7 @@ ${formatPlan2(updated)}`;
35726
35777
  let outputMessage = "";
35727
35778
  let completedTask = null;
35728
35779
  let todosToReplace = null;
35729
- await mutateTasks(taskPath, sessionId, async (file) => {
35780
+ await mutateTasks2(taskPath, sessionId, async (file) => {
35730
35781
  switch (cmd) {
35731
35782
  case "add": {
35732
35783
  if (!restJoined) {
@@ -35794,7 +35845,7 @@ ${formatTaskProgress(file.tasks)}`;
35794
35845
  (dependencyId) => file.tasks.find((task) => task.id === dependencyId)?.status !== "completed"
35795
35846
  );
35796
35847
  if (unmet.length > 0) {
35797
- outputMessage = `Cannot mark "${found.item.title}" ${nextStatus}; dependencies are unfinished: ${unmet.join(", ")}.`;
35848
+ outputMessage = `Cannot mark "${sanitizeTerminalText2(found.item.title)}" ${nextStatus}; dependencies are unfinished: ${unmet.map((id) => sanitizeTerminalText2(id)).join(", ")}.`;
35798
35849
  return file;
35799
35850
  }
35800
35851
  }
@@ -35803,7 +35854,7 @@ ${formatTaskProgress(file.tasks)}`;
35803
35854
  if (cmd === "done") {
35804
35855
  completedTask = { id: found.item.id, title: found.item.title };
35805
35856
  }
35806
- outputMessage = `Marked ${verbMap[cmd] ?? cmd}: ${found.item.title}
35857
+ outputMessage = `Marked ${verbMap[cmd] ?? cmd}: ${sanitizeTerminalText2(found.item.title)}
35807
35858
 
35808
35859
  ${formatTaskProgress(file.tasks)}`;
35809
35860
  break;
@@ -35829,7 +35880,7 @@ ${formatTaskProgress(file.tasks)}`;
35829
35880
  (dependencyId) => file.tasks.find((task) => task.id === dependencyId)?.status !== "completed"
35830
35881
  );
35831
35882
  if (unmet.length > 0) {
35832
- outputMessage = `Cannot mark "${found.item.title}" ${newStatus}; dependencies are unfinished: ${unmet.join(", ")}.`;
35883
+ outputMessage = `Cannot mark "${sanitizeTerminalText2(found.item.title)}" ${newStatus}; dependencies are unfinished: ${unmet.map((id) => sanitizeTerminalText2(id)).join(", ")}.`;
35833
35884
  return file;
35834
35885
  }
35835
35886
  }
@@ -35838,7 +35889,7 @@ ${formatTaskProgress(file.tasks)}`;
35838
35889
  if (newStatus === "completed") {
35839
35890
  completedTask = { id: found.item.id, title: found.item.title };
35840
35891
  }
35841
- outputMessage = `Status \u2192 ${newStatus}: ${found.item.title}
35892
+ outputMessage = `Status \u2192 ${newStatus}: ${sanitizeTerminalText2(found.item.title)}
35842
35893
 
35843
35894
  ${formatTaskProgress(file.tasks)}`;
35844
35895
  break;
@@ -35867,13 +35918,13 @@ ${formatTaskProgress(file.tasks)}`;
35867
35918
  (dependencyId) => file.tasks.find((task) => task.id === dependencyId)?.status !== "completed"
35868
35919
  );
35869
35920
  if (unmet.length > 0) {
35870
- outputMessage = `Cannot add unfinished dependencies to active task "${found.item.title}": ${unmet.join(", ")}.`;
35921
+ outputMessage = `Cannot add unfinished dependencies to active task "${sanitizeTerminalText2(found.item.title)}": ${unmet.map((id) => sanitizeTerminalText2(id)).join(", ")}.`;
35871
35922
  return file;
35872
35923
  }
35873
35924
  }
35874
35925
  found.item.dependsOn = depIds;
35875
35926
  found.item.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
35876
- outputMessage = `Dependencies set for "${found.item.title}": ${depIds.join(", ")}`;
35927
+ outputMessage = `Dependencies set for "${sanitizeTerminalText2(found.item.title)}": ${depIds.join(", ")}`;
35877
35928
  break;
35878
35929
  }
35879
35930
  case "assign": {
@@ -35890,7 +35941,7 @@ ${formatTaskProgress(file.tasks)}`;
35890
35941
  }
35891
35942
  found.item.assignee = agent;
35892
35943
  found.item.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
35893
- outputMessage = `Assigned to ${agent}: "${found.item.title}"`;
35944
+ outputMessage = `Assigned to ${agent}: "${sanitizeTerminalText2(found.item.title)}"`;
35894
35945
  break;
35895
35946
  }
35896
35947
  case "promote": {
@@ -35907,7 +35958,7 @@ ${formatTaskProgress(file.tasks)}`;
35907
35958
  (dependencyId) => file.tasks.find((task) => task.id === dependencyId)?.status !== "completed"
35908
35959
  );
35909
35960
  if (unmet.length > 0) {
35910
- outputMessage = `Cannot promote "${found.item.title}"; dependencies are unfinished: ${unmet.join(", ")}.`;
35961
+ outputMessage = `Cannot promote "${sanitizeTerminalText2(found.item.title)}"; dependencies are unfinished: ${unmet.map((id) => sanitizeTerminalText2(id)).join(", ")}.`;
35911
35962
  return file;
35912
35963
  }
35913
35964
  found.item.status = "in_progress";
@@ -35933,7 +35984,7 @@ ${formatTaskProgress(file.tasks)}`;
35933
35984
  (t) => t.promotedFromTask !== found.item.id
35934
35985
  );
35935
35986
  todosToReplace = [...existing, ...todos];
35936
- outputMessage = `Promoted to ${todos.length} todo(s): "${found.item.title}"
35987
+ outputMessage = `Promoted to ${todos.length} todo(s): "${sanitizeTerminalText2(found.item.title)}"
35937
35988
 
35938
35989
  ${formatTaskProgress(file.tasks)}`;
35939
35990
  break;
@@ -35946,7 +35997,7 @@ ${formatTaskProgress(file.tasks)}`;
35946
35997
  }
35947
35998
  const unfinished = file.tasks.filter((task) => task.status !== "completed");
35948
35999
  if (unfinished.length > 0) {
35949
- outputMessage = `Cannot clear unfinished tasks: ${unfinished.map((task) => task.id).join(", ")}. Complete them first.`;
36000
+ outputMessage = `Cannot clear unfinished tasks: ${unfinished.map((task) => sanitizeTerminalText2(task.id)).join(", ")}. Complete them first.`;
35950
36001
  return file;
35951
36002
  }
35952
36003
  file.tasks = [];
@@ -37035,7 +37086,7 @@ function createToolAutoThinCommands({
37035
37086
  );
37036
37087
  }
37037
37088
  async function runAutoThinDryRun() {
37038
- const { runBootAutoThin } = await import("./boot-auto-thin-YMAZI3QL.js");
37089
+ const { runBootAutoThin } = await import("./boot-auto-thin-AGJ6TAWY.js");
37039
37090
  const cfg = getAutoThin();
37040
37091
  const result = await runBootAutoThin({
37041
37092
  toolRegistry: opts.toolRegistry,
@@ -37099,7 +37150,7 @@ function createToolAutoThinCommands({
37099
37150
  if (!cfg.enabled) {
37100
37151
  return `${color80.amber("Auto-thinning is off")}. Run ${color80.cyan("/settings autothin on")} first.`;
37101
37152
  }
37102
- const { runBootAutoThin } = await import("./boot-auto-thin-YMAZI3QL.js");
37153
+ const { runBootAutoThin } = await import("./boot-auto-thin-AGJ6TAWY.js");
37103
37154
  const result = await runBootAutoThin({
37104
37155
  toolRegistry: opts.toolRegistry,
37105
37156
  events: opts.events,
@@ -38385,11 +38436,20 @@ async function applyActions(actions, opts) {
38385
38436
  let raw = "{}";
38386
38437
  try {
38387
38438
  raw = await fs16.readFile(file, "utf8");
38388
- } catch {
38439
+ } catch (error) {
38440
+ if (error.code !== "ENOENT") {
38441
+ return {
38442
+ messages: [
38443
+ `${color83.red("\u2717")} cannot read global config (${error.code ?? "error"}) \u2014 nothing was changed`
38444
+ ],
38445
+ changed: false
38446
+ };
38447
+ }
38389
38448
  }
38449
+ const text = raw.replace(/^\uFEFF/, "");
38390
38450
  let parsed;
38391
38451
  try {
38392
- parsed = JSON.parse(raw);
38452
+ parsed = JSON.parse(text);
38393
38453
  } catch {
38394
38454
  return {
38395
38455
  messages: [`${color83.red("\u2717")} global config is not valid JSON \u2014 run /doctor fix first`],
@@ -38437,7 +38497,7 @@ async function applyActions(actions, opts) {
38437
38497
  await atomicWrite5(file, JSON.stringify(parsed, null, 2));
38438
38498
  try {
38439
38499
  const homeFn = () => path31.dirname(path31.dirname(file));
38440
- await appendHistory(JSON.parse(raw), parsed, "tuneup auto-fix", homeFn, file);
38500
+ await appendHistory(JSON.parse(text), parsed, "tuneup auto-fix", homeFn, file);
38441
38501
  } catch {
38442
38502
  }
38443
38503
  opts.configStore.update(parsed);
@@ -38587,8 +38647,8 @@ function buildWorkingDirCommand(_opts) {
38587
38647
  };
38588
38648
  }
38589
38649
  try {
38590
- const stat6 = await fs17.stat(resolved);
38591
- if (!stat6.isDirectory()) {
38650
+ const stat7 = await fs17.stat(resolved);
38651
+ if (!stat7.isDirectory()) {
38592
38652
  return { message: color84.red(`Not a directory: ${resolved}`) };
38593
38653
  }
38594
38654
  } catch {
@@ -42071,7 +42131,7 @@ async function runCliExecution(params) {
42071
42131
  governanceHandle,
42072
42132
  setConfig
42073
42133
  } = params;
42074
- const { execute } = await import("./execution-IBAZ2EIU.js");
42134
+ const { execute } = await import("./execution-M7D4KNBB.js");
42075
42135
  return execute(
42076
42136
  toExecuteDeps({
42077
42137
  core: {
@@ -42486,4 +42546,4 @@ export {
42486
42546
  CLI_VERSION,
42487
42547
  runInteractive
42488
42548
  };
42489
- //# sourceMappingURL=cli-main-YR2WJCPL.js.map
42549
+ //# sourceMappingURL=cli-main-X7KD7IOC.js.map