@chatcode/chatcode-cli 3.0.2-rc.5 → 3.0.2-rc.6

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 (24) hide show
  1. package/lib/{command-errors-B-jCwfLt.js → command-errors-BAbKP4yc.js} +12 -12
  2. package/lib/{command-trees-CdgUsoW4.js → command-trees-Kgumf22q.js} +2 -2
  3. package/lib/{component-identity-ax93NpoH.js → component-identity-sFGCBs3q.js} +3 -3
  4. package/lib/{extension-events-DJTP1cCG.js → extension-events-CpdxIYny.js} +20 -20
  5. package/lib/{host-access-D3lpiaUY.js → host-access-DzODySUv.js} +1 -1
  6. package/lib/{keymap-DAr6MX8m.js → keymap-CiIcZwAy.js} +2 -2
  7. package/lib/{plugin-BGw2QmPK.js → plugin-qsdFyVMj.js} +413 -376
  8. package/lib/{scenes-BeuL5ow2.js → scenes-DqDnZlu2.js} +3 -3
  9. package/lib/{settings-sections-dGk8gNU7.js → settings-sections-B7HURmLF.js} +3 -3
  10. package/lib/{themes-O-UQAfC7.js → themes-TJq3ehQ0.js} +12 -12
  11. package/lib/tui-compat-command-trees.js +1 -1
  12. package/lib/tui-compat-extensions.js +4 -4
  13. package/lib/tui-compat-plugin-host.js +5 -5
  14. package/lib/tui-compat-scenes.js +1 -1
  15. package/lib/tui-compat-settings-sections.js +1 -1
  16. package/lib/tui-compat-working-activity.js +1 -1
  17. package/lib/tui-compat-workspaces.js +1 -1
  18. package/lib/tui-compat.js +5 -5
  19. package/lib/{tuiDisplayPrefs-DdU4O_sF.js → tuiDisplayPrefs-CrC3Slh1.js} +2 -2
  20. package/lib/{workspaces-CE18wA21.js → workspaces-CLW5OKFC.js} +2 -2
  21. package/package.json +25 -25
  22. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
  23. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
  24. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
