@chatcode/chatcode-cli 3.0.2-rc.2 → 3.0.2-rc.4

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 (46) hide show
  1. package/README.i18n.yaml +4 -4
  2. package/README.md +7 -1
  3. package/README.zh.md +7 -1
  4. package/lib/bin.js +11 -67
  5. package/lib/{command-errors-CIYn1nnW.js → command-errors-uo0j5Wi8.js} +12 -12
  6. package/lib/{command-trees-8o99Bws7.js → command-trees-D4SZ2sGk.js} +2 -2
  7. package/lib/{component-identity-CnmIKHEF.js → component-identity-C02l24iT.js} +3 -3
  8. package/lib/{dist-DxjlHHph.js → dist-w_sIm4VD.js} +203 -197
  9. package/lib/{dump-config-BSTrhTT_.js → dump-config-CauO75nE.js} +1 -1
  10. package/lib/dump-config-CijLv_kn.js +2 -0
  11. package/lib/{dump-config-schema-Cz4A13GB.js → dump-config-schema-CObLWWaW.js} +2 -2
  12. package/lib/{extension-events-DciGPKJa.js → extension-events-D6DbIdnG.js} +20 -20
  13. package/lib/{home-migration-DLaSvmfn.js → home-migration-BjDmRwBB.js} +23 -4
  14. package/lib/{host-access-CmD27uhQ.js → host-access-BdqThvw7.js} +1 -1
  15. package/lib/{keymap-CFChEJ2W.js → keymap-DFoC50J1.js} +2 -2
  16. package/lib/{plugin-jvd9PCVt.js → plugin-B37GhsdI.js} +458 -495
  17. package/lib/{plugin-DYHtreEd.js → plugin-Cn-hyYY8.js} +1 -1
  18. package/lib/{profile-boot-Blq7uqhx.js → profile-boot-SJGbpLgN.js} +13 -1
  19. package/lib/profile-boot.js +1 -1
  20. package/lib/{scenes-ai_8sHDs.js → scenes-Dk6DYkO9.js} +3 -3
  21. package/lib/{settings-sections-QQ1-2lhL.js → settings-sections-D4Ozrymr.js} +3 -3
  22. package/lib/startup-diagnostics-C_hRCp-q.js +91 -0
  23. package/lib/{themes-DTzG_9I_.js → themes-DDI83rNa.js} +12 -12
  24. package/lib/tui-compat-command-trees.js +1 -1
  25. package/lib/tui-compat-extensions.js +3 -3
  26. package/lib/tui-compat-plugin-host.js +5 -5
  27. package/lib/tui-compat-scenes.js +1 -1
  28. package/lib/tui-compat-settings-sections.js +1 -1
  29. package/lib/tui-compat-working-activity.js +1 -1
  30. package/lib/tui-compat-workspaces.js +1 -1
  31. package/lib/tui-compat.js +5 -5
  32. package/lib/{tuiDisplayPrefs-BCHRRcfe.js → tuiDisplayPrefs-CJ9aBVkB.js} +1 -1
  33. package/lib/types/home-migration.d.ts +8 -0
  34. package/lib/types/startup-diagnostics.d.ts +13 -0
  35. package/lib/{workspaces-CznCgVHv.js → workspaces-Dt_J35P0.js} +2 -2
  36. package/package.json +25 -25
  37. package/runtime/manifest.json +1 -1
  38. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
  39. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
  40. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
  41. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +3 -8
  42. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/types/client/HeaderAction.d.ts +1 -1
  43. package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/cordis.patch.yml +2 -1
  44. package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/ptc.patch.yml +2 -1
  45. package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/standard.patch.yml +2 -1
  46. package/lib/dump-config-DBW7YLx-.js +0 -2
@@ -1,14 +1,14 @@
1
1
  import { i as __toESM, n as __exportAll, r as __require, t as __commonJSMin } from "./rolldown-runtime-2rV9d50f.js";
2
- import { a as getPageMarginSetting, c as normalizeScrollGutter, d as parsePageMarginSpec, f as resolvePageMargin, i as formatContextUsage, l as normalizeStatusBar, n as DEFAULT_STATUS_BAR, o as isPageMarginMode, p as subscribePageMargin, r as applyPageMargin, s as normalizePageMargin, u as normalizeToolBackground } from "./tuiDisplayPrefs-BCHRRcfe.js";
3
- import { a as draftComboConflicts, d as setKeymapOverrides, f as isMod, h as modLabel, l as parseComboDraft, m as isPlainReturnInput, n as actionMatches, o as effectiveComboString, p as isPlainReturn, t as SHORTCUT_ACTIONS } from "./keymap-CFChEJ2W.js";
4
- import { c as withHostRootCapability } from "./host-access-CmD27uhQ.js";
5
- import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-CznCgVHv.js";
6
- import { n as getHostCommandTrees } from "./command-trees-8o99Bws7.js";
7
- import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-QQ1-2lhL.js";
8
- import { n as getHostSceneRuntime } from "./scenes-ai_8sHDs.js";
9
- import { A as tuiEnvName, C as LEGACY_DATA_DIR, D as homeDir, E as detectLegacyEnv, J as parseManifest, M as loadSpecData, O as readTuiEnv, S as DATA_DIR, T as RENAMED_ENV, Y as projectManifest, _ as stripAnsi$1, a as normalizeCancelDecision, b as isWide, c as installDecisionGuard, d as capCells, f as cleanRenderText, g as getGraphemeSegmenter, h as stringWidth$1, i as dispatchTuiNotification, k as resolveChatCodeCliHome, m as flattenInline, p as cleanScalarText, r as dispatchTuiDecision, v as eastAsianWidth, w as PRE_DSH_TUI_DATA_DIR, x as readGrantStore, y as isFullWidth } from "./extension-events-DciGPKJa.js";
10
- import { A as validatePlugin, D as buildHostDescriptor, O as negotiate, _ as getHostMessageObserver, a as commandOwner, k as createContractIndex, n as hasCommandErrorCode, r as mapCommandError, w as EFFECT_LEDGER_FILE } from "./command-errors-CIYn1nnW.js";
11
- import { D as getHostStatusStore, E as TuiStatusStore, M as getHostDialogStore, S as getHostShortcuts, a as listCustomThemes, b as getHostRenderers, c as THEME_NAMES, d as getTheme, f as isLightThemeActive, g as setAutoThemeBase, h as setActiveThemeName, i as isSafeThemeName, j as TuiDialogStore, l as getActiveTheme, m as registerCustomThemeResolver, n as getHostThemes, o as resolveCustomTheme, p as isThemeAvailable, r as buildTheme, s as AUTO_THEME_NAME, u as getAutoThemeBase, v as getHostToastStore } from "./themes-DTzG_9I_.js";
2
+ import { a as getPageMarginSetting, c as normalizeScrollGutter, d as parsePageMarginSpec, f as resolvePageMargin, i as formatContextUsage, l as normalizeStatusBar, n as DEFAULT_STATUS_BAR, o as isPageMarginMode, p as subscribePageMargin, r as applyPageMargin, s as normalizePageMargin, u as normalizeToolBackground } from "./tuiDisplayPrefs-CJ9aBVkB.js";
3
+ import { a as draftComboConflicts, d as setKeymapOverrides, f as isMod, h as modLabel, l as parseComboDraft, m as isPlainReturnInput, n as actionMatches, o as effectiveComboString, p as isPlainReturn, t as SHORTCUT_ACTIONS } from "./keymap-DFoC50J1.js";
4
+ import { c as withHostRootCapability } from "./host-access-BdqThvw7.js";
5
+ import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-Dt_J35P0.js";
6
+ import { n as getHostCommandTrees } from "./command-trees-D4SZ2sGk.js";
7
+ import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-D4Ozrymr.js";
8
+ import { n as getHostSceneRuntime } from "./scenes-Dk6DYkO9.js";
9
+ import { A as tuiEnvName, C as LEGACY_DATA_DIR, D as homeDir, E as detectLegacyEnv, J as parseManifest, M as loadSpecData, O as readTuiEnv, S as DATA_DIR, T as RENAMED_ENV, Y as projectManifest, _ as stripAnsi$1, a as normalizeCancelDecision, b as isWide, c as installDecisionGuard, d as capCells, f as cleanRenderText, g as getGraphemeSegmenter, h as stringWidth$1, i as dispatchTuiNotification, k as resolveChatCodeCliHome, m as flattenInline, p as cleanScalarText, r as dispatchTuiDecision, v as eastAsianWidth, w as PRE_DSH_TUI_DATA_DIR, x as readGrantStore, y as isFullWidth } from "./extension-events-D6DbIdnG.js";
10
+ import { A as validatePlugin, D as buildHostDescriptor, O as negotiate, _ as getHostMessageObserver, a as commandOwner, k as createContractIndex, n as hasCommandErrorCode, r as mapCommandError, w as EFFECT_LEDGER_FILE } from "./command-errors-uo0j5Wi8.js";
11
+ import { D as getHostStatusStore, E as TuiStatusStore, M as getHostDialogStore, S as getHostShortcuts, a as listCustomThemes, b as getHostRenderers, c as THEME_NAMES, d as getTheme, f as isLightThemeActive, g as setAutoThemeBase, h as setActiveThemeName, i as isSafeThemeName, j as TuiDialogStore, l as getActiveTheme, m as registerCustomThemeResolver, n as getHostThemes, o as resolveCustomTheme, p as isThemeAvailable, r as buildTheme, s as AUTO_THEME_NAME, u as getAutoThemeBase, v as getHostToastStore } from "./themes-DDI83rNa.js";
12
12
  import { a as resolvePreset, i as isPresetName, n as FRAME_PRESETS, o as ActivityTracker, r as PRESET_NAMES, t as DEFAULT_PRESET } from "./frames-7PAg0Q9b.js";
13
13
  import { n as require_has_flag, t as require_supports_color } from "./supports-color-CcW-FGjr.js";
14
14
  import { createRequire } from "node:module";
@@ -1198,7 +1198,7 @@ var require_react = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1198
1198
  else module.exports = require_react_development();
1199
1199
  }));
1200
1200
  //#endregion
1201
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sideQuestion.js
1201
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sideQuestion.js
1202
1202
  var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
1203
1203
  /**
1204
1204
  * Side Question (`/btw`) — CC's btw.tsx/sideQuestion.ts semantics on the
@@ -1268,7 +1268,7 @@ async function runSideQuestion(params) {
1268
1268
  return { answer };
1269
1269
  }
1270
1270
  //#endregion
1271
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/recap.js
1271
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/recap.js
1272
1272
  /**
1273
1273
  * Session recap (`/recap`, pi-recap semantics): a single TOOL-LESS LLM
1274
1274
  * call that summarizes the session's RECENT activity into one line and
@@ -1381,7 +1381,7 @@ function parseRecapResponse(raw) {
1381
1381
  return { summary: raw.trim() };
1382
1382
  }
1383
1383
  //#endregion
1384
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/log.js
1384
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/log.js
1385
1385
  /**
1386
1386
  * Error logger for the ported Ink core. Always writes to stderr (an Ink
1387
1387
  * renderer failure must never pass silently).
@@ -1392,7 +1392,7 @@ function logError(error) {
1392
1392
  process.stderr.write(`[ChatCode CLI TUI] ${text}\n`);
1393
1393
  }
1394
1394
  //#endregion
1395
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/update-overflow-guard.js
1395
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/update-overflow-guard.js
1396
1396
  /**
1397
1397
  * Self-healing guard for React's nested-update overflow — Minified React
1398
1398
  * error #185 ("Maximum update depth exceeded").
@@ -1535,7 +1535,7 @@ function installNestedUpdateOverflowProcessGuard() {
1535
1535
  });
1536
1536
  }
1537
1537
  //#endregion
1538
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/sessionColors.js
1538
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/sessionColors.js
1539
1539
  /**
1540
1540
  * Session accent colors for `/color` (CC's /color semantics): a small
1541
1541
  * named palette that overrides the prompt-input border (and its session
@@ -1576,7 +1576,7 @@ function sessionColorHex(name) {
1576
1576
  return isValidSessionColor(name) ? SESSION_COLORS[name] : void 0;
1577
1577
  }
1578
1578
  //#endregion
1579
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/deepseekPricing.js
1579
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/deepseekPricing.js
1580
1580
  /**
1581
1581
  * DeepSeek 官方定价与"本会话花费"估算(人民币口径)。
1582
1582
  *
@@ -1701,7 +1701,7 @@ function estimateSessionCostCny(tokens, model) {
1701
1701
  return estimateSessionCostSplitCny(tokens, model)?.total;
1702
1702
  }
1703
1703
  //#endregion
1704
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/i18n.js
1704
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/i18n.js
1705
1705
  /**
1706
1706
  * dsh-tui localization — UI strings for Chinese (`zh`, the default) and
1707
1707
  * English (`en`).
@@ -1756,12 +1756,12 @@ const dict = {
1756
1756
  en: "Persisted model route {{provider}}/{{model}} is not advertised by that provider; fell back to {{fallback}}"
1757
1757
  },
1758
1758
  "model-startup-none": {
1759
- zh: "没有可用的用户模型。请先在 ~/.chatcode-cli/settings.json 中配置 customModels,或在 CLI 配置中添加用户 Provider,然后重新启动 CLI。",
1760
- en: "No user-configured model is available. Configure customModels in ~/.chatcode-cli/settings.json or add a user Provider to the CLI configuration, then restart the CLI."
1759
+ zh: "当前没有可用模型,仍可查看历史会话和修改设置。请通过 /model 选择模型,或通过 /provider 配置提供方后再发送消息。",
1760
+ en: "No model is available. You can still browse history and change settings. Select a model with /model or configure a provider with /provider before sending a message."
1761
1761
  },
1762
- "model-chatcode-token-catalog-failed": {
1763
- zh: "ChatCode 环境凭据认证失败,或 CodingPlan 模型目录不可用;CLI 未创建会话。",
1764
- en: "ChatCode environment authentication failed or the CodingPlan catalog is unavailable; no CLI session was created."
1762
+ "model-unconfigured": {
1763
+ zh: "未配置模型",
1764
+ en: "No model configured"
1765
1765
  },
1766
1766
  "unknown-activity-preset": {
1767
1767
  zh: "未知预设「{{name}}」· /activity frames 查看全部",
@@ -2350,22 +2350,10 @@ const dict = {
2350
2350
  zh: "回合运行中,无法切换模型",
2351
2351
  en: "Cannot switch models while a turn is running"
2352
2352
  },
2353
- "model-switch-unavailable": {
2354
- zh: "模型切换不可用——会话服务未加载",
2355
- en: "Model switch unavailable — session services not loaded"
2356
- },
2357
- "model-switch-fork-failed": {
2358
- zh: "无法切换模型 · {{err}}",
2359
- en: "Cannot switch models · {{err}}"
2360
- },
2361
2353
  "model-switch-failed": {
2362
2354
  zh: "模型切换失败 · {{err}}",
2363
2355
  en: "Model switch failed · {{err}}"
2364
2356
  },
2365
- "model-switch-attach-failed": {
2366
- zh: "模型已切换,但工作区挂载失败 · {{err}}",
2367
- en: "Model switched, but workspace attachment failed · {{err}}"
2368
- },
2369
2357
  "model-usage": {
2370
2358
  zh: "用法:/model <provider/model>(如 deepseek/deepseek-v4-flash)",
2371
2359
  en: "Usage: /model <provider/model> (e.g. deepseek/deepseek-v4-flash)"
@@ -5449,8 +5437,8 @@ const dict = {
5449
5437
  en: "Manually add a custom model"
5450
5438
  },
5451
5439
  "model-config-maas-unavailable": {
5452
- zh: "不可用(llm-chatcode-config 设置未挂载)",
5453
- en: "unavailable (llm-chatcode-config settings are not mounted)"
5440
+ zh: "元景模型服务不可用",
5441
+ en: "Yuanjing model service is unavailable"
5454
5442
  },
5455
5443
  "model-config-current-tag": {
5456
5444
  zh: "[当前]",
@@ -6517,7 +6505,7 @@ function resolveStartupLang(dir = PREFS_DIR$6, env = process.env) {
6517
6505
  return readLangPref(dir) ?? "zh";
6518
6506
  }
6519
6507
  //#endregion
6520
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/commands.js
6508
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/commands.js
6521
6509
  /**
6522
6510
  * Local slash commands for the dsh-tui TUI. Claude Code's command system is
6523
6511
  * deeply wired into its engine; dsh-tui ships a small built-in set with the
@@ -6974,7 +6962,7 @@ function matchingCompletionToken(candidate, prefix) {
6974
6962
  return candidate.aliases?.find((alias) => alias.toLowerCase().startsWith(prefix));
6975
6963
  }
6976
6964
  //#endregion
6977
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionHistory.js
6965
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionHistory.js
6978
6966
  /**
6979
6967
  * Launcher contract for `dsh-tui --resume`: the TUI writes the chosen session
6980
6968
  * id to `<CHATCODE_CLI_HOME>/tui/resume.txt`, and the launcher feeds it back as
@@ -7143,7 +7131,7 @@ function forgetAgentViewSession(sessionId) {
7143
7131
  } catch {}
7144
7132
  }
7145
7133
  //#endregion
7146
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionTags.js
7134
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionTags.js
7147
7135
  /**
7148
7136
  * One searchable local tag per persisted session.
7149
7137
  *
@@ -7293,7 +7281,7 @@ function forgetSessionTag(sessionId, dir = DATA_DIR) {
7293
7281
  return setSessionTag(sessionId, void 0, dir).ok;
7294
7282
  }
7295
7283
  //#endregion
7296
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/liveSession.js
7284
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/liveSession.js
7297
7285
  /**
7298
7286
  * Live Session compatibility facade.
7299
7287
  *
@@ -7455,7 +7443,7 @@ function liveSessionCreateOptions(request) {
7455
7443
  };
7456
7444
  }
7457
7445
  //#endregion
7458
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionLog.js
7446
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionLog.js
7459
7447
  /**
7460
7448
  * Legacy third-party session-event types the TUI vouches for as ephemeral
7461
7449
  * UI frames — safe for the strict read path to accept and skip. Exported
@@ -8169,7 +8157,7 @@ function deleteSessionLog(sessionId) {
8169
8157
  }
8170
8158
  }
8171
8159
  //#endregion
8172
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionEvent.js
8160
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionEvent.js
8173
8161
  /** Narrow an unknown/session event to the retired durable chunk envelope. */
8174
8162
  function legacyAssistantChunkOf(event) {
8175
8163
  if (event === null || typeof event !== "object") return void 0;
@@ -8183,7 +8171,7 @@ function legacyAssistantChunkOf(event) {
8183
8171
  return event;
8184
8172
  }
8185
8173
  //#endregion
8186
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessionTree.js
8174
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessionTree.js
8187
8175
  const TREE_FILTERS = [
8188
8176
  "default",
8189
8177
  "no-tools",
@@ -10339,7 +10327,7 @@ var require_subset = /* @__PURE__ */ __commonJSMin(((exports, module) => {
10339
10327
  module.exports = subset;
10340
10328
  }));
10341
10329
  //#endregion
10342
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/shellQuote.js
10330
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/shellQuote.js
10343
10331
  var import_semver = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
10344
10332
  const internalRe = require_re();
10345
10333
  const constants = require_constants$1();
@@ -10432,7 +10420,7 @@ function cmdEscapeArgument(arg, doubleEscapeMetaChars = false) {
10432
10420
  return out;
10433
10421
  }
10434
10422
  //#endregion
10435
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/update.js
10423
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/update.js
10436
10424
  const PACKAGE_NAME = "@chatcode/cco-tui";
10437
10425
  const DEFAULT_REGISTRY = "https://registry.npmjs.org";
10438
10426
  const GITHUB_REPO = "ccch1mneyyy/dsh-TUI";
@@ -11783,7 +11771,7 @@ async function restartTui(sessionId, options = {}) {
11783
11771
  });
11784
11772
  }
11785
11773
  //#endregion
11786
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/header.js
11774
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/header.js
11787
11775
  /** A finite number, or undefined for anything else (NaN and ±Infinity included). */