@@ -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, g as settingsValue, i as formatContextUsage, l as normalizeStatusBar, m as displaySettingsScope, n as DEFAULT_STATUS_BAR, o as isPageMarginMode, p as subscribePageMargin, r as applyPageMargin, s as normalizePageMargin, u as normalizeToolBackground } from "./tuiDisplayPrefs-DdU4O_sF.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-DAr6MX8m.js";
4
- import { c as withHostRootCapability } from "./host-access-D3lpiaUY.js";
5
- import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-CE18wA21.js";
6
- import { n as getHostCommandTrees } from "./command-trees-CdgUsoW4.js";
7
- import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-dGk8gNU7.js";
8
- import { n as getHostSceneRuntime } from "./scenes-BeuL5ow2.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-DJTP1cCG.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-B-jCwfLt.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-O-UQAfC7.js";
2
+ import { a as getPageMarginSetting, c as normalizeScrollGutter, d as parsePageMarginSpec, f as resolvePageMargin, g as settingsValue, i as formatContextUsage, l as normalizeStatusBar, m as displaySettingsScope, n as DEFAULT_STATUS_BAR, o as isPageMarginMode, p as subscribePageMargin, r as applyPageMargin, s as normalizePageMargin, u as normalizeToolBackground } from "./tuiDisplayPrefs-CrC3Slh1.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-CiIcZwAy.js";
4
+ import { c as withHostRootCapability } from "./host-access-DzODySUv.js";
5
+ import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-CLW5OKFC.js";
6
+ import { n as getHostCommandTrees } from "./command-trees-Kgumf22q.js";
7
+ import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-B7HURmLF.js";
8
+ import { n as getHostSceneRuntime } from "./scenes-DqDnZlu2.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-CpdxIYny.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-BAbKP4yc.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-TJq3ehQ0.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.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sideQuestion.js
1201
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_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.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/recap.js
1271
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_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.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/log.js
1384
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_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.14_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.15_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.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/sessionColors.js
1538
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_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.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/deepseekPricing.js
1579
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_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.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/i18n.js
1704
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_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`).
@@ -1844,8 +1844,8 @@ const dict = {
1844
1844
  en: "No MCP servers configured."
1845
1845
  },
1846
1846
  "mcp-insert-hint": {
1847
- zh: "在 profile 补丁层(~/.chatcode-cli/profiles/dsh-tui/cordis.patch.yml)insert 一行即可,例:",
1848
- en: "Insert one line in the profile patch layer (~/.chatcode-cli/profiles/dsh-tui/cordis.patch.yml), e.g.:"
1847
+ zh: "在当前 profile 补丁层(默认 ~/.chatcode-cli/profiles/cli/cordis.patch.yml)insert 一行即可,例:",
1848
+ en: "Insert one line in the active profile patch layer (default: ~/.chatcode-cli/profiles/cli/cordis.patch.yml), e.g.:"
1849
1849
  },
1850
1850
  "mcp-readme-hint": {
1851
1851
  zh: "详见仓库 README 的 MCP 章节。",
@@ -3318,8 +3318,8 @@ const dict = {
3318
3318
  en: "ChatCode CLI TUI update aborted: no ChatCode CLI Profile was resolved."
3319
3319
  },
3320
3320
  "update-launcher-align-unknown": {
3321
- zh: "Profile 已更新到 v{{version}}。如果你平时使用全局 dsh-tui 命令启动,请同步更新全局启动器:\n npm install -g --legacy-peer-deps @chatcode/cco-tui@{{version}}\n(--legacy-peer-deps 可绕过 npm 12 的 peer 解析崩溃,全局启动器是瘦壳,跳过全局 peer 解析是安全的)",
3322
- en: "The profile is now v{{version}}. If you normally launch with the global dsh-tui command, align the global launcher too:\n npm install -g --legacy-peer-deps @chatcode/cco-tui@{{version}}\n(--legacy-peer-deps works around an npm 12 peer-resolution crash; the global launcher is a thin shim, so skipping global peer resolution is safe.)"
3321
+ zh: "TUI 插件已更新到 v{{version}}。日常使用 chatcode-cli 或 cco 启动。仅当使用独立兼容启动器 cco-tui 时,才需对齐该启动器版本:\n npm install -g --legacy-peer-deps @chatcode/cco-tui@{{version}}",
3322
+ en: "The TUI plugin is now v{{version}}. Start with chatcode-cli or cco. Only if you use the separate cco-tui compatibility launcher, align its version with:\n npm install -g --legacy-peer-deps @chatcode/cco-tui@{{version}}"
3323
3323
  },
3324
3324
  "update-launcher-outdated": {
3325
3325
  zh: "Profile 已更新到 v{{profile}},但全局启动器仍是 v{{launcher}}。请同步更新:\n npm install -g --legacy-peer-deps @chatcode/cco-tui@{{profile}}\n(--legacy-peer-deps 可绕过 npm 12 的 peer 解析崩溃,见 #459)",
@@ -3393,6 +3393,22 @@ const dict = {
3393
3393
  zh: "当前 preset 未注册 /plan 命令,无法切换计划模式",
3394
3394
  en: "The active preset does not register /plan; cannot toggle plan mode"
3395
3395
  },
3396
+ "logo-ai-ratio-loading": {
3397
+ zh: "加载中…",
3398
+ en: "Loading…"
3399
+ },
3400
+ "logo-ai-ratio-empty": {
3401
+ zh: "暂无数据(当月)",
3402
+ en: "No data (month)"
3403
+ },
3404
+ "logo-ai-ratio-unavailable": {
3405
+ zh: "暂不可用(稍后重试)",
3406
+ en: "Unavailable (retrying)"
3407
+ },
3408
+ "logo-ai-ratio-stale": {
3409
+ zh: "(待刷新)",
3410
+ en: " (stale)"
3411
+ },
3396
3412
  "logo-web-hint": {
3397
3413
  zh: "🌐 输入 /web,或在终端运行 cco web,进行可视化配置",
3398
3414
  en: "🌐 type /web, or run cco web in another terminal"
@@ -6473,7 +6489,7 @@ function resolveStartupLang(dir = PREFS_DIR$6, env = process.env) {
6473
6489
  return readLangPref(dir) ?? "zh";
6474
6490
  }
6475
6491
  //#endregion
6476
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/commands.js
6492
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/commands.js
6477
6493
  /**
6478
6494
  * Local slash commands for the dsh-tui TUI. Claude Code's command system is
6479
6495
  * deeply wired into its engine; dsh-tui ships a small built-in set with the
@@ -6930,7 +6946,7 @@ function matchingCompletionToken(candidate, prefix) {
6930
6946
  return candidate.aliases?.find((alias) => alias.toLowerCase().startsWith(prefix));
6931
6947
  }
6932
6948
  //#endregion
6933
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionHistory.js
6949
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionHistory.js
6934
6950
  /**
6935
6951
  * Launcher contract for `dsh-tui --resume`: the TUI writes the chosen session
6936
6952
  * id to `<CHATCODE_CLI_HOME>/tui/resume.txt`, and the launcher feeds it back as
@@ -7099,7 +7115,7 @@ function forgetAgentViewSession(sessionId) {
7099
7115
  } catch {}
7100
7116
  }
7101
7117
  //#endregion
7102
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionTags.js
7118
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionTags.js
7103
7119
  /**
7104
7120
  * One searchable local tag per persisted session.
7105
7121
  *
@@ -7249,7 +7265,7 @@ function forgetSessionTag(sessionId, dir = DATA_DIR) {
7249
7265
  return setSessionTag(sessionId, void 0, dir).ok;
7250
7266
  }
7251
7267
  //#endregion
7252
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/liveSession.js
7268
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/liveSession.js
7253
7269
  /**
7254
7270
  * Live Session compatibility facade.
7255
7271
  *
@@ -7411,7 +7427,7 @@ function liveSessionCreateOptions(request) {
7411
7427
  };
7412
7428
  }
7413
7429
  //#endregion
7414
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionLog.js
7430
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionLog.js
7415
7431
  /**
7416
7432
  * Legacy third-party session-event types the TUI vouches for as ephemeral
7417
7433
  * UI frames — safe for the strict read path to accept and skip. Exported
@@ -8125,7 +8141,7 @@ function deleteSessionLog(sessionId) {
8125
8141
  }
8126
8142
  }
8127
8143
  //#endregion
8128
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionEvent.js
8144
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionEvent.js
8129
8145
  /** Narrow an unknown/session event to the retired durable chunk envelope. */
8130
8146
  function legacyAssistantChunkOf(event) {
8131
8147
  if (event === null || typeof event !== "object") return void 0;
@@ -8139,7 +8155,7 @@ function legacyAssistantChunkOf(event) {
8139
8155
  return event;
8140
8156
  }
8141
8157
  //#endregion
8142
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compaction.js
8158
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compaction.js
8143
8159
  /**
8144
8160
  * Recognize both the current checkpoint source and the legacy plugin marker.
8145
8161
  * Harness session format v4 migrated `plugin/compact` to the dedicated
@@ -8150,7 +8166,7 @@ function isCompactionCheckpointSource(source) {
8150
8166
  return source.kind === "compact-checkpoint" || source.kind === "plugin" && source.plugin === "compact";
8151
8167
  }
8152
8168
  //#endregion
8153
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessionTree.js
8169
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessionTree.js
8154
8170
  const TREE_FILTERS = [
8155
8171
  "default",
8156
8172
  "no-tools",
@@ -10306,7 +10322,7 @@ var require_subset = /* @__PURE__ */ __commonJSMin(((exports, module) => {
10306
10322
  module.exports = subset;
10307
10323
  }));
10308
10324
  //#endregion
10309
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/shellQuote.js
10325
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/shellQuote.js
10310
10326
  var import_semver = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
10311
10327
  const internalRe = require_re();
10312
10328
  const constants = require_constants$1();
@@ -10399,7 +10415,7 @@ function cmdEscapeArgument(arg, doubleEscapeMetaChars = false) {
10399
10415
  return out;
10400
10416
  }
10401
10417
  //#endregion
10402
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/update.js
10418
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/update.js
10403
10419
  const PACKAGE_NAME = "@chatcode/cco-tui";
10404
10420
  const DEFAULT_REGISTRY = "https://registry.npmjs.org";
10405
10421
  const GITHUB_REPO = "ccch1mneyyy/dsh-TUI";
@@ -11750,7 +11766,7 @@ async function restartTui(sessionId, options = {}) {
11750
11766
  });
11751
11767
  }
11752
11768
  //#endregion
11753
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/header.js
11769
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/header.js
11754
11770
  /** A finite number, or undefined for anything else (NaN and ±Infinity included). */
11755
11771
  function finiteNumber(value) {
11756
11772
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
@@ -11824,7 +11840,7 @@ function classify(header) {
11824
11840
  return { kind: "root" };
11825
11841
  }
11826
11842
  //#endregion
11827
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/frames.js
11843
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/frames.js
11828
11844
  /**
11829
11845
  * Bounded reads over the JSONL backend's concatenated-Zstandard session logs.
11830
11846
  *
@@ -12070,7 +12086,7 @@ function decodeTail(window) {
12070
12086
  return decodeFrames(window.buffer, window.whole ? walkFrames(window.buffer) : resyncFrames(window.buffer));
12071
12087
  }
12072
12088
  //#endregion
12073
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/digest.js
12089
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/digest.js
12074
12090
  /**
12075
12091
  * What a bounded read can learn about a session log.
12076
12092
  *
@@ -12534,7 +12550,7 @@ function previewSession(path, limit) {
12534
12550
  return entries.slice(-limit);
12535
12551
  }
12536
12552
  //#endregion
12537
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
12553
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
12538
12554
  /** Read-only artifact lookup for session summaries and previews. */
12539
12555
  /** Highest published compressed generation; temporary migration files are ignored. */
12540
12556
  function inDirectory(directory) {
@@ -12587,7 +12603,7 @@ function findSessionArtifact(sessionId, target) {
12587
12603
  }
12588
12604
  }
12589
12605
  //#endregion
12590
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
12606
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
12591
12607
  /**
12592
12608
  * The session index — a local cache keyed by the backend's own change token.
12593
12609
  *
@@ -12750,7 +12766,7 @@ function noteBranch(sessionId, branch) {
12750
12766
  writeIndex(index);
12751
12767
  }
12752
12768
  //#endregion
12753
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
12769
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
12754
12770
  /**
12755
12771
  * Building the session list.
12756
12772
  *
@@ -13022,7 +13038,7 @@ async function locateSession(source, sessionId, signal) {
13022
13038
  return match === void 0 ? void 0 : locate$1(source, match.raw, sessionId);
13023
13039
  }
13024
13040
  //#endregion
13025
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
13041
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
13026
13042
  /**
13027
13043
  * Agent view (CC `claude agents`) derivation helpers — pure functions over
13028
13044
  * session events that the channel folds into {@link AgentViewRow}s. Kept in
@@ -13252,7 +13268,7 @@ function featureOn(config, name) {
13252
13268
  return config.mode !== "minimal";
13253
13269
  }
13254
13270
  //#endregion
13255
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13271
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13256
13272
  /**
13257
13273
  * Persisted working-activity indicator preference, mirroring the pi
13258
13274
  * working-activity extension's `~/.pi/agent/working-activity.json`
@@ -13321,7 +13337,7 @@ function writeActivityFrames(name, dir = PREFS_DIR$5) {
13321
13337
  }
13322
13338
  }
13323
13339
  //#endregion
13324
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
13340
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
13325
13341
  const pathSeparators = /[\\/]/;
13326
13342
  function isPathLikeQuery(query) {
13327
13343
  return query.startsWith(".") || query.startsWith("~") || query.startsWith("/") || /^[A-Za-z]:[\\/]/.test(query) || pathSeparators.test(query);
@@ -13358,7 +13374,7 @@ function preserveSelection(previous, next, fallback = 0) {
13358
13374
  return next.length === 0 ? 0 : Math.min(Math.max(0, fallback), next.length - 1);
13359
13375
  }
13360
13376
  //#endregion
13361
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13377
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13362
13378
  /**
13363
13379
  * Persisted reasoning-effort preference (`~/.chatcode-cli/tui/effort.json`). Set via
13364
13380
  * `/effort` (slider or `/effort <id>`; `/effort status` reports the current
@@ -13400,7 +13416,7 @@ function writeEffortPref(effort, dir = PREFS_DIR$4) {
13400
13416
  }
13401
13417
  }
13402
13418
  //#endregion
13403
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13419
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13404
13420
  /**
13405
13421
  * Persisted model-route preference (`/model` picker choice), kept at
13406
13422
  * `~/.chatcode-cli/model.json` (`provider` + `model` keys) so CLI and Web share it
@@ -13483,7 +13499,7 @@ function writeModelPref(provider, model, dir = PREFS_DIR$3) {
13483
13499
  }
13484
13500
  }
13485
13501
  //#endregion
13486
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13502
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13487
13503
  /**
13488
13504
  * Model route resolution (issue #67). The `(provider, model)` pair is a
13489
13505
  * single value: every source either supplies the WHOLE route or is skipped,
@@ -13718,7 +13734,7 @@ function orderModelProviders(providers) {
13718
13734
  return [...providers].sort((left, right) => rank(left.id) - rank(right.id));
13719
13735
  }
13720
13736
  //#endregion
13721
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelSettings.js
13737
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelSettings.js
13722
13738
  /**
13723
13739
  * Read and update ChatCode CLI's user-defined model list in
13724
13740
  * `~/.chatcode-cli/settings.json` without exposing stored API keys to the UI.
@@ -13859,7 +13875,7 @@ function createCustomModelSettingsStore(path) {
13859
13875
  };
13860
13876
  }
13861
13877
  //#endregion
13862
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelTest.js
13878
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelTest.js
13863
13879
  /** Direct, one-shot generation used by `/model-config` before a model is registered. */
13864
13880
  function requestEndpoint(baseURL, api) {
13865
13881
  const url = new URL(baseURL);
@@ -13937,7 +13953,7 @@ async function testCustomModelConnection(request, fetchImpl = fetch) {
13937
13953
  }
13938
13954
  }
13939
13955
  //#endregion
13940
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
13956
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
13941
13957
  /**
13942
13958
  * Persisted agent-preset preference (`/preset` picker choice), kept at
13943
13959
  * `~/.chatcode-cli/tui/agent-preset.json` (`preset` key) so the choice survives
@@ -13996,7 +14012,7 @@ function migratePresetPref(requested, resolved, dir = PREFS_DIR$2) {
13996
14012
  return requested === void 0 || resolved === void 0 || requested === resolved ? true : writePresetPref(resolved, dir);
13997
14013
  }
13998
14014
  //#endregion
13999
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
14015
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
14000
14016
  /** Undefined means the service exposes neither supported read API. */
14001
14017
  async function readPersistedSession(persistence, id) {
14002
14018
  if (persistence === null || typeof persistence !== "object") return void 0;
@@ -14016,7 +14032,7 @@ async function readPersistedSession(persistence, id) {
14016
14032
  if (typeof reader.load === "function") return reader.load(id);
14017
14033
  }
14018
14034
  //#endregion
14019
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
14035
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
14020
14036
  /**
14021
14037
  * Agent-preset resolution across upstream prerelease lines.
14022
14038
  *
@@ -14054,7 +14070,7 @@ async function resolveCompatiblePreset(presets, requested) {
14054
14070
  return presets.resolve(requested);
14055
14071
  }
14056
14072
  //#endregion
14057
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
14073
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
14058
14074
  /**
14059
14075
  * Agent-presets roster integration (issue #8): compose each session's
14060
14076
  * model-facing world (tools, prompt sections, projections) from one preset
@@ -14204,7 +14220,7 @@ function serviceForAgent(ctx, agent, key) {
14204
14220
  return ctx.get(key);
14205
14221
  }
14206
14222
  //#endregion
14207
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
14223
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
14208
14224
  const failureReason = (error) => error instanceof Error ? error.message : String(error);
14209
14225
  /** Read a roster-resolved composition without bypassing preset ownership. */
14210
14226
  async function readPresetComposition(presets, presetId) {
@@ -14261,7 +14277,7 @@ async function removePresetComposition(presets, presetId) {
14261
14277
  }
14262
14278
  }
14263
14279
  //#endregion
14264
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
14280
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
14265
14281
  /** Adapter-only readers for optional Harness session-organization services. */
14266
14282
  const STAT_KEYS = [
14267
14283
  "turns",
@@ -14322,7 +14338,7 @@ function presetCompositionRows(content, limit = 80) {
14322
14338
  };
14323
14339
  }
14324
14340
  //#endregion
14325
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
14341
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
14326
14342
  /**
14327
14343
  * Debug logger for the ported Ink core. Writes to stderr only when
14328
14344
  * `CHATCODE_CLI_TUI_DEBUG` (or its legacy alias) is set, so normal runs stay quiet.
@@ -14332,7 +14348,7 @@ function presetCompositionRows(content, limit = 80) {
14332
14348
  function logForDebugging(message, fields) {
14333
14349
  if (!readTuiEnv("DEBUG")) return;
14334
14350
  const suffix = fields === void 0 ? "" : ` ${JSON.stringify(fields)}`;
14335
- process.stderr.write(`[cco-cli] ${message}${suffix}\n`);
14351
+ process.stderr.write(`[chatcode-cli] ${message}${suffix}\n`);
14336
14352
  }
14337
14353
  /**
14338
14354
  * Mouse-chain diagnostics: appends below the ChatCode CLI TUI data root when
@@ -14352,7 +14368,7 @@ function logMouseDebug(message, fields) {
14352
14368
  } catch {}
14353
14369
  }
14354
14370
  //#endregion
14355
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
14371
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
14356
14372
  /**
14357
14373
  * `@` file-mention parsing (issue #15).
14358
14374
  *
@@ -14498,7 +14514,7 @@ function mentionAtCaret(value, cursor) {
14498
14514
  };
14499
14515
  }
14500
14516
  //#endregion
14501
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
14517
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
14502
14518
  /** Format only the files in the authoritative loaded-context projection. */
14503
14519
  function loadedFileLines(files, copy) {
14504
14520
  if (files === void 0) return [copy.unavailable];
@@ -14613,7 +14629,7 @@ function codeRatioLines(report, copy, maxAuthors = 20) {
14613
14629
  return lines;
14614
14630
  }
14615
14631
  //#endregion
14616
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14632
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14617
14633
  /**
14618
14634
  * Cordis-free theme catalog shared by future pickers, commands and hosts.
14619
14635
  *
@@ -14694,7 +14710,7 @@ function listThemeCatalog(host) {
14694
14710
  return Object.freeze(entries);
14695
14711
  }
14696
14712
  //#endregion
14697
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14713
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14698
14714
  /**
14699
14715
  * Configurable Shift+Tab session modes (the `modes` dsh-tui plugin config):
14700
14716
  * each mode is a named bundle of optional DSH plane switches — plan mode
@@ -14758,7 +14774,7 @@ function modeDisplayName(spec) {
14758
14774
  return spec.id;
14759
14775
  }
14760
14776
  //#endregion
14761
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
14777
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
14762
14778
  /** Unified subagent activity domain model used by the adapter and every view. */
14763
14779
  const MAX_OUTPUT_EVENTS = 160;
14764
14780
  const MAX_OUTPUT_LINES = 160;
@@ -15136,7 +15152,7 @@ function formatJobDuration(job, now = Date.now()) {
15136
15152
  return `${Math.floor(minutes / 60)}h${String(minutes % 60).padStart(2, "0")}m`;
15137
15153
  }
15138
15154
  //#endregion
15139
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
15155
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
15140
15156
  /**
15141
15157
  * Minimal mode: one process-wide flag gating decorative UI (header splash,
15142
15158
  * emoji status glyphs, non-tool text colors, status-bar extras). The flag is
@@ -15155,7 +15171,7 @@ function setMinimalMode(enabled) {
15155
15171
  minimal = enabled;
15156
15172
  }
15157
15173
  //#endregion
15158
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
15174
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
15159
15175
  /**
15160
15176
  * Find or create the Workspace for `cwd`, then durably account `sessionId`.
15161
15177
  *
@@ -15171,7 +15187,7 @@ async function attachSessionToWorkspace(ctx, cwd, sessionId) {
15171
15187
  return true;
15172
15188
  }
15173
15189
  //#endregion
15174
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
15190
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
15175
15191
  /**
15176
15192
  * Upstream compatibility contract.
15177
15193
  *
@@ -15600,7 +15616,7 @@ function pluginsInfoLines(args, deps) {
15600
15616
  return lines;
15601
15617
  }
15602
15618
  //#endregion
15603
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
15619
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
15604
15620
  /** Loader and tool-registry projection used by the TUI's `/mcp` report. */
15605
15621
  const MCP_CLIENT_PACKAGE = "@deepseek-ai/dsh-mcp-client";
15606
15622
  const FIBER_ACTIVE = 2;
@@ -15653,7 +15669,7 @@ function collectMcpServerStatus(schemas, entries) {
15653
15669
  }));
15654
15670
  }
15655
15671
  //#endregion
15656
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
15672
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
15657
15673
  /**
15658
15674
  * Number, token-count, and duration formatters shared by the status line
15659
15675
  * and message rows.
@@ -15716,7 +15732,7 @@ function formatDuration$4(durationMs, options = {}) {
15716
15732
  return parts.join(" ");
15717
15733
  }
15718
15734
  //#endregion
15719
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
15735
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
15720
15736
  /**
15721
15737
  * Return the current context occupancy. The latest request is authoritative:
15722
15738
  * its uncached input and cache read/write tokens are all part of that request's
@@ -16100,7 +16116,7 @@ function prepareMemoryTargetFile(requested, candidates, cwd, dshHome) {
16100
16116
  }
16101
16117
  }
16102
16118
  //#endregion
16103
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
16119
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
16104
16120
  /** Return the step left open by a tree fork cut within one turn. */
16105
16121
  function openStepAtForkCut(events, turn) {
16106
16122
  for (let i = events.length - 1; i >= 0; i--) {
@@ -16810,7 +16826,7 @@ function createChannel(ctx, initialAgent, options) {
16810
16826
  if (!jobs?.kill) return false;
16811
16827
  const job = jobStore.get(id);
16812
16828
  try {
16813
- jobs.kill(id, agent, "dsh-tui /jobs panel");
16829
+ jobs.kill(id, agent, "chatcode-cli /jobs panel");
16814
16830
  } catch {
16815
16831
  return false;
16816
16832
  }
@@ -18971,7 +18987,7 @@ function createChannel(ctx, initialAgent, options) {
18971
18987
  appendSessionTitle(String(childId), forkSessionTitle(title, state.sessionTitle, String(source.id)));
18972
18988
  const profile = resolveDshProfileName();
18973
18989
  const boot = profile === void 0 ? "chatcode-cli --config cordis.yml" : `chatcode-cli --profile ${profile}`;
18974
- const command = process.platform === "win32" ? `dsh-tui --resume ${childId}` : `CHATCODE_CLI_TUI_RESUME_SESSION=${childId} ${boot}`;
18990
+ const command = process.platform === "win32" ? `${profile === void 0 ? "chatcode-cli" : boot} --resume ${childId}` : `CHATCODE_CLI_TUI_RESUME_SESSION=${childId} ${boot}`;
18975
18991
  state.notify(t("fork-done", {
18976
18992
  id: String(childId),
18977
18993
  command
@@ -20661,7 +20677,7 @@ function createChannel(ctx, initialAgent, options) {
20661
20677
  }
20662
20678
  default: break;
20663
20679
  }
20664
- const fileName = `dsh-tui-export-${Date.now()}.md`;
20680
+ const fileName = `chatcode-cli-export-${Date.now()}.md`;
20665
20681
  try {
20666
20682
  const target = join(state.cwd, fileName);
20667
20683
  writeFileSync(target, parts.join("\n"), "utf8");
@@ -22550,7 +22566,7 @@ async function expandMentions(fs, cwd, text, attachments, stagedImages) {
22550
22566
  };
22551
22567
  }
22552
22568
  //#endregion
22553
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
22569
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
22554
22570
  /**
22555
22571
  * Child-process stderr guard (issue #17).
22556
22572
  *
@@ -22719,7 +22735,7 @@ function createChildStderrReporter(notify, options = {}) {
22719
22735
  };
22720
22736
  }
22721
22737
  //#endregion
22722
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
22738
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
22723
22739
  /**
22724
22740
  * Ask-user-question store — the UI-side half of the DSH user-interaction
22725
22741
  * seam (`ctx.userQuestions`). The harness's model-facing
@@ -22959,7 +22975,7 @@ var QuestionStore = class {
22959
22975
  }
22960
22976
  };
22961
22977
  //#endregion
22962
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
22978
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
22963
22979
  /**
22964
22980
  * Question-provider seat guard (issue #98 security follow-up).
22965
22981
  *
@@ -23071,7 +23087,7 @@ function incumbentQuestionProviderId(service) {
23071
23087
  } catch {}
23072
23088
  }
23073
23089
  //#endregion
23074
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
23090
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
23075
23091
  /**
23076
23092
  * User-question answerer compatibility.
23077
23093
  *
@@ -23130,7 +23146,7 @@ function prepareQuestionAnswerer(ctx, service, answerer) {
23130
23146
  }
23131
23147
  }
23132
23148
  //#endregion
23133
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
23149
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
23134
23150
  /**
23135
23151
  * Approval store — the UI-side answerer half of the DSH approval seam
23136
23152
  * (`ctx.approval`). The harness's permission layer asks
@@ -23524,7 +23540,7 @@ var ApprovalStore = class {
23524
23540
  }
23525
23541
  };
23526
23542
  //#endregion
23527
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
23543
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
23528
23544
  /**
23529
23545
  * On-demand capture of every final AgentLoop request context observed for a
23530
23546
  * live session.
@@ -23641,7 +23657,7 @@ function registerPromptDebug(ctx) {
23641
23657
  schemaVersion: 2,
23642
23658
  generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
23643
23659
  captureStartedAt,
23644
- captureScope: "Requests observed by this dsh-tui process; requests from before a session resume cannot be reconstructed.",
23660
+ captureScope: "Requests observed by this chatcode-cli process; requests from before a session resume cannot be reconstructed.",
23645
23661
  warning: "Sensitive debug data: contains system prompts, conversation messages, tool schemas, and tool results. It intentionally excludes credentials and transport headers.",
23646
23662
  sessionId,
23647
23663
  turnCount: turns.size,
@@ -23670,7 +23686,7 @@ function registerPromptDebug(ctx) {
23670
23686
  }));
23671
23687
  }
23672
23688
  //#endregion
23673
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
23689
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
23674
23690
  /**
23675
23691
  * One-time local migrations (`~/.chatcode-cli/tui/migrations.json`), keyed by stable
23676
23692
  * migration id → ISO timestamp. Named keys (not a bare flag) so later
@@ -23761,7 +23777,7 @@ async function commitFullscreenFactoryMigration(plan, options) {
23761
23777
  } catch {}
23762
23778
  }
23763
23779
  //#endregion
23764
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
23780
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
23765
23781
  const OWNER = "@chatcode/cco-tui";
23766
23782
  const MARKER = ".dsh-tui-managed.json";
23767
23783
  const RETIRED_PACKAGED_PRESETS = ["liangshen"];
@@ -23803,7 +23819,7 @@ function cleanupRetiredPackagedPresets(options = {}) {
23803
23819
  return results;
23804
23820
  }
23805
23821
  //#endregion
23806
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
23822
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
23807
23823
  /** Resolve a fresh session's working directory without widening it to a Git ancestor. */
23808
23824
  /**
23809
23825
  * Explicit configuration wins; otherwise keep the invoking directory, even
@@ -23816,7 +23832,7 @@ function resolveSessionCwd(configured, start = process.cwd()) {
23816
23832
  return resolve(start, configured ?? "");
23817
23833
  }
23818
23834
  //#endregion
23819
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
23835
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
23820
23836
  /**
23821
23837
  * Open URLs, files and folders with the platform's default handler, fully
23822
23838
  * detached from the TUI process (fire-and-forget: no stdio pipes, no wait,
@@ -23977,13 +23993,13 @@ function revealInFileManager(filePath) {
23977
23993
  if (existsSync(dir)) openExternal(dir);
23978
23994
  }
23979
23995
  //#endregion
23980
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
23996
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
23981
23997
  /** ChatCode API request capability. Credentials stay in the host adapter. */
23982
23998
  const CHATCODE_API_BASE_URL = "https://chatcode.chinaunicom.cn";
23983
23999
  /** Each mounted TUI receives its own host-authorized request function. */
23984
24000
  const ChatCodeApiContext = (0, import_react.createContext)(void 0);
23985
24001
  //#endregion
23986
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
24002
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
23987
24003
  const RELEASE_NOTE_PATH = join(DATA_DIR, "release-notes.json");
23988
24004
  const RELEASE_NOTE_ENDPOINT = `${CHATCODE_API_BASE_URL}/chatcode/api/v1/cli/version/release-note`;
23989
24005
  function acknowledgedVersion() {
@@ -24079,7 +24095,7 @@ var ReleaseNotesStore = class {
24079
24095
  }
24080
24096
  };
24081
24097
  //#endregion
24082
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
24098
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
24083
24099
  const MAIN_CLI_PACKAGES = new Set(["@chatcode/chatcode-cli", "@chatcode/chatcode-cli-test"]);
24084
24100
  const VERSION_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u;
24085
24101
  const PRODUCT_VERSION_ENV = "CHATCODE_CLI_PRODUCT_VERSION";
@@ -24119,7 +24135,7 @@ function resolveProductVersion(options = {}) {
24119
24135
  /** Product version shown by the TUI, shared with `cco --version` and Web. */
24120
24136
  const PRODUCT_VERSION = resolveProductVersion();
24121
24137
  //#endregion
24122
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
24138
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
24123
24139
  const MAX_CAPTURE_BYTES = 64 * 1024;
24124
24140
  function appendBounded(chunks, chunk, total) {
24125
24141
  if (total.value >= MAX_CAPTURE_BYTES) return;
@@ -24189,7 +24205,7 @@ function execFileNoThrow(file, args = [], options) {
24189
24205
  });
24190
24206
  }
24191
24207
  //#endregion
24192
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
24208
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
24193
24209
  const REPORT_TIMEOUT_MS = 2e3;
24194
24210
  const RELEASE_TIMEOUT_MS = 500;
24195
24211
  const RETRY_DELAYS_MS = [
@@ -24577,7 +24593,7 @@ var require_react_jsx_runtime_development = /* @__PURE__ */ __commonJSMin(((expo
24577
24593
  })();
24578
24594
  }));
24579
24595
  //#endregion
24580
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
24596
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
24581
24597
  var import_jsx_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
24582
24598
  if (process.env.NODE_ENV === "production") module.exports = require_react_jsx_runtime_production();
24583
24599
  else module.exports = require_react_jsx_runtime_development();
@@ -24634,7 +24650,7 @@ function writeThemePref(name, dir = PREFS_DIR) {
24634
24650
  }
24635
24651
  }
24636
24652
  //#endregion
24637
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
24653
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
24638
24654
  const EMPTY_THEME_SNAPSHOT = Object.freeze([]);
24639
24655
  const subscribeNoThemes = (_listener) => () => {};
24640
24656
  /**
@@ -24662,7 +24678,7 @@ function useRuntimeThemeSnapshot(themeHost) {
24662
24678
  return import_react.useSyncExternalStore(subscribeThemes, getThemeSnapshot, getThemeSnapshot);
24663
24679
  }
24664
24680
  //#endregion
24665
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
24681
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
24666
24682
  /**
24667
24683
  * Base class for events with immediate-propagation control.
24668
24684
  *
@@ -24686,7 +24702,7 @@ var Event = class {
24686
24702
  }
24687
24703
  };
24688
24704
  //#endregion
24689
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
24705
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
24690
24706
  /**
24691
24707
  * Node-compatible event emitter that is aware of the `Event` class, so
24692
24708
  * `emit` respects `stopImmediatePropagation()` on dispatched events.
@@ -24719,7 +24735,7 @@ var EventEmitter$1 = class extends EventEmitter {
24719
24735
  }
24720
24736
  };
24721
24737
  //#endregion
24722
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
24738
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
24723
24739
  /**
24724
24740
  * `StdinContext` is a React context, which exposes input stream.
24725
24741
  */
@@ -24733,14 +24749,14 @@ const StdinContext = (0, import_react.createContext)({
24733
24749
  });
24734
24750
  StdinContext.displayName = "InternalStdinContext";
24735
24751
  //#endregion
24736
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
24752
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
24737
24753
  /**
24738
24754
  * React hook exposing the stdin stream and raw-mode helpers from `StdinContext`.
24739
24755
  * @returns the `StdinContext` value.
24740
24756
  */
24741
24757
  const useStdin = () => (0, import_react.useContext)(StdinContext);
24742
24758
  //#endregion
24743
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
24759
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
24744
24760
  /**
24745
24761
  * ANSI Control Characters and Escape Sequence Introducers
24746
24762
  *
@@ -24814,7 +24830,7 @@ function isEscFinal(byte) {
24814
24830
  return byte >= 48 && byte <= 126;
24815
24831
  }
24816
24832
  //#endregion
24817
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
24833
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
24818
24834
  /**
24819
24835
  * CSI (Control Sequence Introducer) Types
24820
24836
  *
@@ -25130,7 +25146,7 @@ const ENABLE_WIN32_INPUT_MODE = csi("?9001h");
25130
25146
  */
25131
25147
  const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
25132
25148
  //#endregion
25133
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
25149
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
25134
25150
  /**
25135
25151
  * Minimal terminal-environment shim for the ported Ink core. The original
25136
25152
  * module computed a richer `env` object from the Claude Code app context; the
@@ -25139,7 +25155,7 @@ const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
25139
25155
  */
25140
25156
  const env$1 = { terminal: (process.env.TERM_PROGRAM ?? process.env.TERM ?? "unknown").toLowerCase() };
25141
25157
  //#endregion
25142
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
25158
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
25143
25159
  /**
25144
25160
  * OSC (Operating System Command) Types and Parser
25145
25161
  */
@@ -25535,7 +25551,7 @@ function supportsTabStatus() {
25535
25551
  return process.env.USER_TYPE === "ant";
25536
25552
  }
25537
25553
  //#endregion
25538
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
25554
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
25539
25555
  /**
25540
25556
  * Query the terminal and await responses without timeouts.
25541
25557
  *
@@ -25721,7 +25737,7 @@ var TerminalQuerier = class {
25721
25737
  }
25722
25738
  };
25723
25739
  //#endregion
25724
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
25740
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
25725
25741
  /**
25726
25742
  * Theme provider with terminal-background auto-detection. With no explicit
25727
25743
  * `theme` prop, no CHATCODE_CLI_TUI_THEME override and no persisted choice
@@ -25867,7 +25883,7 @@ function ThemeProvider({ children, theme, themeHost }) {
25867
25883
  */
25868
25884
  const setTheme = import_react.useCallback((name) => {
25869
25885
  if (!isThemeAvailable(name)) {
25870
- console.warn(`[cco-cli] theme "${name}" not found`);
25886
+ console.warn(`[chatcode-cli] theme "${name}" not found`);
25871
25887
  return false;
25872
25888
  }
25873
25889
  if (!writeThemePref(name)) {
@@ -25920,7 +25936,7 @@ function useTheme() {
25920
25936
  return [theme, setTheme];
25921
25937
  }
25922
25938
  //#endregion
25923
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
25939
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
25924
25940
  /**
25925
25941
  * React-free form model behind the `/settings` screen (issue #165), mirroring
25926
25942
  * the web front door's card-form.ts semantics: a section stages what the user
@@ -26164,7 +26180,7 @@ var SettingsForm = class {
26164
26180
  }
26165
26181
  };
26166
26182
  //#endregion
26167
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
26183
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
26168
26184
  /**
26169
26185
  * `/reload` planning — the pi-style soft reload: re-read the TUI's persisted
26170
26186
  * preference files (`~/.chatcode-cli/tui/{theme,lang,agent-preset,model,
@@ -27013,7 +27029,7 @@ var SignalExit = class extends SignalExitBase {
27013
27029
  const process$2 = globalThis.process;
27014
27030
  const { onExit, load, unload } = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback());
27015
27031
  //#endregion
27016
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
27032
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
27017
27033
  /**
27018
27034
  * Yoga enums — ported from yoga-layout/src/generated/YGEnums.ts
27019
27035
  * Kept as `const` objects (not TS enums) per repo convention.
@@ -27145,7 +27161,7 @@ const Wrap = {
27145
27161
  WrapReverse: 2
27146
27162
  };
27147
27163
  //#endregion
27148
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
27164
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
27149
27165
  /**
27150
27166
  * Pure-TypeScript port of yoga-layout (Meta's flexbox engine).
27151
27167
  *
@@ -29596,7 +29612,7 @@ Object.defineProperties(createChalk.prototype, {
29596
29612
  const chalk = createChalk();
29597
29613
  createChalk({ level: stderrColor ? stderrColor.level : 0 });
29598
29614
  //#endregion
29599
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
29615
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
29600
29616
  /**
29601
29617
  * xterm.js (VS Code, Cursor, code-server, Coder) has supported truecolor
29602
29618
  * since 2017, but code-server/Coder containers often don't set
@@ -29727,7 +29743,7 @@ function applyColor(text, color) {
29727
29743
  return colorize(text, color, "foreground");
29728
29744
  }
29729
29745
  //#endregion
29730
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
29746
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
29731
29747
  /**
29732
29748
  * Environment truthiness check for the ported Ink core. Accepts the common
29733
29749
  * shell truthy spellings (`1`, `true`, `yes`, `on`).
@@ -29745,7 +29761,7 @@ function isEnvTruthy(value) {
29745
29761
  ].includes(value.toLowerCase());
29746
29762
  }
29747
29763
  //#endregion
29748
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
29764
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
29749
29765
  /**
29750
29766
  * Whether mouse click handling is disabled for the ported Ink core. dsh-tui
29751
29767
  * reads its own env flag (`CHATCODE_CLI_TUI_DISABLE_MOUSE`); the original module
@@ -29756,7 +29772,7 @@ function isMouseClicksDisabled() {
29756
29772
  return isEnvTruthy(readTuiEnv("DISABLE_MOUSE"));
29757
29773
  }
29758
29774
  //#endregion
29759
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
29775
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
29760
29776
  /**
29761
29777
  * Input suppression window for terminal handoffs (issue #123): when stdin is
29762
29778
  * handed to an external TUI (full-screen editor) and back, the tty can
@@ -29783,7 +29799,7 @@ function isInputSuppressed() {
29783
29799
  return Date.now() < suppressedUntil;
29784
29800
  }
29785
29801
  //#endregion
29786
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
29802
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
29787
29803
  /**
29788
29804
  * Input Tokenizer - Escape sequence boundary detection
29789
29805
  *
@@ -29981,7 +29997,7 @@ function tokenize$2(input, initialState, initialBuffer, flush, x10Mouse, splitIn
29981
29997
  };
29982
29998
  }
29983
29999
  //#endregion
29984
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
30000
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
29985
30001
  /**
29986
30002
  * Keyboard input parser - converts terminal input to key events
29987
30003
  *
@@ -31045,7 +31061,7 @@ function createWheelKey(s, name, col, row, button) {
31045
31061
  };
31046
31062
  }
31047
31063
  //#endregion
31048
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
31064
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
31049
31065
  function parseKey(keypress) {
31050
31066
  const key = {
31051
31067
  upArrow: keypress.name === "up",
@@ -31130,7 +31146,7 @@ var InputEvent = class extends Event {
31130
31146
  }
31131
31147
  };
31132
31148
  //#endregion
31133
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
31149
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
31134
31150
  /**
31135
31151
  * Event fired when the terminal window gains or loses focus.
31136
31152
  *
@@ -31149,7 +31165,7 @@ var TerminalFocusEvent = class extends Event {
31149
31165
  }
31150
31166
  };
31151
31167
  //#endregion
31152
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
31168
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
31153
31169
  /** Layout bounds cached per rendered node, used for blitting and clearing. */
31154
31170
  const nodeCache = /* @__PURE__ */ new WeakMap();
31155
31171
  /** Rects of removed children that need clearing on next render */
@@ -31187,7 +31203,7 @@ function consumeAbsoluteRemovedFlag() {
31187
31203
  return had;
31188
31204
  }
31189
31205
  //#endregion
31190
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
31206
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
31191
31207
  /**
31192
31208
  * Base class for all terminal events with DOM-style propagation.
31193
31209
  *
@@ -31316,7 +31332,7 @@ var TerminalEvent = class extends Event {
31316
31332
  _prepareForTarget(_target) {}
31317
31333
  };
31318
31334
  //#endregion
31319
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
31335
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
31320
31336
  /**
31321
31337
  * Base class for pointer-derived terminal events (click, wheel, hover).
31322
31338
  *
@@ -31377,7 +31393,7 @@ var PointerEvent = class extends TerminalEvent {
31377
31393
  }
31378
31394
  };
31379
31395
  //#endregion
31380
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
31396
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
31381
31397
  /**
31382
31398
  * Component-level drag event (DOM HTML5 drag semantics subset).
31383
31399
  *
@@ -47485,7 +47501,7 @@ var require_react_reconciler_development = /* @__PURE__ */ __commonJSMin(((expor
47485
47501
  }, module.exports.default = module.exports, Object.defineProperty(module.exports, "__esModule", { value: !0 }));
47486
47502
  }));