11788
11776
  function finiteNumber(value) {
11789
11777
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
@@ -11857,7 +11845,7 @@ function classify(header) {
11857
11845
  return { kind: "root" };
11858
11846
  }
11859
11847
  //#endregion
11860
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/frames.js
11848
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/frames.js
11861
11849
  /**
11862
11850
  * Bounded reads over the JSONL backend's concatenated-Zstandard session logs.
11863
11851
  *
@@ -12103,7 +12091,7 @@ function decodeTail(window) {
12103
12091
  return decodeFrames(window.buffer, window.whole ? walkFrames(window.buffer) : resyncFrames(window.buffer));
12104
12092
  }
12105
12093
  //#endregion
12106
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/digest.js
12094
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/digest.js
12107
12095
  /**
12108
12096
  * What a bounded read can learn about a session log.
12109
12097
  *
@@ -12567,7 +12555,7 @@ function previewSession(path, limit) {
12567
12555
  return entries.slice(-limit);
12568
12556
  }
12569
12557
  //#endregion
12570
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
12558
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
12571
12559
  /** Read-only artifact lookup for session summaries and previews. */
12572
12560
  /** Highest published compressed generation; temporary migration files are ignored. */
12573
12561
  function inDirectory(directory) {
@@ -12620,7 +12608,7 @@ function findSessionArtifact(sessionId, target) {
12620
12608
  }
12621
12609
  }
12622
12610
  //#endregion
12623
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
12611
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
12624
12612
  /**
12625
12613
  * The session index — a local cache keyed by the backend's own change token.
12626
12614
  *
@@ -12783,7 +12771,7 @@ function noteBranch(sessionId, branch) {
12783
12771
  writeIndex(index);
12784
12772
  }
12785
12773
  //#endregion
12786
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
12774
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
12787
12775
  /**
12788
12776
  * Building the session list.
12789
12777
  *
@@ -13055,7 +13043,7 @@ async function locateSession(source, sessionId, signal) {
13055
13043
  return match === void 0 ? void 0 : locate(source, match.raw, sessionId);
13056
13044
  }
13057
13045
  //#endregion
13058
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
13046
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
13059
13047
  /**
13060
13048
  * Agent view (CC `claude agents`) derivation helpers — pure functions over
13061
13049
  * session events that the channel folds into {@link AgentViewRow}s. Kept in
@@ -13285,7 +13273,7 @@ function featureOn(config, name) {
13285
13273
  return config.mode !== "minimal";
13286
13274
  }
13287
13275
  //#endregion
13288
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13276
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13289
13277
  /**
13290
13278
  * Persisted working-activity indicator preference, mirroring the pi
13291
13279
  * working-activity extension's `~/.pi/agent/working-activity.json`
@@ -13354,7 +13342,7 @@ function writeActivityFrames(name, dir = PREFS_DIR$5) {
13354
13342
  }
13355
13343
  }
13356
13344
  //#endregion
13357
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
13345
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
13358
13346
  const pathSeparators = /[\\/]/;
13359
13347
  function isPathLikeQuery(query) {
13360
13348
  return query.startsWith(".") || query.startsWith("~") || query.startsWith("/") || /^[A-Za-z]:[\\/]/.test(query) || pathSeparators.test(query);
@@ -13391,7 +13379,7 @@ function preserveSelection(previous, next, fallback = 0) {
13391
13379
  return next.length === 0 ? 0 : Math.min(Math.max(0, fallback), next.length - 1);
13392
13380
  }
13393
13381
  //#endregion
13394
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13382
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13395
13383
  /**
13396
13384
  * Persisted reasoning-effort preference (`~/.chatcode-cli/tui/effort.json`). Set via
13397
13385
  * `/effort` (slider or `/effort <id>`; `/effort status` reports the current
@@ -13433,7 +13421,7 @@ function writeEffortPref(effort, dir = PREFS_DIR$4) {
13433
13421
  }
13434
13422
  }
13435
13423
  //#endregion
13436
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13424
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13437
13425
  /**
13438
13426
  * Persisted model-route preference (`/model` picker choice), kept at
13439
13427
  * `~/.chatcode-cli/model.json` (`provider` + `model` keys) so CLI and Web share it
@@ -13516,7 +13504,7 @@ function writeModelPref(provider, model, dir = PREFS_DIR$3) {
13516
13504
  }
13517
13505
  }
13518
13506
  //#endregion
13519
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13507
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13520
13508
  /**
13521
13509
  * Model route resolution (issue #67). The `(provider, model)` pair is a
13522
13510
  * single value: every source either supplies the WHOLE route or is skipped,
@@ -13530,6 +13518,11 @@ const DEFAULT_MODEL_ROUTE = {
13530
13518
  provider: "deepseek-official",
13531
13519
  model: "deepseek-v4-flash"
13532
13520
  };
13521
+ /** No model selected: the UI can open, but must not submit model requests. */
13522
+ const UNCONFIGURED_MODEL_ROUTE = {
13523
+ provider: "",
13524
+ model: ""
13525
+ };
13533
13526
  /** Managed provider selected by an environment-token desktop launch. */
13534
13527
  const CHATCODE_CODING_PLAN_PROVIDER = "chatcode-codingplan";
13535
13528
  const nonEmpty = (value) => value !== void 0 && value !== "";
@@ -13576,7 +13569,8 @@ function resolveModelRoute(configured, pref, defaults = DEFAULT_MODEL_ROUTE) {
13576
13569
  * it cannot silently escape to another account/provider. The caller validates
13577
13570
  * the chosen route against the active catalog.
13578
13571
  */
13579
- function resolveStartupModelRoute(configured, pref, defaults, tokenCodingPlanRoute) {
13572
+ function resolveStartupModelRoute(configured, pref, defaults = DEFAULT_MODEL_ROUTE, tokenCodingPlanRoute) {
13573
+ if (explicitModelRoute(defaults) === void 0) return { ...UNCONFIGURED_MODEL_ROUTE };
13580
13574
  if (tokenCodingPlanRoute === void 0) return resolveModelRoute(configured, pref, defaults);
13581
13575
  const explicit = explicitModelRoute(configured);
13582
13576
  if (explicit?.provider.startsWith("chatcode-") === true) return explicit;
@@ -13644,21 +13638,17 @@ async function waitForModelRouteForProvider(catalog, provider, options = {}) {
13644
13638
  }
13645
13639
  }
13646
13640
  /**
13647
- * The route a persisted session's own log records (issues #30/#67): the last
13648
- * `request/header` snapshot carries the call config the agent loop builds its
13649
- * requests from, so it IS the route a resume continues on when cordis.yml
13650
- * does not pin a complete override. The status line derives the resumed
13651
- * session's route from this so the display follows the session, not the
13652
- * startup resolution. A log without any header (a session that never started
13653
- * a turn) records no route.
13641
+ * The latest durable model selection or request route. A selection made
13642
+ * after the last request also survives resume before another turn is sent.
13643
+ * A complete cordis.yml override still takes precedence at the caller.
13654
13644
  * @param events - The session's durable event log.
13655
13645
  * @returns The last recorded route, or undefined when the log has none.
13656
13646
  */
13657
13647
  function recordedModelRoute(events) {
13658
13648
  for (let i = events.length - 1; i >= 0; i--) {
13659
13649
  const event = events[i];
13660
- if (event === void 0 || event.type !== "request/header") continue;
13661
- const config = event.data?.header?.config;
13650
+ if (event === void 0) continue;
13651
+ const config = event.type === "model/selection" ? event.data : event.type === "request/header" ? event.data?.header?.config : void 0;
13662
13652
  if (typeof config?.provider === "string" && typeof config?.model === "string") return {
13663
13653
  provider: config.provider,
13664
13654
  model: config.model
@@ -13689,7 +13679,8 @@ function isUnregisteredProvider(error) {
13689
13679
  * surfaces at startup instead of as a server-side model-name error.
13690
13680
  *
13691
13681
  * Uncertainty trusts the route — no llm service, an empty catalog, a catalog
13692
- * read that failed for transport or adapter-internal reasons. An unregistered
13682
+ * read that failed for transport or adapter-internal reasons. An explicitly
13683
+ * unconfigured fallback keeps an empty catalog unconfigured instead. An unregistered
13693
13684
  * PROVIDER is not uncertainty: no adapter owns the name, so the route is
13694
13685
  * proven unusable and falls back exactly like an unknown model does. Trusting
13695
13686
  * it does not keep startup alive either — agent creation dies a few frames
@@ -13702,6 +13693,7 @@ function isUnregisteredProvider(error) {
13702
13693
  * @returns The adopted route plus the rejected one (for a warning), if any.
13703
13694
  */
13704
13695
  async function validateModelRoute(llm, route, fallback = DEFAULT_MODEL_ROUTE) {
13696
+ if (explicitModelRoute(route) === void 0) return { route };
13705
13697
  if (llm === void 0) return { route };
13706
13698
  let models;
13707
13699
  try {
@@ -13713,6 +13705,10 @@ async function validateModelRoute(llm, route, fallback = DEFAULT_MODEL_ROUTE) {
13713
13705
  rejected: route
13714
13706
  };
13715
13707
  }
13708
+ if (models.length === 0 && explicitModelRoute(fallback) === void 0) return {
13709
+ route: fallback,
13710
+ rejected: route
13711
+ };
13716
13712
  if (models.length === 0 || models.some((model) => model.id === route.model)) return { route };
13717
13713
  return {
13718
13714
  route: fallback,
@@ -13742,7 +13738,7 @@ function orderModelProviders(providers) {
13742
13738
  return [...providers].sort((left, right) => rank(left.id) - rank(right.id));
13743
13739
  }
13744
13740
  //#endregion
13745
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
13741
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
13746
13742
  /**
13747
13743
  * Persisted agent-preset preference (`/preset` picker choice), kept at
13748
13744
  * `~/.chatcode-cli/tui/agent-preset.json` (`preset` key) so the choice survives
@@ -13801,7 +13797,7 @@ function migratePresetPref(requested, resolved, dir = PREFS_DIR$2) {
13801
13797
  return requested === void 0 || resolved === void 0 || requested === resolved ? true : writePresetPref(resolved, dir);
13802
13798
  }
13803
13799
  //#endregion
13804
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
13800
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
13805
13801
  /** Undefined means the service exposes neither supported read API. */
13806
13802
  async function readPersistedSession(persistence, id) {
13807
13803
  if (persistence === null || typeof persistence !== "object") return void 0;
@@ -13821,7 +13817,7 @@ async function readPersistedSession(persistence, id) {
13821
13817
  if (typeof reader.load === "function") return reader.load(id);
13822
13818
  }
13823
13819
  //#endregion
13824
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
13820
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
13825
13821
  /**
13826
13822
  * Agent-preset resolution across upstream prerelease lines.
13827
13823
  *
@@ -13859,7 +13855,7 @@ async function resolveCompatiblePreset(presets, requested) {
13859
13855
  return presets.resolve(requested);
13860
13856
  }
13861
13857
  //#endregion
13862
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
13858
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
13863
13859
  /**
13864
13860
  * Agent-presets roster integration (issue #8): compose each session's
13865
13861
  * model-facing world (tools, prompt sections, projections) from one preset
@@ -14009,7 +14005,7 @@ function serviceForAgent(ctx, agent, key) {
14009
14005
  return ctx.get(key);
14010
14006
  }
14011
14007
  //#endregion
14012
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
14008
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
14013
14009
  const failureReason = (error) => error instanceof Error ? error.message : String(error);
14014
14010
  /** Read a roster-resolved composition without bypassing preset ownership. */
14015
14011
  async function readPresetComposition(presets, presetId) {
@@ -14066,7 +14062,7 @@ async function removePresetComposition(presets, presetId) {
14066
14062
  }
14067
14063
  }
14068
14064
  //#endregion
14069
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
14065
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
14070
14066
  /** Adapter-only readers for optional Harness session-organization services. */
14071
14067
  const STAT_KEYS = [
14072
14068
  "turns",
@@ -14127,7 +14123,7 @@ function presetCompositionRows(content, limit = 80) {
14127
14123
  };
14128
14124
  }
14129
14125
  //#endregion
14130
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
14126
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
14131
14127
  /**
14132
14128
  * Debug logger for the ported Ink core. Writes to stderr only when
14133
14129
  * `CHATCODE_CLI_TUI_DEBUG` (or its legacy alias) is set, so normal runs stay quiet.
@@ -14157,7 +14153,7 @@ function logMouseDebug(message, fields) {
14157
14153
  } catch {}
14158
14154
  }
14159
14155
  //#endregion
14160
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
14156
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
14161
14157
  /**
14162
14158
  * `@` file-mention parsing (issue #15).
14163
14159
  *
@@ -14303,7 +14299,7 @@ function mentionAtCaret(value, cursor) {
14303
14299
  };
14304
14300
  }
14305
14301
  //#endregion
14306
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
14302
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
14307
14303
  /** Format only the files in the authoritative loaded-context projection. */
14308
14304
  function loadedFileLines(files, copy) {
14309
14305
  if (files === void 0) return [copy.unavailable];
@@ -14418,7 +14414,7 @@ function codeRatioLines(report, copy, maxAuthors = 20) {
14418
14414
  return lines;
14419
14415
  }
14420
14416
  //#endregion
14421
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14417
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14422
14418
  /**
14423
14419
  * Cordis-free theme catalog shared by future pickers, commands and hosts.
14424
14420
  *
@@ -14499,7 +14495,7 @@ function listThemeCatalog(host) {
14499
14495
  return Object.freeze(entries);
14500
14496
  }
14501
14497
  //#endregion
14502
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14498
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14503
14499
  /**
14504
14500
  * Configurable Shift+Tab session modes (the `modes` dsh-tui plugin config):
14505
14501
  * each mode is a named bundle of optional DSH plane switches — plan mode
@@ -14563,7 +14559,7 @@ function modeDisplayName(spec) {
14563
14559
  return spec.id;
14564
14560
  }
14565
14561
  //#endregion
14566
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
14562
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
14567
14563
  /** Unified subagent activity domain model used by the adapter and every view. */
14568
14564
  const MAX_OUTPUT_EVENTS = 160;
14569
14565
  const MAX_OUTPUT_LINES = 160;
@@ -14941,7 +14937,7 @@ function formatJobDuration(job, now = Date.now()) {
14941
14937
  return `${Math.floor(minutes / 60)}h${String(minutes % 60).padStart(2, "0")}m`;
14942
14938
  }
14943
14939
  //#endregion
14944
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
14940
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
14945
14941
  /**
14946
14942
  * Minimal mode: one process-wide flag gating decorative UI (header splash,
14947
14943
  * emoji status glyphs, non-tool text colors, status-bar extras). The flag is
@@ -14960,7 +14956,7 @@ function setMinimalMode(enabled) {
14960
14956
  minimal = enabled;
14961
14957
  }
14962
14958
  //#endregion
14963
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
14959
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
14964
14960
  /**
14965
14961
  * Find or create the Workspace for `cwd`, then durably account `sessionId`.
14966
14962
  *
@@ -14976,7 +14972,7 @@ async function attachSessionToWorkspace(ctx, cwd, sessionId) {
14976
14972
  return true;
14977
14973
  }
14978
14974
  //#endregion
14979
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
14975
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
14980
14976
  /**
14981
14977
  * Upstream compatibility contract.
14982
14978
  *
@@ -15405,7 +15401,7 @@ function pluginsInfoLines(args, deps) {
15405
15401
  return lines;
15406
15402
  }
15407
15403
  //#endregion
15408
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
15404
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
15409
15405
  /** Loader and tool-registry projection used by the TUI's `/mcp` report. */
15410
15406
  const MCP_CLIENT_PACKAGE = "@deepseek-ai/dsh-mcp-client";
15411
15407
  const FIBER_ACTIVE = 2;
@@ -15458,7 +15454,7 @@ function collectMcpServerStatus(schemas, entries) {
15458
15454
  }));
15459
15455
  }
15460
15456
  //#endregion
15461
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
15457
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
15462
15458
  /**
15463
15459
  * Number, token-count, and duration formatters shared by the status line
15464
15460
  * and message rows.
@@ -15521,7 +15517,7 @@ function formatDuration$4(durationMs, options = {}) {
15521
15517
  return parts.join(" ");
15522
15518
  }
15523
15519
  //#endregion
15524
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
15520
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
15525
15521
  /**
15526
15522
  * Return the current context occupancy. The latest request is authoritative:
15527
15523
  * its uncached input and cache read/write tokens are all part of that request's
@@ -15905,7 +15901,7 @@ function prepareMemoryTargetFile(requested, candidates, cwd, dshHome) {
15905
15901
  }
15906
15902
  }
15907
15903
  //#endregion
15908
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
15904
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
15909
15905
  /** Return the step left open by a tree fork cut within one turn. */
15910
15906
  function openStepAtForkCut(events, turn) {
15911
15907
  for (let i = events.length - 1; i >= 0; i--) {
@@ -16812,6 +16808,13 @@ function createChannel(ctx, initialAgent, options) {
16812
16808
  */
16813
16809
  const deliverUserText = (text, placement, instructionText) => {
16814
16810
  sendChain = sendChain.then(async () => {
16811
+ if (explicitModelRoute(state) === void 0) {
16812
+ state.notify(t("model-startup-none"), {
16813
+ color: "warning",
16814
+ timeoutMs: 8e3
16815
+ });
16816
+ return;
16817
+ }
16815
16818
  const expansion = await expandMentions(mentionFs(ctx), state.cwd, text, mentionAttachments(ctx), stagedImages);
16816
16819
  const message = createUserMessage({
16817
16820
  content: withWorkflowInstruction(expansion.blocks, instructionText),
@@ -17060,8 +17063,8 @@ function createChannel(ctx, initialAgent, options) {
17060
17063
  /** The llm runtime seam (dsh-llm LlmRuntime): route metadata resolution. */
17061
17064
  const llmRuntime = ctx.get("llm");
17062
17065
  /** Mutable per-agent model selection (dsh-agent's routing override seam).
17063
- * `current` stays undefined until the user explicitly cycles effort, so
17064
- * default routing (agentOptions on create/fork) is untouched; bindAgent
17066
+ * Model and effort choices override subsequent requests without a fork;
17067
+ * default routing still comes from agentOptions until a choice; bindAgent
17065
17068
  * re-couples it to each new agent's prompt assembly + request config. */
17066
17069
  const selection = {
17067
17070
  current: void 0,
@@ -17075,7 +17078,10 @@ function createChannel(ctx, initialAgent, options) {
17075
17078
  const applyPreferredEffort = async () => {
17076
17079
  if (preferredEffort === void 0 || llmRuntime === void 0) return;
17077
17080
  try {
17078
- const info = await llmRuntime.resolveModelInfo(state.provider, state.model);
17081
+ const targetAgent = agent;
17082
+ const { provider, model } = state;
17083
+ const info = await llmRuntime.resolveModelInfo(provider, model);
17084
+ if (agent !== targetAgent || state.provider !== provider || state.model !== model) return;
17079
17085
  state.effortLevels = (info.reasoning?.efforts ?? []).map((level) => level.id);
17080
17086
  if (!info.reasoning?.efforts.some((effort) => effort.id === preferredEffort)) return;
17081
17087
  selection.current = {
@@ -17095,9 +17101,9 @@ function createChannel(ctx, initialAgent, options) {
17095
17101
  const route = `${state.provider}/${state.model}`;
17096
17102
  if (route !== modelNameRoute) {
17097
17103
  modelNameRoute = route;
17098
- state.modelName = state.model;
17104
+ state.modelName = state.model || t("model-unconfigured");
17099
17105
  }
17100
- if (llmRuntime === void 0 || typeof llmRuntime.resolveModelInfo !== "function") return;
17106
+ if (explicitModelRoute(state) === void 0 || llmRuntime === void 0 || typeof llmRuntime.resolveModelInfo !== "function") return;
17101
17107
  const generation = ++effortLevelsGeneration;
17102
17108
  llmRuntime.resolveModelInfo(state.provider, state.model).then((info) => {
17103
17109
  if (generation !== effortLevelsGeneration) return;
@@ -17784,7 +17790,7 @@ function createChannel(ctx, initialAgent, options) {
17784
17790
  agentId: agent.id,
17785
17791
  agentBindingGeneration: 0,
17786
17792
  model: options.model,
17787
- modelName: options.modelName?.trim() || options.model,
17793
+ modelName: options.modelName?.trim() || options.model || t("model-unconfigured"),
17788
17794
  provider: options.provider,
17789
17795
  tokens: {
17790
17796
  input: 0,
@@ -19134,127 +19140,38 @@ function createChannel(ctx, initialAgent, options) {
19134
19140
  state.notify(t("model-switch-while-working"), { color: "warning" });
19135
19141
  return false;
19136
19142
  }
19137
- const agents = ctx.get("agents");
19138
- if (!agents) {
19139
- state.notify(t("model-switch-unavailable"), { color: "error" });
19140
- return false;
19141
- }
19142
- let seed;
19143
+ if (state.provider === provider && state.model === model) return true;
19144
+ const sourceAgent = agent;
19143
19145
  try {
19144
19146
  await settleManualCompaction();
19145
- seed = sliceLiveSessionSeed(agent.session);
19146
- } catch (error) {
19147
- const message = error instanceof Error ? error.message : String(error);
19148
- state.notify(t("model-switch-fork-failed", { err: message }), { color: "error" });
19149
- return false;
19150
- }
19151
- const childId = SessionId(randomUUID());
19152
- let handle;
19153
- const modelComposed = await composePreset(ctx, runningPresetOf(agent.session));
19154
- try {
19155
- handle = await agents.create(liveSessionCreateOptions({
19156
- sessionId: childId,
19157
- seed,
19158
- runtimeSession: agent.session,
19159
- inheritedCount: seed.length,
19160
- cwd: state.cwd,
19161
- parentSession: agent.session.id,
19162
- agentPreset: modelComposed.agentPreset,
19163
- agentOptions: {
19164
- provider,
19165
- model
19166
- },
19167
- setup: modelComposed.setup
19168
- }));
19147
+ if (agent !== sourceAgent || state.working) return false;
19148
+ if (state.provider === provider && state.model === model) return true;
19149
+ agent.session.append("model/selection", {
19150
+ provider,
19151
+ model
19152
+ });
19169
19153
  } catch (error) {
19170
- const message = error instanceof Error ? error.message : String(error);
19171
- state.notify(t("model-switch-failed", { err: message }), {
19154
+ state.notify(t("model-switch-failed", { err: error instanceof Error ? error.message : String(error) }), {
19172
19155
  color: "error",
19173
19156
  timeoutMs: 8e3
19174
19157
  });
19175
19158
  return false;
19176
19159
  }
19177
- try {
19178
- await attachSessionToWorkspace(ctx, state.cwd, childId);
19179
- } catch (error) {
19180
- state.notify(t("model-switch-attach-failed", { err: error instanceof Error ? error.message : String(error) }), {
19181
- color: "warning",
19182
- timeoutMs: 8e3
19183
- });
19184
- }
19185
- streaming = void 0;
19186
- reasoning = void 0;
19187
- sealedReasoning.length = 0;
19188
- lastReasoningRow = void 0;
19189
- toolCards.clear();
19190
- nextRowId = 0;
19191
- state.rows.length = 0;
19192
- resetSubagentProjection();
19193
- resetJobProjection();
19194
- state.todos = [];
19195
- state.pending = [];
19196
- state.goal = void 0;
19197
- state.sessionTitle = "";
19198
- state.sessionColor = "";
19199
- state.tokens = {
19200
- input: 0,
19201
- output: 0,
19202
- cacheRead: 0,
19203
- cacheWrite: 0,
19204
- peak: {
19205
- input: 0,
19206
- output: 0,
19207
- cacheRead: 0,
19208
- cacheWrite: 0
19209
- },
19210
- idle: {
19211
- input: 0,
19212
- output: 0,
19213
- cacheRead: 0,
19214
- cacheWrite: 0
19215
- }
19160
+ selection.current = {
19161
+ provider,
19162
+ model
19216
19163
  };
19217
- state.responseChars = 0;
19218
- state.activeToolCount = 0;
19219
- state.lastUserText = "";
19220
- state.working = false;
19221
- state.cancelPending = false;
19222
- state.spinnerMode = "requesting";
19223
- state.status = handle.agent.status;
19224
- state.agentId = handle.agent.id;
19225
- state.agentPreset = modelComposed.agentPreset;
19226
- state.model = model;
19227
19164
  state.provider = provider;
19228
- dropModelNodeCache();
19229
- state.tps = void 0;
19230
- state.tpsSamples = [];
19231
- state.lastUsage = void 0;
19232
- state.workingActivity = void 0;
19233
- state.contextWindow = void 0;
19234
- state.effortLevels = void 0;
19165
+ state.model = model;
19235
19166
  state.reasoningEffort = void 0;
19167
+ state.effortLevels = void 0;
19168
+ state.contextWindow = void 0;
19169
+ dropModelNodeCache();
19236
19170
  refreshEffortLevels();
19237
- state.contextSegments = {
19238
- system: 0,
19239
- prompt: 0,
19240
- assistant: 0,
19241
- thinking: 0,
19242
- tools: 0
19243
- };
19244
- replayEvents(seed);
19245
- settleStreaming();
19246
- state.working = handle.agent.status === "running";
19247
- const oldHandle = currentHandle;
19248
- agent = handle.agent;
19249
- currentHandle = handle;
19250
- bindAgent();
19171
+ applyPreferredEffort();
19251
19172
  updateWorkingActivity("model switch", () => activityTracker.onModelSwitch(model));
19252
- refreshCommandList();
19253
19173
  refreshLoadedContext();
19254
- refreshSkillCommands();
19255
- touchSession(childId);
19256
19174
  state.emit();
19257
- oldHandle?.dispose().catch(() => {});
19258
19175
  clearStagedImages();
19259
19176
  const defaultModel = ctx.get("agentDefaultModel");
19260
19177
  try {
@@ -19596,10 +19513,16 @@ function createChannel(ctx, initialAgent, options) {
19596
19513
  const maasNamespace = settings.describe().some((descriptor) => descriptor.ns === "llm-chatcode-config");
19597
19514
  const maasRevision = () => settings.describe().find((descriptor) => descriptor.ns === "llm-chatcode-config")?.revision;
19598
19515
  const modelCatalog = ctx.get("chatcodeModelCatalog");
19516
+ const maasEnabled = modelCatalog?.maasToggleable === false ? modelCatalog.maasEnabled?.bind(modelCatalog) : void 0;
19599
19517
  const catalogMembers = () => new Set(llm.listConfigurableProviders().filter((entry) => entry.settingsNs === "llm-pi-ai" && entry.declared !== true).map((entry) => entry.provider));
19600
19518
  return {
19601
19519
  ...oauthApi === void 0 ? {} : { oauth: oauthApi },
19602
- ...maasNamespace ? { maas: {
19520
+ ...maasEnabled !== void 0 ? { maas: {
19521
+ enabled: maasEnabled,
19522
+ async listModels() {
19523
+ return maasEnabled() ? llm.listModels(CHATCODE_MAAS_PROVIDER) : [];
19524
+ }
19525
+ } } : maasNamespace ? { maas: {
19603
19526
  enabled() {
19604
19527
  return settings.get("llm-chatcode-config")?.enableMaas === true;
19605
19528
  },
@@ -19794,6 +19717,10 @@ function createChannel(ctx, initialAgent, options) {
19794
19717
  return true;
19795
19718
  },
19796
19719
  async sideQuestion(question, options) {
19720
+ if (explicitModelRoute(state) === void 0) return {
19721
+ answer: null,
19722
+ error: t("model-startup-none")
19723
+ };
19797
19724
  const llm = ctx.get("llm");
19798
19725
  if (!llm) return {
19799
19726
  answer: null,
@@ -19990,6 +19917,7 @@ function createChannel(ctx, initialAgent, options) {
19990
19917
  provider: options.provider,
19991
19918
  model: options.model
19992
19919
  });
19920
+ if (explicitModelRoute(route) === void 0) throw new Error(t("model-startup-none"));
19993
19921
  handle = await agentsService.create({
19994
19922
  sessionId,
19995
19923
  meta: {
@@ -20236,6 +20164,10 @@ function createChannel(ctx, initialAgent, options) {
20236
20164
  state.emit();
20237
20165
  },
20238
20166
  async recapRecent(options) {
20167
+ if (explicitModelRoute(state) === void 0) return {
20168
+ summary: null,
20169
+ error: t("model-startup-none")
20170
+ };
20239
20171
  const llm = ctx.get("llm");
20240
20172
  if (!llm) return {
20241
20173
  summary: null,
@@ -20308,6 +20240,13 @@ function createChannel(ctx, initialAgent, options) {
20308
20240
  return true;
20309
20241
  },
20310
20242
  compact() {
20243
+ if (explicitModelRoute(state) === void 0) {
20244
+ state.notify(t("model-startup-none"), {
20245
+ color: "warning",
20246
+ timeoutMs: 8e3
20247
+ });
20248
+ return;
20249
+ }
20311
20250
  const compactService = serviceForAgent(ctx, agent, "compaction");
20312
20251
  if (!compactService) {
20313
20252
  state.notify(t("compact-unavailable"), { color: "warning" });
@@ -21031,15 +20970,24 @@ function createChannel(ctx, initialAgent, options) {
21031
20970
  text: preview$1(output, LOCAL_OUTPUT_LIMIT)
21032
20971
  });
21033
20972
  state.emit();
21034
- if (includeInContext) agent.followup(createUserMessage({
21035
- content: [{
21036
- type: "text",
21037
- text: `<bash-stdout>
20973
+ if (includeInContext) {
20974
+ if (explicitModelRoute(state) === void 0) {
20975
+ state.notify(t("model-startup-none"), {
20976
+ color: "warning",
20977
+ timeoutMs: 8e3
20978
+ });
20979
+ return;
20980
+ }
20981
+ agent.followup(createUserMessage({
20982
+ content: [{
20983
+ type: "text",
20984
+ text: `<bash-stdout>
21038
20985
  ${output}
21039
20986
  </bash-stdout>`
21040
- }],
21041
- source: { kind: "user" }
21042
- }));
20987
+ }],
20988
+ source: { kind: "user" }
20989
+ }));
20990
+ }
21043
20991
  };
21044
20992
  /** The in-progress assistant text row; `undefined` when no step is streaming. */
21045
20993
  let streaming;
@@ -21876,6 +21824,10 @@ ${output}
21876
21824
  applyPreferredEffort();
21877
21825
  refreshMode();
21878
21826
  agentSubscriptions = [
21827
+ agent.ctx.on("agent/request", async (_context, next) => {
21828
+ if (explicitModelRoute(state) === void 0) throw new Error(t("model-startup-none"));
21829
+ return next();
21830
+ }),
21879
21831
  agent.ctx.on("system-prompt/assemble", async (_assembly, _context, next) => {
21880
21832
  const assembled = await next();
21881
21833
  return {
@@ -22387,7 +22339,7 @@ async function expandMentions(fs, cwd, text, attachments, stagedImages) {
22387
22339
  };
22388
22340
  }
22389
22341
  //#endregion
22390
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
22342
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
22391
22343
  /**
22392
22344
  * Child-process stderr guard (issue #17).
22393
22345
  *
@@ -22556,7 +22508,7 @@ function createChildStderrReporter(notify, options = {}) {
22556
22508
  };
22557
22509
  }
22558
22510
  //#endregion
22559
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
22511
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
22560
22512
  /**
22561
22513
  * Ask-user-question store — the UI-side half of the DSH user-interaction
22562
22514
  * seam (`ctx.userQuestions`). The harness's model-facing
@@ -22796,7 +22748,7 @@ var QuestionStore = class {
22796
22748
  }
22797
22749
  };
22798
22750
  //#endregion
22799
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
22751
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
22800
22752
  /**
22801
22753
  * Question-provider seat guard (issue #98 security follow-up).
22802
22754
  *
@@ -22908,7 +22860,7 @@ function incumbentQuestionProviderId(service) {
22908
22860
  } catch {}
22909
22861
  }
22910
22862
  //#endregion
22911
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
22863
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
22912
22864
  /**
22913
22865
  * User-question answerer compatibility.
22914
22866
  *
@@ -22967,7 +22919,7 @@ function prepareQuestionAnswerer(ctx, service, answerer) {
22967
22919
  }
22968
22920
  }
22969
22921
  //#endregion
22970
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
22922
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
22971
22923
  /**
22972
22924
  * Approval store — the UI-side answerer half of the DSH approval seam
22973
22925
  * (`ctx.approval`). The harness's permission layer asks
@@ -23361,7 +23313,7 @@ var ApprovalStore = class {
23361
23313
  }
23362
23314
  };
23363
23315
  //#endregion
23364
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
23316
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
23365
23317
  /**
23366
23318
  * On-demand capture of every final AgentLoop request context observed for a
23367
23319
  * live session.
@@ -23507,7 +23459,7 @@ function registerPromptDebug(ctx) {
23507
23459
  }));
23508
23460
  }
23509
23461
  //#endregion
23510
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
23462
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
23511
23463
  /**
23512
23464
  * One-time local migrations (`~/.chatcode-cli/tui/migrations.json`), keyed by stable
23513
23465
  * migration id → ISO timestamp. Named keys (not a bare flag) so later
@@ -23598,7 +23550,7 @@ async function commitFullscreenFactoryMigration(plan, options) {
23598
23550
  } catch {}
23599
23551
  }
23600
23552
  //#endregion
23601
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
23553
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
23602
23554
  const OWNER = "@chatcode/cco-tui";
23603
23555
  const MARKER = ".dsh-tui-managed.json";
23604
23556
  const RETIRED_PACKAGED_PRESETS = ["liangshen"];
@@ -23640,7 +23592,7 @@ function cleanupRetiredPackagedPresets(options = {}) {
23640
23592
  return results;
23641
23593
  }
23642
23594
  //#endregion
23643
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
23595
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
23644
23596
  /**
23645
23597
  * Session working-directory resolution (issue #96, bug 2).
23646
23598
  *
@@ -23677,7 +23629,7 @@ function gitWorktreeRoot(start) {
23677
23629
  }
23678
23630
  }
23679
23631
  //#endregion
23680
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
23632
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
23681
23633
  /**
23682
23634
  * Open URLs, files and folders with the platform's default handler, fully
23683
23635
  * detached from the TUI process (fire-and-forget: no stdio pipes, no wait,
@@ -23838,13 +23790,13 @@ function revealInFileManager(filePath) {
23838
23790
  if (existsSync(dir)) openExternal(dir);
23839
23791
  }
23840
23792
  //#endregion
23841
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
23793
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
23842
23794
  /** ChatCode API request capability. Credentials stay in the host adapter. */
23843
23795
  const CHATCODE_API_BASE_URL = "https://chatcode.chinaunicom.cn";
23844
23796
  /** Each mounted TUI receives its own host-authorized request function. */
23845
23797
  const ChatCodeApiContext = (0, import_react.createContext)(void 0);
23846
23798
  //#endregion
23847
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
23799
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
23848
23800
  const RELEASE_NOTE_PATH = join(DATA_DIR, "release-notes.json");
23849
23801
  const RELEASE_NOTE_ENDPOINT = `${CHATCODE_API_BASE_URL}/chatcode/api/v1/cli/version/release-note`;
23850
23802
  function acknowledgedVersion() {
@@ -23940,7 +23892,7 @@ var ReleaseNotesStore = class {
23940
23892
  }
23941
23893
  };
23942
23894
  //#endregion
23943
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
23895
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
23944
23896
  const MAIN_CLI_PACKAGES = new Set(["@chatcode/chatcode-cli", "@chatcode/chatcode-cli-test"]);
23945
23897
  const VERSION_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u;
23946
23898
  const PRODUCT_VERSION_ENV = "CHATCODE_CLI_PRODUCT_VERSION";
@@ -23980,7 +23932,7 @@ function resolveProductVersion(options = {}) {
23980
23932
  /** Product version shown by the TUI, shared with `cco --version` and Web. */
23981
23933
  const PRODUCT_VERSION = resolveProductVersion();
23982
23934
  //#endregion
23983
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
23935
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
23984
23936
  const MAX_CAPTURE_BYTES = 64 * 1024;
23985
23937
  function appendBounded(chunks, chunk, total) {
23986
23938
  if (total.value >= MAX_CAPTURE_BYTES) return;
@@ -24050,7 +24002,7 @@ function execFileNoThrow(file, args = [], options) {
24050
24002
  });
24051
24003
  }
24052
24004
  //#endregion
24053
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
24005
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
24054
24006
  const REPORT_TIMEOUT_MS = 2e3;
24055
24007
  const RELEASE_TIMEOUT_MS = 500;
24056
24008
  const RETRY_DELAYS_MS = [
@@ -24438,7 +24390,7 @@ var require_react_jsx_runtime_development = /* @__PURE__ */ __commonJSMin(((expo
24438
24390
  })();
24439
24391
  }));
24440
24392
  //#endregion
24441
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
24393
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
24442
24394
  var import_jsx_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
24443
24395
  if (process.env.NODE_ENV === "production") module.exports = require_react_jsx_runtime_production();
24444
24396
  else module.exports = require_react_jsx_runtime_development();
@@ -24495,7 +24447,7 @@ function writeThemePref(name, dir = PREFS_DIR) {
24495
24447
  }
24496
24448
  }
24497
24449
  //#endregion
24498
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
24450
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
24499
24451
  const EMPTY_THEME_SNAPSHOT = Object.freeze([]);
24500
24452
  const subscribeNoThemes = (_listener) => () => {};
24501
24453
  /**
@@ -24523,7 +24475,7 @@ function useRuntimeThemeSnapshot(themeHost) {
24523
24475
  return import_react.useSyncExternalStore(subscribeThemes, getThemeSnapshot, getThemeSnapshot);
24524
24476
  }
24525
24477
  //#endregion
24526
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
24478
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
24527
24479
  /**
24528
24480
  * Base class for events with immediate-propagation control.
24529
24481
  *
@@ -24547,7 +24499,7 @@ var Event = class {
24547
24499
  }
24548
24500
  };
24549
24501
  //#endregion
24550
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
24502
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
24551
24503
  /**
24552
24504
  * Node-compatible event emitter that is aware of the `Event` class, so
24553
24505
  * `emit` respects `stopImmediatePropagation()` on dispatched events.
@@ -24580,7 +24532,7 @@ var EventEmitter$1 = class extends EventEmitter {
24580
24532
  }
24581
24533
  };
24582
24534
  //#endregion
24583
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
24535
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
24584
24536
  /**
24585
24537
  * `StdinContext` is a React context, which exposes input stream.
24586
24538
  */
@@ -24594,14 +24546,14 @@ const StdinContext = (0, import_react.createContext)({
24594
24546
  });
24595
24547
  StdinContext.displayName = "InternalStdinContext";
24596
24548
  //#endregion
24597
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
24549
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
24598
24550
  /**
24599
24551
  * React hook exposing the stdin stream and raw-mode helpers from `StdinContext`.
24600
24552
  * @returns the `StdinContext` value.
24601
24553
  */
24602
24554
  const useStdin = () => (0, import_react.useContext)(StdinContext);
24603
24555
  //#endregion
24604
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
24556
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
24605
24557
  /**
24606
24558
  * ANSI Control Characters and Escape Sequence Introducers
24607
24559
  *
@@ -24675,7 +24627,7 @@ function isEscFinal(byte) {
24675
24627
  return byte >= 48 && byte <= 126;
24676
24628
  }
24677
24629
  //#endregion
24678
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
24630
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
24679
24631
  /**
24680
24632
  * CSI (Control Sequence Introducer) Types
24681
24633
  *
@@ -24991,7 +24943,7 @@ const ENABLE_WIN32_INPUT_MODE = csi("?9001h");
24991
24943
  */
24992
24944
  const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
24993
24945
  //#endregion
24994
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
24946
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
24995
24947
  /**
24996
24948
  * Minimal terminal-environment shim for the ported Ink core. The original
24997
24949
  * module computed a richer `env` object from the Claude Code app context; the
@@ -25000,7 +24952,7 @@ const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
25000
24952
  */
25001
24953
  const env$1 = { terminal: (process.env.TERM_PROGRAM ?? process.env.TERM ?? "unknown").toLowerCase() };
25002
24954
  //#endregion
25003
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
24955
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
25004
24956
  /**
25005
24957
  * OSC (Operating System Command) Types and Parser
25006
24958
  */
@@ -25396,7 +25348,7 @@ function supportsTabStatus() {
25396
25348
  return process.env.USER_TYPE === "ant";
25397
25349
  }
25398
25350
  //#endregion
25399
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
25351
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
25400
25352
  /**
25401
25353
  * Query the terminal and await responses without timeouts.
25402
25354
  *
@@ -25582,7 +25534,7 @@ var TerminalQuerier = class {
25582
25534
  }
25583
25535
  };
25584
25536
  //#endregion
25585
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
25537
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
25586
25538
  /**
25587
25539
  * Theme provider with terminal-background auto-detection. With no explicit
25588
25540
  * `theme` prop, no CHATCODE_CLI_TUI_THEME override and no persisted choice
@@ -25781,7 +25733,7 @@ function useTheme() {
25781
25733
  return [theme, setTheme];
25782
25734
  }
25783
25735
  //#endregion
25784
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
25736
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
25785
25737
  /**
25786
25738
  * React-free form model behind the `/settings` screen (issue #165), mirroring
25787
25739
  * the web front door's card-form.ts semantics: a section stages what the user
@@ -26025,7 +25977,7 @@ var SettingsForm = class {
26025
25977
  }
26026
25978
  };
26027
25979
  //#endregion
26028
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
25980
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
26029
25981
  /**
26030
25982
  * `/reload` planning — the pi-style soft reload: re-read the TUI's persisted
26031
25983
  * preference files (`~/.chatcode-cli/tui/{theme,lang,agent-preset,model,
@@ -26874,7 +26826,7 @@ var SignalExit = class extends SignalExitBase {
26874
26826
  const process$2 = globalThis.process;
26875
26827
  const { onExit, load, unload } = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback());
26876
26828
  //#endregion
26877
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
26829
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
26878
26830
  /**
26879
26831
  * Yoga enums — ported from yoga-layout/src/generated/YGEnums.ts
26880
26832
  * Kept as `const` objects (not TS enums) per repo convention.
@@ -27006,7 +26958,7 @@ const Wrap = {
27006
26958
  WrapReverse: 2
27007
26959
  };
27008
26960
  //#endregion
27009
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
26961
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
27010
26962
  /**
27011
26963
  * Pure-TypeScript port of yoga-layout (Meta's flexbox engine).
27012
26964
  *
@@ -28983,7 +28935,7 @@ const YOGA_INSTANCE = {
28983
28935
  }
28984
28936
  };
28985
28937
  //#endregion
28986
- //#region ../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/utilities.js
28938
+ //#region ../../node_modules/.pnpm/chalk@6.0.1/node_modules/chalk/source/utilities.js
28987
28939
  function stringReplaceAll(string, substring, postfix) {
28988
28940
  let index = string.indexOf(substring);
28989
28941
  if (index === -1) return string;
@@ -29011,7 +28963,7 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
29011
28963
  return returnValue;
29012
28964
  }
29013
28965
  //#endregion
29014
- //#region ../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/vendor/ansi-styles/index.js
28966
+ //#region ../../node_modules/.pnpm/chalk@6.0.1/node_modules/chalk/source/vendor/ansi-styles/index.js
29015
28967
  const ANSI_BACKGROUND_OFFSET$1 = 10;
29016
28968
  const ANSI_UNDERLINE_OFFSET = 20;
29017
28969
  const wrapAnsi16$1 = (offset = 0) => (code) => `\u{1B}[${code + offset}m`;
@@ -29206,7 +29158,7 @@ function assembleStyles$1() {
29206
29158
  }
29207
29159
  const ansiStyles$1 = assembleStyles$1();
29208
29160
  //#endregion
29209
- //#region ../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/vendor/supports-color/index.js
29161
+ //#region ../../node_modules/.pnpm/chalk@6.0.1/node_modules/chalk/source/vendor/supports-color/index.js
29210
29162
  function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process$1.argv) {
29211
29163
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
29212
29164
  const position = argv.indexOf(prefix + flag);
@@ -29294,7 +29246,7 @@ function createSupportsColor(stream, options = {}) {
29294
29246
  }));
29295
29247
  }
29296
29248
  //#endregion
29297
- //#region ../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/index.js
29249
+ //#region ../../node_modules/.pnpm/chalk@6.0.1/node_modules/chalk/source/index.js
29298
29250
  const { stdout: stdoutColor, stderr: stderrColor } = {
29299
29251
  stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
29300
29252
  stderr: createSupportsColor({ isTTY: tty.isatty(2) })
@@ -29428,7 +29380,7 @@ const createStyler = (open, close, parent) => {
29428
29380
  const createBuilder = (self, _styler, _isEmpty) => {
29429
29381
  const builder = (...arguments_) => {
29430
29382
  if (arguments_.length === 1) return applyStyle(builder, "" + arguments_[0]);
29431
- if (arguments_.length === 2) return applyStyle(builder, arguments_[0] + " " + arguments_[1]);
29383
+ if (arguments_.length === 2) return applyStyle(builder, `${arguments_[0] ?? ""} ${arguments_[1] ?? ""}`);
29432
29384
  return applyStyle(builder, arguments_.join(" "));
29433
29385
  };
29434
29386
  Object.setPrototypeOf(builder, proto);
@@ -29457,7 +29409,7 @@ Object.defineProperties(createChalk.prototype, {
29457
29409
  const chalk = createChalk();
29458
29410
  createChalk({ level: stderrColor ? stderrColor.level : 0 });
29459
29411
  //#endregion
29460
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
29412
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
29461
29413
  /**
29462
29414
  * xterm.js (VS Code, Cursor, code-server, Coder) has supported truecolor
29463
29415
  * since 2017, but code-server/Coder containers often don't set
@@ -29588,7 +29540,7 @@ function applyColor(text, color) {
29588
29540
  return colorize(text, color, "foreground");
29589
29541
  }
29590
29542
  //#endregion
29591
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
29543
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
29592
29544
  /**
29593
29545
  * Environment truthiness check for the ported Ink core. Accepts the common
29594
29546
  * shell truthy spellings (`1`, `true`, `yes`, `on`).
@@ -29606,7 +29558,7 @@ function isEnvTruthy(value) {
29606
29558
  ].includes(value.toLowerCase());
29607
29559
  }
29608
29560
  //#endregion
29609
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
29561
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
29610
29562
  /**
29611
29563
  * Whether mouse click handling is disabled for the ported Ink core. dsh-tui
29612
29564
  * reads its own env flag (`CHATCODE_CLI_TUI_DISABLE_MOUSE`); the original module
@@ -29617,7 +29569,7 @@ function isMouseClicksDisabled() {
29617
29569
  return isEnvTruthy(readTuiEnv("DISABLE_MOUSE"));
29618
29570
  }
29619
29571
  //#endregion
29620
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
29572
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
29621
29573
  /**
29622
29574
  * Input suppression window for terminal handoffs (issue #123): when stdin is
29623
29575
  * handed to an external TUI (full-screen editor) and back, the tty can
@@ -29644,7 +29596,7 @@ function isInputSuppressed() {
29644
29596
  return Date.now() < suppressedUntil;
29645
29597
  }
29646
29598
  //#endregion
29647
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
29599
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
29648
29600
  /**
29649
29601
  * Input Tokenizer - Escape sequence boundary detection
29650
29602
  *
@@ -29842,7 +29794,7 @@ function tokenize$2(input, initialState, initialBuffer, flush, x10Mouse, splitIn
29842
29794
  };
29843
29795
  }
29844
29796
  //#endregion
29845
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
29797
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
29846
29798
  /**
29847
29799
  * Keyboard input parser - converts terminal input to key events
29848
29800
  *
@@ -30906,7 +30858,7 @@ function createWheelKey(s, name, col, row, button) {
30906
30858
  };
30907
30859
  }
30908
30860
  //#endregion
30909
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
30861
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
30910
30862
  function parseKey(keypress) {
30911
30863
  const key = {
30912
30864
  upArrow: keypress.name === "up",
@@ -30991,7 +30943,7 @@ var InputEvent = class extends Event {
30991
30943
  }
30992
30944
  };
30993
30945
  //#endregion
30994
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
30946
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
30995
30947
  /**
30996
30948
  * Event fired when the terminal window gains or loses focus.
30997
30949
  *
@@ -31010,7 +30962,7 @@ var TerminalFocusEvent = class extends Event {
31010
30962
  }
31011
30963
  };
31012
30964
  //#endregion
31013
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
30965
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
31014
30966
  /** Layout bounds cached per rendered node, used for blitting and clearing. */
31015
30967
  const nodeCache = /* @__PURE__ */ new WeakMap();
31016
30968
  /** Rects of removed children that need clearing on next render */
@@ -31048,7 +31000,7 @@ function consumeAbsoluteRemovedFlag() {
31048
31000
  return had;
31049
31001
  }
31050
31002
  //#endregion
31051
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
31003
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
31052
31004
  /**
31053
31005
  * Base class for all terminal events with DOM-style propagation.
31054
31006
  *
@@ -31177,7 +31129,7 @@ var TerminalEvent = class extends Event {
31177
31129
  _prepareForTarget(_target) {}
31178
31130
  };
31179
31131
  //#endregion
31180
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
31132
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
31181
31133
  /**
31182
31134
  * Base class for pointer-derived terminal events (click, wheel, hover).
31183
31135
  *
@@ -31238,7 +31190,7 @@ var PointerEvent = class extends TerminalEvent {
31238
31190
  }
31239
31191
  };
31240
31192
  //#endregion
31241
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
31193
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
31242
31194
  /**
31243
31195
  * Component-level drag event (DOM HTML5 drag semantics subset).
31244
31196
  *
@@ -47346,7 +47298,7 @@ var require_react_reconciler_development = /* @__PURE__ */ __commonJSMin(((expor
47346
47298
  }, module.exports.default = module.exports, Object.defineProperty(module.exports, "__esModule", { value: !0 }));
47347
47299
  }));
47348
47300
  //#endregion
47349
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
47301
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
47350
47302
  var import_react_reconciler = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
47351
47303
  if (process.env.NODE_ENV === "production") module.exports = require_react_reconciler_production();
47352
47304
  else module.exports = require_react_reconciler_development();
@@ -47422,7 +47374,7 @@ const LayoutMeasureMode = {
47422
47374
  AtMost: "at-most"
47423
47375
  };
47424
47376
  //#endregion
47425
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
47377
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
47426
47378
  const EDGE_MAP = {
47427
47379
  all: Edge.All,
47428
47380
  horizontal: Edge.Horizontal,
@@ -47649,7 +47601,7 @@ function createYogaLayoutNode() {
47649
47601
  return new YogaLayoutNode(YOGA_INSTANCE.Node.create());
47650
47602
  }
47651
47603
  //#endregion
47652
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
47604
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
47653
47605
  /**
47654
47606
  * Create a new layout node backed by the Yoga adapter.
47655
47607
  * @returns an empty layout node with no children, styles, or measure function.
@@ -47658,7 +47610,7 @@ function createLayoutNode() {
47658
47610
  return createYogaLayoutNode();
47659
47611
  }
47660
47612
  //#endregion
47661
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
47613
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
47662
47614
  const cache = /* @__PURE__ */ new Map();
47663
47615
  const MAX_CACHE_SIZE = 4096;
47664
47616
  const MAX_CACHE_CHARS = 1e5;
@@ -47694,7 +47646,7 @@ function lineWidth(line) {
47694
47646
  return width;
47695
47647
  }
47696
47648
  //#endregion
47697
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
47649
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
47698
47650
  /**
47699
47651
  * Measure wrapped text dimensions in a single pass.
47700
47652
  * @param text - the text to measure.
@@ -47725,7 +47677,7 @@ function measureText(text, maxWidth) {
47725
47677
  };
47726
47678
  }
47727
47679
  //#endregion
47728
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
47680
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
47729
47681
  /**
47730
47682
  * Squash text nodes into styled segments, propagating styles down through the tree.
47731
47683
  * This allows structured styling without relying on ANSI string transforms.
@@ -47773,7 +47725,7 @@ function squashTextNodes(node) {
47773
47725
  return text;
47774
47726
  }
47775
47727
  //#endregion
47776
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
47728
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
47777
47729
  const DEFAULT_TAB_INTERVAL = 8;
47778
47730
  /**
47779
47731
  * Expand tab characters to spaces at fixed column intervals, preserving
@@ -48223,7 +48175,7 @@ function tokenize$1(str, endChar = Number.POSITIVE_INFINITY) {
48223
48175
  return ret;
48224
48176
  }
48225
48177
  //#endregion
48226
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
48178
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
48227
48179
  function isEndCode(code) {
48228
48180
  return code.code === code.endCode;
48229
48181
  }
@@ -48840,7 +48792,7 @@ function wrapAnsi$1(string, columns, options) {
48840
48792
  return normalizeText(String(string)).replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs$1(line), columns, options)).join("\n");
48841
48793
  }
48842
48794
  //#endregion
48843
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
48795
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
48844
48796
  const wrapAnsiBun = typeof Bun !== "undefined" && typeof Bun.wrapAnsi === "function" ? Bun.wrapAnsi : null;
48845
48797
  const SLOT_MIN_LENGTH = 2048;
48846
48798
  let slot = null;
@@ -48887,7 +48839,7 @@ function wrapAnsiNpmIncremental(input, columns, options) {
48887
48839
  */
48888
48840
  const wrapAnsi = wrapAnsiBun ?? wrapAnsiNpmIncremental;
48889
48841
  //#endregion
48890
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
48842
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
48891
48843
  const ELLIPSIS = "…";
48892
48844
  const WRAP_CACHE_MAX_ENTRIES = 2048;
48893
48845
  const WRAP_CACHE_MAX_CHARS = 2e6;
@@ -48951,7 +48903,7 @@ function wrapText$1(text, maxWidth, wrapType) {
48951
48903
  return text;
48952
48904
  }
48953
48905
  //#endregion
48954
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
48906
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
48955
48907
  /**
48956
48908
  * Create an element node of the given kind, allocating its yoga layout node
48957
48909
  * unless the kind renders without layout (`ink-virtual-text`, `ink-link`,
@@ -49271,7 +49223,7 @@ function findOwnerChainAtRow(root, y) {
49271
49223
  }
49272
49224
  }
49273
49225
  //#endregion
49274
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
49226
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
49275
49227
  /**
49276
49228
  * Reverse lookup: event type string → handler prop names.
49277
49229
  * Used by the dispatcher for O(1) handler lookup per node.
@@ -49325,7 +49277,7 @@ const EVENT_HANDLER_PROPS = new Set([
49325
49277
  "onWheel"
49326
49278
  ]);
49327
49279
  //#endregion
49328
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
49280
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
49329
49281
  function getHandler(node, eventType, capture) {
49330
49282
  const handlers = node._eventHandlers;
49331
49283
  if (!handlers) return void 0;
@@ -49493,7 +49445,7 @@ var Dispatcher = class {
49493
49445
  }
49494
49446
  };
49495
49447
  //#endregion
49496
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
49448
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
49497
49449
  /**
49498
49450
  * Focus event for component focus changes.
49499
49451
  *
@@ -49518,7 +49470,7 @@ var FocusEvent = class extends TerminalEvent {
49518
49470
  }
49519
49471
  };
49520
49472
  //#endregion
49521
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
49473
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
49522
49474
  const MAX_FOCUS_STACK = 32;
49523
49475
  /**
49524
49476
  * DOM-like focus manager for the Ink terminal UI.
@@ -49674,7 +49626,7 @@ function getFocusManager(node) {
49674
49626
  return getRootNode(node).focusManager;
49675
49627
  }
49676
49628
  //#endregion
49677
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
49629
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
49678
49630
  const applyPositionStyles = (node, style) => {
49679
49631
  if ("position" in style) node.setPositionType(style.position === "absolute" ? LayoutPositionType.Absolute : LayoutPositionType.Relative);
49680
49632
  if ("top" in style) applyPositionEdge(node, "top", style.top);
@@ -49809,7 +49761,7 @@ const styles = (node, style = {}, resolvedStyle) => {
49809
49761
  applyGapStyles(node, style);
49810
49762
  };
49811
49763
  //#endregion
49812
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
49764
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
49813
49765
  if (process.env.NODE_ENV === "development") try {
49814
49766
  import("./devtools-la_KkjCS.js");
49815
49767
  } catch (error) {
@@ -50129,7 +50081,7 @@ const reconciler = (0, import_react_reconciler.default)({
50129
50081
  });
50130
50082
  dispatcher.discreteUpdates = reconciler.discreteUpdates.bind(reconciler);
50131
50083
  //#endregion
50132
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
50084
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
50133
50085
  /**
50134
50086
  * Compute the smallest rectangle containing both input rectangles.
50135
50087
  * @param a - the first rectangle.
@@ -50161,7 +50113,7 @@ function clamp(value, min, max) {
50161
50113
  return value;
50162
50114
  }
50163
50115
  //#endregion
50164
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
50116
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
50165
50117
  /**
50166
50118
  * Log a warning when a value is present but not an integer.
50167
50119
  * @param value - the value to check; undefined is skipped silently.
@@ -50173,7 +50125,7 @@ function ifNotInteger(value, name) {
50173
50125
  logForDebugging(`${name} should be an integer, got ${value}`, { level: "warn" });
50174
50126
  }
50175
50127
  //#endregion
50176
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
50128
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
50177
50129
  /**
50178
50130
  * Pool of character strings shared across all screens.
50179
50131
  * With a shared pool, interned char IDs are valid across screens, so
@@ -51242,7 +51194,7 @@ function markNoSelectRegion(screen, x, y, width, height) {
51242
51194
  }
51243
51195
  }
51244
51196
  //#endregion
51245
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
51197
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
51246
51198
  /**
51247
51199
  * Text selection state for fullscreen mode.
51248
51200
  *
@@ -52208,7 +52160,7 @@ function applySelectionOverlay(screen, selection, stylePool) {
52208
52160
  }
52209
52161
  }
52210
52162
  //#endregion
52211
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
52163
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
52212
52164
  /**
52213
52165
  * DEC (Digital Equipment Corporation) Private Mode Sequences
52214
52166
  *
@@ -52274,7 +52226,7 @@ const ENABLE_MOUSE_TRACKING = decset(DEC.MOUSE_NORMAL) + decset(DEC.MOUSE_BUTTON
52274
52226
  /** Disable all mouse tracking modes enabled by ENABLE_MOUSE_TRACKING. */
52275
52227
  const DISABLE_MOUSE_TRACKING = decreset(DEC.MOUSE_SGR) + decreset(DEC.MOUSE_ANY) + decreset(DEC.MOUSE_BUTTON) + decreset(DEC.MOUSE_NORMAL);
52276
52228
  //#endregion
52277
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
52229
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
52278
52230
  /**
52279
52231
  * True when running inside a JetBrains IDE terminal (JediTerm). The IDE
52280
52232
  * injects `TERMINAL_EMULATOR=JetBrains-JediTerm` into the pty environment of
@@ -52516,7 +52468,7 @@ function writeDiffToTerminal(terminal, diff, skipSyncMarkers = false) {
52516
52468
  terminal.stdout.write(buffer);
52517
52469
  }
52518
52470
  //#endregion
52519
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
52471
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
52520
52472
  let focusState = "unknown";
52521
52473
  const resolvers = /* @__PURE__ */ new Set();
52522
52474
  const subscribers = /* @__PURE__ */ new Set();
@@ -52560,7 +52512,7 @@ function subscribeTerminalFocus(cb) {
52560
52512
  };
52561
52513
  }
52562
52514
  //#endregion
52563
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
52515
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
52564
52516
  /**
52565
52517
  * `AppContext` is a React context, which exposes a method to manually exit the app (unmount).
52566
52518
  */
@@ -52605,13 +52557,13 @@ var require_react_compiler_runtime_development = /* @__PURE__ */ __commonJSMin((
52605
52557
  })();
52606
52558
  }));
52607
52559
  //#endregion
52608
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
52560
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
52609
52561
  var import_compiler_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
52610
52562
  if (process.env.NODE_ENV === "production") module.exports = require_react_compiler_runtime_production();
52611
52563
  else module.exports = require_react_compiler_runtime_development();
52612
52564
  })))();
52613
52565
  //#endregion
52614
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
52566
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
52615
52567
  /**
52616
52568
  * Geometry forensics — per-frame scroll-geometry trace (issues #421/#433).
52617
52569
  *
@@ -52691,7 +52643,7 @@ function endGeometryFrame(durationMs) {
52691
52643
  };
52692
52644
  }
52693
52645
  //#endregion
52694
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
52646
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
52695
52647
  const TerminalFocusContext = (0, import_react.createContext)({
52696
52648
  isTerminalFocused: true,
52697
52649
  terminalFocusState: "unknown"
@@ -52726,7 +52678,7 @@ function TerminalFocusProvider(t0) {
52726
52678
  return t2;
52727
52679
  }
52728
52680
  //#endregion
52729
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
52681
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
52730
52682
  /**
52731
52683
  * Hook to check if the terminal has focus.
52732
52684
  *
@@ -52741,7 +52693,7 @@ function useTerminalFocus() {
52741
52693
  return isTerminalFocused;
52742
52694
  }
52743
52695
  //#endregion
52744
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
52696
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
52745
52697
  function createClock(tickIntervalMs) {
52746
52698
  const subscribers = /* @__PURE__ */ new Map();
52747
52699
  let interval = null;
@@ -52838,7 +52790,7 @@ function _temp() {
52838
52790
  return createClock(16);
52839
52791
  }
52840
52792
  //#endregion
52841
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
52793
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
52842
52794
  /**
52843
52795
  * React context that provides the cursor-declaration setter to descendants.
52844
52796
  */
@@ -52878,7 +52830,7 @@ var require_escape_string_regexp = /* @__PURE__ */ __commonJSMin(((exports, modu
52878
52830
  };
52879
52831
  }));
52880
52832
  //#endregion
52881
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
52833
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
52882
52834
  var import_stack_utils = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
52883
52835
  const escapeStringRegexp = require_escape_string_regexp();
52884
52836
  const cwd = typeof process === "object" && process && typeof process.cwd === "function" ? process.cwd() : ".";
@@ -53246,7 +53198,7 @@ function Box(t0) {
53246
53198
  return t4;
53247
53199
  }
53248
53200
  //#endregion
53249
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
53201
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
53250
53202
  const memoizedStylesForWrap = {
53251
53203
  wrap: {
53252
53204
  flexGrow: 0,
@@ -53398,7 +53350,7 @@ function Text(t0) {
53398
53350
  return t16;
53399
53351
  }
53400
53352
  //#endregion
53401
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
53353
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
53402
53354
  const cleanupPath = (path) => {
53403
53355
  return path?.replace(`file://${process.cwd()}/`, "");
53404
53356
  };
@@ -53503,10 +53455,10 @@ function ErrorOverview({ error }) {
53503
53455
  });
53504
53456
  }
53505
53457
  //#endregion
53506
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
53458
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
53507
53459
  const TerminalSizeContext = (0, import_react.createContext)(null);
53508
53460
  //#endregion
53509
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
53461
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
53510
53462
  /**
53511
53463
  * React context providing a raw terminal write function. Null until a
53512
53464
  * TerminalWriteProvider is mounted.
@@ -53517,7 +53469,7 @@ const TerminalWriteContext = (0, import_react.createContext)(null);
53517
53469
  */
53518
53470
  const TerminalWriteProvider = TerminalWriteContext.Provider;
53519
53471
  //#endregion
53520
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
53472
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
53521
53473
  const SUPPORTS_SUSPEND = process.platform !== "win32";
53522
53474
  const STDIN_RESUME_GAP_MS = 5e3;
53523
53475
  const MULTI_CLICK_TIMEOUT_MS = 500;
@@ -54043,7 +53995,7 @@ function handleMouseEvent(app, m) {
54043
53995
  }
54044
53996
  }
54045
53997
  //#endregion
54046
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
53998
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
54047
53999
  /**
54048
54000
  * Keyboard event dispatched through the DOM tree via capture/bubble.
54049
54001
  *
@@ -54103,7 +54055,7 @@ function keyFromParsed(parsed) {
54103
54055
  return name || seq;
54104
54056
  }
54105
54057
  //#endregion
54106
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
54058
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
54107
54059
  /**
54108
54060
  * Create an empty frame with a zero-size screen, the given viewport, and a
54109
54061
  * visible cursor at the origin.
@@ -54129,7 +54081,7 @@ function emptyFrame(rows, columns, stylePool, charPool, hyperlinkPool) {
54129
54081
  };
54130
54082
  }
54131
54083
  //#endregion
54132
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
54084
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
54133
54085
  /**
54134
54086
  * Mouse click event. Fired on left-button release without drag, only when
54135
54087
  * mouse tracking is enabled (i.e. inside <AlternateScreen>).
@@ -54160,7 +54112,7 @@ var ClickEvent = class extends PointerEvent {
54160
54112
  }
54161
54113
  };
54162
54114
  //#endregion
54163
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
54115
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
54164
54116
  /**
54165
54117
  * Mouse context-menu event. Fired on right-button press (SGR button 2,
54166
54118
  * low bits of the raw button byte), mirroring the DOM `contextmenu` event
@@ -54184,7 +54136,7 @@ var ContextMenuEvent = class extends PointerEvent {
54184
54136
  }
54185
54137
  };
54186
54138
  //#endregion
54187
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
54139
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
54188
54140
  /**
54189
54141
  * Mouse wheel event dispatched to the ScrollBox under the pointer.
54190
54142
  *
@@ -54220,7 +54172,7 @@ function indentString(string, count = 1, options = {}) {
54220
54172
  return string.replace(regex, indent.repeat(count));
54221
54173
  }
54222
54174
  //#endregion
54223
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
54175
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
54224
54176
  /**
54225
54177
  * Returns the yoga node's content width (computed width minus padding and
54226
54178
  * border).
@@ -54325,7 +54277,7 @@ var cli_boxes_default = {
54325
54277
  }
54326
54278
  };
54327
54279
  //#endregion
54328
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
54280
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
54329
54281
  /** Built-in border styles beyond those provided by cli-boxes. */
54330
54282
  const CUSTOM_BORDER_STYLES = { dashed: {
54331
54283
  top: "╌",
@@ -54415,7 +54367,7 @@ const renderBorder = (x, y, node, output) => {
54415
54367
  }
54416
54368
  };
54417
54369
  //#endregion
54418
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
54370
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
54419
54371
  /**
54420
54372
  * Get the display width of the widest line in a string.
54421
54373
  * @param string - the text to measure, possibly containing newlines.
@@ -54434,7 +54386,7 @@ function widestLine(string) {
54434
54386
  return maxWidth;
54435
54387
  }
54436
54388
  //#endregion
54437
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
54389
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
54438
54390
  function isXtermJsHost() {
54439
54391
  return process.env.TERM_PROGRAM === "vscode" || isXtermJs();
54440
54392
  }
@@ -55250,7 +55202,7 @@ function dropSubtreeCache(node) {
55250
55202
  for (const child of node.childNodes) if (child.nodeName !== "#text") dropSubtreeCache(child);
55251
55203
  }
55252
55204
  //#endregion
55253
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
55205
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
55254
55206
  /**
55255
55207
  * Find the deepest DOM element whose rendered rect contains (col, row).
55256
55208
  *
@@ -55640,7 +55592,7 @@ function dispatchHover(root, col, row, hovered) {
55640
55592
  }
55641
55593
  }
55642
55594
  //#endregion
55643
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
55595
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
55644
55596
  /**
55645
55597
  * Monotonic terminal-flush counter for the ported Ink core.
55646
55598
  *
@@ -55673,7 +55625,7 @@ function getTerminalFlushTick() {
55673
55625
  return flushTick;
55674
55626
  }
55675
55627
  //#endregion
55676
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
55628
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
55677
55629
  /**
55678
55630
  * Live Ink instances keyed by their output stream, so consecutive render()
55679
55631
  * calls reuse the instance for a stream instead of creating a new one.
@@ -55682,7 +55634,7 @@ function getTerminalFlushTick() {
55682
55634
  */
55683
55635
  const instances = /* @__PURE__ */ new Map();
55684
55636
  //#endregion
55685
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
55637
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
55686
55638
  const CARRIAGE_RETURN = { type: "carriageReturn" };
55687
55639
  const NEWLINE = {
55688
55640
  type: "stdout",
@@ -56298,7 +56250,7 @@ var VirtualScreen = class {
56298
56250
  }
56299
56251
  };
56300
56252
  //#endregion
56301
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
56253
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
56302
56254
  /**
56303
56255
  * Optimize a diff by applying all optimization rules in a single pass.
56304
56256
  * This reduces the number of patches that need to be written to the terminal.
@@ -56363,7 +56315,7 @@ function optimize(diff) {
56363
56315
  return result;
56364
56316
  }
56365
56317
  //#endregion
56366
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
56318
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
56367
56319
  var import_bidi = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
56368
56320
  (function(global, factory) {
56369
56321
  typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, global.bidi_js = factory());
@@ -57139,7 +57091,7 @@ function hasRTLCharacters(text) {
57139
57091
  return /[\u0590-\u05FF\uFB1D-\uFB4F\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\u0780-\u07BF\u0700-\u074F]/u.test(text);
57140
57092
  }
57141
57093
  //#endregion
57142
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
57094
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
57143
57095
  /**
57144
57096
  * charCache bounds. The entry-count cap alone was not enough: a streaming
57145
57097
  * line produces a NEW cache key on every frame, and each entry's cost is
@@ -57809,7 +57761,7 @@ function writeLineToScreen(screen, line, x, y, screenWidth, stylePool, charCache
57809
57761
  return offsetX;
57810
57762
  }
57811
57763
  //#endregion
57812
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
57764
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
57813
57765
  const timing = {
57814
57766
  reconcile: 0,
57815
57767
  yoga: 0,
@@ -57903,7 +57855,7 @@ function applyPositionedHighlight(screen, stylePool, positions, rowOffset, curre
57903
57855
  return true;
57904
57856
  }
57905
57857
  //#endregion
57906
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
57858
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
57907
57859
  /**
57908
57860
  * Create the renderer function for a root DOM node. The returned renderer
57909
57861
  * reuses an Output across frames so its character cache persists.
@@ -57978,7 +57930,7 @@ function createRenderer(node, stylePool) {
57978
57930
  };
57979
57931
  }
57980
57932
  //#endregion
57981
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
57933
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
57982
57934
  /**
57983
57935
  * Highlight all visible occurrences of `query` in the screen buffer by
57984
57936
  * inverting cell styles (SGR 7). Post-render, same damage-tracking machinery
@@ -58040,7 +57992,7 @@ function applySearchHighlight(screen, query, stylePool) {
58040
57992
  return applied;
58041
57993
  }
58042
57994
  //#endregion
58043
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
57995
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
58044
57996
  const ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({
58045
57997
  x: 0,
58046
57998
  y: 0,
@@ -59593,7 +59545,7 @@ const CONSOLE_STDERR_METHODS = [
59593
59545
  "trace"
59594
59546
  ];
59595
59547
  //#endregion
59596
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
59548
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
59597
59549
  /**
59598
59550
  * Mount a component and render the output.
59599
59551
  * @param node - the React element to render.
@@ -59676,7 +59628,7 @@ const getInstance = (stdout, createInstance) => {
59676
59628
  return instance;
59677
59629
  };
59678
59630
  //#endregion
59679
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
59631
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
59680
59632
  /** Resolves a color value that may be a theme key to a raw Color. */
59681
59633
  function resolveColor$1(color, theme) {
59682
59634
  if (!color) return void 0;
@@ -59701,7 +59653,7 @@ function ThemedBox({ borderColor, borderTopColor, borderBottomColor, borderLeftC
59701
59653
  });
59702
59654
  }
59703
59655
  //#endregion
59704
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
59656
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
59705
59657
  /**
59706
59658
  * Colors uncolored ThemedText in the subtree. Precedence: explicit `color` >
59707
59659
  * this > dimColor (in the Claude Code visual language, where message rows
@@ -59737,7 +59689,7 @@ function ThemedText({ color, backgroundColor, dimColor = false, bold = false, it
59737
59689
  });
59738
59690
  }
59739
59691
  //#endregion
59740
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
59692
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
59741
59693
  /**
59742
59694
  * A flexible space that expands along the major axis of its containing layout.
59743
59695
  * It's useful as a shortcut for filling all the available spaces between elements.
@@ -59752,7 +59704,7 @@ function Spacer() {
59752
59704
  return t0;
59753
59705
  }
59754
59706
  //#endregion
59755
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
59707
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
59756
59708
  /**
59757
59709
  * Adds one or more newline (\n) characters. Must be used within <Text> components.
59758
59710
  */
@@ -59775,7 +59727,7 @@ function Newline(t0) {
59775
59727
  return t3;
59776
59728
  }
59777
59729
  //#endregion
59778
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
59730
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
59779
59731
  /**
59780
59732
  * Marks its contents as non-selectable in fullscreen text selection.
59781
59733
  * Cells inside this box are skipped by both the selection highlight and
@@ -59826,7 +59778,7 @@ function NoSelect(t0) {
59826
59778
  return t2;
59827
59779
  }
59828
59780
  //#endregion
59829
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
59781
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
59830
59782
  /**
59831
59783
  * Run children in the terminal's alternate screen buffer, constrained to
59832
59784
  * the viewport height. While mounted:
@@ -59901,7 +59853,7 @@ function AlternateScreen(t0) {
59901
59853
  return t5;
59902
59854
  }
59903
59855
  //#endregion
59904
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
59856
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
59905
59857
  /**
59906
59858
  * A Box with `overflow: scroll` and an imperative scroll API.
59907
59859
  *
@@ -60079,7 +60031,7 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
60079
60031
  });
60080
60032
  }
60081
60033
  //#endregion
60082
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
60034
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
60083
60035
  /**
60084
60036
  * Keep an event listener stable while always dispatching to the latest render's
60085
60037
  * callback. Keeping this hook local is important for packaged installs: a
@@ -60145,7 +60097,7 @@ const useInput = (inputHandler, options = {}) => {
60145
60097
  }, [internal_eventEmitter, handleData]);
60146
60098
  };
60147
60099
  //#endregion
60148
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
60100
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
60149
60101
  /**
60150
60102
  * Access to text selection operations on the Ink instance (fullscreen only).
60151
60103
  * Returns no-op functions when fullscreen mode is disabled.
@@ -60185,7 +60137,7 @@ function useSelection() {
60185
60137
  }, [ink]);
60186
60138
  }
60187
60139
  //#endregion
60188
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
60140
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
60189
60141
  /**
60190
60142
  * Copy-on-select: when a drag finishes (or a double/triple click, or a
60191
60143
  * shift+arrow extension, lands a selection), copy the selected text to the
@@ -60225,14 +60177,14 @@ function useCopyOnSelect(onCopied) {
60225
60177
  ]);
60226
60178
  }
60227
60179
  //#endregion
60228
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
60180
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
60229
60181
  /**
60230
60182
  * React hook exposing the manual app-exit function from `AppContext`.
60231
60183
  * @returns the `AppContext` value, whose `exit` function unmounts the app.
60232
60184
  */
60233
60185
  const useApp = () => (0, import_react.useContext)(AppContext);
60234
60186
  //#endregion
60235
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
60187
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
60236
60188
  /**
60237
60189
  * Hook to detect if a component is within the terminal viewport.
60238
60190
  *
@@ -60286,7 +60238,7 @@ function useTerminalViewport() {
60286
60238
  return [setElement, entryRef.current];
60287
60239
  }
60288
60240
  //#endregion
60289
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
60241
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
60290
60242
  /**
60291
60243
  * Hook for synchronized animations that pause when offscreen.
60292
60244
  *
@@ -60335,7 +60287,7 @@ function useAnimationFrame(intervalMs = 16) {
60335
60287
  return [viewportRef, time];
60336
60288
  }
60337
60289
  //#endregion
60338
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
60290
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
60339
60291
  /** Terminal dimensions from the Ink app shell (from Claude Code).
60340
60292
  * @returns the current terminal dimensions.
60341
60293
  */
@@ -60345,7 +60297,7 @@ function useTerminalSize() {
60345
60297
  return size;
60346
60298
  }
60347
60299
  //#endregion
60348
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
60300
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
60349
60301
  const BLINK_INTERVAL_MS = 600;
60350
60302
  /**
60351
60303
  * Hook for synchronized blinking animations that pause when offscreen
@@ -60362,7 +60314,7 @@ function useBlink(enabled, intervalMs = BLINK_INTERVAL_MS) {
60362
60314
  return [ref, Math.floor(time / intervalMs) % 2 === 0];
60363
60315
  }
60364
60316
  //#endregion
60365
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
60317
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
60366
60318
  var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
60367
60319
  const supportsColor = require_supports_color();
60368
60320
  const hasFlag = require_has_flag();
@@ -60391,13 +60343,14 @@ var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __comm
60391
60343
  @returns {boolean}
60392
60344
  */
60393
60345
  function supportsHyperlink(stream) {
60394
- const { CI, FORCE_HYPERLINK, NETLIFY, TEAMCITY_VERSION, TERM_PROGRAM, TERM_PROGRAM_VERSION, VTE_VERSION } = process.env;
60346
+ const { CI, FORCE_HYPERLINK, NETLIFY, TEAMCITY_VERSION, TERM_PROGRAM, TERM_PROGRAM_VERSION, VTE_VERSION, TERM } = process.env;
60395
60347
  if (FORCE_HYPERLINK) return !(FORCE_HYPERLINK.length > 0 && parseInt(FORCE_HYPERLINK, 10) === 0);
60396
60348
  if (hasFlag("no-hyperlink") || hasFlag("no-hyperlinks") || hasFlag("hyperlink=false") || hasFlag("hyperlink=never")) return false;
60397
60349
  if (hasFlag("hyperlink=true") || hasFlag("hyperlink=always")) return true;
60398
60350
  if (NETLIFY) return true;
60399
60351
  if (!supportsColor.supportsColor(stream)) return false;
60400
60352
  if (stream && !stream.isTTY) return false;
60353
+ if ("WT_SESSION" in process.env) return true;
60401
60354
  if (process.platform === "win32") return false;
60402
60355
  if (CI) return false;
60403
60356
  if (TEAMCITY_VERSION) return false;
@@ -60409,6 +60362,7 @@ var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __comm
60409
60362
  return version.major > 3;
60410
60363
  case "WezTerm": return version.major >= 20200620;
60411
60364
  case "vscode": return version.major > 1 || version.major === 1 && version.minor >= 72;
60365
+ case "ghostty": return true;
60412
60366
  }
60413
60367
  }
60414
60368
  if (VTE_VERSION) {
@@ -60416,6 +60370,9 @@ var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __comm
60416
60370
  const version = parseVersion(VTE_VERSION);
60417
60371
  return version.major > 0 || version.minor >= 50;
60418
60372
  }
60373
+ switch (TERM) {
60374
+ case "alacritty": return true;
60375
+ }
60419
60376
  return false;
60420
60377
  }
60421
60378
  module.exports = {
@@ -60454,7 +60411,7 @@ function supportsHyperlinks(options) {
60454
60411
  return false;
60455
60412
  }
60456
60413
  //#endregion
60457
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
60414
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
60458
60415
  function Link(t0) {
60459
60416
  const $ = (0, import_compiler_runtime.c)(5);
60460
60417
  const { children, url, fallback } = t0;
@@ -60482,7 +60439,7 @@ function Link(t0) {
60482
60439
  return t2;
60483
60440
  }
60484
60441
  //#endregion
60485
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
60442
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
60486
60443
  /**
60487
60444
  * ESC Sequence Parser
60488
60445
  *
@@ -60538,7 +60495,7 @@ function parseEsc(chars) {
60538
60495
  };
60539
60496
  }
60540
60497
  //#endregion
60541
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
60498
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
60542
60499
  /**
60543
60500
  * ANSI Parser - Semantic Types
60544
60501
  *
@@ -60566,7 +60523,7 @@ function defaultStyle() {
60566
60523
  };
60567
60524
  }
60568
60525
  //#endregion
60569
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
60526
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
60570
60527
  /**
60571
60528
  * SGR (Select Graphic Rendition) Parser
60572
60529
  *
@@ -60874,7 +60831,7 @@ function applySGR(paramStr, style) {
60874
60831
  return s;
60875
60832
  }
60876
60833
  //#endregion
60877
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
60834
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
60878
60835
  /**
60879
60836
  * ANSI Parser - Semantic Action Generator
60880
60837
  *
@@ -61251,7 +61208,7 @@ var Parser = class {
61251
61208
  }
61252
61209
  };
61253
61210
  //#endregion
61254
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
61211
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
61255
61212
  /**
61256
61213
  * Component that parses ANSI escape codes and renders them using Text components.
61257
61214
  *
@@ -61502,7 +61459,7 @@ function StyledText(t0) {
61502
61459
  return t1;
61503
61460
  }
61504
61461
  //#endregion
61505
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
61462
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
61506
61463
  var ui_exports = /* @__PURE__ */ __exportAll({
61507
61464
  AlternateScreen: () => AlternateScreen,
61508
61465
  Ansi: () => Ansi,
@@ -61526,7 +61483,7 @@ var ui_exports = /* @__PURE__ */ __exportAll({
61526
61483
  useTheme: () => useTheme
61527
61484
  });
61528
61485
  //#endregion
61529
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
61486
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
61530
61487
  /** 嵌套安全的 inset(若未来出现嵌套 PageMargin 会累加)。 */
61531
61488
  const PageInsetContext = import_react.createContext({
61532
61489
  x: 0,
@@ -61580,7 +61537,7 @@ function PageMargin({ children }) {
61580
61537
  });
61581
61538
  }
61582
61539
  //#endregion
61583
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
61540
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
61584
61541
  /**
61585
61542
  * UI glyph constants used across the TUI: prompt markers, status badges,
61586
61543
  * direction arrows, media controls, reasoning-effort indicators, and
@@ -61607,7 +61564,7 @@ const THINKING_SPINNER_FRAMES = [
61607
61564
  "⠏"
61608
61565
  ];
61609
61566
  //#endregion
61610
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
61567
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
61611
61568
  /**
61612
61569
  * `/provider` wizard — interactively adds, edits, or deletes an LLM
61613
61570
  * provider route at runtime.
@@ -62333,7 +62290,7 @@ function buildProfile(input) {
62333
62290
  return profile;
62334
62291
  }
62335
62292
  //#endregion
62336
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
62293
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
62337
62294
  /**
62338
62295
  * `/model-config` is a compact settings-backed model editor. The landing page
62339
62296
  * keeps the managed catalog switch and selectable platform models in one
@@ -62386,7 +62343,7 @@ async function runModelConfigWizard(deps) {
62386
62343
  const selected = rows.find((row) => row.label === choice);
62387
62344
  if (choice !== void 0) landingFocus = choice;
62388
62345
  if (selected?.kind === "maas") {
62389
- if (deps.host.maas === void 0) {
62346
+ if (deps.host.maas?.setEnabled === void 0) {
62390
62347
  deps.notify(t("model-config-maas-unavailable"), {
62391
62348
  color: "warning",
62392
62349
  timeoutMs: 8e3
@@ -62431,11 +62388,11 @@ function landingRows(deps, builtInModels, maasModels) {
62431
62388
  const maas = deps.host.maas;
62432
62389
  const current = deps.current();
62433
62390
  return [
62434
- {
62391
+ ...maas !== void 0 && maas.setEnabled === void 0 ? [] : [{
62435
62392
  kind: "maas",
62436
62393
  label: t("model-config-maas-row"),
62437
62394
  value: maas === void 0 ? t("model-config-state-unavailable") : maas.enabled() ? t("model-config-state-on") : t("model-config-state-off")
62438
- },
62395
+ }],
62439
62396
  ...builtInModels.map((model) => ({
62440
62397
  kind: "built-in-model",
62441
62398
  label: markCurrent(counts.get(model.name) === 1 ? model.name : `${model.name} · ${t("model-config-builtin-provider-label")}`, model.provider === current.provider && model.id === current.model),
@@ -62460,7 +62417,7 @@ function markCurrent(label, current) {
62460
62417
  return current ? `${label} ${t("model-config-current-tag")}` : label;
62461
62418
  }
62462
62419
  //#endregion
62463
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
62420
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
62464
62421
  /**
62465
62422
  * Declares where the terminal cursor should be parked after each frame.
62466
62423
  *
@@ -62509,7 +62466,7 @@ function useDeclaredCursor(options) {
62509
62466
  return setNode;
62510
62467
  }
62511
62468
  //#endregion
62512
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
62469
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
62513
62470
  /**
62514
62471
  * Measure the rendered dimensions of a Box element.
62515
62472
  * @param node - the DOM element to measure.
@@ -62520,7 +62477,7 @@ const measureElement = (node) => ({
62520
62477
  height: node.yogaNode?.getComputedHeight() ?? 0
62521
62478
  });
62522
62479
  //#endregion
62523
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
62480
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
62524
62481
  const MAX_APPLIED_MEASUREMENTS = 8;
62525
62482
  /**
62526
62483
  * A horizontal divider line, optionally with a title in the middle
@@ -64231,7 +64188,7 @@ k.parseInline;
64231
64188
  T.parse;
64232
64189
  R.lex;
64233
64190
  //#endregion
64234
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
64191
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
64235
64192
  /** highlight.js token classes -> theme syntax tokens. `default` catches
64236
64193
  * every unmapped class so cli-highlight's own yellow never leaks through
64237
64194
  * (issue #250, P2-6). */
@@ -64297,7 +64254,7 @@ function buildSyntaxTheme(theme) {
64297
64254
  return out;
64298
64255
  }
64299
64256
  //#endregion
64300
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
64257
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
64301
64258
  /** OSC 8 hyperlink start sequence: `ESC ] 8 ; ;`, followed by the URL. */
64302
64259
  const OSC8_START = "\x1B]8;;";
64303
64260
  /** Schemes a rendered hyperlink may point at. Anything else degrades to
@@ -64339,7 +64296,7 @@ function createHyperlink(url, content, options) {
64339
64296
  return `${OSC8_START}${safeUrl}${(options?.style ?? ((text) => chalk.blue(text)))(displayText)}${OSC8_START}`;
64340
64297
  }
64341
64298
  //#endregion
64342
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
64299
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
64343
64300
  /**
64344
64301
  * Clickable file targets: turning path-like text in AI output into
64345
64302
  * clickable targets, and resolving those targets back to absolute paths at
@@ -64481,7 +64438,7 @@ function linkifyFilePaths(text, wrap) {
64481
64438
  });
64482
64439
  }
64483
64440
  //#endregion
64484
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
64441
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
64485
64442
  /**
64486
64443
  * Markdown-to-ANSI renderer over marked's token stream.
64487
64444
  *
@@ -64796,11 +64753,11 @@ function padAligned(content, displayWidth, targetWidth, align) {
64796
64753
  return content + " ".repeat(extra);
64797
64754
  }
64798
64755
  //#endregion
64799
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
64756
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
64800
64757
  let cliHighlightPromise;
64801
64758
  async function loadCliHighlight() {
64802
64759
  try {
64803
- const cliHighlight = await import("./dist-DxjlHHph.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
64760
+ const cliHighlight = await import("./dist-w_sIm4VD.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
64804
64761
  (await import("./es-la_KkjCS.js")).getLanguage;
64805
64762
  return {
64806
64763
  highlight: cliHighlight.highlight,
@@ -64819,7 +64776,7 @@ function getCliHighlightPromise() {
64819
64776
  return cliHighlightPromise;
64820
64777
  }
64821
64778
  //#endregion
64822
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
64779
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
64823
64780
  /** Accounts for parent indentation and terminal resize races (from Claude Code). */
64824
64781
  const SAFETY_MARGIN = 4;
64825
64782
  /** Minimum column width to prevent degenerate layouts */
@@ -65006,7 +64963,7 @@ function MarkdownTable({ token, highlight, forceWidth }) {
65006
64963
  return (0, import_jsx_runtime.jsx)(Text, { children: tableLines.join("\n") });
65007
64964
  }
65008
64965
  //#endregion
65009
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
64966
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
65010
64967
  const TOKEN_CACHE_CAPACITY = 200;
65011
64968
  const TOKEN_CACHE_CHAR_BUDGET = 2e5;
65012
64969
  const TOKEN_CACHE_MAX_SOURCE_LENGTH = 2e4;
@@ -65115,7 +65072,7 @@ function MarkdownImpl({ children, dimColor = false, cacheTokens = true }) {
65115
65072
  */
65116
65073
  const Markdown = import_react.memo(MarkdownImpl, (prev, next) => prev.children === next.children && prev.dimColor === next.dimColor && prev.cacheTokens === next.cacheTokens);
65117
65074
  //#endregion
65118
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
65075
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
65119
65076
  /**
65120
65077
  * The plan-review panel — Claude Code style exit-plan-mode decision card
65121
65078
  * for the DSH user-interaction seam. plan-mode's `exit_plan_mode` tool asks
@@ -65437,7 +65394,7 @@ function PlanReviewPanel({ question, onAnswer, onCancel }) {
65437
65394
  });
65438
65395
  }
65439
65396
  //#endregion
65440
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
65397
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
65441
65398
  /**
65442
65399
  * 焦点居中的列表窗口:长列表只渲染焦点附近的一段,保证焦点行始终可见。
65443
65400
  * 瞬态面板走 OverlayAbove 零高度浮层后,超高部分会被 overflow 裁掉且焦点
@@ -65489,7 +65446,7 @@ function listWindow(heights, focusIndex, maxRows, gap = 0) {
65489
65446
  }
65490
65447
  }
65491
65448
  //#endregion
65492
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
65449
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
65493
65450
  /**
65494
65451
  * The questionnaire panel — Claude Code style ask-user-question UI for the
65495
65452
  * DSH user-interaction seam. One question per panel (progress header, header
@@ -66072,7 +66029,7 @@ function AskUserQuestionPanel({ question, position, total, answered, initialDraf
66072
66029
  });
66073
66030
  }
66074
66031
  //#endregion
66075
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
66032
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
66076
66033
  /**
66077
66034
  * The approval panel — Claude Code style permission prompt for the DSH
66078
66035
  * approval seam (`ctx.approval`). One ask per panel: a permission-colored
@@ -66197,7 +66154,7 @@ function ApprovalPanel({ approval, background = false, onDecide }) {
66197
66154
  });
66198
66155
  }
66199
66156
  //#endregion
66200
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
66157
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
66201
66158
  /**
66202
66159
  * A pane — a region below the prompt bounded by a colored top line with a
66203
66160
  * one-row gap above and horizontal padding, mirroring Claude Code's
@@ -66219,7 +66176,7 @@ function Pane({ children, color }) {
66219
66176
  });
66220
66177
  }
66221
66178
  //#endregion
66222
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
66179
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
66223
66180
  /**
66224
66181
  * A list item for selection UIs, mirroring Claude Code's
66225
66182
  * design-system/ListItem.tsx: `❯` pointer for the focused row, `✓`
@@ -66316,7 +66273,7 @@ function flattenDeep(node) {
66316
66273
  return node;
66317
66274
  }
66318
66275
  //#endregion
66319
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
66276
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
66320
66277
  /**
66321
66278
  * Localized shortcut-hint line: renders a `t('hint-*')` string, with the
66322
66279
  * `**primary shortcut**` segment (the main action's key, wrapped in `**` in
@@ -66333,7 +66290,7 @@ function HintLine({ text }) {
66333
66290
  }, index) : part) });
66334
66291
  }
66335
66292
  //#endregion
66336
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
66293
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
66337
66294
  /**
66338
66295
  * The managed plugin dialog (`ctx.tuiDialogs`) — one panel rendering the
66339
66296
  * store's current snapshot in the chat chrome (the slot approval/question
@@ -66593,7 +66550,7 @@ function InputDialog({ dialog, onDecide, onCancel }) {
66593
66550
  });
66594
66551
  }
66595
66552
  //#endregion
66596
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
66553
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
66597
66554
  /**
66598
66555
  * Set the search highlight query on the Ink instance. Non-empty → all
66599
66556
  * visible occurrences are inverted on the next frame (SGR 7, screen-buffer
@@ -66625,7 +66582,7 @@ function useSearchHighlight() {
66625
66582
  }, [ink]);
66626
66583
  }
66627
66584
  //#endregion
66628
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
66585
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
66629
66586
  /**
66630
66587
  * Declaratively set the terminal tab/window title.
66631
66588
  *
@@ -66648,7 +66605,7 @@ function useTerminalTitle(title) {
66648
66605
  }, [title, writeRaw]);
66649
66606
  }
66650
66607
  //#endregion
66651
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
66608
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
66652
66609
  /**
66653
66610
  * Session browser formatting.
66654
66611
  *
@@ -66897,7 +66854,7 @@ function projectName(cwd) {
66897
66854
  return normalized.split("/").filter(Boolean).at(-1) ?? normalized;
66898
66855
  }
66899
66856
  //#endregion
66900
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
66857
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
66901
66858
  /**
66902
66859
  * Tooltip hover system — the terminal equivalent of the HTML `title`
66903
66860
  * attribute. Attach {@link useTooltip} props to any Box whose visible text
@@ -67105,7 +67062,7 @@ function wrapTooltipContent(text, width) {
67105
67062
  return rows;
67106
67063
  }
67107
67064
  //#endregion
67108
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
67065
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
67109
67066
  /** User prompt row in the legacy CLI treatment: a full-width gray strip. */
67110
67067
  function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
67111
67068
  const { columns } = useTerminalSize();
@@ -67134,7 +67091,7 @@ function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
67134
67091
  });
67135
67092
  }
67136
67093
  //#endregion
67137
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
67094
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
67138
67095
  /**
67139
67096
  * Assistant text message: bullet + markdown body (mirroring Claude Code's default branch).
67140
67097
  *
@@ -67167,7 +67124,7 @@ function AssistantTextMessage({ text, addMargin, isSelected = false, isExpanded
67167
67124
  });
67168
67125
  }
67169
67126
  //#endregion
67170
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
67127
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
67171
67128
  /**
67172
67129
  * Renders markdown during streaming by splitting at the last top-level block
67173
67130
  * boundary: everything before is stable (memoized, never re-parsed), only the
@@ -67357,7 +67314,7 @@ function StreamingMarkdown({ children, dimColor = false }) {
67357
67314
  });
67358
67315
  }
67359
67316
  //#endregion
67360
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
67317
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
67361
67318
  /**
67362
67319
  * Spinner 动画的通用工具集:平台相关的帧字符选择、RGB 颜色插值、
67363
67320
  * HSL 色相转 RGB,以及 `rgb(...)` 颜色字符串的解析与记忆化。
@@ -67437,7 +67394,7 @@ function parseRGB(colorStr) {
67437
67394
  return parsed;
67438
67395
  }
67439
67396
  //#endregion
67440
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
67397
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
67441
67398
  /** Header blue-white ladder: brand → ice → pale → soft ice flash.
67442
67399
  * FLASH stays visibly blue (never pure white) — the highlight reads as a
67443
67400
  * mist-brightened crest, not a white strobe. */
@@ -67453,7 +67410,7 @@ const ICE = {
67453
67410
  b: 255
67454
67411
  };
67455
67412
  //#endregion
67456
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
67413
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
67457
67414
  /** Preview body rows — a FIXED row count (kimicode-style constant-height
67458
67415
  * ticker). Ink's truncate slices the whole string across newlines as one
67459
67416
  * logical line, so a single joined Text collapses to 1-2 rows whenever
@@ -67566,7 +67523,7 @@ function AssistantThinkingMessage({ thinking, textFull, addMargin, verbose, stre
67566
67523
  });
67567
67524
  }
67568
67525
  //#endregion
67569
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
67526
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
67570
67527
  const CATEGORY_BY_TOOL = {
67571
67528
  bash: "exec",
67572
67529
  powershell: "exec",
@@ -68147,7 +68104,7 @@ var ArrayDiff = class extends Diff {
68147
68104
  };
68148
68105
  new ArrayDiff();
68149
68106
  //#endregion
68150
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
68107
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
68151
68108
  const ANSI16 = {
68152
68109
  30: "rgb(0,0,0)",
68153
68110
  31: "rgb(128,0,0)",
@@ -68232,7 +68189,7 @@ function syntaxThemeSignature(theme) {
68232
68189
  return Object.values(SYNTAX_CLASS_TO_TOKEN).map((key) => palette[key] ?? "").join("|");
68233
68190
  }
68234
68191
  //#endregion
68235
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
68192
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
68236
68193
  /**
68237
68194
  * Smooth streaming reveal — decouples "text the provider has delivered" from
68238
68195
  * "text the screen is showing" (the oh-my-pi `display.smoothStreaming` idea,
@@ -68478,7 +68435,7 @@ function revealLinesOf(key, total, options) {
68478
68435
  return Math.min(existing.revealed, total);
68479
68436
  }
68480
68437
  //#endregion
68481
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
68438
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
68482
68439
  /** Replace tabs so width math and alignment hold (pi convention). */
68483
68440
  const expandTabs = (text) => text.replaceAll(" ", " ");
68484
68441
  /**
@@ -68787,7 +68744,7 @@ function SplitDiffView({ diffs, width, maxRows, verbose, toolBackground = "none"
68787
68744
  });
68788
68745
  }
68789
68746
  //#endregion
68790
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
68747
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
68791
68748
  /** Async nested Text renderer. Lexes the complete payload before splitting. */
68792
68749
  function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, dimColor }) {
68793
68750
  const [highlighter, setHighlighter] = import_react.useState(null);
@@ -68831,7 +68788,7 @@ function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, d
68831
68788
  }, index)) });
68832
68789
  }
68833
68790
  //#endregion
68834
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
68791
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
68835
68792
  /**
68836
68793
  * Trajectory formatting — durations, clocks, badges and heat.
68837
68794
  *
@@ -69033,7 +68990,7 @@ function ledgerLayout(columns) {
69033
68990
  };
69034
68991
  }
69035
68992
  //#endregion
69036
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
68993
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
69037
68994
  /**
69038
68995
  * Reveal-frame wakeup as a React hook — bumps once per advancing ~30fps
69039
68996
  * scheduler tick so consumers re-run their render-phase cursor reads
@@ -69063,7 +69020,7 @@ function useRevealVersion(enabled = true) {
69063
69020
  return version;
69064
69021
  }
69065
69022
  //#endregion
69066
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
69023
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
69067
69024
  /** Tool display names: DSH emits lowercase tool ids (`bash`); Claude Code
69068
69025
  * shows capitalized names (`Bash`). Map the common ones, fall back to the
69069
69026
  * id with its first letter uppercased. */
@@ -69599,7 +69556,7 @@ function AssistantToolUseMessage({ tool, addMargin, verbose, isSelected = false,
69599
69556
  });
69600
69557
  }
69601
69558
  //#endregion
69602
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
69559
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
69603
69560
  /** The waterfall window is a Kimi Code style constant-height region. */
69604
69561
  const WATERFALL_ROWS = 3;
69605
69562
  /** Card left padding + the `│ ` gutter prefix. */
@@ -69807,7 +69764,7 @@ function SubagentMessage({ subagent, addMargin, activityFrames, onClick }) {
69807
69764
  });
69808
69765
  }
69809
69766
  //#endregion
69810
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
69767
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
69811
69768
  /** Card left padding + the `│ ` gutter prefix. */
69812
69769
  const WATERFALL_GUTTER = 4;
69813
69770
  /** Static status marker — deliberately NOT the animated activity-indicator
@@ -69960,7 +69917,7 @@ function JobCard({ job, addMargin, onClick }) {
69960
69917
  });
69961
69918
  }
69962
69919
  //#endregion
69963
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
69920
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
69964
69921
  /**
69965
69922
  * The dim "interrupted" row shown when the user stops a turn, mirroring
69966
69923
  * Claude Code's `InterruptedByUser.tsx`.
@@ -69975,7 +69932,7 @@ function InterruptedByUser() {
69975
69932
  })] });
69976
69933
  }
69977
69934
  //#endregion
69978
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
69935
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
69979
69936
  /**
69980
69937
  * 当月 AI 代码生成占比统计(移植自 chatcode-cli 的同名服务)。
69981
69938
  *
@@ -70143,7 +70100,7 @@ function computeAiRatioPercent(records) {
70143
70100
  return clampPercent(aiAdoptedTotal / addedTotal * 100);
70144
70101
  }
70145
70102
  //#endregion
70146
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
70103
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
70147
70104
  /**
70148
70105
  * 「AI代码生成占比」数据源 Hook(移植自 chatcode-cli 的同名 Hook)。
70149
70106
  *
@@ -70187,7 +70144,7 @@ function useAiRatio(enabled = true) {
70187
70144
  };
70188
70145
  }
70189
70146
  //#endregion
70190
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
70147
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
70191
70148
  /**
70192
70149
  * Slice a string to at most `maxWidth` terminal cells, walking by code
70193
70150
  * point so CJK wide characters never split mid-glyph. Assumes no ANSI in
@@ -70205,7 +70162,7 @@ function truncateToWidth(text, maxWidth) {
70205
70162
  return out;
70206
70163
  }
70207
70164
  //#endregion
70208
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
70165
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
70209
70166
  /** Main ChatCode CLI package version shown in the startup information panel. */
70210
70167
  const VERSION = PRODUCT_VERSION;
70211
70168
  const PRODUCT_LABEL = "chatcode-cli";
@@ -70441,7 +70398,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
70441
70398
  });
70442
70399
  }
70443
70400
  //#endregion
70444
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
70401
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
70445
70402
  /**
70446
70403
  * Transcript-mode metadata row: `HH:MM · model`, right-aligned above the
70447
70404
  * assistant text, mirroring Claude Code's MessageTimestamp + MessageModel,
@@ -70463,7 +70420,7 @@ function MessageMetadata({ timestamp, model }) {
70463
70420
  });
70464
70421
  }
70465
70422
  //#endregion
70466
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
70423
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
70467
70424
  /**
70468
70425
  * Strip the `⏵` self-narration line from assistant text. The
70469
70426
  * dsh-working-activity narrate contract puts exactly one `⏵` line at the
@@ -70579,7 +70536,7 @@ function ellipsize(line, maxWidth) {
70579
70536
  return `${out}…`;
70580
70537
  }
70581
70538
  //#endregion
70582
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
70539
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
70583
70540
  /**
70584
70541
  * Transcript rows rendered in the Claude Code visual language: user prompts
70585
70542
  * on a grey bubble with a `❯` pointer, assistant text with a `●` bullet and
@@ -71392,7 +71349,7 @@ function LogoHeader({ model, effort, cwd, whale = true, skipIntro = false }) {
71392
71349
  });
71393
71350
  }
71394
71351
  //#endregion
71395
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
71352
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
71396
71353
  /** ▴ / ▾ (U+25B4 / U+25BE — the small triangles; CP437-safe on ConHost too). */
71397
71354
  const CHEVRON_UP = " ▴";
71398
71355
  const CHEVRON_DOWN = " ▾";
@@ -71586,7 +71543,7 @@ function TimelineRail({ handle, turns, activeId, upId, downId, terminalWidth, ho
71586
71543
  }) });
71587
71544
  }
71588
71545
  //#endregion
71589
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
71546
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
71590
71547
  /** Thumb glyph across the 2-col gutter: solid, clearly positional —
71591
71548
  * deliberately distinct from the timeline's ━━ active tick. */
71592
71549
  const THUMB = "██";
@@ -71702,7 +71659,7 @@ function ScrollbarGutter({ handle, terminalWidth }) {
71702
71659
  }) });
71703
71660
  }
71704
71661
  //#endregion
71705
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
71662
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
71706
71663
  /**
71707
71664
  * 瞬态面板的浮层容器:absolute 定位 + bottom:'100%' 把面板底边钉在锚点
71708
71665
  * (父元素)顶边,向上覆盖转录尾部行,自身**不占布局高度**。
@@ -71735,7 +71692,7 @@ function OverlayAbove({ children, maxHeight }) {
71735
71692
  });
71736
71693
  }
71737
71694
  //#endregion
71738
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
71695
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
71739
71696
  /**
71740
71697
  * Trajectory motion — five verbs, one shared clock, one hard rule.
71741
71698
  *
@@ -71860,7 +71817,7 @@ function alert(tick, startTick) {
71860
71817
  return Math.floor(age / 2) % 2 === 0 ? 1 : 0;
71861
71818
  }
71862
71819
  //#endregion
71863
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
71820
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
71864
71821
  /** 三幕时间轴(ms):扫光全长、字样启动(波至中段)、字样渐亮、渐隐起止。边框扫光与输入行字样徽标共用。 */
71865
71822
  const IGNITION_TIMELINE = {
71866
71823
  sweepMs: 1e3,
@@ -72008,7 +71965,7 @@ function ignitionLineColors(options) {
72008
71965
  return colors;
72009
71966
  }
72010
71967
  //#endregion
72011
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
71968
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
72012
71969
  /**
72013
71970
  * EffortChargeGlyph — 输入提示前缀 `❯ ` 的最高档强调与充能。
72014
71971
  *
@@ -72064,7 +72021,7 @@ function EffortChargeGlyph({ effort, levels, working }) {
72064
72021
  });
72065
72022
  }
72066
72023
  //#endregion
72067
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
72024
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
72068
72025
  /**
72069
72026
  * EffortInputBorder — 输入框层上的三幕点焰叠加(对齐 Codex 的完整
72070
72027
  * 语义:光扫过、档位字样浮现、整体渐隐)。
@@ -72199,7 +72156,7 @@ function EffortInputBorder({ effort, levels, columns, onLight, idleColor, topRig
72199
72156
  });
72200
72157
  }
72201
72158
  //#endregion
72202
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
72159
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
72203
72160
  /**
72204
72161
  * EffortTierBadge — 输入行尾的档位字样徽标:三幕点焰的第二幕载体
72205
72162
  * (与 EffortInputBorder 的双框扫光同一时间轴、同一触发),切到最高
@@ -72282,7 +72239,7 @@ function EffortTierBadge({ effort, levels, onLight, columns, leadingColumns }) {
72282
72239
  });
72283
72240
  }
72284
72241
  //#endregion
72285
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
72242
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
72286
72243
  /**
72287
72244
  * Cross-platform clipboard access for Ctrl+V paste. The TUI runs in raw
72288
72245
  * mode, so the terminal never performs its own paste for Ctrl+V — the key
@@ -72796,7 +72753,7 @@ function formatClipboardInsert(content) {
72796
72753
  return content.text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
72797
72754
  }
72798
72755
  //#endregion
72799
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
72756
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
72800
72757
  /**
72801
72758
  * External editor round-trip for the prompt input (issue #123): Ctrl+G dumps
72802
72759
  * the current draft into a temp file, hands the terminal to `$VISUAL` /
@@ -73074,7 +73031,7 @@ async function editInExternalEditor(draft) {
73074
73031
  }
73075
73032
  }
73076
73033
  //#endregion
73077
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
73034
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
73078
73035
  let editorNode = null;
73079
73036
  const listeners = /* @__PURE__ */ new Set();
73080
73037
  /** Publish (or withdraw, with null) the fullscreen editor subtree. */
@@ -73150,7 +73107,7 @@ function EditorButton({ label, hint, onClick, primary, accent }) {
73150
73107
  });
73151
73108
  }
73152
73109
  //#endregion
73153
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
73110
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
73154
73111
  const HISTORY_DIR = DATA_DIR;
73155
73112
  const HISTORY_FILE = join(HISTORY_DIR, "history.jsonl");
73156
73113
  const HISTORY_LOCK = `${HISTORY_FILE}.lock`;
@@ -73284,7 +73241,7 @@ function historyEntryId(entry, index = 0) {
73284
73241
  return createHash("sha1").update(`${entry.text}\0${entry.ts}\0${index}`).digest("hex").slice(0, 12);
73285
73242
  }
73286
73243
  //#endregion
73287
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
73244
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
73288
73245
  /**
73289
73246
  * `/` 命令菜单与 `@` 文件菜单共用的圆角卡片外壳(与输入框 EffortInputBorder
73290
73247
  * 同款 ╭╮╰╯ 视觉语言):
@@ -73416,7 +73373,7 @@ function splitQueryMatch(name, query) {
73416
73373
  return startsWith(0) ?? (lastSpace >= 0 ? startsWith(lastSpace + 1) : null) ?? startsWith(name.lastIndexOf("/") + 1);
73417
73374
  }
73418
73375
  //#endregion
73419
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
73376
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
73420
73377
  /**
73421
73378
  * The slash-command suggestion overlay, mirroring Claude Code's
73422
73379
  * `PromptInputFooterSuggestions.tsx` (command layout only) wrapped in the
@@ -73496,7 +73453,7 @@ function CommandSuggestions({ commands, selectedIndex, columns, query = "", acce
73496
73453
  });
73497
73454
  }
73498
73455
  //#endregion
73499
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
73456
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
73500
73457
  /**
73501
73458
  * The `@` file-completion overlay in CC's suggestion style, wrapped in the
73502
73459
  * shared rounded `SuggestionCard` (与 `/` 命令菜单同一视觉语言):
@@ -73595,7 +73552,7 @@ function FileSuggestions({ files, selectedIndex, columns, query = "", accent, on
73595
73552
  });
73596
73553
  }
73597
73554
  //#endregion
73598
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
73555
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
73599
73556
  /**
73600
73557
  * The `?` help menu, mirroring Claude Code's `PromptInputHelpMenu.tsx`
73601
73558
  * (three-column shortcut layout, trimmed to the keys dsh-tui actually binds).
@@ -73786,7 +73743,7 @@ function HelpCommandRow({ command, onPick }) {
73786
73743
  });
73787
73744
  }
73788
73745
  //#endregion
73789
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
73746
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
73790
73747
  const HISTORY_LIMIT = 50;
73791
73748
  /**
73792
73749
  * Paste fold (CC-style collapse with a visible preview, no black box):
@@ -76066,7 +76023,7 @@ function wordSelectionAt(text, offset, lo, hi) {
76066
76023
  };
76067
76024
  }
76068
76025
  //#endregion
76069
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
76026
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
76070
76027
  /** Maximum todo rows shown before the overflow line. */
76071
76028
  const MAX_TODOS = 8;
76072
76029
  const PHASE_LABEL = {
@@ -76312,7 +76269,7 @@ function GoalTodoPanel({ channel, collapsed = false, onToggle }) {
76312
76269
  });
76313
76270
  }
76314
76271
  //#endregion
76315
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
76272
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
76316
76273
  /**
76317
76274
  * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
76318
76275
  * at the bottom of the transcript after an automatic summary on session
@@ -76392,7 +76349,7 @@ function summarizeLoadedContext(context) {
76392
76349
  return parts.join(" · ");
76393
76350
  }
76394
76351
  //#endregion
76395
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
76352
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
76396
76353
  /** One named entry (section or dynamic context) with its full text. */
76397
76354
  function Entry({ entry }) {
76398
76355
  return (0, import_jsx_runtime.jsxs)(ThemedBox, {
@@ -76529,7 +76486,7 @@ function LoadedContextPanel({ context, open, onToggle }) {
76529
76486
  });
76530
76487
  }
76531
76488
  //#endregion
76532
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
76489
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
76533
76490
  /**
76534
76491
  * Terminal-safe construction cycle derived from the supplied China Unicom
76535
76492
  * knot mark. Every frame is one display cell, unlike emoji on mixed terminals.
@@ -76561,7 +76518,7 @@ function UnicomKnotSpinner({ time }) {
76561
76518
  });
76562
76519
  }
76563
76520
  //#endregion
76564
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
76521
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
76565
76522
  /**
76566
76523
  * Context-pressure percentage (0–100) from the last usage snapshot, or
76567
76524
  * undefined when unknown — shared by the spinner-line and status-line
@@ -76633,7 +76590,7 @@ function ActivityLine({ activity, activityFrames, warnPct, warnDanger, suffix })
76633
76590
  });
76634
76591
  }
76635
76592
  //#endregion
76636
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
76593
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
76637
76594
  /**
76638
76595
  * Structural guards for the session events the trajectory projection reads.
76639
76596
  *
@@ -76857,7 +76814,7 @@ function readTodos(data) {
76857
76814
  };
76858
76815
  }
76859
76816
  //#endregion
76860
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
76817
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
76861
76818
  /**
76862
76819
  * Trajectory projection — the data contract shared by the adapter-side fold
76863
76820
  * and the UI-side scene (issue #80 evolution).
@@ -76924,7 +76881,7 @@ function previewText(raw, limit) {
76924
76881
  return `${flat.slice(0, limit)}…`;
76925
76882
  }
76926
76883
  //#endregion
76927
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
76884
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
76928
76885
  /**
76929
76886
  * Trajectory projection — folding the session event log into ledger nodes.
76930
76887
  *
@@ -77503,7 +77460,7 @@ function extendTrajectory(previous, events) {
77503
77460
  };
77504
77461
  }
77505
77462
  //#endregion
77506
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
77463
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
77507
77464
  /**
77508
77465
  * Trajectory aggregate — the hotspot view's data and the session totals.
77509
77466
  *
@@ -77724,7 +77681,7 @@ function modelTiming(timing) {
77724
77681
  };
77725
77682
  }
77726
77683
  //#endregion
77727
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
77684
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
77728
77685
  /**
77729
77686
  * Inspector detail — full content, resolved on demand.
77730
77687
  *
@@ -77884,7 +77841,7 @@ function inspectNode(node, events) {
77884
77841
  };
77885
77842
  }
77886
77843
  //#endregion
77887
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
77844
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
77888
77845
  /**
77889
77846
  * Wave band projection — the whole session compressed onto one row of glyphs.
77890
77847
  *
@@ -78057,7 +78014,7 @@ function columnOfIndex(band, ledgerIndex) {
78057
78014
  return 0;
78058
78015
  }
78059
78016
  //#endregion
78060
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
78017
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
78061
78018
  /**
78062
78019
  * The mini wake — the whole session as a dozen glyphs in the status line.
78063
78020
  *
@@ -78160,7 +78117,7 @@ function toHex$1(colour) {
78160
78117
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
78161
78118
  }
78162
78119
  //#endregion
78163
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
78120
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
78164
78121
  /**
78165
78122
  * Status-line metric renderers, ported from two pi extensions:
78166
78123
  * - `pi-nano-context`: segmented context progress bar (morandi pastel
@@ -78436,7 +78393,7 @@ function tpsStats(samples, nowMs) {
78436
78393
  };
78437
78394
  }
78438
78395
  //#endregion
78439
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
78396
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
78440
78397
  /** Free-segment colors, mirroring StatusMetrics' dark-theme defaults. */
78441
78398
  const FREE_FILL = "#E8E8E8";
78442
78399
  const FREE_TEXT = "#4A4A4A";
@@ -78503,7 +78460,7 @@ function ContextBarView({ segments, usedTokens, contextWindow, width, colors, on
78503
78460
  });
78504
78461
  }
78505
78462
  //#endregion
78506
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
78463
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
78507
78464
  /**
78508
78465
  * ChatCode 今日总 Token 消耗量查询(移植自 chatcode-cli 的 chatCodeTokenTrend)。
78509
78466
  *
@@ -78578,7 +78535,7 @@ async function fetchTodayTotalTokens(post, signal) {
78578
78535
  }
78579
78536
  }
78580
78537
  //#endregion
78581
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
78538
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
78582
78539
  /**
78583
78540
  * 「今日总Token消耗」数据源 Hook(移植自 chatcode-cli 的 useTokenDashboard)。
78584
78541
  *
@@ -78610,7 +78567,7 @@ function useTodayTotalTokens(enabled = true) {
78610
78567
  return { totalTokens };
78611
78568
  }
78612
78569
  //#endregion
78613
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
78570
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
78614
78571
  const BAR_WIDTH = 14;
78615
78572
  /** Yuanjing-compatible percentage label centered inside a fixed-width bar. */
78616
78573
  function LabeledBar({ ratio, percent }) {
@@ -78686,7 +78643,7 @@ function TokenDashboard({ todayTokens, usedTokens, contextWindow, compact = fals
78686
78643
  });
78687
78644
  }
78688
78645
  //#endregion
78689
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
78646
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
78690
78647
  /** Stable fallback for stubbed channels: verify/repro harnesses render the
78691
78648
  * real Chat with partial channel literals that predate the jobs field. */
78692
78649
  const NO_BACKGROUND_JOBS = [];
@@ -79597,7 +79554,7 @@ const fallbackSymbols = {
79597
79554
  const figures = isUnicodeSupported() ? mainSymbols : fallbackSymbols;
79598
79555
  Object.entries(specialMainSymbols);
79599
79556
  //#endregion
79600
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
79557
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
79601
79558
  /**
79602
79559
  * Joins children with a middot separator (" · ") for inline metadata display
79603
79560
  * (in the Claude Code visual language). Automatically filters out
@@ -79613,7 +79570,7 @@ function Byline({ children }) {
79613
79570
  }), child] }, (0, import_react.isValidElement)(child) ? child.key ?? index : index)) });
79614
79571
  }
79615
79572
  //#endregion
79616
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
79573
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
79617
79574
  const ERROR_RED$1 = {
79618
79575
  r: 171,
79619
79576
  g: 43,
@@ -79703,7 +79660,7 @@ function GlimmerMessage({ message, mode, messageColor, glimmerIndex, flashOpacit
79703
79660
  })] });
79704
79661
  }
79705
79662
  //#endregion
79706
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
79663
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
79707
79664
  const DEFAULT_CHARACTERS = getDefaultCharacters();
79708
79665
  const SPINNER_FRAMES$1 = [...DEFAULT_CHARACTERS, ...[...DEFAULT_CHARACTERS].reverse()];
79709
79666
  const REDUCED_MOTION_DOT = "●";
@@ -79764,7 +79721,7 @@ function SpinnerGlyph({ frame, messageColor, stalledIntensity = 0, reducedMotion
79764
79721
  });
79765
79722
  }
79766
79723
  //#endregion
79767
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
79724
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
79768
79725
  /**
79769
79726
  * Tracks the transition to red when tokens stop flowing (mirroring Claude Code's `Spinner/useStalledAnimation.ts`). Driven by the parent's animation
79770
79727
  * clock time instead of independent intervals, so it slows down when the
@@ -79821,7 +79778,7 @@ function useStalledAnimation(time, currentResponseLength, hasActiveTools = false
79821
79778
  };
79822
79779
  }
79823
79780
  //#endregion
79824
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
79781
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
79825
79782
  const SEP_WIDTH = stringWidth$1(" · ");
79826
79783
  const THINKING_BARE_WIDTH = stringWidth$1("thinking");
79827
79784
  const SHOW_TOKENS_AFTER_MS = 3e4;
@@ -79988,7 +79945,7 @@ function SpinnerModeGlyph({ mode }) {
79988
79945
  }
79989
79946
  }
79990
79947
  //#endregion
79991
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
79948
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
79992
79949
  /**
79993
79950
  * The working spinner block shown between the transcript and the prompt
79994
79951
  * input while a turn is in flight. Mirrors Claude Code's `Spinner.tsx`
@@ -80058,7 +80015,7 @@ function useThinkingStatus(isThinking) {
80058
80015
  return thinkingStatus;
80059
80016
  }
80060
80017
  //#endregion
80061
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
80018
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
80062
80019
  /**
80063
80020
  * Model picker in the CC ModelPicker style: a permission-colored Pane with
80064
80021
  * the rows as Select entries (❯ focus pointer, ✓ on the active row,
@@ -80118,7 +80075,7 @@ function ModelPicker(props) {
80118
80075
  });
80119
80076
  }
80120
80077
  //#endregion
80121
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
80078
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
80122
80079
  /**
80123
80080
  * Error boundary for plugin scenes (dsh-tui-scenes). A scene component is
80124
80081
  * third-party code rendered inside Chat's tree: without a boundary a render
@@ -80144,7 +80101,7 @@ var PluginSceneBoundary = class extends import_react.Component {
80144
80101
  }
80145
80102
  };
80146
80103
  //#endregion
80147
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
80104
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
80148
80105
  const SPINNER_FRAMES = [...getDefaultCharacters(), ...[...getDefaultCharacters()].reverse()];
80149
80106
  /**
80150
80107
  * A spinner with a loading message for async operations, mirroring Claude Code's design-system/LoadingState.tsx (using the small animated glyph).
@@ -80175,7 +80132,7 @@ function LoadingState({ message, bold = false, dimColor = false, subtitle }) {
80175
80132
  });
80176
80133
  }
80177
80134
  //#endregion
80178
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
80135
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
80179
80136
  /** 来源桶 → 本地化标签(未知桶原样显示,SkillSource 对自定义桶开放)。 */
80180
80137
  function sourceLabel(source) {
80181
80138
  switch (source) {
@@ -80253,7 +80210,7 @@ function SkillsPickerLoading() {
80253
80210
  });
80254
80211
  }
80255
80212
  //#endregion
80256
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
80213
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
80257
80214
  /**
80258
80215
  * Window a single-line query around the caret so the visible slice fits
80259
80216
  * `avail` display cells (CJK display width, code-point safe — `[...s]`
@@ -80391,7 +80348,7 @@ function SearchBox({ query, placeholder = "Search…", isFocused, isTerminalFocu
80391
80348
  });
80392
80349
  }
80393
80350
  //#endregion
80394
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
80351
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
80395
80352
  /**
80396
80353
  * One session in the browser's list: a title line and a metadata line.
80397
80354
  *
@@ -80472,7 +80429,7 @@ function SessionListRow({ session, width, depth, focused, pinned, now, onClick,
80472
80429
  });
80473
80430
  }
80474
80431
  //#endregion
80475
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
80432
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
80476
80433
  /** Role marker and colour for a preview entry. */
80477
80434
  const ROLE = {
80478
80435
  user: {
@@ -80563,7 +80520,7 @@ function SessionPreview({ session, entries, loading, width, height, home, now })
80563
80520
  });
80564
80521
  }
80565
80522
  //#endregion
80566
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
80523
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
80567
80524
  /** One two-line working-directory choice in the /resume browser. */
80568
80525
  function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width, focused, selected, home, now, onClick }) {
80569
80526
  const [hovered, setHovered] = (0, import_react.useState)(false);
@@ -80608,7 +80565,7 @@ function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width,
80608
80565
  });
80609
80566
  }
80610
80567
  //#endregion
80611
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
80568
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
80612
80569
  /** The browser's default view: this project, conversations only. */
80613
80570
  const DEFAULT_FILTERS = {
80614
80571
  query: "",
@@ -80897,7 +80854,7 @@ function windowEnd(rows, top, budget) {
80897
80854
  return at;
80898
80855
  }
80899
80856
  //#endregion
80900
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
80857
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
80901
80858
  /**
80902
80859
  * Pinned sessions for the `/resume` browser, kept at
80903
80860
  * `~/.chatcode-cli/tui/session-pins.json` (a JSON array of session ids) so the pins
@@ -81046,7 +81003,7 @@ function setSessionPinned(id, pinned, dir = DATA_DIR) {
81046
81003
  }
81047
81004
  }
81048
81005
  //#endregion
81049
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
81006
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
81050
81007
  /**
81051
81008
  * Rows the layout cannot do without: the header, the four-row scope/search
81052
81009
  * card, the notice slot, and the hints. Everything else yields before these.
@@ -81932,7 +81889,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
81932
81889
  });
81933
81890
  }
81934
81891
  //#endregion
81935
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
81892
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
81936
81893
  /** Local HH:MM (or MM/DD HH:MM when older than this year). */
81937
81894
  function formatTime(at, now) {
81938
81895
  const date = new Date(at);
@@ -82688,7 +82645,7 @@ function PreviewPane({ entry, meta, width, height, liveSessionId, now, compact }
82688
82645
  });
82689
82646
  }
82690
82647
  //#endregion
82691
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
82648
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
82692
82649
  /** Pick the provider-owned translation for the active language. */
82693
82650
  function pick(text, descriptions) {
82694
82651
  return descriptions?.[getLang()] ?? text;
@@ -83432,7 +83389,7 @@ function Settings({ channel, onClose, initialGroup }) {
83432
83389
  });
83433
83390
  }
83434
83391
  //#endregion
83435
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
83392
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
83436
83393
  const WINDOW$1 = 8;
83437
83394
  /** `/workspace` target picker contributed by local and optional providers. */
83438
83395
  function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
@@ -83470,7 +83427,7 @@ function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
83470
83427
  });
83471
83428
  }
83472
83429
  //#endregion
83473
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
83430
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
83474
83431
  /**
83475
83432
  * A single-choice select list in the CC CustomSelect style (ported visual:
83476
83433
  * ListItem rows with ❯ focus pointer, ✓ selected checkmark, descriptions,
@@ -83497,7 +83454,7 @@ function Select({ options, focusIndex, selectedValue, visibleOptionCount = 5, on
83497
83454
  });
83498
83455
  }
83499
83456
  //#endregion
83500
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
83457
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
83501
83458
  /**
83502
83459
  * Bare `/workspace` action menu: the built-in subcommands (resume / rename /
83503
83460
  * open) plus any dynamically registered workspace extensions. Enter runs the
@@ -83538,7 +83495,7 @@ function WorkspaceMenuPicker({ options, focusIndex, onPick }) {
83538
83495
  });
83539
83496
  }
83540
83497
  //#endregion
83541
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
83498
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
83542
83499
  const WINDOW = 8;
83543
83500
  /** Generic nested choice surface returned by a workspace provider command. */
83544
83501
  function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input = null, onPick }) {
@@ -83596,7 +83553,7 @@ function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input =
83596
83553
  });
83597
83554
  }
83598
83555
  //#endregion
83599
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
83556
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
83600
83557
  /**
83601
83558
  * Working-activity indicator picker in the CC ModelPicker style (ported
83602
83559
  * from the pi extension's `/activity` interactive select): a
@@ -83638,7 +83595,7 @@ function ActivityPicker({ focusIndex, currentPreset, onPick }) {
83638
83595
  });
83639
83596
  }
83640
83597
  //#endregion
83641
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
83598
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
83642
83599
  /**
83643
83600
  * Session accent color picker (bare `/color`): a permission-colored Pane
83644
83601
  * listing the whole palette with a colored swatch per row, `❯` focus
@@ -83682,7 +83639,7 @@ function ColorPicker({ focusIndex, currentColor, onPick }) {
83682
83639
  });
83683
83640
  }
83684
83641
  //#endregion
83685
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
83642
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
83686
83643
  /**
83687
83644
  * Reasoning-effort slider (`/effort`): a rheostat row of the live route's
83688
83645
  * adapter-owned levels in adapter order, ←/→ moving focus (each move applies
@@ -83741,7 +83698,7 @@ function EffortSlider({ options, focusIndex, currentId, onPick }) {
83741
83698
  });
83742
83699
  }
83743
83700
  //#endregion
83744
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
83701
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
83745
83702
  /**
83746
83703
  * Agent-preset picker (issue #8) in the CC ModelPicker style — same chrome
83747
83704
  * as the ActivityPicker: a permission-colored Pane listing every roster
@@ -83785,7 +83742,7 @@ function PresetPicker({ presets, focusIndex, currentPreset, onPick }) {
83785
83742
  });
83786
83743
  }
83787
83744
  //#endregion
83788
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
83745
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
83789
83746
  /**
83790
83747
  * `/permission` sandbox-preset picker. The command itself is registered by
83791
83748
  * the harness side (dsh-sandbox-policy / dsh-base permission-presets row);
@@ -83832,7 +83789,7 @@ function PermissionsPicker({ options, focusIndex, currentValue, cwd, onPick }) {
83832
83789
  });
83833
83790
  }
83834
83791
  //#endregion
83835
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
83792
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
83836
83793
  /**
83837
83794
  * `/plan` on/off picker. The command itself is registered by dsh-plan-mode
83838
83795
  * on the harness side; bare `/plan` opens this picker (with the current
@@ -83877,7 +83834,7 @@ function PlanPicker({ focusIndex, currentOn, onPick }) {
83877
83834
  });
83878
83835
  }
83879
83836
  //#endregion
83880
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
83837
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
83881
83838
  /**
83882
83839
  * `/lang` en/zh picker: bare `/lang` opens this picker (the current language
83883
83840
  * marked) and Enter applies the choice through the same path as `/lang <id>`.
@@ -83916,7 +83873,7 @@ function LangPicker({ focusIndex, currentLang, onPick }) {
83916
83873
  });
83917
83874
  }
83918
83875
  //#endregion
83919
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
83876
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
83920
83877
  /** One double-block swatch character per preview key, in a row. */
83921
83878
  const SWATCH = "██";
83922
83879
  /** Theme keys previewed in the picker, chosen for visual contrast. */
@@ -84002,7 +83959,7 @@ function ThemePicker({ focusIndex, currentTheme, themeHost, onPick }) {
84002
83959
  });
84003
83960
  }
84004
83961
  //#endregion
84005
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
83962
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
84006
83963
  /**
84007
83964
  * The `/thinking` display dialog: a permission-colored Pane with a bold
84008
83965
  * title, the Shown/Hidden select, and the Enter/Esc hint line.
@@ -84051,7 +84008,7 @@ function ThinkingToggle({ currentValue, focusIndex, onPick }) {
84051
84008
  });
84052
84009
  }
84053
84010
  //#endregion
84054
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
84011
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
84055
84012
  /**
84056
84013
  * The ctrl+r history search dialog, in the shape of Claude Code's
84057
84014
  * HistorySearchDialog/FuzzyPicker: a permission-colored Pane with a bold
@@ -84114,7 +84071,7 @@ function formatRelativeAge(ts) {
84114
84071
  return t("time-days-ago", { n: Math.floor(elapsed / 864e5) });
84115
84072
  }
84116
84073
  //#endregion
84117
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
84074
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
84118
84075
  /**
84119
84076
  * Double-Esc rewind picker (CC's "Double-tap esc to rewind the code and/or
84120
84077
  * conversation to a previous point in time"): lists the user's past messages
@@ -84251,7 +84208,7 @@ function preview(text) {
84251
84208
  return flat.length <= 80 ? flat : `${flat.slice(0, 80)}…`;
84252
84209
  }
84253
84210
  //#endregion
84254
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
84211
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
84255
84212
  /**
84256
84213
  * /btw side-question panel (CC's btw.tsx, inline-pane form like the local
84257
84214
  * pickers): title line with the question, a scrollable answer body (error /
@@ -84335,7 +84292,7 @@ function BtwPanel({ question, answer, error, streaming, onClose, onCopy }) {
84335
84292
  });
84336
84293
  }
84337
84294
  //#endregion
84338
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
84295
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
84339
84296
  function ReleaseNotesPanel({ release, onClose }) {
84340
84297
  const scrollRef = import_react.useRef(null);
84341
84298
  const { rows } = useTerminalSize();
@@ -84380,7 +84337,7 @@ function ReleaseNotesPanel({ release, onClose }) {
84380
84337
  });
84381
84338
  }
84382
84339
  //#endregion
84383
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
84340
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
84384
84341
  /**
84385
84342
  * `/recap` panel (pi-recap semantics), in the picker/dialog visual
84386
84343
  * language: a permission-colored Pane with a title bar (会话回顾), a
@@ -84501,7 +84458,7 @@ function RecapPanel({ summary, title, error, streaming, titleApplied, onClose, o
84501
84458
  });
84502
84459
  }
84503
84460
  //#endregion
84504
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
84461
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
84505
84462
  /**
84506
84463
  * 精简 Tips 池 —— 启动首屏轮换(LogoV2)与 `/tips` 命令面板共用。
84507
84464
  *
@@ -85215,7 +85172,7 @@ const TIPS = [
85215
85172
  }
85216
85173
  ];
85217
85174
  //#endregion
85218
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
85175
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
85219
85176
  const GROUP_ORDER = [
85220
85177
  "keys",
85221
85178
  "commands",
@@ -85294,7 +85251,7 @@ function TipsPanel({ onClose }) {
85294
85251
  });
85295
85252
  }
85296
85253
  //#endregion
85297
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
85254
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
85298
85255
  function formatDuration$1(ms) {
85299
85256
  const seconds = Math.floor(ms / 1e3);
85300
85257
  return seconds < 60 ? `${seconds}s` : `${Math.floor(seconds / 60)}m${seconds % 60}s`;
@@ -85349,7 +85306,7 @@ function SubagentCard({ subagent, focused, onClick }) {
85349
85306
  });
85350
85307
  }
85351
85308
  //#endregion
85352
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
85309
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
85353
85310
  /** 可点击 ✕ 退出按钮:整屏/浮层场景的鼠标退出通道(Esc 等价)。 */
85354
85311
  function ExitButton({ onClick }) {
85355
85312
  const [hovered, setHovered] = import_react.useState(false);
@@ -85497,7 +85454,7 @@ function SubagentDashboard({ subagents, onClose, onSelect }) {
85497
85454
  });
85498
85455
  }
85499
85456
  //#endregion
85500
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
85457
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
85501
85458
  function statusInfo(status) {
85502
85459
  const minimal = isMinimalMode();
85503
85460
  switch (status) {
@@ -85785,7 +85742,7 @@ function JobsPanel({ jobs, onClose, onKill }) {
85785
85742
  });
85786
85743
  }
85787
85744
  //#endregion
85788
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
85745
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
85789
85746
  function formatDuration(ms) {
85790
85747
  if (ms < 1e3) return `${ms}ms`;
85791
85748
  if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
@@ -86243,7 +86200,7 @@ function FileActionsPanel({ path, isDir, focusIndex, onPick }) {
86243
86200
  });
86244
86201
  }
86245
86202
  //#endregion
86246
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
86203
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
86247
86204
  function oneLine(text, max = 70) {
86248
86205
  const compact = text.replace(/\s+/gu, " ").trim();
86249
86206
  return compact.length > max ? `${compact.slice(0, max - 1)}…` : compact;
@@ -86335,7 +86292,7 @@ function DiffLoading() {
86335
86292
  });
86336
86293
  }
86337
86294
  //#endregion
86338
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
86295
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
86339
86296
  /** `/copy` argument is a one-based reply age; omission selects the latest. */
86340
86297
  function parseCopyIndex(raw, count) {
86341
86298
  const value = raw.trim();
@@ -86388,7 +86345,7 @@ function gitDiffLines(report, labels) {
86388
86345
  ];
86389
86346
  }
86390
86347
  //#endregion
86391
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
86348
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
86392
86349
  /** Compact duration suitable for a terminal report row. */
86393
86350
  function formatStatsDuration(ms) {
86394
86351
  if (ms < 1e3) return `${Math.round(ms)} ms`;
@@ -86434,7 +86391,7 @@ function parsePresetManagement(input) {
86434
86391
  return { kind: "invalid" };
86435
86392
  }
86436
86393
  //#endregion
86437
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
86394
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
86438
86395
  const ALIASES = {
86439
86396
  map: "inspect",
86440
86397
  fixit: "repair",
@@ -86489,7 +86446,7 @@ function buildWorkflowCommand(name, rawInput = "") {
86489
86446
  };
86490
86447
  }
86491
86448
  //#endregion
86492
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
86449
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
86493
86450
  const EXTERNAL_SCHEME = /^https?:\/\//i;
86494
86451
  /**
86495
86452
  * Classify a clicked link target. Mirrors the previous handleOpenTarget
@@ -86514,7 +86471,7 @@ function classifyOpenTarget(url) {
86514
86471
  return { kind: "rejected" };
86515
86472
  }
86516
86473
  //#endregion
86517
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
86474
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
86518
86475
  /**
86519
86476
  * Subscribe to an external store's version counter at DEFAULT lane.
86520
86477
  *
@@ -86563,7 +86520,7 @@ function useExternalVersion(subscribe, getVersion, enabled = true) {
86563
86520
  return version;
86564
86521
  }
86565
86522
  //#endregion
86566
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
86523
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
86567
86524
  /**
86568
86525
  * The wake — the whole session drawn as one row of glyphs.
86569
86526
  *
@@ -86700,7 +86657,7 @@ function toHex(colour) {
86700
86657
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
86701
86658
  }
86702
86659
  //#endregion
86703
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
86660
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
86704
86661
  /**
86705
86662
  * The ledger — one line per event, columns aligned across every row.
86706
86663
  *
@@ -86946,7 +86903,7 @@ function Ledger({ rows, start, height, cursor, width, tick, arrivalTick, arrival
86946
86903
  });
86947
86904
  }
86948
86905
  //#endregion
86949
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
86906
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
86950
86907
  /**
86951
86908
  * The inspector — full detail for the focused row, in a fixed-height slot.
86952
86909
  *
@@ -87052,7 +87009,7 @@ function Inspector({ node, detail, height, width, expanded, scroll }) {
87052
87009
  });
87053
87010
  }
87054
87011
  //#endregion
87055
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
87012
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
87056
87013
  /**
87057
87014
  * The hotspot view — the session ranked by cost instead of ordered by time.
87058
87015
  *
@@ -87215,7 +87172,7 @@ function HotspotView({ agg, sort, width, height, cursor, tick, switchTick, onRow
87215
87172
  });
87216
87173
  }
87217
87174
  //#endregion
87218
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
87175
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
87219
87176
  /**
87220
87177
  * Trajectory query — whole-session structured filtering.
87221
87178
  *
@@ -87411,7 +87368,7 @@ function applyQuery(nodes, query) {
87411
87368
  };
87412
87369
  }
87413
87370
  //#endregion
87414
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
87371
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
87415
87372
  /**
87416
87373
  * The trajectory scene — the session's own screen.
87417
87374
  *
@@ -87899,7 +87856,7 @@ function TrajectoryScene({ channel, build, onClose }) {
87899
87856
  });
87900
87857
  }
87901
87858
  //#endregion
87902
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
87859
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
87903
87860
  /** Build the non-empty pages shown by the loaded-context inspector. */
87904
87861
  function contextPages(context) {
87905
87862
  const pages = [];
@@ -88083,7 +88040,7 @@ function LoadedContextScene({ context, onClose }) {
88083
88040
  });
88084
88041
  }
88085
88042
  //#endregion
88086
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
88043
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
88087
88044
  /** Rows the layout cannot do without: header, model/cwd line, dispatch
88088
88045
  * input, hints. */
88089
88046
  const MANDATORY_LINES = 4;
@@ -88687,7 +88644,7 @@ function AgentView({ channel, home, approval, onApprove, returnSessionId, onClos
88687
88644
  });
88688
88645
  }
88689
88646
  //#endregion
88690
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
88647
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
88691
88648
  /**
88692
88649
  * Persisted "the user has seen the trajectory" flag, at
88693
88650
  * `~/.chatcode-cli/tui/trajectory.json`.
@@ -88747,7 +88704,7 @@ function writeTrajectorySeen(dir = DATA_DIR) {
88747
88704
  }
88748
88705
  }
88749
88706
  //#endregion
88750
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
88707
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
88751
88708
  const NO_OVERLAY = { kind: "none" };
88752
88709
  /**
88753
88710
  * One-step wrap-around cursor move — the single source of the wrapping rule
@@ -88857,7 +88814,7 @@ function dialogOverlayVisible(overlay, gates) {
88857
88814
  }
88858
88815
  }
88859
88816
  //#endregion
88860
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
88817
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
88861
88818
  const LOGOUT_EXIT_DELAY_MS = 200;
88862
88819
  /** Shared empty snapshot for hosts whose channel has no event log. */
88863
88820
  const NO_EVENTS = [];
@@ -89028,6 +88985,7 @@ function Chat({ channel, questionStore, approvalStore, releaseNotes, extensionDi
89028
88985
  return channel.switchModel(provider, id).then((ok) => {
89029
88986
  if (!ok) return ok;
89030
88987
  if (name !== void 0) channel.notify(t("model-switched", { name }));
88988
+ repaintTranscript();
89031
88989
  return ok;
89032
88990
  });
89033
88991
  };
@@ -92653,7 +92611,7 @@ function ModelPickerLoading() {
92653
92611
  });
92654
92612
  }