47487
47503
  //#endregion
47488
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
47504
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
47489
47505
  var import_react_reconciler = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
47490
47506
  if (process.env.NODE_ENV === "production") module.exports = require_react_reconciler_production();
47491
47507
  else module.exports = require_react_reconciler_development();
@@ -47561,7 +47577,7 @@ const LayoutMeasureMode = {
47561
47577
  AtMost: "at-most"
47562
47578
  };
47563
47579
  //#endregion
47564
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
47580
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
47565
47581
  const EDGE_MAP = {
47566
47582
  all: Edge.All,
47567
47583
  horizontal: Edge.Horizontal,
@@ -47788,7 +47804,7 @@ function createYogaLayoutNode() {
47788
47804
  return new YogaLayoutNode(YOGA_INSTANCE.Node.create());
47789
47805
  }
47790
47806
  //#endregion
47791
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
47807
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
47792
47808
  /**
47793
47809
  * Create a new layout node backed by the Yoga adapter.
47794
47810
  * @returns an empty layout node with no children, styles, or measure function.
@@ -47797,7 +47813,7 @@ function createLayoutNode() {
47797
47813
  return createYogaLayoutNode();
47798
47814
  }
47799
47815
  //#endregion
47800
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
47816
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
47801
47817
  const cache = /* @__PURE__ */ new Map();
47802
47818
  const MAX_CACHE_SIZE = 4096;
47803
47819
  const MAX_CACHE_CHARS = 1e5;
@@ -47833,7 +47849,7 @@ function lineWidth(line) {
47833
47849
  return width;
47834
47850
  }
47835
47851
  //#endregion
47836
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
47852
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
47837
47853
  /**
47838
47854
  * Measure wrapped text dimensions in a single pass.
47839
47855
  * @param text - the text to measure.
@@ -47864,7 +47880,7 @@ function measureText(text, maxWidth) {
47864
47880
  };
47865
47881
  }
47866
47882
  //#endregion
47867
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
47883
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
47868
47884
  /**
47869
47885
  * Squash text nodes into styled segments, propagating styles down through the tree.
47870
47886
  * This allows structured styling without relying on ANSI string transforms.
@@ -47912,7 +47928,7 @@ function squashTextNodes(node) {
47912
47928
  return text;
47913
47929
  }
47914
47930
  //#endregion
47915
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
47931
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
47916
47932
  const DEFAULT_TAB_INTERVAL = 8;
47917
47933
  /**
47918
47934
  * Expand tab characters to spaces at fixed column intervals, preserving
@@ -48362,7 +48378,7 @@ function tokenize$1(str, endChar = Number.POSITIVE_INFINITY) {
48362
48378
  return ret;
48363
48379
  }
48364
48380
  //#endregion
48365
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
48381
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
48366
48382
  function isEndCode(code) {
48367
48383
  return code.code === code.endCode;
48368
48384
  }
@@ -48979,7 +48995,7 @@ function wrapAnsi$1(string, columns, options) {
48979
48995
  return normalizeText(String(string)).replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs$1(line), columns, options)).join("\n");
48980
48996
  }
48981
48997
  //#endregion
48982
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
48998
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
48983
48999
  const wrapAnsiBun = typeof Bun !== "undefined" && typeof Bun.wrapAnsi === "function" ? Bun.wrapAnsi : null;
48984
49000
  const SLOT_MIN_LENGTH = 2048;
48985
49001
  let slot = null;
@@ -49026,7 +49042,7 @@ function wrapAnsiNpmIncremental(input, columns, options) {
49026
49042
  */
49027
49043
  const wrapAnsi = wrapAnsiBun ?? wrapAnsiNpmIncremental;
49028
49044
  //#endregion
49029
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
49045
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
49030
49046
  const ELLIPSIS = "…";
49031
49047
  const WRAP_CACHE_MAX_ENTRIES = 2048;
49032
49048
  const WRAP_CACHE_MAX_CHARS = 2e6;
@@ -49090,7 +49106,7 @@ function wrapText$1(text, maxWidth, wrapType) {
49090
49106
  return text;
49091
49107
  }
49092
49108
  //#endregion
49093
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
49109
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
49094
49110
  /**
49095
49111
  * Create an element node of the given kind, allocating its yoga layout node
49096
49112
  * unless the kind renders without layout (`ink-virtual-text`, `ink-link`,
@@ -49410,7 +49426,7 @@ function findOwnerChainAtRow(root, y) {
49410
49426
  }
49411
49427
  }
49412
49428
  //#endregion
49413
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
49429
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
49414
49430
  /**
49415
49431
  * Reverse lookup: event type string → handler prop names.
49416
49432
  * Used by the dispatcher for O(1) handler lookup per node.
@@ -49464,7 +49480,7 @@ const EVENT_HANDLER_PROPS = new Set([
49464
49480
  "onWheel"
49465
49481
  ]);
49466
49482
  //#endregion
49467
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
49483
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
49468
49484
  function getHandler(node, eventType, capture) {
49469
49485
  const handlers = node._eventHandlers;
49470
49486
  if (!handlers) return void 0;
@@ -49632,7 +49648,7 @@ var Dispatcher = class {
49632
49648
  }
49633
49649
  };
49634
49650
  //#endregion
49635
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
49651
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
49636
49652
  /**
49637
49653
  * Focus event for component focus changes.
49638
49654
  *
@@ -49657,7 +49673,7 @@ var FocusEvent = class extends TerminalEvent {
49657
49673
  }
49658
49674
  };
49659
49675
  //#endregion
49660
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
49676
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
49661
49677
  const MAX_FOCUS_STACK = 32;
49662
49678
  /**
49663
49679
  * DOM-like focus manager for the Ink terminal UI.
@@ -49813,7 +49829,7 @@ function getFocusManager(node) {
49813
49829
  return getRootNode(node).focusManager;
49814
49830
  }
49815
49831
  //#endregion
49816
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
49832
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
49817
49833
  const applyPositionStyles = (node, style) => {
49818
49834
  if ("position" in style) node.setPositionType(style.position === "absolute" ? LayoutPositionType.Absolute : LayoutPositionType.Relative);
49819
49835
  if ("top" in style) applyPositionEdge(node, "top", style.top);
@@ -49948,7 +49964,7 @@ const styles = (node, style = {}, resolvedStyle) => {
49948
49964
  applyGapStyles(node, style);
49949
49965
  };
49950
49966
  //#endregion
49951
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
49967
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
49952
49968
  if (process.env.NODE_ENV === "development") try {
49953
49969
  import("./devtools-la_KkjCS.js");
49954
49970
  } catch (error) {
@@ -50268,7 +50284,7 @@ const reconciler = (0, import_react_reconciler.default)({
50268
50284
  });
50269
50285
  dispatcher.discreteUpdates = reconciler.discreteUpdates.bind(reconciler);
50270
50286
  //#endregion
50271
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
50287
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
50272
50288
  /**
50273
50289
  * Compute the smallest rectangle containing both input rectangles.
50274
50290
  * @param a - the first rectangle.
@@ -50300,7 +50316,7 @@ function clamp(value, min, max) {
50300
50316
  return value;
50301
50317
  }
50302
50318
  //#endregion
50303
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
50319
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
50304
50320
  /**
50305
50321
  * Log a warning when a value is present but not an integer.
50306
50322
  * @param value - the value to check; undefined is skipped silently.
@@ -50312,7 +50328,7 @@ function ifNotInteger(value, name) {
50312
50328
  logForDebugging(`${name} should be an integer, got ${value}`, { level: "warn" });
50313
50329
  }
50314
50330
  //#endregion
50315
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
50331
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
50316
50332
  /**
50317
50333
  * Pool of character strings shared across all screens.
50318
50334
  * With a shared pool, interned char IDs are valid across screens, so
@@ -51381,7 +51397,7 @@ function markNoSelectRegion(screen, x, y, width, height) {
51381
51397
  }
51382
51398
  }
51383
51399
  //#endregion
51384
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
51400
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
51385
51401
  /**
51386
51402
  * Text selection state for fullscreen mode.
51387
51403
  *
@@ -52347,7 +52363,7 @@ function applySelectionOverlay(screen, selection, stylePool) {
52347
52363
  }
52348
52364
  }
52349
52365
  //#endregion
52350
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
52366
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
52351
52367
  /**
52352
52368
  * DEC (Digital Equipment Corporation) Private Mode Sequences
52353
52369
  *
@@ -52413,7 +52429,7 @@ const ENABLE_MOUSE_TRACKING = decset(DEC.MOUSE_NORMAL) + decset(DEC.MOUSE_BUTTON
52413
52429
  /** Disable all mouse tracking modes enabled by ENABLE_MOUSE_TRACKING. */
52414
52430
  const DISABLE_MOUSE_TRACKING = decreset(DEC.MOUSE_SGR) + decreset(DEC.MOUSE_ANY) + decreset(DEC.MOUSE_BUTTON) + decreset(DEC.MOUSE_NORMAL);
52415
52431
  //#endregion
52416
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
52432
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
52417
52433
  /**
52418
52434
  * True when running inside a JetBrains IDE terminal (JediTerm). The IDE
52419
52435
  * injects `TERMINAL_EMULATOR=JetBrains-JediTerm` into the pty environment of
@@ -52655,7 +52671,7 @@ function writeDiffToTerminal(terminal, diff, skipSyncMarkers = false) {
52655
52671
  terminal.stdout.write(buffer);
52656
52672
  }
52657
52673
  //#endregion
52658
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
52674
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
52659
52675
  let focusState = "unknown";
52660
52676
  const resolvers = /* @__PURE__ */ new Set();
52661
52677
  const subscribers = /* @__PURE__ */ new Set();
@@ -52699,7 +52715,7 @@ function subscribeTerminalFocus(cb) {
52699
52715
  };
52700
52716
  }
52701
52717
  //#endregion
52702
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
52718
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
52703
52719
  /**
52704
52720
  * `AppContext` is a React context, which exposes a method to manually exit the app (unmount).
52705
52721
  */
@@ -52744,13 +52760,13 @@ var require_react_compiler_runtime_development = /* @__PURE__ */ __commonJSMin((
52744
52760
  })();
52745
52761
  }));
52746
52762
  //#endregion
52747
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
52763
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
52748
52764
  var import_compiler_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
52749
52765
  if (process.env.NODE_ENV === "production") module.exports = require_react_compiler_runtime_production();
52750
52766
  else module.exports = require_react_compiler_runtime_development();
52751
52767
  })))();
52752
52768
  //#endregion
52753
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
52769
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
52754
52770
  /**
52755
52771
  * Geometry forensics — per-frame scroll-geometry trace (issues #421/#433).
52756
52772
  *
@@ -52830,7 +52846,7 @@ function endGeometryFrame(durationMs) {
52830
52846
  };
52831
52847
  }
52832
52848
  //#endregion
52833
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
52849
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
52834
52850
  const TerminalFocusContext = (0, import_react.createContext)({
52835
52851
  isTerminalFocused: true,
52836
52852
  terminalFocusState: "unknown"
@@ -52865,7 +52881,7 @@ function TerminalFocusProvider(t0) {
52865
52881
  return t2;
52866
52882
  }
52867
52883
  //#endregion
52868
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
52884
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
52869
52885
  /**
52870
52886
  * Hook to check if the terminal has focus.
52871
52887
  *
@@ -52880,7 +52896,7 @@ function useTerminalFocus() {
52880
52896
  return isTerminalFocused;
52881
52897
  }
52882
52898
  //#endregion
52883
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
52899
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
52884
52900
  function createClock(tickIntervalMs) {
52885
52901
  const subscribers = /* @__PURE__ */ new Map();
52886
52902
  let interval = null;
@@ -52977,7 +52993,7 @@ function _temp() {
52977
52993
  return createClock(16);
52978
52994
  }
52979
52995
  //#endregion
52980
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
52996
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
52981
52997
  /**
52982
52998
  * React context that provides the cursor-declaration setter to descendants.
52983
52999
  */
@@ -53017,7 +53033,7 @@ var require_escape_string_regexp = /* @__PURE__ */ __commonJSMin(((exports, modu
53017
53033
  };
53018
53034
  }));
53019
53035
  //#endregion
53020
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
53036
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
53021
53037
  var import_stack_utils = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
53022
53038
  const escapeStringRegexp = require_escape_string_regexp();
53023
53039
  const cwd = typeof process === "object" && process && typeof process.cwd === "function" ? process.cwd() : ".";
@@ -53385,7 +53401,7 @@ function Box(t0) {
53385
53401
  return t4;
53386
53402
  }
53387
53403
  //#endregion
53388
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
53404
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
53389
53405
  const memoizedStylesForWrap = {
53390
53406
  wrap: {
53391
53407
  flexGrow: 0,
@@ -53537,7 +53553,7 @@ function Text(t0) {
53537
53553
  return t16;
53538
53554
  }
53539
53555
  //#endregion
53540
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
53556
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
53541
53557
  const cleanupPath = (path) => {
53542
53558
  return path?.replace(`file://${process.cwd()}/`, "");
53543
53559
  };
@@ -53642,10 +53658,10 @@ function ErrorOverview({ error }) {
53642
53658
  });
53643
53659
  }
53644
53660
  //#endregion
53645
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
53661
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
53646
53662
  const TerminalSizeContext = (0, import_react.createContext)(null);
53647
53663
  //#endregion
53648
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
53664
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
53649
53665
  /**
53650
53666
  * React context providing a raw terminal write function. Null until a
53651
53667
  * TerminalWriteProvider is mounted.
@@ -53656,7 +53672,7 @@ const TerminalWriteContext = (0, import_react.createContext)(null);
53656
53672
  */
53657
53673
  const TerminalWriteProvider = TerminalWriteContext.Provider;
53658
53674
  //#endregion
53659
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
53675
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
53660
53676
  const SUPPORTS_SUSPEND = process.platform !== "win32";
53661
53677
  const STDIN_RESUME_GAP_MS = 5e3;
53662
53678
  const MULTI_CLICK_TIMEOUT_MS = 500;
@@ -54182,7 +54198,7 @@ function handleMouseEvent(app, m) {
54182
54198
  }
54183
54199
  }
54184
54200
  //#endregion
54185
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
54201
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
54186
54202
  /**
54187
54203
  * Keyboard event dispatched through the DOM tree via capture/bubble.
54188
54204
  *
@@ -54242,7 +54258,7 @@ function keyFromParsed(parsed) {
54242
54258
  return name || seq;
54243
54259
  }
54244
54260
  //#endregion
54245
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
54261
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
54246
54262
  /**
54247
54263
  * Create an empty frame with a zero-size screen, the given viewport, and a
54248
54264
  * visible cursor at the origin.
@@ -54268,7 +54284,7 @@ function emptyFrame(rows, columns, stylePool, charPool, hyperlinkPool) {
54268
54284
  };
54269
54285
  }
54270
54286
  //#endregion
54271
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
54287
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
54272
54288
  /**
54273
54289
  * Mouse click event. Fired on left-button release without drag, only when
54274
54290
  * mouse tracking is enabled (i.e. inside <AlternateScreen>).
@@ -54299,7 +54315,7 @@ var ClickEvent = class extends PointerEvent {
54299
54315
  }
54300
54316
  };
54301
54317
  //#endregion
54302
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
54318
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
54303
54319
  /**
54304
54320
  * Mouse context-menu event. Fired on right-button press (SGR button 2,
54305
54321
  * low bits of the raw button byte), mirroring the DOM `contextmenu` event
@@ -54323,7 +54339,7 @@ var ContextMenuEvent = class extends PointerEvent {
54323
54339
  }
54324
54340
  };
54325
54341
  //#endregion
54326
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
54342
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
54327
54343
  /**
54328
54344
  * Mouse wheel event dispatched to the ScrollBox under the pointer.
54329
54345
  *
@@ -54359,7 +54375,7 @@ function indentString(string, count = 1, options = {}) {
54359
54375
  return string.replace(regex, indent.repeat(count));
54360
54376
  }
54361
54377
  //#endregion
54362
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
54378
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
54363
54379
  /**
54364
54380
  * Returns the yoga node's content width (computed width minus padding and
54365
54381
  * border).
@@ -54464,7 +54480,7 @@ var cli_boxes_default = {
54464
54480
  }
54465
54481
  };
54466
54482
  //#endregion
54467
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
54483
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
54468
54484
  /** Built-in border styles beyond those provided by cli-boxes. */