92655
92613
  //#endregion
92656
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
92614
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
92657
92615
  const MAIN_CLI_PACKAGE = "@chatcode/chatcode-cli";
92658
92616
  function asError(value) {
92659
92617
  return value instanceof Error ? value : new Error(String(value));
@@ -92774,7 +92732,7 @@ function launchWebFrontend(cwd, options = {}) {
92774
92732
  }
92775
92733
  }
92776
92734
  //#endregion
92777
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
92735
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
92778
92736
  /**
92779
92737
  * External injection channel — lets an out-of-process editor integration
92780
92738
  * (e.g. the `dsh.nvim` Neovim plugin) push text into the running TUI's
@@ -92969,7 +92927,7 @@ function openInjectChannel(sessionId, cwd, handlers, onError) {
92969
92927
  };
92970
92928
  }
92971
92929
  //#endregion
92972
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
92930
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
92973
92931
  const CHATCODE_CLI_OAUTH_TOKEN = "CHATCODE_CLI_OAUTH_TOKEN";
92974
92932
  function authService(ctx) {
92975
92933
  return ctx.get("chatcodeAuth");
@@ -93146,7 +93104,7 @@ async function requireChatCodeStartupLogin(ctx, options) {
93146
93104
  return "ready";
93147
93105
  }
93148
93106
  //#endregion
93149
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
93107
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
93150
93108
  /** Bind authenticated statistics requests to one TUI lifetime. */