54469
54485
  const CUSTOM_BORDER_STYLES = { dashed: {
54470
54486
  top: "╌",
@@ -54554,7 +54570,7 @@ const renderBorder = (x, y, node, output) => {
54554
54570
  }
54555
54571
  };
54556
54572
  //#endregion
54557
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
54573
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
54558
54574
  /**
54559
54575
  * Get the display width of the widest line in a string.
54560
54576
  * @param string - the text to measure, possibly containing newlines.
@@ -54573,7 +54589,7 @@ function widestLine(string) {
54573
54589
  return maxWidth;
54574
54590
  }
54575
54591
  //#endregion
54576
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
54592
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
54577
54593
  function isXtermJsHost() {
54578
54594
  return process.env.TERM_PROGRAM === "vscode" || isXtermJs();
54579
54595
  }
@@ -55389,7 +55405,7 @@ function dropSubtreeCache(node) {
55389
55405
  for (const child of node.childNodes) if (child.nodeName !== "#text") dropSubtreeCache(child);
55390
55406
  }
55391
55407
  //#endregion
55392
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
55408
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
55393
55409
  /**
55394
55410
  * Find the deepest DOM element whose rendered rect contains (col, row).
55395
55411
  *
@@ -55779,7 +55795,7 @@ function dispatchHover(root, col, row, hovered) {
55779
55795
  }
55780
55796
  }
55781
55797
  //#endregion
55782
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
55798
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
55783
55799
  /**
55784
55800
  * Monotonic terminal-flush counter for the ported Ink core.
55785
55801
  *
@@ -55812,7 +55828,7 @@ function getTerminalFlushTick() {
55812
55828
  return flushTick;
55813
55829
  }
55814
55830
  //#endregion
55815
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
55831
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
55816
55832
  /**
55817
55833
  * Live Ink instances keyed by their output stream, so consecutive render()
55818
55834
  * calls reuse the instance for a stream instead of creating a new one.
@@ -55821,7 +55837,7 @@ function getTerminalFlushTick() {
55821
55837
  */
55822
55838
  const instances = /* @__PURE__ */ new Map();
55823
55839
  //#endregion
55824
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
55840
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
55825
55841
  const CARRIAGE_RETURN = { type: "carriageReturn" };
55826
55842
  const NEWLINE = {
55827
55843
  type: "stdout",
@@ -56437,7 +56453,7 @@ var VirtualScreen = class {
56437
56453
  }
56438
56454
  };
56439
56455
  //#endregion
56440
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
56456
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
56441
56457
  /**
56442
56458
  * Optimize a diff by applying all optimization rules in a single pass.
56443
56459
  * This reduces the number of patches that need to be written to the terminal.
@@ -56502,7 +56518,7 @@ function optimize(diff) {
56502
56518
  return result;
56503
56519
  }
56504
56520
  //#endregion
56505
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
56521
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
56506
56522
  var import_bidi = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
56507
56523
  (function(global, factory) {
56508
56524
  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());
@@ -57278,7 +57294,7 @@ function hasRTLCharacters(text) {
57278
57294
  return /[\u0590-\u05FF\uFB1D-\uFB4F\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\u0780-\u07BF\u0700-\u074F]/u.test(text);
57279
57295
  }
57280
57296
  //#endregion
57281
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
57297
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
57282
57298
  /**
57283
57299
  * charCache bounds. The entry-count cap alone was not enough: a streaming
57284
57300
  * line produces a NEW cache key on every frame, and each entry's cost is
@@ -57948,7 +57964,7 @@ function writeLineToScreen(screen, line, x, y, screenWidth, stylePool, charCache
57948
57964
  return offsetX;
57949
57965
  }
57950
57966
  //#endregion
57951
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
57967
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
57952
57968
  const timing = {
57953
57969
  reconcile: 0,
57954
57970
  yoga: 0,
@@ -58042,7 +58058,7 @@ function applyPositionedHighlight(screen, stylePool, positions, rowOffset, curre
58042
58058
  return true;
58043
58059
  }
58044
58060
  //#endregion
58045
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
58061
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
58046
58062
  /**
58047
58063
  * Create the renderer function for a root DOM node. The returned renderer
58048
58064
  * reuses an Output across frames so its character cache persists.
@@ -58117,7 +58133,7 @@ function createRenderer(node, stylePool) {
58117
58133
  };
58118
58134
  }
58119
58135
  //#endregion
58120
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
58136
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
58121
58137
  /**
58122
58138
  * Highlight all visible occurrences of `query` in the screen buffer by
58123
58139
  * inverting cell styles (SGR 7). Post-render, same damage-tracking machinery
@@ -58179,7 +58195,7 @@ function applySearchHighlight(screen, query, stylePool) {
58179
58195
  return applied;
58180
58196
  }
58181
58197
  //#endregion
58182
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
58198
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
58183
58199
  const ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({
58184
58200
  x: 0,
58185
58201
  y: 0,
@@ -59732,7 +59748,7 @@ const CONSOLE_STDERR_METHODS = [
59732
59748
  "trace"
59733
59749
  ];
59734
59750
  //#endregion
59735
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
59751
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
59736
59752
  /**
59737
59753
  * Mount a component and render the output.
59738
59754
  * @param node - the React element to render.
@@ -59815,7 +59831,7 @@ const getInstance = (stdout, createInstance) => {
59815
59831
  return instance;
59816
59832
  };
59817
59833
  //#endregion
59818
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
59834
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
59819
59835
  /** Resolves a color value that may be a theme key to a raw Color. */
59820
59836
  function resolveColor$1(color, theme) {
59821
59837
  if (!color) return void 0;
@@ -59840,7 +59856,7 @@ function ThemedBox({ borderColor, borderTopColor, borderBottomColor, borderLeftC
59840
59856
  });
59841
59857
  }
59842
59858
  //#endregion
59843
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
59859
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
59844
59860
  /**
59845
59861
  * Colors uncolored ThemedText in the subtree. Precedence: explicit `color` >
59846
59862
  * this > dimColor (in the Claude Code visual language, where message rows
@@ -59876,7 +59892,7 @@ function ThemedText({ color, backgroundColor, dimColor = false, bold = false, it
59876
59892
  });
59877
59893
  }
59878
59894
  //#endregion
59879
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
59895
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
59880
59896
  /**
59881
59897
  * A flexible space that expands along the major axis of its containing layout.
59882
59898
  * It's useful as a shortcut for filling all the available spaces between elements.
@@ -59891,7 +59907,7 @@ function Spacer() {
59891
59907
  return t0;
59892
59908
  }
59893
59909
  //#endregion
59894
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
59910
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
59895
59911
  /**
59896
59912
  * Adds one or more newline (\n) characters. Must be used within <Text> components.
59897
59913
  */
@@ -59914,7 +59930,7 @@ function Newline(t0) {
59914
59930
  return t3;
59915
59931
  }
59916
59932
  //#endregion
59917
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
59933
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
59918
59934
  /**
59919
59935
  * Marks its contents as non-selectable in fullscreen text selection.
59920
59936
  * Cells inside this box are skipped by both the selection highlight and
@@ -59965,7 +59981,7 @@ function NoSelect(t0) {
59965
59981
  return t2;
59966
59982
  }
59967
59983
  //#endregion
59968
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
59984
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
59969
59985
  /**
59970
59986
  * Run children in the terminal's alternate screen buffer, constrained to
59971
59987
  * the viewport height. While mounted:
@@ -60040,7 +60056,7 @@ function AlternateScreen(t0) {
60040
60056
  return t5;
60041
60057
  }
60042
60058
  //#endregion
60043
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
60059
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
60044
60060
  /**
60045
60061
  * A Box with `overflow: scroll` and an imperative scroll API.
60046
60062
  *
@@ -60218,7 +60234,7 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
60218
60234
  });
60219
60235
  }
60220
60236
  //#endregion
60221
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
60237
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
60222
60238
  /**
60223
60239
  * Keep an event listener stable while always dispatching to the latest render's
60224
60240
  * callback. Keeping this hook local is important for packaged installs: a
@@ -60284,7 +60300,7 @@ const useInput = (inputHandler, options = {}) => {
60284
60300
  }, [internal_eventEmitter, handleData]);
60285
60301
  };
60286
60302
  //#endregion
60287
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
60303
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
60288
60304
  /**
60289
60305
  * Access to text selection operations on the Ink instance (fullscreen only).
60290
60306
  * Returns no-op functions when fullscreen mode is disabled.
@@ -60324,7 +60340,7 @@ function useSelection() {
60324
60340
  }, [ink]);
60325
60341
  }
60326
60342
  //#endregion
60327
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
60343
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
60328
60344
  /**
60329
60345
  * Copy-on-select: when a drag finishes (or a double/triple click, or a
60330
60346
  * shift+arrow extension, lands a selection), copy the selected text to the
@@ -60364,14 +60380,14 @@ function useCopyOnSelect(onCopied) {
60364
60380
  ]);
60365
60381
  }
60366
60382
  //#endregion
60367
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
60383
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
60368
60384
  /**
60369
60385
  * React hook exposing the manual app-exit function from `AppContext`.
60370
60386
  * @returns the `AppContext` value, whose `exit` function unmounts the app.
60371
60387
  */
60372
60388
  const useApp = () => (0, import_react.useContext)(AppContext);
60373
60389
  //#endregion
60374
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
60390
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
60375
60391
  /**
60376
60392
  * Hook to detect if a component is within the terminal viewport.
60377
60393
  *
@@ -60425,7 +60441,7 @@ function useTerminalViewport() {
60425
60441
  return [setElement, entryRef.current];
60426
60442
  }
60427
60443
  //#endregion
60428
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
60444
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
60429
60445
  /**
60430
60446
  * Hook for synchronized animations that pause when offscreen.
60431
60447
  *
@@ -60474,7 +60490,7 @@ function useAnimationFrame(intervalMs = 16) {
60474
60490
  return [viewportRef, time];
60475
60491
  }
60476
60492
  //#endregion
60477
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
60493
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
60478
60494
  /** Terminal dimensions from the Ink app shell (from Claude Code).
60479
60495
  * @returns the current terminal dimensions.
60480
60496
  */
@@ -60484,7 +60500,7 @@ function useTerminalSize() {
60484
60500
  return size;
60485
60501
  }
60486
60502
  //#endregion
60487
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
60503
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
60488
60504
  const BLINK_INTERVAL_MS = 600;
60489
60505
  /**
60490
60506
  * Hook for synchronized blinking animations that pause when offscreen
@@ -60501,7 +60517,7 @@ function useBlink(enabled, intervalMs = BLINK_INTERVAL_MS) {
60501
60517
  return [ref, Math.floor(time / intervalMs) % 2 === 0];
60502
60518
  }
60503
60519
  //#endregion
60504
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
60520
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
60505
60521
  var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
60506
60522
  const supportsColor = require_supports_color();
60507
60523
  const hasFlag = require_has_flag();
@@ -60598,7 +60614,7 @@ function supportsHyperlinks(options) {
60598
60614
  return false;
60599
60615
  }
60600
60616
  //#endregion
60601
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
60617
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
60602
60618
  function Link(t0) {
60603
60619
  const $ = (0, import_compiler_runtime.c)(5);
60604
60620
  const { children, url, fallback } = t0;
@@ -60626,7 +60642,7 @@ function Link(t0) {
60626
60642
  return t2;
60627
60643
  }
60628
60644
  //#endregion
60629
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
60645
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
60630
60646
  /**
60631
60647
  * ESC Sequence Parser
60632
60648
  *
@@ -60682,7 +60698,7 @@ function parseEsc(chars) {
60682
60698
  };
60683
60699
  }
60684
60700
  //#endregion
60685
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
60701
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
60686
60702
  /**
60687
60703
  * ANSI Parser - Semantic Types
60688
60704
  *
@@ -60710,7 +60726,7 @@ function defaultStyle() {
60710
60726
  };
60711
60727
  }
60712
60728
  //#endregion
60713
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
60729
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
60714
60730
  /**
60715
60731
  * SGR (Select Graphic Rendition) Parser
60716
60732
  *
@@ -61018,7 +61034,7 @@ function applySGR(paramStr, style) {
61018
61034
  return s;
61019
61035
  }
61020
61036
  //#endregion
61021
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
61037
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
61022
61038
  /**
61023
61039
  * ANSI Parser - Semantic Action Generator
61024
61040
  *
@@ -61395,7 +61411,7 @@ var Parser = class {
61395
61411
  }
61396
61412
  };
61397
61413
  //#endregion
61398
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
61414
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
61399
61415
  /**
61400
61416
  * Component that parses ANSI escape codes and renders them using Text components.
61401
61417
  *
@@ -61646,7 +61662,7 @@ function StyledText(t0) {
61646
61662
  return t1;
61647
61663
  }
61648
61664
  //#endregion
61649
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
61665
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
61650
61666
  var ui_exports = /* @__PURE__ */ __exportAll({
61651
61667
  AlternateScreen: () => AlternateScreen,
61652
61668
  Ansi: () => Ansi,
@@ -61670,7 +61686,7 @@ var ui_exports = /* @__PURE__ */ __exportAll({
61670
61686
  useTheme: () => useTheme
61671
61687
  });
61672
61688
  //#endregion
61673
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
61689
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
61674
61690
  /** 嵌套安全的 inset(若未来出现嵌套 PageMargin 会累加)。 */
61675
61691
  const PageInsetContext = import_react.createContext({
61676
61692
  x: 0,
@@ -61724,7 +61740,7 @@ function PageMargin({ children }) {
61724
61740
  });
61725
61741
  }
61726
61742
  //#endregion
61727
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
61743
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
61728
61744
  /**
61729
61745
  * UI glyph constants used across the TUI: prompt markers, status badges,
61730
61746
  * direction arrows, media controls, reasoning-effort indicators, and
@@ -61751,7 +61767,7 @@ const THINKING_SPINNER_FRAMES = [
61751
61767
  "⠏"
61752
61768
  ];
61753
61769
  //#endregion
61754
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
61770
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
61755
61771
  /**
61756
61772
  * `/provider` wizard — interactively adds, edits, or deletes an LLM
61757
61773
  * provider route at runtime.
@@ -62477,7 +62493,7 @@ function buildProfile(input) {
62477
62493
  return profile;
62478
62494
  }
62479
62495
  //#endregion
62480
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
62496
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
62481
62497
  /** `/model-config`: platform catalog plus ~/.chatcode-cli/settings.json custom models. */
62482
62498
  const CUSTOM_MODEL_PROTOCOLS = ["openai-completions", "anthropic-messages"];
62483
62499
  const LEGAL_API_KEY = /^[\x21-\x7e]+$/u;
@@ -63116,7 +63132,7 @@ function parseCapacity(value) {
63116
63132
  return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : void 0;
63117
63133
  }
63118
63134
  //#endregion
63119
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
63135
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
63120
63136
  /**
63121
63137
  * Declares where the terminal cursor should be parked after each frame.
63122
63138
  *
@@ -63165,7 +63181,7 @@ function useDeclaredCursor(options) {
63165
63181
  return setNode;
63166
63182
  }
63167
63183
  //#endregion
63168
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
63184
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
63169
63185
  /**
63170
63186
  * Measure the rendered dimensions of a Box element.
63171
63187
  * @param node - the DOM element to measure.
@@ -63176,7 +63192,7 @@ const measureElement = (node) => ({
63176
63192
  height: node.yogaNode?.getComputedHeight() ?? 0
63177
63193
  });
63178
63194
  //#endregion
63179
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
63195
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
63180
63196
  const MAX_APPLIED_MEASUREMENTS = 8;
63181
63197
  /**
63182
63198
  * A horizontal divider line, optionally with a title in the middle
@@ -64899,7 +64915,7 @@ k.parseInline;
64899
64915
  T.parse;
64900
64916
  R.lex;
64901
64917
  //#endregion
64902
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
64918
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
64903
64919
  /** highlight.js token classes -> theme syntax tokens. `default` catches
64904
64920
  * every unmapped class so cli-highlight's own yellow never leaks through
64905
64921
  * (issue #250, P2-6). */
@@ -64965,7 +64981,7 @@ function buildSyntaxTheme(theme) {
64965
64981
  return out;
64966
64982
  }
64967
64983
  //#endregion
64968
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
64984
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
64969
64985
  /** OSC 8 hyperlink start sequence: `ESC ] 8 ; ;`, followed by the URL. */
64970
64986
  const OSC8_START = "\x1B]8;;";
64971
64987
  /** Schemes a rendered hyperlink may point at. Anything else degrades to
@@ -65007,7 +65023,7 @@ function createHyperlink(url, content, options) {
65007
65023
  return `${OSC8_START}${safeUrl}${(options?.style ?? ((text) => chalk.blue(text)))(displayText)}${OSC8_START}`;
65008
65024
  }
65009
65025
  //#endregion
65010
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
65026
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
65011
65027
  /**
65012
65028
  * Clickable file targets: turning path-like text in AI output into
65013
65029
  * clickable targets, and resolving those targets back to absolute paths at
@@ -65149,7 +65165,7 @@ function linkifyFilePaths(text, wrap) {
65149
65165
  });
65150
65166
  }
65151
65167
  //#endregion
65152
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
65168
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
65153
65169
  /**
65154
65170
  * Markdown-to-ANSI renderer over marked's token stream.
65155
65171
  *
@@ -65464,7 +65480,7 @@ function padAligned(content, displayWidth, targetWidth, align) {
65464
65480
  return content + " ".repeat(extra);
65465
65481
  }
65466
65482
  //#endregion
65467
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
65483
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
65468
65484
  let cliHighlightPromise;
65469
65485
  async function loadCliHighlight() {
65470
65486
  try {
@@ -65487,7 +65503,7 @@ function getCliHighlightPromise() {
65487
65503
  return cliHighlightPromise;
65488
65504
  }
65489
65505
  //#endregion
65490
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
65506
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
65491
65507
  /** Accounts for parent indentation and terminal resize races (from Claude Code). */
65492
65508
  const SAFETY_MARGIN = 4;
65493
65509
  /** Minimum column width to prevent degenerate layouts */
@@ -65674,7 +65690,7 @@ function MarkdownTable({ token, highlight, forceWidth }) {
65674
65690
  return (0, import_jsx_runtime.jsx)(Text, { children: tableLines.join("\n") });
65675
65691
  }
65676
65692
  //#endregion
65677
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
65693
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
65678
65694
  const TOKEN_CACHE_CAPACITY = 200;
65679
65695
  const TOKEN_CACHE_CHAR_BUDGET = 2e5;
65680
65696
  const TOKEN_CACHE_MAX_SOURCE_LENGTH = 2e4;
@@ -65783,7 +65799,7 @@ function MarkdownImpl({ children, dimColor = false, cacheTokens = true }) {
65783
65799
  */
65784
65800
  const Markdown = import_react.memo(MarkdownImpl, (prev, next) => prev.children === next.children && prev.dimColor === next.dimColor && prev.cacheTokens === next.cacheTokens);
65785
65801
  //#endregion
65786
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
65802
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
65787
65803
  /**
65788
65804
  * The plan-review panel — Claude Code style exit-plan-mode decision card
65789
65805
  * for the DSH user-interaction seam. plan-mode's `exit_plan_mode` tool asks
@@ -66105,7 +66121,7 @@ function PlanReviewPanel({ question, onAnswer, onCancel }) {
66105
66121
  });
66106
66122
  }
66107
66123
  //#endregion
66108
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
66124
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
66109
66125
  /**
66110
66126
  * 焦点居中的列表窗口:长列表只渲染焦点附近的一段,保证焦点行始终可见。
66111
66127
  * 瞬态面板走 OverlayAbove 零高度浮层后,超高部分会被 overflow 裁掉且焦点
@@ -66157,7 +66173,7 @@ function listWindow(heights, focusIndex, maxRows, gap = 0) {
66157
66173
  }
66158
66174
  }
66159
66175
  //#endregion
66160
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
66176
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
66161
66177
  /**
66162
66178
  * The questionnaire panel — Claude Code style ask-user-question UI for the
66163
66179
  * DSH user-interaction seam. One question per panel (progress header, header
@@ -66740,7 +66756,7 @@ function AskUserQuestionPanel({ question, position, total, answered, initialDraf
66740
66756
  });
66741
66757
  }
66742
66758
  //#endregion
66743
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
66759
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
66744
66760
  /**
66745
66761
  * The approval panel — Claude Code style permission prompt for the DSH
66746
66762
  * approval seam (`ctx.approval`). One ask per panel: a permission-colored
@@ -66865,7 +66881,7 @@ function ApprovalPanel({ approval, background = false, onDecide }) {
66865
66881
  });
66866
66882
  }
66867
66883
  //#endregion
66868
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
66884
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
66869
66885
  /**
66870
66886
  * A pane — a region below the prompt bounded by a colored top line with a
66871
66887
  * one-row gap above and horizontal padding, mirroring Claude Code's
@@ -66887,7 +66903,7 @@ function Pane({ children, color }) {
66887
66903
  });
66888
66904
  }
66889
66905
  //#endregion
66890
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
66906
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
66891
66907
  /**
66892
66908
  * A list item for selection UIs, mirroring Claude Code's
66893
66909
  * design-system/ListItem.tsx: `❯` pointer for the focused row, `✓`
@@ -66984,7 +67000,7 @@ function flattenDeep(node) {
66984
67000
  return node;
66985
67001
  }
66986
67002
  //#endregion
66987
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
67003
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
66988
67004
  /**
66989
67005
  * Localized shortcut-hint line: renders a `t('hint-*')` string, with the
66990
67006
  * `**primary shortcut**` segment (the main action's key, wrapped in `**` in
@@ -67001,7 +67017,7 @@ function HintLine({ text }) {
67001
67017
  }, index) : part) });
67002
67018
  }
67003
67019
  //#endregion
67004
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
67020
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
67005
67021
  /**
67006
67022
  * The managed plugin dialog (`ctx.tuiDialogs`) — one panel rendering the
67007
67023
  * store's current snapshot in the chat chrome (the slot approval/question
@@ -67261,7 +67277,7 @@ function InputDialog({ dialog, onDecide, onCancel }) {
67261
67277
  });
67262
67278
  }
67263
67279
  //#endregion
67264
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
67280
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
67265
67281
  /**
67266
67282
  * Set the search highlight query on the Ink instance. Non-empty → all
67267
67283
  * visible occurrences are inverted on the next frame (SGR 7, screen-buffer
@@ -67293,7 +67309,7 @@ function useSearchHighlight() {
67293
67309
  }, [ink]);
67294
67310
  }
67295
67311
  //#endregion
67296
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
67312
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
67297
67313
  /**
67298
67314
  * Declaratively set the terminal tab/window title.
67299
67315
  *
@@ -67316,7 +67332,7 @@ function useTerminalTitle(title) {
67316
67332
  }, [title, writeRaw]);
67317
67333
  }
67318
67334
  //#endregion
67319
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
67335
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
67320
67336
  /**
67321
67337
  * Session browser formatting.
67322
67338
  *
@@ -67565,7 +67581,7 @@ function projectName(cwd) {
67565
67581
  return normalized.split("/").filter(Boolean).at(-1) ?? normalized;
67566
67582
  }
67567
67583
  //#endregion
67568
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
67584
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
67569
67585
  /**
67570
67586
  * Tooltip hover system — the terminal equivalent of the HTML `title`
67571
67587
  * attribute. Attach {@link useTooltip} props to any Box whose visible text
@@ -67773,7 +67789,7 @@ function wrapTooltipContent(text, width) {
67773
67789
  return rows;
67774
67790
  }
67775
67791
  //#endregion
67776
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
67792
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
67777
67793
  /** User prompt row in the legacy CLI treatment: a full-width gray strip. */
67778
67794
  function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
67779
67795
  const { columns } = useTerminalSize();
@@ -67802,7 +67818,7 @@ function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
67802
67818
  });
67803
67819
  }
67804
67820
  //#endregion
67805
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
67821
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
67806
67822
  /**
67807
67823
  * Assistant text message: bullet + markdown body (mirroring Claude Code's default branch).
67808
67824
  *
@@ -67835,7 +67851,7 @@ function AssistantTextMessage({ text, addMargin, isSelected = false, isExpanded
67835
67851
  });
67836
67852
  }
67837
67853
  //#endregion
67838
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
67854
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
67839
67855
  /**
67840
67856
  * Renders markdown during streaming by splitting at the last top-level block
67841
67857
  * boundary: everything before is stable (memoized, never re-parsed), only the
@@ -68025,7 +68041,7 @@ function StreamingMarkdown({ children, dimColor = false }) {
68025
68041
  });
68026
68042
  }
68027
68043
  //#endregion
68028
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
68044
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
68029
68045
  /**
68030
68046
  * Spinner 动画的通用工具集:平台相关的帧字符选择、RGB 颜色插值、
68031
68047
  * HSL 色相转 RGB,以及 `rgb(...)` 颜色字符串的解析与记忆化。
@@ -68105,7 +68121,7 @@ function parseRGB(colorStr) {
68105
68121
  return parsed;
68106
68122
  }
68107
68123
  //#endregion
68108
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
68124
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
68109
68125
  /** Header blue-white ladder: brand → ice → pale → soft ice flash.
68110
68126
  * FLASH stays visibly blue (never pure white) — the highlight reads as a
68111
68127
  * mist-brightened crest, not a white strobe. */
@@ -68121,7 +68137,7 @@ const ICE = {
68121
68137
  b: 255
68122
68138
  };
68123
68139
  //#endregion
68124
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
68140
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
68125
68141
  /** Preview body rows — a FIXED row count (kimicode-style constant-height
68126
68142
  * ticker). Ink's truncate slices the whole string across newlines as one
68127
68143
  * logical line, so a single joined Text collapses to 1-2 rows whenever
@@ -68234,7 +68250,7 @@ function AssistantThinkingMessage({ thinking, textFull, addMargin, verbose, stre
68234
68250
  });
68235
68251
  }
68236
68252
  //#endregion
68237
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
68253
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
68238
68254
  const CATEGORY_BY_TOOL = {
68239
68255
  bash: "exec",
68240
68256
  powershell: "exec",
@@ -68815,7 +68831,7 @@ var ArrayDiff = class extends Diff {
68815
68831
  };
68816
68832
  new ArrayDiff();
68817
68833
  //#endregion
68818
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
68834
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
68819
68835
  const ANSI16 = {
68820
68836
  30: "rgb(0,0,0)",
68821
68837
  31: "rgb(128,0,0)",
@@ -68900,7 +68916,7 @@ function syntaxThemeSignature(theme) {
68900
68916
  return Object.values(SYNTAX_CLASS_TO_TOKEN).map((key) => palette[key] ?? "").join("|");
68901
68917
  }
68902
68918
  //#endregion
68903
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
68919
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
68904
68920
  /**
68905
68921
  * Smooth streaming reveal — decouples "text the provider has delivered" from
68906
68922
  * "text the screen is showing" (the oh-my-pi `display.smoothStreaming` idea,
@@ -69146,7 +69162,7 @@ function revealLinesOf(key, total, options) {
69146
69162
  return Math.min(existing.revealed, total);
69147
69163
  }
69148
69164
  //#endregion
69149
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
69165
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
69150
69166
  /** Replace tabs so width math and alignment hold (pi convention). */
69151
69167
  const expandTabs = (text) => text.replaceAll(" ", " ");
69152
69168
  /**
@@ -69455,7 +69471,7 @@ function SplitDiffView({ diffs, width, maxRows, verbose, toolBackground = "none"
69455
69471
  });
69456
69472
  }
69457
69473
  //#endregion
69458
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
69474
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
69459
69475
  /** Async nested Text renderer. Lexes the complete payload before splitting. */
69460
69476
  function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, dimColor }) {
69461
69477
  const [highlighter, setHighlighter] = import_react.useState(null);
@@ -69499,7 +69515,7 @@ function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, d
69499
69515
  }, index)) });
69500
69516
  }
69501
69517
  //#endregion
69502
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
69518
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
69503
69519
  /**
69504
69520
  * Trajectory formatting — durations, clocks, badges and heat.
69505
69521
  *
@@ -69701,7 +69717,7 @@ function ledgerLayout(columns) {
69701
69717
  };
69702
69718
  }
69703
69719
  //#endregion
69704
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
69720
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
69705
69721
  /**
69706
69722
  * Reveal-frame wakeup as a React hook — bumps once per advancing ~30fps
69707
69723
  * scheduler tick so consumers re-run their render-phase cursor reads
@@ -69731,7 +69747,7 @@ function useRevealVersion(enabled = true) {
69731
69747
  return version;
69732
69748
  }
69733
69749
  //#endregion
69734
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
69750
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
69735
69751
  /** Tool display names: DSH emits lowercase tool ids (`bash`); Claude Code
69736
69752
  * shows capitalized names (`Bash`). Map the common ones, fall back to the
69737
69753
  * id with its first letter uppercased. */
@@ -70267,7 +70283,7 @@ function AssistantToolUseMessage({ tool, addMargin, verbose, isSelected = false,
70267
70283
  });
70268
70284
  }
70269
70285
  //#endregion
70270
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
70286
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
70271
70287
  /** The waterfall window is a Kimi Code style constant-height region. */
70272
70288
  const WATERFALL_ROWS = 3;
70273
70289
  /** Card left padding + the `│ ` gutter prefix. */
@@ -70475,7 +70491,7 @@ function SubagentMessage({ subagent, addMargin, activityFrames, onClick }) {
70475
70491
  });
70476
70492
  }
70477
70493
  //#endregion
70478
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
70494
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
70479
70495
  /** Card left padding + the `│ ` gutter prefix. */
70480
70496
  const WATERFALL_GUTTER = 4;
70481
70497
  /** Static status marker — deliberately NOT the animated activity-indicator
@@ -70628,7 +70644,7 @@ function JobCard({ job, addMargin, onClick }) {
70628
70644
  });
70629
70645
  }
70630
70646
  //#endregion
70631
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
70647
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
70632
70648
  /**
70633
70649
  * The dim "interrupted" row shown when the user stops a turn, mirroring
70634
70650
  * Claude Code's `InterruptedByUser.tsx`.
@@ -70643,7 +70659,7 @@ function InterruptedByUser() {
70643
70659
  })] });
70644
70660
  }
70645
70661
  //#endregion
70646
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
70662
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
70647
70663
  /**
70648
70664
  * 当月 AI 代码生成占比统计(移植自 chatcode-cli 的同名服务)。
70649
70665
  *
@@ -70798,7 +70814,7 @@ async function fetchGitCommitRecords(post, signal) {
70798
70814
  /**
70799
70815
  * 计算当月整体 AI 代码生成占比(百分数):
70800
70816
  * sum(AI采纳行数) / sum(新增行数) × 100。
70801
- * 无记录或新增行数为 0 时返回 null(调用方据此隐藏指示行)。
70817
+ * 无记录或新增行数为 0 时返回 null(调用方显示暂无数据,不伪装成 0%)。
70802
70818
  */
70803
70819
  function computeAiRatioPercent(records) {
70804
70820
  let addedTotal = 0;
@@ -70811,51 +70827,71 @@ function computeAiRatioPercent(records) {
70811
70827
  return clampPercent(aiAdoptedTotal / addedTotal * 100);
70812
70828
  }
70813
70829
  //#endregion
70814
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
70830
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
70815
70831
  /**
70816
70832
  * 「AI代码生成占比」数据源 Hook(移植自 chatcode-cli 的同名 Hook)。
70817
70833
  *
70818
70834
  * 数据来源:ChatCode 平台 gitCommitRecord 接口(src/gitCommitStats.ts),
70819
70835
  * 聚合当月 sum(AI采纳行数)/sum(新增行数) 得到百分比。
70820
- * 挂载时拉取一次,之后定时轮询刷新;未登录/请求失败时静默(ratio 为 null,
70821
- * 指示行不显示),绝不影响主流程。
70836
+ * 挂载时拉取一次,成功后定时刷新,失败后短间隔重试;状态交给首页展示,
70837
+ * 不向终端打印错误,也不阻塞主流程。
70822
70838
  */
70823
70839
  const POLL_INTERVAL_MS$1 = 600 * 1e3;
70840
+ const RETRY_INTERVAL_MS = 30 * 1e3;
70824
70841
  function useAiRatio(enabled = true) {
70825
70842
  const [ratioPercent, setRatioPercent] = import_react.useState(null);
70826
70843
  const [loading, setLoading] = import_react.useState(true);
70844
+ const [unavailable, setUnavailable] = import_react.useState(false);
70827
70845
  const post = import_react.useContext(ChatCodeApiContext);
70828
70846
  import_react.useEffect(() => {
70829
70847
  if (!enabled || post === void 0) {
70848
+ setRatioPercent(null);
70830
70849
  setLoading(false);
70850
+ setUnavailable(true);
70831
70851
  return;
70832
70852
  }
70833
70853
  let cancelled = false;
70834
70854
  const controller = new AbortController();
70855
+ let timer;
70856
+ setRatioPercent(null);
70857
+ setLoading(true);
70858
+ setUnavailable(false);
70835
70859
  const refresh = async () => {
70860
+ let delay = POLL_INTERVAL_MS$1;
70836
70861
  try {
70837
70862
  const records = await fetchGitCommitRecords(post, controller.signal);
70838
- if (!cancelled) setRatioPercent(computeAiRatioPercent(records));
70839
- } catch {} finally {
70840
- if (!cancelled) setLoading(false);
70863
+ if (!cancelled) {
70864
+ setRatioPercent(computeAiRatioPercent(records));
70865
+ setUnavailable(false);
70866
+ }
70867
+ } catch {
70868
+ delay = RETRY_INTERVAL_MS;
70869
+ if (!cancelled) setUnavailable(true);
70870
+ } finally {
70871
+ if (!cancelled) {
70872
+ setLoading(false);
70873
+ timer = setTimeout(() => {
70874
+ refresh();
70875
+ }, delay);
70876
+ timer.unref?.();
70877
+ }
70841
70878
  }
70842
70879
  };
70843
70880
  refresh();
70844
- const timer = setInterval(() => void refresh(), POLL_INTERVAL_MS$1);
70845
- if (typeof timer.unref === "function") timer.unref();
70846
70881
  return () => {
70847
70882
  cancelled = true;
70848
70883
  controller.abort();
70849
- clearInterval(timer);
70884
+ clearTimeout(timer);
70850
70885
  };
70851
70886
  }, [enabled, post]);
70852
70887
  return {
70853
70888
  ratioPercent,
70854
- loading
70889
+ loading,
70890
+ unavailable
70855
70891
  };
70856
70892
  }
70857
70893
  //#endregion
70858
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
70894
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
70859
70895
  /**
70860
70896
  * Slice a string to at most `maxWidth` terminal cells, walking by code
70861
70897
  * point so CJK wide characters never split mid-glyph. Assumes no ANSI in
@@ -70873,7 +70909,7 @@ function truncateToWidth(text, maxWidth) {
70873
70909
  return out;
70874
70910
  }
70875
70911
  //#endregion
70876
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
70912
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
70877
70913
  /** Main ChatCode CLI package version shown in the startup information panel. */
70878
70914
  const VERSION = PRODUCT_VERSION;
70879
70915
  const PRODUCT_LABEL = "chatcode-cli";
@@ -71005,7 +71041,7 @@ function InfoRow({ icon, label, value, labelWidth, rowWidth }) {
71005
71041
  function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71006
71042
  const { columns, rows } = useTerminalSize();
71007
71043
  const [driftLine] = import_react.useState(() => drift === void 0 ? upstreamDriftSummary() : drift);
71008
- const { ratioPercent: fetchedAiRatioPercent } = useAiRatio(aiRatio === void 0);
71044
+ const { ratioPercent: fetchedAiRatioPercent, loading, unavailable } = useAiRatio(aiRatio === void 0);
71009
71045
  const aiRatioPercent = aiRatio !== void 0 ? aiRatio : fetchedAiRatioPercent;
71010
71046
  const expandedArt = whale && columns >= ART_MIN_COLUMNS;
71011
71047
  const panelWidth = Math.max(1, Math.min(58, columns - 2));
@@ -71016,7 +71052,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71016
71052
  const modelValue = effort === void 0 ? model : `${model} · ${effort}`;
71017
71053
  const supportLabel = getLang() === "zh" ? panelWidth >= 42 ? "钉钉支撑群" : "支撑群" : panelWidth >= 42 ? "DingTalk support" : "Support";
71018
71054
  const aiRatioLabel = getLang() === "zh" ? "AI代码生成占比" : "AI code ratio";
71019
- const aiRatioValue = getLang() === "zh" ? `${aiRatioPercent?.toFixed(1) ?? ""}%(当月)` : `${aiRatioPercent?.toFixed(1) ?? ""}% (month)`;
71055
+ const aiRatioValue = aiRatioPercent == null ? t(loading ? "logo-ai-ratio-loading" : unavailable ? "logo-ai-ratio-unavailable" : "logo-ai-ratio-empty") : `${aiRatioPercent.toFixed(1)}%${getLang() === "zh" ? "(当月)" : " (month)"}${aiRatio === void 0 && unavailable ? t("logo-ai-ratio-stale") : ""}`;
71020
71056
  return (0, import_jsx_runtime.jsxs)(ThemedBox, {
71021
71057
  flexDirection: "column",
71022
71058
  alignItems: "center",
@@ -71069,7 +71105,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71069
71105
  labelWidth,
71070
71106
  rowWidth: infoRowWidth
71071
71107
  }),
71072
- aiRatioPercent != null && (0, import_jsx_runtime.jsx)(InfoRow, {
71108
+ aiRatio !== null && (0, import_jsx_runtime.jsx)(InfoRow, {
71073
71109
  icon: "◆",
71074
71110
  label: aiRatioLabel,
71075
71111
  value: aiRatioValue,
@@ -71109,7 +71145,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71109
71145
  });
71110
71146
  }
71111
71147
  //#endregion
71112
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
71148
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
71113
71149
  /**
71114
71150
  * Transcript-mode metadata row: `HH:MM · model`, right-aligned above the
71115
71151
  * assistant text, mirroring Claude Code's MessageTimestamp + MessageModel,
@@ -71131,7 +71167,7 @@ function MessageMetadata({ timestamp, model }) {
71131
71167
  });
71132
71168
  }
71133
71169
  //#endregion
71134
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
71170
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
71135
71171
  /**
71136
71172
  * Strip the `⏵` self-narration line from assistant text. The
71137
71173
  * dsh-working-activity narrate contract puts exactly one `⏵` line at the
@@ -71247,7 +71283,7 @@ function ellipsize(line, maxWidth) {
71247
71283
  return `${out}…`;
71248
71284
  }
71249
71285
  //#endregion
71250
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
71286
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
71251
71287
  /**
71252
71288
  * Transcript rows rendered in the Claude Code visual language: user prompts
71253
71289
  * on a grey bubble with a `❯` pointer, assistant text with a `●` bullet and
@@ -72060,7 +72096,7 @@ function LogoHeader({ model, effort, cwd, whale = true, skipIntro = false }) {
72060
72096
  });
72061
72097
  }
72062
72098
  //#endregion
72063
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
72099
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
72064
72100
  /** ▴ / ▾ (U+25B4 / U+25BE — the small triangles; CP437-safe on ConHost too). */
72065
72101
  const CHEVRON_UP = " ▴";
72066
72102
  const CHEVRON_DOWN = " ▾";
@@ -72254,7 +72290,7 @@ function TimelineRail({ handle, turns, activeId, upId, downId, terminalWidth, ho
72254
72290
  }) });
72255
72291
  }
72256
72292
  //#endregion
72257
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
72293
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
72258
72294
  /** Thumb glyph across the 2-col gutter: solid, clearly positional —
72259
72295
  * deliberately distinct from the timeline's ━━ active tick. */
72260
72296
  const THUMB = "██";
@@ -72370,7 +72406,7 @@ function ScrollbarGutter({ handle, terminalWidth }) {
72370
72406
  }) });
72371
72407
  }
72372
72408
  //#endregion
72373
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
72409
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
72374
72410
  /**
72375
72411
  * 瞬态面板的浮层容器:absolute 定位 + bottom:'100%' 把面板底边钉在锚点
72376
72412
  * (父元素)顶边,向上覆盖转录尾部行,自身**不占布局高度**。
@@ -72403,7 +72439,7 @@ function OverlayAbove({ children, maxHeight }) {
72403
72439
  });
72404
72440
  }
72405
72441
  //#endregion
72406
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
72442
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
72407
72443
  /**
72408
72444
  * Trajectory motion — five verbs, one shared clock, one hard rule.
72409
72445
  *
@@ -72528,7 +72564,7 @@ function alert(tick, startTick) {
72528
72564
  return Math.floor(age / 2) % 2 === 0 ? 1 : 0;
72529
72565
  }
72530
72566
  //#endregion
72531
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
72567
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
72532
72568
  /** 三幕时间轴(ms):扫光全长、字样启动(波至中段)、字样渐亮、渐隐起止。边框扫光与输入行字样徽标共用。 */
72533
72569
  const IGNITION_TIMELINE = {
72534
72570
  sweepMs: 1e3,
@@ -72676,7 +72712,7 @@ function ignitionLineColors(options) {
72676
72712
  return colors;
72677
72713
  }
72678
72714
  //#endregion
72679
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
72715
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
72680
72716
  /**
72681
72717
  * EffortChargeGlyph — 输入提示前缀 `❯ ` 的最高档强调与充能。
72682
72718
  *
@@ -72732,7 +72768,7 @@ function EffortChargeGlyph({ effort, levels, working }) {
72732
72768
  });
72733
72769
  }
72734
72770
  //#endregion
72735
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
72771
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
72736
72772
  /**
72737
72773
  * EffortInputBorder — 输入框层上的三幕点焰叠加(对齐 Codex 的完整
72738
72774
  * 语义:光扫过、档位字样浮现、整体渐隐)。
@@ -72867,7 +72903,7 @@ function EffortInputBorder({ effort, levels, columns, onLight, idleColor, topRig
72867
72903
  });
72868
72904
  }
72869
72905
  //#endregion
72870
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
72906
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
72871
72907
  /**
72872
72908
  * EffortTierBadge — 输入行尾的档位字样徽标:三幕点焰的第二幕载体
72873
72909
  * (与 EffortInputBorder 的双框扫光同一时间轴、同一触发),切到最高
@@ -72950,7 +72986,7 @@ function EffortTierBadge({ effort, levels, onLight, columns, leadingColumns }) {
72950
72986
  });
72951
72987
  }
72952
72988
  //#endregion
72953
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
72989
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
72954
72990
  /**
72955
72991
  * Cross-platform clipboard access for Ctrl+V paste. The TUI runs in raw
72956
72992
  * mode, so the terminal never performs its own paste for Ctrl+V — the key
@@ -73088,7 +73124,7 @@ async function ensureImageDir() {
73088
73124
  if (imageDir !== void 0) return imageDir;
73089
73125
  let dir;
73090
73126
  try {
73091
- dir = await mkdtemp(join(tmpdir(), "dsh-tui-paste-"));
73127
+ dir = await mkdtemp(join(tmpdir(), "chatcode-cli-paste-"));
73092
73128
  } catch {
73093
73129
  return null;
73094
73130
  }
@@ -73464,7 +73500,7 @@ function formatClipboardInsert(content) {
73464
73500
  return content.text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
73465
73501
  }
73466
73502
  //#endregion
73467
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
73503
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
73468
73504
  /**
73469
73505
  * External editor round-trip for the prompt input (issue #123): Ctrl+G dumps
73470
73506
  * the current draft into a temp file, hands the terminal to `$VISUAL` /
@@ -73703,7 +73739,7 @@ async function editInExternalEditor(draft) {
73703
73739
  if (argv === void 0) return { kind: "unavailable" };
73704
73740
  let dir;
73705
73741
  try {
73706
- dir = await mkdtemp(join(tmpdir(), "dsh-tui-prompt-"));
73742
+ dir = await mkdtemp(join(tmpdir(), "chatcode-cli-prompt-"));
73707
73743
  const file = join(dir, "input.md");
73708
73744
  await writeFile(file, draft, "utf8");
73709
73745
  const outcome = await withEditorHandoff(argv, file, async (code) => {
@@ -73742,7 +73778,7 @@ async function editInExternalEditor(draft) {
73742
73778
  }
73743
73779
  }
73744
73780
  //#endregion
73745
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
73781
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
73746
73782
  let editorNode = null;
73747
73783
  const listeners = /* @__PURE__ */ new Set();
73748
73784
  /** Publish (or withdraw, with null) the fullscreen editor subtree. */
@@ -73818,7 +73854,7 @@ function EditorButton({ label, hint, onClick, primary, accent }) {
73818
73854
  });
73819
73855
  }
73820
73856
  //#endregion
73821
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
73857
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
73822
73858
  const HISTORY_DIR = DATA_DIR;
73823
73859
  const HISTORY_FILE = join(HISTORY_DIR, "history.jsonl");
73824
73860
  const HISTORY_LOCK = `${HISTORY_FILE}.lock`;
@@ -73952,7 +73988,7 @@ function historyEntryId(entry, index = 0) {
73952
73988
  return createHash("sha1").update(`${entry.text}\0${entry.ts}\0${index}`).digest("hex").slice(0, 12);
73953
73989
  }
73954
73990
  //#endregion
73955
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
73991
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
73956
73992
  /**
73957
73993
  * `/` 命令菜单与 `@` 文件菜单共用的圆角卡片外壳(与输入框 EffortInputBorder
73958
73994
  * 同款 ╭╮╰╯ 视觉语言):
@@ -74084,7 +74120,7 @@ function splitQueryMatch(name, query) {
74084
74120
  return startsWith(0) ?? (lastSpace >= 0 ? startsWith(lastSpace + 1) : null) ?? startsWith(name.lastIndexOf("/") + 1);
74085
74121
  }
74086
74122
  //#endregion
74087
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
74123
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
74088
74124
  /**
74089
74125
  * The slash-command suggestion overlay, mirroring Claude Code's
74090
74126
  * `PromptInputFooterSuggestions.tsx` (command layout only) wrapped in the
@@ -74164,7 +74200,7 @@ function CommandSuggestions({ commands, selectedIndex, columns, query = "", acce
74164
74200
  });
74165
74201
  }
74166
74202
  //#endregion
74167
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
74203
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
74168
74204
  /**
74169
74205
  * The `@` file-completion overlay in CC's suggestion style, wrapped in the
74170
74206
  * shared rounded `SuggestionCard` (与 `/` 命令菜单同一视觉语言):
@@ -74263,7 +74299,7 @@ function FileSuggestions({ files, selectedIndex, columns, query = "", accent, on
74263
74299
  });
74264
74300
  }
74265
74301
  //#endregion
74266
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
74302
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
74267
74303
  /**
74268
74304
  * The `?` help menu, mirroring Claude Code's `PromptInputHelpMenu.tsx`
74269
74305
  * (three-column shortcut layout, trimmed to the keys dsh-tui actually binds).
@@ -74454,7 +74490,7 @@ function HelpCommandRow({ command, onPick }) {
74454
74490
  });
74455
74491
  }
74456
74492
  //#endregion
74457
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
74493
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
74458
74494
  const HISTORY_LIMIT = 50;
74459
74495
  /**
74460
74496
  * Paste fold (CC-style collapse with a visible preview, no black box):
@@ -76734,7 +76770,7 @@ function wordSelectionAt(text, offset, lo, hi) {
76734
76770
  };
76735
76771
  }
76736
76772
  //#endregion
76737
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
76773
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
76738
76774
  /** Maximum todo rows shown before the overflow line. */
76739
76775
  const MAX_TODOS = 8;
76740
76776
  const PHASE_LABEL = {
@@ -76980,7 +77016,7 @@ function GoalTodoPanel({ channel, collapsed = false, onToggle }) {
76980
77016
  });
76981
77017
  }
76982
77018
  //#endregion
76983
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
77019
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
76984
77020
  /**
76985
77021
  * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
76986
77022
  * at the bottom of the transcript after an automatic summary on session
@@ -77060,7 +77096,7 @@ function summarizeLoadedContext(context) {
77060
77096
  return parts.join(" · ");
77061
77097
  }
77062
77098
  //#endregion
77063
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
77099
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
77064
77100
  /** One named entry (section or dynamic context) with its full text. */
77065
77101
  function Entry({ entry }) {
77066
77102
  return (0, import_jsx_runtime.jsxs)(ThemedBox, {
@@ -77197,7 +77233,7 @@ function LoadedContextPanel({ context, open, onToggle }) {
77197
77233
  });
77198
77234
  }
77199
77235
  //#endregion
77200
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
77236
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
77201
77237
  /**
77202
77238
  * Terminal-safe construction cycle derived from the supplied China Unicom
77203
77239
  * knot mark. Every frame is one display cell, unlike emoji on mixed terminals.
@@ -77229,7 +77265,7 @@ function UnicomKnotSpinner({ time }) {
77229
77265
  });
77230
77266
  }
77231
77267
  //#endregion
77232
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
77268
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
77233
77269
  /**
77234
77270
  * Context-pressure percentage (0–100) from the last usage snapshot, or
77235
77271
  * undefined when unknown — shared by the spinner-line and status-line
@@ -77301,7 +77337,7 @@ function ActivityLine({ activity, activityFrames, warnPct, warnDanger, suffix })
77301
77337
  });
77302
77338
  }
77303
77339
  //#endregion
77304
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
77340
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
77305
77341
  /**
77306
77342
  * Structural guards for the session events the trajectory projection reads.
77307
77343
  *
@@ -77525,7 +77561,7 @@ function readTodos(data) {
77525
77561
  };
77526
77562
  }
77527
77563
  //#endregion
77528
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
77564
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
77529
77565
  /**
77530
77566
  * Trajectory projection — the data contract shared by the adapter-side fold
77531
77567
  * and the UI-side scene (issue #80 evolution).
@@ -77592,7 +77628,7 @@ function previewText(raw, limit) {
77592
77628
  return `${flat.slice(0, limit)}…`;
77593
77629
  }
77594
77630
  //#endregion
77595
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
77631
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
77596
77632
  /**
77597
77633
  * Trajectory projection — folding the session event log into ledger nodes.
77598
77634
  *
@@ -78171,7 +78207,7 @@ function extendTrajectory(previous, events) {
78171
78207
  };
78172
78208
  }
78173
78209
  //#endregion
78174
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
78210
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
78175
78211
  /**
78176
78212
  * Trajectory aggregate — the hotspot view's data and the session totals.
78177
78213
  *
@@ -78392,7 +78428,7 @@ function modelTiming(timing) {
78392
78428
  };
78393
78429
  }
78394
78430
  //#endregion
78395
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
78431
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
78396
78432
  /**
78397
78433
  * Inspector detail — full content, resolved on demand.
78398
78434
  *
@@ -78552,7 +78588,7 @@ function inspectNode(node, events) {
78552
78588
  };
78553
78589
  }
78554
78590
  //#endregion
78555
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
78591
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
78556
78592
  /**
78557
78593
  * Wave band projection — the whole session compressed onto one row of glyphs.
78558
78594
  *
@@ -78725,7 +78761,7 @@ function columnOfIndex(band, ledgerIndex) {
78725
78761
  return 0;
78726
78762
  }
78727
78763
  //#endregion
78728
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
78764
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
78729
78765
  /**
78730
78766
  * The mini wake — the whole session as a dozen glyphs in the status line.
78731
78767
  *
@@ -78828,7 +78864,7 @@ function toHex$1(colour) {
78828
78864
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
78829
78865
  }
78830
78866
  //#endregion
78831
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
78867
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
78832
78868
  /**
78833
78869
  * Status-line metric renderers, ported from two pi extensions:
78834
78870
  * - `pi-nano-context`: segmented context progress bar (morandi pastel
@@ -79104,7 +79140,7 @@ function tpsStats(samples, nowMs) {
79104
79140
  };
79105
79141
  }
79106
79142
  //#endregion
79107
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
79143
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
79108
79144
  /** Free-segment colors, mirroring StatusMetrics' dark-theme defaults. */
79109
79145
  const FREE_FILL = "#E8E8E8";
79110
79146
  const FREE_TEXT = "#4A4A4A";
@@ -79171,7 +79207,7 @@ function ContextBarView({ segments, usedTokens, contextWindow, width, colors, on
79171
79207
  });
79172
79208
  }