93151
93109
  function createChatCodeAuthorizedPost(ctx) {
93152
93110
  const lifetime = new AbortController();
@@ -93185,7 +93143,7 @@ function createChatCodeAuthorizedPost(ctx) {
93185
93143
  };
93186
93144
  }
93187
93145
  //#endregion
93188
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.9_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
93146
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.12_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
93189
93147
  /**
93190
93148
  * Interactive TUI front door for ChatCode CLI agents.
93191
93149
  *
@@ -93393,9 +93351,10 @@ async function apply(ctx, config) {
93393
93351
  const expectsChatCode = chatCodeAuthExpected(ctx);
93394
93352
  const tokenBackedChatCode = chatCodeEnvironmentTokenActive(ctx);
93395
93353
  const tokenCodingPlanRoute = tokenBackedChatCode ? await waitForModelRouteForProvider(resolveLlmCatalog, CHATCODE_CODING_PLAN_PROVIDER) : void 0;
93396
- const availableFallback = tokenBackedChatCode ? tokenCodingPlanRoute : expectsChatCode ? await waitForFirstAvailableModelRoute(resolveLlmCatalog) : await firstAvailableModelRoute(llmCatalog);
93397
- if (availableFallback === void 0 && (expectsChatCode || tokenBackedChatCode)) throw new Error(t(tokenBackedChatCode ? "model-chatcode-token-catalog-failed" : "model-startup-none"));
93398
- const startupRoute = resolveStartupModelRoute(configuredRoute, readModelPref(), harnessDefault ?? availableFallback, tokenCodingPlanRoute);
93354
+ const advertisedFallback = tokenBackedChatCode ? tokenCodingPlanRoute : expectsChatCode ? await waitForFirstAvailableModelRoute(resolveLlmCatalog) : await firstAvailableModelRoute(llmCatalog);
93355
+ const noStartupModel = advertisedFallback === void 0 && (expectsChatCode || tokenBackedChatCode);
93356
+ const availableFallback = noStartupModel ? UNCONFIGURED_MODEL_ROUTE : advertisedFallback;
93357
+ const startupRoute = resolveStartupModelRoute(configuredRoute, readModelPref(), noStartupModel ? UNCONFIGURED_MODEL_ROUTE : harnessDefault ?? availableFallback, tokenCodingPlanRoute);
93399
93358
  const requestedWorkspace = config.workspace ?? readTuiEnv("WORKSPACE_TARGET");
93400
93359
  const mountedWorkspaceService = getHostWorkspaceRuntime(ctx.get("tuiWorkspaces"));
93401
93360
  if (mountedWorkspaceService === void 0 && resolveDshProfileName() !== void 0) ctx.logger.warn("ChatCode CLI TUI: tuiWorkspaces service is not mounted; /workspace runs with the local-only fallback. The bundle patch is older than the installed TUI package — update the globally installed ChatCode CLI package to match the profile (issue #183).");
@@ -93415,7 +93374,7 @@ async function apply(ctx, config) {
93415
93374
  ctx.logger.warn(`ChatCode CLI TUI: session "${agent.session.id}" workspace attachment failed: ${error instanceof Error ? error.message : String(error)}`);
93416
93375
  }
93417
93376
  const displayRoute = createdRoute ?? startupRoute;
93418
- const displayModelName = await resolveLlmCatalog()?.listModels(displayRoute.provider).then((list) => list.find((model) => model.id === displayRoute.model)?.name).catch(() => void 0);
93377
+ const displayModelName = explicitModelRoute(displayRoute) === void 0 ? void 0 : await resolveLlmCatalog()?.listModels(displayRoute.provider).then((list) => list.find((model) => model.id === displayRoute.model)?.name).catch(() => void 0);
93419
93378
  const channel = createChannel(ctx, agent, {
93420
93379
  model: displayRoute.model,
93421
93380
  modelName: displayModelName,
@@ -94255,6 +94214,10 @@ async function apply(ctx, config) {
94255
94214
  themeHost,
94256
94215
  children: import_react.createElement(ChatCodeApiContext.Provider, { value: createChatCodeAuthorizedPost(ctx) }, marginChildren)
94257
94216
  }), { exitOnCtrlC: false });
94217
+ if (noStartupModel) channel.notify(t("model-startup-none"), {
94218
+ color: "warning",
94219
+ timeoutMs: 8e3
94220
+ });
94258
94221
  releaseNotes.check();
94259
94222
  channel.listModels();
94260
94223
  const isRecompose = lastBootedFullscreen !== void 0;