79173
79209
  //#endregion
79174
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
79210
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
79175
79211
  /**
79176
79212
  * ChatCode 今日总 Token 消耗量查询(移植自 chatcode-cli 的 chatCodeTokenTrend)。
79177
79213
  *
@@ -79246,7 +79282,7 @@ async function fetchTodayTotalTokens(post, signal) {
79246
79282
  }
79247
79283
  }
79248
79284
  //#endregion
79249
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
79285
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
79250
79286
  /**
79251
79287
  * 「今日总Token消耗」数据源 Hook(移植自 chatcode-cli 的 useTokenDashboard)。
79252
79288
  *
@@ -79278,7 +79314,7 @@ function useTodayTotalTokens(enabled = true) {
79278
79314
  return { totalTokens };
79279
79315
  }
79280
79316
  //#endregion
79281
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
79317
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
79282
79318
  const BAR_WIDTH = 14;
79283
79319
  /** Yuanjing-compatible percentage label centered inside a fixed-width bar. */
79284
79320
  function LabeledBar({ ratio, percent }) {
@@ -79354,7 +79390,7 @@ function TokenDashboard({ todayTokens, usedTokens, contextWindow, compact = fals
79354
79390
  });
79355
79391
  }
79356
79392
  //#endregion
79357
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
79393
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
79358
79394
  /** Stable fallback for stubbed channels: verify/repro harnesses render the
79359
79395
  * real Chat with partial channel literals that predate the jobs field. */
79360
79396
  const NO_BACKGROUND_JOBS = [];
@@ -80265,7 +80301,7 @@ const fallbackSymbols = {
80265
80301
  const figures = isUnicodeSupported() ? mainSymbols : fallbackSymbols;
80266
80302
  Object.entries(specialMainSymbols);
80267
80303
  //#endregion
80268
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
80304
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
80269
80305
  /**
80270
80306
  * Joins children with a middot separator (" · ") for inline metadata display
80271
80307
  * (in the Claude Code visual language). Automatically filters out
@@ -80281,7 +80317,7 @@ function Byline({ children }) {
80281
80317
  }), child] }, (0, import_react.isValidElement)(child) ? child.key ?? index : index)) });
80282
80318
  }
80283
80319
  //#endregion
80284
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
80320
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
80285
80321
  const ERROR_RED$1 = {
80286
80322
  r: 171,
80287
80323
  g: 43,
@@ -80371,7 +80407,7 @@ function GlimmerMessage({ message, mode, messageColor, glimmerIndex, flashOpacit
80371
80407
  })] });
80372
80408
  }
80373
80409
  //#endregion
80374
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
80410
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
80375
80411
  const DEFAULT_CHARACTERS = getDefaultCharacters();
80376
80412
  const SPINNER_FRAMES$1 = [...DEFAULT_CHARACTERS, ...[...DEFAULT_CHARACTERS].reverse()];
80377
80413
  const REDUCED_MOTION_DOT = "●";
@@ -80432,7 +80468,7 @@ function SpinnerGlyph({ frame, messageColor, stalledIntensity = 0, reducedMotion
80432
80468
  });
80433
80469
  }
80434
80470
  //#endregion
80435
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
80471
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
80436
80472
  /**
80437
80473
  * Tracks the transition to red when tokens stop flowing (mirroring Claude Code's `Spinner/useStalledAnimation.ts`). Driven by the parent's animation
80438
80474
  * clock time instead of independent intervals, so it slows down when the
@@ -80489,7 +80525,7 @@ function useStalledAnimation(time, currentResponseLength, hasActiveTools = false
80489
80525
  };
80490
80526
  }
80491
80527
  //#endregion
80492
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
80528
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
80493
80529
  const SEP_WIDTH = stringWidth$1(" · ");
80494
80530
  const THINKING_BARE_WIDTH = stringWidth$1("thinking");
80495
80531
  const SHOW_TOKENS_AFTER_MS = 3e4;
@@ -80656,7 +80692,7 @@ function SpinnerModeGlyph({ mode }) {
80656
80692
  }
80657
80693
  }
80658
80694
  //#endregion
80659
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
80695
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
80660
80696
  /**
80661
80697
  * The working spinner block shown between the transcript and the prompt
80662
80698
  * input while a turn is in flight. Mirrors Claude Code's `Spinner.tsx`
@@ -80726,7 +80762,7 @@ function useThinkingStatus(isThinking) {
80726
80762
  return thinkingStatus;
80727
80763
  }
80728
80764
  //#endregion
80729
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
80765
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
80730
80766
  /**
80731
80767
  * Model picker in the CC ModelPicker style: a permission-colored Pane with
80732
80768
  * the rows as Select entries (❯ focus pointer, ✓ on the active row,
@@ -80786,7 +80822,7 @@ function ModelPicker(props) {
80786
80822
  });
80787
80823
  }
80788
80824
  //#endregion
80789
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
80825
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
80790
80826
  /**
80791
80827
  * Error boundary for plugin scenes (dsh-tui-scenes). A scene component is
80792
80828
  * third-party code rendered inside Chat's tree: without a boundary a render
@@ -80812,7 +80848,7 @@ var PluginSceneBoundary = class extends import_react.Component {
80812
80848
  }
80813
80849
  };
80814
80850
  //#endregion
80815
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
80851
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
80816
80852
  const SPINNER_FRAMES = [...getDefaultCharacters(), ...[...getDefaultCharacters()].reverse()];
80817
80853
  /**
80818
80854
  * A spinner with a loading message for async operations, mirroring Claude Code's design-system/LoadingState.tsx (using the small animated glyph).
@@ -80843,7 +80879,7 @@ function LoadingState({ message, bold = false, dimColor = false, subtitle }) {
80843
80879
  });
80844
80880
  }
80845
80881
  //#endregion
80846
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
80882
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
80847
80883
  /** 来源桶 → 本地化标签(未知桶原样显示,SkillSource 对自定义桶开放)。 */
80848
80884
  function sourceLabel(source) {
80849
80885
  switch (source) {
@@ -80921,7 +80957,7 @@ function SkillsPickerLoading() {
80921
80957
  });
80922
80958
  }
80923
80959
  //#endregion
80924
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
80960
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
80925
80961
  /**
80926
80962
  * Window a single-line query around the caret so the visible slice fits
80927
80963
  * `avail` display cells (CJK display width, code-point safe — `[...s]`
@@ -81059,7 +81095,7 @@ function SearchBox({ query, placeholder = "Search…", isFocused, isTerminalFocu
81059
81095
  });
81060
81096
  }
81061
81097
  //#endregion
81062
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
81098
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
81063
81099
  /**
81064
81100
  * One session in the browser's list: a title line and a metadata line.
81065
81101
  *
@@ -81140,7 +81176,7 @@ function SessionListRow({ session, width, depth, focused, pinned, now, onClick,
81140
81176
  });
81141
81177
  }
81142
81178
  //#endregion
81143
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
81179
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
81144
81180
  /** Role marker and colour for a preview entry. */
81145
81181
  const ROLE = {
81146
81182
  user: {
@@ -81231,7 +81267,7 @@ function SessionPreview({ session, entries, loading, width, height, home, now })
81231
81267
  });
81232
81268
  }
81233
81269
  //#endregion
81234
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
81270
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
81235
81271
  /** One two-line working-directory choice in the /resume browser. */
81236
81272
  function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width, focused, selected, home, now, onClick }) {
81237
81273
  const [hovered, setHovered] = (0, import_react.useState)(false);
@@ -81276,7 +81312,7 @@ function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width,
81276
81312
  });
81277
81313
  }
81278
81314
  //#endregion
81279
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
81315
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
81280
81316
  /** The browser's default view: this project, conversations only. */
81281
81317
  const DEFAULT_FILTERS = {
81282
81318
  query: "",
@@ -81565,7 +81601,7 @@ function windowEnd(rows, top, budget) {
81565
81601
  return at;
81566
81602
  }
81567
81603
  //#endregion
81568
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
81604
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
81569
81605
  /**
81570
81606
  * Pinned sessions for the `/resume` browser, kept at
81571
81607
  * `~/.chatcode-cli/tui/session-pins.json` (a JSON array of session ids) so the pins
@@ -81714,7 +81750,7 @@ function setSessionPinned(id, pinned, dir = DATA_DIR) {
81714
81750
  }
81715
81751
  }
81716
81752
  //#endregion
81717
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
81753
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
81718
81754
  /**
81719
81755
  * Rows the layout cannot do without: the header, the four-row scope/search
81720
81756
  * card, the notice slot, and the hints. Everything else yields before these.
@@ -82600,7 +82636,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
82600
82636
  });
82601
82637
  }
82602
82638
  //#endregion
82603
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
82639
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
82604
82640
  /** Local HH:MM (or MM/DD HH:MM when older than this year). */
82605
82641
  function formatTime(at, now) {
82606
82642
  const date = new Date(at);
@@ -83356,7 +83392,7 @@ function PreviewPane({ entry, meta, width, height, liveSessionId, now, compact }
83356
83392
  });
83357
83393
  }
83358
83394
  //#endregion
83359
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
83395
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
83360
83396
  /** Pick the provider-owned translation for the active language. */
83361
83397
  function pick(text, descriptions) {
83362
83398
  return descriptions?.[getLang()] ?? text;
@@ -83944,7 +83980,7 @@ function Settings({ channel, onClose, initialGroup }) {
83944
83980
  lines: 1,
83945
83981
  node: (0, import_jsx_runtime.jsx)(CardTop, {
83946
83982
  title: pick(section.title, section.descriptions),
83947
- subtitle: section.ns,
83983
+ subtitle: section.ns === "dsh-tui" ? void 0 : section.ns,
83948
83984
  badges: sectionBadges(section),
83949
83985
  columns
83950
83986
  })
@@ -84106,7 +84142,7 @@ function Settings({ channel, onClose, initialGroup }) {
84106
84142
  });
84107
84143
  }
84108
84144
  //#endregion
84109
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
84145
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
84110
84146
  const WINDOW$1 = 8;
84111
84147
  /** `/workspace` target picker contributed by local and optional providers. */
84112
84148
  function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
@@ -84144,7 +84180,7 @@ function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
84144
84180
  });
84145
84181
  }
84146
84182
  //#endregion
84147
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
84183
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
84148
84184
  /**
84149
84185
  * A single-choice select list in the CC CustomSelect style (ported visual:
84150
84186
  * ListItem rows with ❯ focus pointer, ✓ selected checkmark, descriptions,
@@ -84171,7 +84207,7 @@ function Select({ options, focusIndex, selectedValue, visibleOptionCount = 5, on
84171
84207
  });
84172
84208
  }
84173
84209
  //#endregion
84174
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
84210
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
84175
84211
  /**
84176
84212
  * Bare `/workspace` action menu: the built-in subcommands (resume / rename /
84177
84213
  * open) plus any dynamically registered workspace extensions. Enter runs the
@@ -84212,7 +84248,7 @@ function WorkspaceMenuPicker({ options, focusIndex, onPick }) {
84212
84248
  });
84213
84249
  }
84214
84250
  //#endregion
84215
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
84251
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
84216
84252
  const WINDOW = 8;
84217
84253
  /** Generic nested choice surface returned by a workspace provider command. */
84218
84254
  function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input = null, onPick }) {
@@ -84270,7 +84306,7 @@ function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input =
84270
84306
  });
84271
84307
  }
84272
84308
  //#endregion
84273
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
84309
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
84274
84310
  /**
84275
84311
  * Working-activity indicator picker in the CC ModelPicker style (ported
84276
84312
  * from the pi extension's `/activity` interactive select): a
@@ -84312,7 +84348,7 @@ function ActivityPicker({ focusIndex, currentPreset, onPick }) {
84312
84348
  });
84313
84349
  }
84314
84350
  //#endregion
84315
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
84351
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
84316
84352
  /**
84317
84353
  * Session accent color picker (bare `/color`): a permission-colored Pane
84318
84354
  * listing the whole palette with a colored swatch per row, `❯` focus
@@ -84356,7 +84392,7 @@ function ColorPicker({ focusIndex, currentColor, onPick }) {
84356
84392
  });
84357
84393
  }
84358
84394
  //#endregion
84359
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
84395
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
84360
84396
  /**
84361
84397
  * Reasoning-effort slider (`/effort`): a rheostat row of the live route's
84362
84398
  * adapter-owned levels in adapter order, ←/→ moving focus (each move applies
@@ -84415,7 +84451,7 @@ function EffortSlider({ options, focusIndex, currentId, onPick }) {
84415
84451
  });
84416
84452
  }
84417
84453
  //#endregion
84418
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
84454
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
84419
84455
  /**
84420
84456
  * Agent-preset picker (issue #8) in the CC ModelPicker style — same chrome
84421
84457
  * as the ActivityPicker: a permission-colored Pane listing every roster
@@ -84459,7 +84495,7 @@ function PresetPicker({ presets, focusIndex, currentPreset, onPick }) {
84459
84495
  });
84460
84496
  }
84461
84497
  //#endregion
84462
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
84498
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
84463
84499
  /**
84464
84500
  * `/permission` sandbox-preset picker. The command itself is registered by
84465
84501
  * the harness side (dsh-sandbox-policy / dsh-base permission-presets row);
@@ -84506,7 +84542,7 @@ function PermissionsPicker({ options, focusIndex, currentValue, cwd, onPick }) {
84506
84542
  });
84507
84543
  }
84508
84544
  //#endregion
84509
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
84545
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
84510
84546
  /**
84511
84547
  * `/plan` on/off picker. The command itself is registered by dsh-plan-mode
84512
84548
  * on the harness side; bare `/plan` opens this picker (with the current
@@ -84551,7 +84587,7 @@ function PlanPicker({ focusIndex, currentOn, onPick }) {
84551
84587
  });
84552
84588
  }
84553
84589
  //#endregion
84554
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
84590
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
84555
84591
  /**
84556
84592
  * `/lang` en/zh picker: bare `/lang` opens this picker (the current language
84557
84593
  * marked) and Enter applies the choice through the same path as `/lang <id>`.
@@ -84590,7 +84626,7 @@ function LangPicker({ focusIndex, currentLang, onPick }) {
84590
84626
  });
84591
84627
  }
84592
84628
  //#endregion
84593
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
84629
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
84594
84630
  /** One double-block swatch character per preview key, in a row. */
84595
84631
  const SWATCH = "██";
84596
84632
  /** Theme keys previewed in the picker, chosen for visual contrast. */
@@ -84676,7 +84712,7 @@ function ThemePicker({ focusIndex, currentTheme, themeHost, onPick }) {
84676
84712
  });
84677
84713
  }
84678
84714
  //#endregion
84679
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
84715
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
84680
84716
  /**
84681
84717
  * The `/thinking` display dialog: a permission-colored Pane with a bold
84682
84718
  * title, the Shown/Hidden select, and the Enter/Esc hint line.
@@ -84725,7 +84761,7 @@ function ThinkingToggle({ currentValue, focusIndex, onPick }) {
84725
84761
  });
84726
84762
  }
84727
84763
  //#endregion
84728
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
84764
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
84729
84765
  /**
84730
84766
  * The ctrl+r history search dialog, in the shape of Claude Code's
84731
84767
  * HistorySearchDialog/FuzzyPicker: a permission-colored Pane with a bold
@@ -84788,7 +84824,7 @@ function formatRelativeAge(ts) {
84788
84824
  return t("time-days-ago", { n: Math.floor(elapsed / 864e5) });
84789
84825
  }
84790
84826
  //#endregion
84791
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
84827
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
84792
84828
  /**
84793
84829
  * Double-Esc rewind picker (CC's "Double-tap esc to rewind the code and/or
84794
84830
  * conversation to a previous point in time"): lists the user's past messages
@@ -84925,7 +84961,7 @@ function preview(text) {
84925
84961
  return flat.length <= 80 ? flat : `${flat.slice(0, 80)}…`;
84926
84962
  }
84927
84963
  //#endregion
84928
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
84964
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
84929
84965
  /**
84930
84966
  * /btw side-question panel (CC's btw.tsx, inline-pane form like the local
84931
84967
  * pickers): title line with the question, a scrollable answer body (error /
@@ -85009,7 +85045,7 @@ function BtwPanel({ question, answer, error, streaming, onClose, onCopy }) {
85009
85045
  });
85010
85046
  }
85011
85047
  //#endregion
85012
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
85048
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
85013
85049
  function ReleaseNotesPanel({ release, onClose }) {
85014
85050
  const scrollRef = import_react.useRef(null);
85015
85051
  const { rows } = useTerminalSize();
@@ -85054,7 +85090,7 @@ function ReleaseNotesPanel({ release, onClose }) {
85054
85090
  });
85055
85091
  }
85056
85092
  //#endregion
85057
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
85093
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
85058
85094
  /**
85059
85095
  * `/recap` panel (pi-recap semantics), in the picker/dialog visual
85060
85096
  * language: a permission-colored Pane with a title bar (会话回顾), a
@@ -85175,7 +85211,7 @@ function RecapPanel({ summary, title, error, streaming, titleApplied, onClose, o
85175
85211
  });
85176
85212
  }
85177
85213
  //#endregion
85178
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
85214
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
85179
85215
  /**
85180
85216
  * 精简 Tips 池 —— 启动首屏轮换(LogoV2)与 `/tips` 命令面板共用。
85181
85217
  *
@@ -85889,7 +85925,7 @@ const TIPS = [
85889
85925
  }
85890
85926
  ];
85891
85927
  //#endregion
85892
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
85928
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
85893
85929
  const GROUP_ORDER = [
85894
85930
  "keys",
85895
85931
  "commands",
@@ -85968,7 +86004,7 @@ function TipsPanel({ onClose }) {
85968
86004
  });
85969
86005
  }
85970
86006
  //#endregion
85971
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
86007
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
85972
86008
  function formatDuration$1(ms) {
85973
86009
  const seconds = Math.floor(ms / 1e3);
85974
86010
  return seconds < 60 ? `${seconds}s` : `${Math.floor(seconds / 60)}m${seconds % 60}s`;
@@ -86023,7 +86059,7 @@ function SubagentCard({ subagent, focused, onClick }) {
86023
86059
  });
86024
86060
  }
86025
86061
  //#endregion
86026
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
86062
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
86027
86063
  /** 可点击 ✕ 退出按钮:整屏/浮层场景的鼠标退出通道(Esc 等价)。 */
86028
86064
  function ExitButton({ onClick }) {
86029
86065
  const [hovered, setHovered] = import_react.useState(false);
@@ -86171,7 +86207,7 @@ function SubagentDashboard({ subagents, onClose, onSelect }) {
86171
86207
  });
86172
86208
  }
86173
86209
  //#endregion
86174
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
86210
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
86175
86211
  function statusInfo(status) {
86176
86212
  const minimal = isMinimalMode();
86177
86213
  switch (status) {
@@ -86459,7 +86495,7 @@ function JobsPanel({ jobs, onClose, onKill }) {
86459
86495
  });
86460
86496
  }
86461
86497
  //#endregion
86462
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
86498
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
86463
86499
  function formatDuration(ms) {
86464
86500
  if (ms < 1e3) return `${ms}ms`;
86465
86501
  if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
@@ -86917,7 +86953,7 @@ function FileActionsPanel({ path, isDir, focusIndex, onPick }) {
86917
86953
  });
86918
86954
  }
86919
86955
  //#endregion
86920
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
86956
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
86921
86957
  function oneLine(text, max = 70) {
86922
86958
  const compact = text.replace(/\s+/gu, " ").trim();
86923
86959
  return compact.length > max ? `${compact.slice(0, max - 1)}…` : compact;
@@ -87009,7 +87045,7 @@ function DiffLoading() {
87009
87045
  });
87010
87046
  }
87011
87047
  //#endregion
87012
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
87048
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
87013
87049
  /** `/copy` argument is a one-based reply age; omission selects the latest. */
87014
87050
  function parseCopyIndex(raw, count) {
87015
87051
  const value = raw.trim();
@@ -87039,7 +87075,7 @@ function copyChoiceText(candidate, index) {
87039
87075
  }
87040
87076
  /** Persist a private fallback when terminal clipboard integration is unavailable. */
87041
87077
  async function writeCopyFallback(text) {
87042
- const file = join(await mkdtemp(join(tmpdir(), "dsh-tui-copy-")), "response.txt");
87078
+ const file = join(await mkdtemp(join(tmpdir(), "chatcode-cli-copy-")), "response.txt");
87043
87079
  await writeFile(file, text, {
87044
87080
  encoding: "utf8",
87045
87081
  mode: 384
@@ -87062,7 +87098,7 @@ function gitDiffLines(report, labels) {
87062
87098
  ];
87063
87099
  }
87064
87100
  //#endregion
87065
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
87101
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
87066
87102
  /** Compact duration suitable for a terminal report row. */
87067
87103
  function formatStatsDuration(ms) {
87068
87104
  if (ms < 1e3) return `${Math.round(ms)} ms`;
@@ -87108,7 +87144,7 @@ function parsePresetManagement(input) {
87108
87144
  return { kind: "invalid" };
87109
87145
  }
87110
87146
  //#endregion
87111
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
87147
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
87112
87148
  const ALIASES = {
87113
87149
  map: "inspect",
87114
87150
  fixit: "repair",
@@ -87163,7 +87199,7 @@ function buildWorkflowCommand(name, rawInput = "") {
87163
87199
  };
87164
87200
  }
87165
87201
  //#endregion
87166
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
87202
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
87167
87203
  const EXTERNAL_SCHEME = /^https?:\/\//i;
87168
87204
  /**
87169
87205
  * Classify a clicked link target. Mirrors the previous handleOpenTarget
@@ -87188,7 +87224,7 @@ function classifyOpenTarget(url) {
87188
87224
  return { kind: "rejected" };
87189
87225
  }
87190
87226
  //#endregion
87191
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
87227
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
87192
87228
  /**
87193
87229
  * Subscribe to an external store's version counter at DEFAULT lane.
87194
87230
  *
@@ -87237,7 +87273,7 @@ function useExternalVersion(subscribe, getVersion, enabled = true) {
87237
87273
  return version;
87238
87274
  }
87239
87275
  //#endregion
87240
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
87276
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
87241
87277
  /**
87242
87278
  * The wake — the whole session drawn as one row of glyphs.
87243
87279
  *
@@ -87374,7 +87410,7 @@ function toHex(colour) {
87374
87410
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
87375
87411
  }
87376
87412
  //#endregion
87377
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
87413
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
87378
87414
  /**
87379
87415
  * The ledger — one line per event, columns aligned across every row.
87380
87416
  *
@@ -87620,7 +87656,7 @@ function Ledger({ rows, start, height, cursor, width, tick, arrivalTick, arrival
87620
87656
  });
87621
87657
  }
87622
87658
  //#endregion
87623
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
87659
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
87624
87660
  /**
87625
87661
  * The inspector — full detail for the focused row, in a fixed-height slot.
87626
87662
  *
@@ -87726,7 +87762,7 @@ function Inspector({ node, detail, height, width, expanded, scroll }) {
87726
87762
  });
87727
87763
  }
87728
87764
  //#endregion
87729
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
87765
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
87730
87766
  /**
87731
87767
  * The hotspot view — the session ranked by cost instead of ordered by time.
87732
87768
  *
@@ -87889,7 +87925,7 @@ function HotspotView({ agg, sort, width, height, cursor, tick, switchTick, onRow
87889
87925
  });
87890
87926
  }
87891
87927
  //#endregion
87892
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
87928
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
87893
87929
  /**
87894
87930
  * Trajectory query — whole-session structured filtering.
87895
87931
  *
@@ -88085,7 +88121,7 @@ function applyQuery(nodes, query) {
88085
88121
  };
88086
88122
  }
88087
88123
  //#endregion
88088
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
88124
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
88089
88125
  /**
88090
88126
  * The trajectory scene — the session's own screen.
88091
88127
  *
@@ -88573,7 +88609,7 @@ function TrajectoryScene({ channel, build, onClose }) {
88573
88609
  });
88574
88610
  }
88575
88611
  //#endregion
88576
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
88612
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
88577
88613
  /** Build the non-empty pages shown by the loaded-context inspector. */
88578
88614
  function contextPages(context) {
88579
88615
  const pages = [];
@@ -88757,7 +88793,7 @@ function LoadedContextScene({ context, onClose }) {
88757
88793
  });
88758
88794
  }
88759
88795
  //#endregion
88760
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
88796
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
88761
88797
  /** Rows the layout cannot do without: header, model/cwd line, dispatch
88762
88798
  * input, hints. */
88763
88799
  const MANDATORY_LINES = 4;
@@ -89361,7 +89397,7 @@ function AgentView({ channel, home, approval, onApprove, returnSessionId, onClos
89361
89397
  });
89362
89398
  }
89363
89399
  //#endregion
89364
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
89400
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
89365
89401
  /**
89366
89402
  * Persisted "the user has seen the trajectory" flag, at
89367
89403
  * `~/.chatcode-cli/tui/trajectory.json`.
@@ -89421,7 +89457,7 @@ function writeTrajectorySeen(dir = DATA_DIR) {
89421
89457
  }
89422
89458
  }
89423
89459
  //#endregion
89424
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
89460
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
89425
89461
  const NO_OVERLAY = { kind: "none" };
89426
89462
  /**
89427
89463
  * One-step wrap-around cursor move — the single source of the wrapping rule
@@ -89531,7 +89567,7 @@ function dialogOverlayVisible(overlay, gates) {
89531
89567
  }
89532
89568
  }
89533
89569
  //#endregion
89534
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
89570
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
89535
89571
  const LOGOUT_EXIT_DELAY_MS = 200;
89536
89572
  /** Shared empty snapshot for hosts whose channel has no event log. */
89537
89573
  const NO_EVENTS = [];
@@ -91272,9 +91308,10 @@ function Chat({ channel, questionStore, approvalStore, releaseNotes, extensionDi
91272
91308
  return true;
91273
91309
  case "config": {
91274
91310
  const chatCodeHome = resolveChatCodeCliHome();
91311
+ const profile = resolveDshProfileName() ?? "cli";
91275
91312
  const lines = [
91276
- t("doctor-example-config", { path: "chatcode-cli --profile dsh-tui" }),
91277
- t("doctor-user-config", { path: `${chatCodeHome}/profiles/dsh-tui/cordis.patch.yml` }),
91313
+ t("doctor-example-config", { path: `chatcode-cli --profile ${profile}` }),
91314
+ t("doctor-user-config", { path: `${chatCodeHome}/profiles/${profile}/cordis.patch.yml` }),
91278
91315
  "",
91279
91316
  t("doctor-launch-hint"),
91280
91317
  t("doctor-route-hint")
@@ -93328,7 +93365,7 @@ function ModelPickerLoading() {
93328
93365
  });
93329
93366
  }
93330
93367
  //#endregion
93331
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
93368
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
93332
93369
  const MAIN_CLI_PACKAGE = "@chatcode/chatcode-cli";
93333
93370
  function asError(value) {
93334
93371
  return value instanceof Error ? value : new Error(String(value));
@@ -93449,7 +93486,7 @@ function launchWebFrontend(cwd, options = {}) {
93449
93486
  }
93450
93487
  }
93451
93488
  //#endregion
93452
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
93489
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
93453
93490
  /**
93454
93491
  * External injection channel — lets an out-of-process editor integration
93455
93492
  * (e.g. the `dsh.nvim` Neovim plugin) push text into the running TUI's
@@ -93644,7 +93681,7 @@ function openInjectChannel(sessionId, cwd, handlers, onError) {
93644
93681
  };
93645
93682
  }
93646
93683
  //#endregion
93647
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
93684
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
93648
93685
  const CHATCODE_CLI_OAUTH_TOKEN = "CHATCODE_CLI_OAUTH_TOKEN";
93649
93686
  const DEFAULT_SERVICE_WAIT_MS = 75e3;
93650
93687
  function authService(ctx) {
@@ -93710,13 +93747,13 @@ async function promptChoice(promptText, invalidText) {
93710
93747
  while (true) {
93711
93748
  let answer;
93712
93749
  try {
93713
- answer = (await prompt.question(`[cco-cli] ${promptText}`)).trim().toLowerCase();
93750
+ answer = (await prompt.question(`[chatcode-cli] ${promptText}`)).trim().toLowerCase();
93714
93751
  } catch {
93715
93752
  return "exit";
93716
93753
  }
93717
93754
  if (answer === "1" || answer === "r" || answer === "retry") return "retry";
93718
93755
  if (answer === "" || answer === "2" || answer === "q" || answer === "quit" || answer === "exit") return "exit";
93719
- process.stderr.write(`[cco-cli] ${invalidText}\n`);
93756
+ process.stderr.write(`[chatcode-cli] ${invalidText}\n`);
93720
93757
  }
93721
93758
  } finally {
93722
93759
  prompt.close();
@@ -93822,7 +93859,7 @@ async function requireChatCodeStartupLogin(ctx, options) {
93822
93859
  return "ready";
93823
93860
  }
93824
93861
  //#endregion
93825
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
93862
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
93826
93863
  /** Bind authenticated statistics requests to one TUI lifetime. */
93827
93864
  function createChatCodeAuthorizedPost(ctx) {
93828
93865
  const lifetime = new AbortController();
@@ -93861,7 +93898,7 @@ function createChatCodeAuthorizedPost(ctx) {
93861
93898
  };
93862
93899
  }
93863
93900
  //#endregion
93864
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
93901
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.15_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
93865
93902
  /**
93866
93903
  * Interactive TUI front door for ChatCode CLI agents.
93867
93904
  *
@@ -93960,7 +93997,7 @@ async function apply(ctx, config) {
93960
93997
  const hostMode = resolveTuiHostMode();
93961
93998
  if (hostMode === "invalid-explicit-launch") {
93962
93999
  if (readTuiEnv("RESTART_CHILD") === "1") logRestartEvent("boot: TTY gate failed - stdout is not a TTY");
93963
- throw new Error("dsh-tui requires an interactive terminal (stdout must be a TTY).");
94000
+ throw new Error("chatcode-cli requires an interactive terminal (stdout must be a TTY).");
93964
94001
  }
93965
94002
  if (hostMode === "headless-host") {
93966
94003
  ctx.logger.info("ChatCode CLI TUI: non-interactive host detected (stdout is not a TTY); skipping the TUI frontend");
@@ -93983,7 +94020,7 @@ async function apply(ctx, config) {
93983
94020
  }
93984
94021
  const chatCodeStartup = await requireChatCodeStartupLogin(ctx, {
93985
94022
  openUrl: openExternal,
93986
- report: (message) => process.stderr.write(`[cco-cli] ${message}\n`)
94023
+ report: (message) => process.stderr.write(`[chatcode-cli] ${message}\n`)
93987
94024
  });
93988
94025
  if (chatCodeStartup === "exit" || chatCodeStartup === "blocked") {
93989
94026
  const exit = ctx.get("appExit");
@@ -94004,8 +94041,8 @@ async function apply(ctx, config) {
94004
94041
  if (process.stderr.isTTY) process.stderr.write(`\nChatCode CLI TUI: 更新后版本未变化(仍为 ${now ?? "unknown"},原为 ${updatedFrom});可能是镜像 registry 未同步,请稍后重试或检查 registry 配置。\n`);
94005
94042
  } else if (process.stderr.isTTY) {
94006
94043
  const launcherVersion = readTuiEnv("LAUNCHER_VERSION");
94007
- if (launcherVersion === void 0) process.stderr.write(`\n[cco-cli] ${t("update-launcher-align-unknown", { version: now })}\n`);
94008
- else if (isVersionNewer(now, launcherVersion)) process.stderr.write(`\n[cco-cli] ${t("update-launcher-outdated", {
94044
+ if (launcherVersion === void 0) process.stderr.write(`\n[chatcode-cli] ${t("update-launcher-align-unknown", { version: now })}\n`);
94045
+ else if (isVersionNewer(now, launcherVersion)) process.stderr.write(`\n[chatcode-cli] ${t("update-launcher-outdated", {
94009
94046
  profile: now,
94010
94047
  launcher: launcherVersion
94011
94048
  })}\n`);
@@ -94351,7 +94388,7 @@ async function apply(ctx, config) {
94351
94388
  {
94352
94389
  const unregister = (getHostSettingsSections(ctx.get("tuiSettingsSections")) ?? getLocalSettingsSectionsHost()).register({
94353
94390
  ns: "dsh-tui",
94354
- title: "dsh-tui",
94391
+ title: "chatcode-cli",
94355
94392
  groups: [
94356
94393
  {
94357
94394
  id: "status-bar",
@@ -94817,7 +94854,7 @@ async function apply(ctx, config) {
94817
94854
  if (error !== void 0) {
94818
94855
  const message = error instanceof Error ? error.message : String(error);
94819
94856
  ctx.logger.error(`ChatCode CLI TUI: exit after error: ${message}`);
94820
- finishExit(ctx, instance, bootedFullscreen, void 0, `dsh-tui crashed: ${message}`, () => disposeRootAndExit(ctx, 1));
94857
+ finishExit(ctx, instance, bootedFullscreen, void 0, `chatcode-cli crashed: ${message}`, () => disposeRootAndExit(ctx, 1));
94821
94858
  return;
94822
94859
  }
94823
94860
  if (updateRequested) {
@@ -95206,12 +95243,12 @@ function runRestart(ctx, profile, sessionId) {
95206
95243
  logRestartEvent("runRestart: root disposed, starting restartTui");
95207
95244
  restartTui(sessionId).then((restartCode) => {
95208
95245
  logRestartEvent("runRestart: restartTui resolved", { restartCode });
95209
- if (restartCode !== 0) writeHandoffNotice(`\ndsh-tui restart failed to spawn (exit ${restartCode}). Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95246
+ if (restartCode !== 0) writeHandoffNotice(`\nchatcode-cli restart failed to spawn (exit ${restartCode}). Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95210
95247
  process.exit(restartCode);
95211
95248
  }, (restartError) => {
95212
95249
  const message = restartError instanceof Error ? restartError.message : String(restartError);
95213
95250
  logRestartEvent("runRestart: restartTui rejected", { message });
95214
- writeHandoffNotice(`\ndsh-tui restart failed: ${message}. Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95251
+ writeHandoffNotice(`\nchatcode-cli restart failed: ${message}. Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95215
95252
  process.exit(1);
95216
95253
  });
95217
95254
  });
@@ -95223,11 +95260,11 @@ function runUpdate(ctx, profile, sessionId, targetVersion) {
95223
95260
  process.exit(1);
95224
95261
  }
95225
95262
  updateTuiAndRestart(sessionId, profile, targetVersion).then(({ updateCode, restartCode }) => {
95226
- if (updateCode !== 0) process.stderr.write(`\ndsh-tui update failed (exit ${updateCode}). Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95263
+ if (updateCode !== 0) process.stderr.write(`\nchatcode-cli update failed (exit ${updateCode}). Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95227
95264
  process.exit(restartCode);
95228
95265
  }, (updateError) => {
95229
95266
  const message = updateError instanceof Error ? updateError.message : String(updateError);
95230
- process.stderr.write(`\ndsh-tui update failed: ${message}. Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95267
+ process.stderr.write(`\nchatcode-cli update failed: ${message}. Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95231
95268
  process.exit(1);
95232
95269
  });
95233
95270
  });
@@ -95254,7 +95291,7 @@ function disposeRootAndExit(ctx, code) {
95254
95291
  */
95255
95292
  function resumeCommand(profile, sessionId) {
95256
95293
  const boot = profile === void 0 ? "chatcode-cli --config cordis.yml" : `chatcode-cli --profile ${profile}`;
95257
- return process.platform === "win32" ? `dsh-tui --resume ${sessionId}` : `CHATCODE_CLI_TUI_RESUME_SESSION=${sessionId} ${boot}`;
95294
+ return process.platform === "win32" ? `${profile === void 0 ? "chatcode-cli" : boot} --resume ${sessionId}` : `CHATCODE_CLI_TUI_RESUME_SESSION=${sessionId} ${boot}`;
95258
95295
  }
95259
95296
  /**
95260
95297
  * Dispose the Cordis tree, then run a process-level handoff action. The