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

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-CBJRI2gy.js} +12 -12
  2. package/lib/{command-trees-CdgUsoW4.js → command-trees-Dvq4C7a4.js} +2 -2
  3. package/lib/{component-identity-ax93NpoH.js → component-identity-DPdJglJO.js} +3 -3
  4. package/lib/{extension-events-DJTP1cCG.js → extension-events-Be9LWvHD.js} +20 -20
  5. package/lib/{host-access-D3lpiaUY.js → host-access-DeCjoRQP.js} +1 -1
  6. package/lib/{keymap-DAr6MX8m.js → keymap-CRUxM_qn.js} +2 -2
  7. package/lib/{plugin-BGw2QmPK.js → plugin-CDFSDE_y.js} +456 -390
  8. package/lib/{scenes-BeuL5ow2.js → scenes-D6jV1EEi.js} +3 -3
  9. package/lib/{settings-sections-dGk8gNU7.js → settings-sections-DJQRNBo9.js} +3 -3
  10. package/lib/{themes-O-UQAfC7.js → themes-BCly4_y9.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-Dm_fULiR.js} +2 -2
  20. package/lib/{workspaces-CE18wA21.js → workspaces-Bb3kCAFb.js} +2 -2
  21. package/package.json +23 -23
  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-Dm_fULiR.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-CRUxM_qn.js";
4
+ import { c as withHostRootCapability } from "./host-access-DeCjoRQP.js";
5
+ import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-Bb3kCAFb.js";
6
+ import { n as getHostCommandTrees } from "./command-trees-Dvq4C7a4.js";
7
+ import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-DJQRNBo9.js";
8
+ import { n as getHostSceneRuntime } from "./scenes-D6jV1EEi.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-Be9LWvHD.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-CBJRI2gy.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-BCly4_y9.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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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.16_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
  *
@@ -12188,6 +12204,12 @@ function timeOf$1(line) {
12188
12204
  const time = line["time"];
12189
12205
  return typeof time === "number" && Number.isFinite(time) ? time : void 0;
12190
12206
  }
12207
+ /** Advance an observed event time without inventing a zero timestamp. */
12208
+ function laterTime(current, line) {
12209
+ const next = timeOf$1(line);
12210
+ if (next === void 0) return current;
12211
+ return current === void 0 ? next : Math.max(current, next);
12212
+ }
12191
12213
  /**
12192
12214
  * Read both windows of one session log.
12193
12215
  *
@@ -12210,10 +12232,13 @@ function digestSession(path, cwd) {
12210
12232
  const headLines = decodedHead.flatMap((lines) => lines ?? []);
12211
12233
  const headComplete = head.whole && headFrames.at(-1)?.end === head.buffer.length && decodedHead.every((lines) => lines !== void 0) && headLines.some((line) => line["type"] === "session");
12212
12234
  let prompt;
12235
+ let lastPromptAt;
12213
12236
  let headTitle;
12214
12237
  let label;
12215
12238
  for (const line of headLines) {
12216
- prompt ??= humanPrompt(line);
12239
+ const human = humanPrompt(line);
12240
+ prompt ??= human;
12241
+ if (human !== void 0) lastPromptAt = laterTime(lastPromptAt, line);
12217
12242
  headTitle ??= titleOf(line);
12218
12243
  label ??= labelOf(line);
12219
12244
  }
@@ -12224,6 +12249,7 @@ function digestSession(path, cwd) {
12224
12249
  let provider;
12225
12250
  let model;
12226
12251
  for (const line of tailLines) {
12252
+ if (humanPrompt(line) !== void 0) lastPromptAt = laterTime(lastPromptAt, line);
12227
12253
  const title = titleOf(line);
12228
12254
  if (title !== void 0) tailTitle = title;
12229
12255
  const route = modelOf(line);
@@ -12241,6 +12267,7 @@ function digestSession(path, cwd) {
12241
12267
  source: "fallback"
12242
12268
  },
12243
12269
  hasPrompt,
12270
+ ...lastPromptAt === void 0 ? {} : { lastPromptAt },
12244
12271
  provider,
12245
12272
  model,
12246
12273
  label,
@@ -12366,6 +12393,7 @@ async function recoverAppendedTitle(path, start, end, signal) {
12366
12393
  };
12367
12394
  }
12368
12395
  let latest;
12396
+ let lastPromptAt;
12369
12397
  try {
12370
12398
  let position = start;
12371
12399
  while (position < end) {
@@ -12373,27 +12401,34 @@ async function recoverAppendedTitle(path, start, end, signal) {
12373
12401
  const page = await forwardPage(handle, position, end, signal);
12374
12402
  if (page === void 0) return {
12375
12403
  title: latest,
12376
- complete: false
12404
+ complete: false,
12405
+ ...lastPromptAt === void 0 ? {} : { lastPromptAt }
12377
12406
  };
12378
12407
  for (const frame of page.frames) {
12379
12408
  const lines = decodeFrame(page.buffer, frame);
12380
12409
  if (lines === void 0) return {
12381
12410
  title: latest,
12382
- complete: false
12411
+ complete: false,
12412
+ ...lastPromptAt === void 0 ? {} : { lastPromptAt }
12383
12413
  };
12384
- for (const line of lines) latest = titleOf(line) ?? latest;
12414
+ for (const line of lines) {
12415
+ if (humanPrompt(line) !== void 0) lastPromptAt = laterTime(lastPromptAt, line);
12416
+ latest = titleOf(line) ?? latest;
12417
+ }
12385
12418
  }
12386
12419
  const consumed = page.frames[page.frames.length - 1].end;
12387
12420
  if (consumed <= 0) return {
12388
12421
  title: latest,
12389
- complete: false
12422
+ complete: false,
12423
+ ...lastPromptAt === void 0 ? {} : { lastPromptAt }
12390
12424
  };
12391
12425
  position += consumed;
12392
12426
  await scheduler.yield();
12393
12427
  }
12394
12428
  return {
12395
12429
  title: latest,
12396
- complete: true
12430
+ complete: true,
12431
+ ...lastPromptAt === void 0 ? {} : { lastPromptAt }
12397
12432
  };
12398
12433
  } finally {
12399
12434
  await handle.close().catch(() => {});
@@ -12534,7 +12569,7 @@ function previewSession(path, limit) {
12534
12569
  return entries.slice(-limit);
12535
12570
  }
12536
12571
  //#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
12572
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
12538
12573
  /** Read-only artifact lookup for session summaries and previews. */
12539
12574
  /** Highest published compressed generation; temporary migration files are ignored. */
12540
12575
  function inDirectory(directory) {
@@ -12587,7 +12622,7 @@ function findSessionArtifact(sessionId, target) {
12587
12622
  }
12588
12623
  }
12589
12624
  //#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
12625
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
12591
12626
  /**
12592
12627
  * The session index — a local cache keyed by the backend's own change token.
12593
12628
  *
@@ -12618,10 +12653,10 @@ function findSessionArtifact(sessionId, target) {
12618
12653
  * @module @chatcode/cco-tui/sessions/store
12619
12654
  */
12620
12655
  /**
12621
- * Version 4 re-derives v3 summaries: missing historical paths and incomplete
12622
- * reads could previously be cached as empty. Local branch notes survive.
12656
+ * Version 5 re-derives older summaries so activity time comes from the latest
12657
+ * human prompt rather than a rename-updated file mtime. Local branch notes survive.
12623
12658
  */
12624
- const SCHEMA_VERSION = 4;
12659
+ const SCHEMA_VERSION = 5;
12625
12660
  const INDEX_FILE = join(DATA_DIR, "session-index.json");
12626
12661
  /** A title source as written to disk, or undefined for anything unexpected. */
12627
12662
  function readTitleSource(value) {
@@ -12664,6 +12699,7 @@ function readEntry(value, trustDerived) {
12664
12699
  titleSource,
12665
12700
  titleComplete,
12666
12701
  hasPrompt: derived["hasPrompt"] === true,
12702
+ lastPromptAt: typeof derived["lastPromptAt"] === "number" && Number.isFinite(derived["lastPromptAt"]) ? derived["lastPromptAt"] : void 0,
12667
12703
  provider: typeof derived["provider"] === "string" ? derived["provider"] : void 0,
12668
12704
  model: typeof derived["model"] === "string" ? derived["model"] : void 0,
12669
12705
  label: typeof derived["label"] === "string" ? derived["label"] : void 0
@@ -12685,7 +12721,7 @@ function readIndex() {
12685
12721
  }
12686
12722
  if (parsed === null || typeof parsed !== "object") return index;
12687
12723
  const file = parsed;
12688
- if (file["version"] !== SCHEMA_VERSION && file["version"] !== 3) return index;
12724
+ if (file["version"] !== SCHEMA_VERSION && file["version"] !== 4 && file["version"] !== 3) return index;
12689
12725
  const entries = file["entries"];
12690
12726
  if (entries === null || typeof entries !== "object") return index;
12691
12727
  for (const [id, value] of Object.entries(entries)) {
@@ -12750,7 +12786,7 @@ function noteBranch(sessionId, branch) {
12750
12786
  writeIndex(index);
12751
12787
  }
12752
12788
  //#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
12789
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
12754
12790
  /**
12755
12791
  * Building the session list.
12756
12792
  *
@@ -12773,6 +12809,11 @@ function noteBranch(sessionId, branch) {
12773
12809
  */
12774
12810
  /** Compressed bytes one listing may spend on full-log title recovery scans. */
12775
12811
  const TITLE_SCAN_BUDGET_BYTES = 16 * 1024 * 1024;
12812
+ /** Latest defined timestamp, preserving undefined when no source knows one. */
12813
+ function latestTime(...values) {
12814
+ const known = values.filter((value) => value !== void 0);
12815
+ return known.length === 0 ? void 0 : Math.max(...known);
12816
+ }
12776
12817
  /** Pull `{ header, revision }` out of one `listSnapshots()` element. */
12777
12818
  function readSnapshot(value) {
12778
12819
  if (value === null || typeof value !== "object") return void 0;
@@ -12876,6 +12917,7 @@ async function listSummaries(source, signal) {
12876
12917
  const digest = digestSession(path, header.cwd ?? "");
12877
12918
  let title = digest.title;
12878
12919
  let hasPrompt = digest.hasPrompt;
12920
+ let lastPromptAt = digest.lastPromptAt;
12879
12921
  let titleComplete = digest.titleComplete === true;
12880
12922
  const previous = cached?.derived;
12881
12923
  if (!titleComplete && previous !== void 0 && facts !== void 0 && previous.identity !== void 0 && previous.identity === facts.identity && previous.anchor !== void 0 && facts.bytes >= previous.bytes) {
@@ -12885,17 +12927,19 @@ async function listSummaries(source, signal) {
12885
12927
  text: previous.title,
12886
12928
  source: previous.titleSource
12887
12929
  };
12888
- hasPrompt = previous.hasPrompt;
12930
+ hasPrompt = hasPrompt || previous.hasPrompt;
12931
+ lastPromptAt = latestTime(lastPromptAt, previous.lastPromptAt);
12889
12932
  titleComplete = true;
12890
12933
  } else if (facts.bytes > previous.bytes) {
12891
12934
  const appended = await recoverAppendedTitle(path, previous.bytes, facts.bytes, signal);
12892
12935
  if (appended.title !== void 0) title = appended.title;
12936
+ lastPromptAt = latestTime(lastPromptAt, previous.lastPromptAt, appended.lastPromptAt);
12893
12937
  if (appended.complete && (appended.title !== void 0 || previous.titleComplete)) {
12894
12938
  if (appended.title === void 0) title = previous.title.length === 0 ? void 0 : {
12895
12939
  text: previous.title,
12896
12940
  source: previous.titleSource
12897
12941
  };
12898
- hasPrompt = previous.hasPrompt;
12942
+ hasPrompt = hasPrompt || previous.hasPrompt;
12899
12943
  titleComplete = true;
12900
12944
  }
12901
12945
  }
@@ -12910,6 +12954,7 @@ async function listSummaries(source, signal) {
12910
12954
  titleSource: title?.source ?? "fallback",
12911
12955
  titleComplete,
12912
12956
  hasPrompt,
12957
+ lastPromptAt,
12913
12958
  provider: digest.provider,
12914
12959
  model: digest.model,
12915
12960
  label: digest.label
@@ -12986,7 +13031,7 @@ async function listSummaries(source, signal) {
12986
13031
  },
12987
13032
  cwd: header.cwd ?? "",
12988
13033
  createdAt: header.createdAt ?? facts?.modifiedAt ?? 0,
12989
- updatedAt: Math.max(facts?.modifiedAt ?? 0, lastUsed[header.id] ?? 0, header.createdAt ?? 0),
13034
+ updatedAt: Math.max(derived?.lastPromptAt ?? (derived === void 0 ? facts?.modifiedAt ?? 0 : 0), lastUsed[header.id] ?? 0, header.createdAt ?? 0),
12990
13035
  bytes: facts?.bytes,
12991
13036
  hasPrompt: derived?.hasPrompt ?? true,
12992
13037
  agentPreset: header.agentPreset,
@@ -13022,7 +13067,7 @@ async function locateSession(source, sessionId, signal) {
13022
13067
  return match === void 0 ? void 0 : locate$1(source, match.raw, sessionId);
13023
13068
  }
13024
13069
  //#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
13070
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
13026
13071
  /**
13027
13072
  * Agent view (CC `claude agents`) derivation helpers — pure functions over
13028
13073
  * session events that the channel folds into {@link AgentViewRow}s. Kept in
@@ -13252,7 +13297,7 @@ function featureOn(config, name) {
13252
13297
  return config.mode !== "minimal";
13253
13298
  }
13254
13299
  //#endregion
13255
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13300
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13256
13301
  /**
13257
13302
  * Persisted working-activity indicator preference, mirroring the pi
13258
13303
  * working-activity extension's `~/.pi/agent/working-activity.json`
@@ -13321,7 +13366,7 @@ function writeActivityFrames(name, dir = PREFS_DIR$5) {
13321
13366
  }
13322
13367
  }
13323
13368
  //#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
13369
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
13325
13370
  const pathSeparators = /[\\/]/;
13326
13371
  function isPathLikeQuery(query) {
13327
13372
  return query.startsWith(".") || query.startsWith("~") || query.startsWith("/") || /^[A-Za-z]:[\\/]/.test(query) || pathSeparators.test(query);
@@ -13358,7 +13403,7 @@ function preserveSelection(previous, next, fallback = 0) {
13358
13403
  return next.length === 0 ? 0 : Math.min(Math.max(0, fallback), next.length - 1);
13359
13404
  }
13360
13405
  //#endregion
13361
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13406
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13362
13407
  /**
13363
13408
  * Persisted reasoning-effort preference (`~/.chatcode-cli/tui/effort.json`). Set via
13364
13409
  * `/effort` (slider or `/effort <id>`; `/effort status` reports the current
@@ -13400,7 +13445,7 @@ function writeEffortPref(effort, dir = PREFS_DIR$4) {
13400
13445
  }
13401
13446
  }
13402
13447
  //#endregion
13403
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13448
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13404
13449
  /**
13405
13450
  * Persisted model-route preference (`/model` picker choice), kept at
13406
13451
  * `~/.chatcode-cli/model.json` (`provider` + `model` keys) so CLI and Web share it
@@ -13483,7 +13528,7 @@ function writeModelPref(provider, model, dir = PREFS_DIR$3) {
13483
13528
  }
13484
13529
  }
13485
13530
  //#endregion
13486
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13531
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13487
13532
  /**
13488
13533
  * Model route resolution (issue #67). The `(provider, model)` pair is a
13489
13534
  * single value: every source either supplies the WHOLE route or is skipped,
@@ -13718,7 +13763,7 @@ function orderModelProviders(providers) {
13718
13763
  return [...providers].sort((left, right) => rank(left.id) - rank(right.id));
13719
13764
  }
13720
13765
  //#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
13766
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelSettings.js
13722
13767
  /**
13723
13768
  * Read and update ChatCode CLI's user-defined model list in
13724
13769
  * `~/.chatcode-cli/settings.json` without exposing stored API keys to the UI.
@@ -13859,7 +13904,7 @@ function createCustomModelSettingsStore(path) {
13859
13904
  };
13860
13905
  }
13861
13906
  //#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
13907
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelTest.js
13863
13908
  /** Direct, one-shot generation used by `/model-config` before a model is registered. */
13864
13909
  function requestEndpoint(baseURL, api) {
13865
13910
  const url = new URL(baseURL);
@@ -13937,7 +13982,7 @@ async function testCustomModelConnection(request, fetchImpl = fetch) {
13937
13982
  }
13938
13983
  }
13939
13984
  //#endregion
13940
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
13985
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
13941
13986
  /**
13942
13987
  * Persisted agent-preset preference (`/preset` picker choice), kept at
13943
13988
  * `~/.chatcode-cli/tui/agent-preset.json` (`preset` key) so the choice survives
@@ -13996,7 +14041,7 @@ function migratePresetPref(requested, resolved, dir = PREFS_DIR$2) {
13996
14041
  return requested === void 0 || resolved === void 0 || requested === resolved ? true : writePresetPref(resolved, dir);
13997
14042
  }
13998
14043
  //#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
14044
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
14000
14045
  /** Undefined means the service exposes neither supported read API. */
14001
14046
  async function readPersistedSession(persistence, id) {
14002
14047
  if (persistence === null || typeof persistence !== "object") return void 0;
@@ -14016,7 +14061,7 @@ async function readPersistedSession(persistence, id) {
14016
14061
  if (typeof reader.load === "function") return reader.load(id);
14017
14062
  }
14018
14063
  //#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
14064
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
14020
14065
  /**
14021
14066
  * Agent-preset resolution across upstream prerelease lines.
14022
14067
  *
@@ -14054,7 +14099,7 @@ async function resolveCompatiblePreset(presets, requested) {
14054
14099
  return presets.resolve(requested);
14055
14100
  }
14056
14101
  //#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
14102
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
14058
14103
  /**
14059
14104
  * Agent-presets roster integration (issue #8): compose each session's
14060
14105
  * model-facing world (tools, prompt sections, projections) from one preset
@@ -14204,7 +14249,7 @@ function serviceForAgent(ctx, agent, key) {
14204
14249
  return ctx.get(key);
14205
14250
  }
14206
14251
  //#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
14252
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
14208
14253
  const failureReason = (error) => error instanceof Error ? error.message : String(error);
14209
14254
  /** Read a roster-resolved composition without bypassing preset ownership. */
14210
14255
  async function readPresetComposition(presets, presetId) {
@@ -14261,7 +14306,7 @@ async function removePresetComposition(presets, presetId) {
14261
14306
  }
14262
14307
  }
14263
14308
  //#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
14309
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
14265
14310
  /** Adapter-only readers for optional Harness session-organization services. */
14266
14311
  const STAT_KEYS = [
14267
14312
  "turns",
@@ -14322,7 +14367,7 @@ function presetCompositionRows(content, limit = 80) {
14322
14367
  };
14323
14368
  }
14324
14369
  //#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
14370
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
14326
14371
  /**
14327
14372
  * Debug logger for the ported Ink core. Writes to stderr only when
14328
14373
  * `CHATCODE_CLI_TUI_DEBUG` (or its legacy alias) is set, so normal runs stay quiet.
@@ -14332,7 +14377,7 @@ function presetCompositionRows(content, limit = 80) {
14332
14377
  function logForDebugging(message, fields) {
14333
14378
  if (!readTuiEnv("DEBUG")) return;
14334
14379
  const suffix = fields === void 0 ? "" : ` ${JSON.stringify(fields)}`;
14335
- process.stderr.write(`[cco-cli] ${message}${suffix}\n`);
14380
+ process.stderr.write(`[chatcode-cli] ${message}${suffix}\n`);
14336
14381
  }
14337
14382
  /**
14338
14383
  * Mouse-chain diagnostics: appends below the ChatCode CLI TUI data root when
@@ -14352,7 +14397,7 @@ function logMouseDebug(message, fields) {
14352
14397
  } catch {}
14353
14398
  }
14354
14399
  //#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
14400
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
14356
14401
  /**
14357
14402
  * `@` file-mention parsing (issue #15).
14358
14403
  *
@@ -14498,7 +14543,7 @@ function mentionAtCaret(value, cursor) {
14498
14543
  };
14499
14544
  }
14500
14545
  //#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
14546
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
14502
14547
  /** Format only the files in the authoritative loaded-context projection. */
14503
14548
  function loadedFileLines(files, copy) {
14504
14549
  if (files === void 0) return [copy.unavailable];
@@ -14613,7 +14658,7 @@ function codeRatioLines(report, copy, maxAuthors = 20) {
14613
14658
  return lines;
14614
14659
  }
14615
14660
  //#endregion
14616
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14661
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14617
14662
  /**
14618
14663
  * Cordis-free theme catalog shared by future pickers, commands and hosts.
14619
14664
  *
@@ -14694,7 +14739,7 @@ function listThemeCatalog(host) {
14694
14739
  return Object.freeze(entries);
14695
14740
  }
14696
14741
  //#endregion
14697
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14742
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14698
14743
  /**
14699
14744
  * Configurable Shift+Tab session modes (the `modes` dsh-tui plugin config):
14700
14745
  * each mode is a named bundle of optional DSH plane switches — plan mode
@@ -14758,7 +14803,7 @@ function modeDisplayName(spec) {
14758
14803
  return spec.id;
14759
14804
  }
14760
14805
  //#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
14806
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
14762
14807
  /** Unified subagent activity domain model used by the adapter and every view. */
14763
14808
  const MAX_OUTPUT_EVENTS = 160;
14764
14809
  const MAX_OUTPUT_LINES = 160;
@@ -15136,7 +15181,7 @@ function formatJobDuration(job, now = Date.now()) {
15136
15181
  return `${Math.floor(minutes / 60)}h${String(minutes % 60).padStart(2, "0")}m`;
15137
15182
  }
15138
15183
  //#endregion
15139
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
15184
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
15140
15185
  /**
15141
15186
  * Minimal mode: one process-wide flag gating decorative UI (header splash,
15142
15187
  * emoji status glyphs, non-tool text colors, status-bar extras). The flag is
@@ -15155,7 +15200,7 @@ function setMinimalMode(enabled) {
15155
15200
  minimal = enabled;
15156
15201
  }
15157
15202
  //#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
15203
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
15159
15204
  /**
15160
15205
  * Find or create the Workspace for `cwd`, then durably account `sessionId`.
15161
15206
  *
@@ -15171,7 +15216,7 @@ async function attachSessionToWorkspace(ctx, cwd, sessionId) {
15171
15216
  return true;
15172
15217
  }
15173
15218
  //#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
15219
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
15175
15220
  /**
15176
15221
  * Upstream compatibility contract.
15177
15222
  *
@@ -15600,7 +15645,7 @@ function pluginsInfoLines(args, deps) {
15600
15645
  return lines;
15601
15646
  }
15602
15647
  //#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
15648
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
15604
15649
  /** Loader and tool-registry projection used by the TUI's `/mcp` report. */
15605
15650
  const MCP_CLIENT_PACKAGE = "@deepseek-ai/dsh-mcp-client";
15606
15651
  const FIBER_ACTIVE = 2;
@@ -15653,7 +15698,7 @@ function collectMcpServerStatus(schemas, entries) {
15653
15698
  }));
15654
15699
  }
15655
15700
  //#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
15701
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
15657
15702
  /**
15658
15703
  * Number, token-count, and duration formatters shared by the status line
15659
15704
  * and message rows.
@@ -15716,7 +15761,7 @@ function formatDuration$4(durationMs, options = {}) {
15716
15761
  return parts.join(" ");
15717
15762
  }
15718
15763
  //#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
15764
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
15720
15765
  /**
15721
15766
  * Return the current context occupancy. The latest request is authoritative:
15722
15767
  * its uncached input and cache read/write tokens are all part of that request's
@@ -16100,7 +16145,7 @@ function prepareMemoryTargetFile(requested, candidates, cwd, dshHome) {
16100
16145
  }
16101
16146
  }
16102
16147
  //#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
16148
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
16104
16149
  /** Return the step left open by a tree fork cut within one turn. */
16105
16150
  function openStepAtForkCut(events, turn) {
16106
16151
  for (let i = events.length - 1; i >= 0; i--) {
@@ -16810,7 +16855,7 @@ function createChannel(ctx, initialAgent, options) {
16810
16855
  if (!jobs?.kill) return false;
16811
16856
  const job = jobStore.get(id);
16812
16857
  try {
16813
- jobs.kill(id, agent, "dsh-tui /jobs panel");
16858
+ jobs.kill(id, agent, "chatcode-cli /jobs panel");
16814
16859
  } catch {
16815
16860
  return false;
16816
16861
  }
@@ -18680,7 +18725,7 @@ function createChannel(ctx, initialAgent, options) {
18680
18725
  const location = locate.call(persistence, entry.raw);
18681
18726
  if (location !== null && typeof location === "object") {
18682
18727
  const record = location;
18683
- if (record.kind === "jsonl" && typeof record.path === "string") locatedPath = record.path;
18728
+ if (record.kind === "jsonl" && typeof record.path === "string") locatedPath = findSessionArtifact(id, record.path);
18684
18729
  }
18685
18730
  } catch {}
18686
18731
  let inheritedCut = parentId === void 0 ? void 0 : readInheritedCut(entry?.raw);
@@ -18971,7 +19016,7 @@ function createChannel(ctx, initialAgent, options) {
18971
19016
  appendSessionTitle(String(childId), forkSessionTitle(title, state.sessionTitle, String(source.id)));
18972
19017
  const profile = resolveDshProfileName();
18973
19018
  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}`;
19019
+ const command = process.platform === "win32" ? `${profile === void 0 ? "chatcode-cli" : boot} --resume ${childId}` : `CHATCODE_CLI_TUI_RESUME_SESSION=${childId} ${boot}`;
18975
19020
  state.notify(t("fork-done", {
18976
19021
  id: String(childId),
18977
19022
  command
@@ -20661,7 +20706,7 @@ function createChannel(ctx, initialAgent, options) {
20661
20706
  }
20662
20707
  default: break;
20663
20708
  }
20664
- const fileName = `dsh-tui-export-${Date.now()}.md`;
20709
+ const fileName = `chatcode-cli-export-${Date.now()}.md`;
20665
20710
  try {
20666
20711
  const target = join(state.cwd, fileName);
20667
20712
  writeFileSync(target, parts.join("\n"), "utf8");
@@ -22550,7 +22595,7 @@ async function expandMentions(fs, cwd, text, attachments, stagedImages) {
22550
22595
  };
22551
22596
  }
22552
22597
  //#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
22598
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
22554
22599
  /**
22555
22600
  * Child-process stderr guard (issue #17).
22556
22601
  *
@@ -22719,7 +22764,7 @@ function createChildStderrReporter(notify, options = {}) {
22719
22764
  };
22720
22765
  }
22721
22766
  //#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
22767
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
22723
22768
  /**
22724
22769
  * Ask-user-question store — the UI-side half of the DSH user-interaction
22725
22770
  * seam (`ctx.userQuestions`). The harness's model-facing
@@ -22959,7 +23004,7 @@ var QuestionStore = class {
22959
23004
  }
22960
23005
  };
22961
23006
  //#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
23007
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
22963
23008
  /**
22964
23009
  * Question-provider seat guard (issue #98 security follow-up).
22965
23010
  *
@@ -23071,7 +23116,7 @@ function incumbentQuestionProviderId(service) {
23071
23116
  } catch {}
23072
23117
  }
23073
23118
  //#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
23119
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
23075
23120
  /**
23076
23121
  * User-question answerer compatibility.
23077
23122
  *
@@ -23130,7 +23175,7 @@ function prepareQuestionAnswerer(ctx, service, answerer) {
23130
23175
  }
23131
23176
  }
23132
23177
  //#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
23178
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
23134
23179
  /**
23135
23180
  * Approval store — the UI-side answerer half of the DSH approval seam
23136
23181
  * (`ctx.approval`). The harness's permission layer asks
@@ -23524,7 +23569,7 @@ var ApprovalStore = class {
23524
23569
  }
23525
23570
  };
23526
23571
  //#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
23572
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
23528
23573
  /**
23529
23574
  * On-demand capture of every final AgentLoop request context observed for a
23530
23575
  * live session.
@@ -23641,7 +23686,7 @@ function registerPromptDebug(ctx) {
23641
23686
  schemaVersion: 2,
23642
23687
  generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
23643
23688
  captureStartedAt,
23644
- captureScope: "Requests observed by this dsh-tui process; requests from before a session resume cannot be reconstructed.",
23689
+ captureScope: "Requests observed by this chatcode-cli process; requests from before a session resume cannot be reconstructed.",
23645
23690
  warning: "Sensitive debug data: contains system prompts, conversation messages, tool schemas, and tool results. It intentionally excludes credentials and transport headers.",
23646
23691
  sessionId,
23647
23692
  turnCount: turns.size,
@@ -23670,7 +23715,7 @@ function registerPromptDebug(ctx) {
23670
23715
  }));
23671
23716
  }
23672
23717
  //#endregion
23673
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
23718
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
23674
23719
  /**
23675
23720
  * One-time local migrations (`~/.chatcode-cli/tui/migrations.json`), keyed by stable
23676
23721
  * migration id → ISO timestamp. Named keys (not a bare flag) so later
@@ -23761,7 +23806,7 @@ async function commitFullscreenFactoryMigration(plan, options) {
23761
23806
  } catch {}
23762
23807
  }
23763
23808
  //#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
23809
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
23765
23810
  const OWNER = "@chatcode/cco-tui";
23766
23811
  const MARKER = ".dsh-tui-managed.json";
23767
23812
  const RETIRED_PACKAGED_PRESETS = ["liangshen"];
@@ -23803,7 +23848,7 @@ function cleanupRetiredPackagedPresets(options = {}) {
23803
23848
  return results;
23804
23849
  }
23805
23850
  //#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
23851
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
23807
23852
  /** Resolve a fresh session's working directory without widening it to a Git ancestor. */
23808
23853
  /**
23809
23854
  * Explicit configuration wins; otherwise keep the invoking directory, even
@@ -23816,7 +23861,7 @@ function resolveSessionCwd(configured, start = process.cwd()) {
23816
23861
  return resolve(start, configured ?? "");
23817
23862
  }
23818
23863
  //#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
23864
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
23820
23865
  /**
23821
23866
  * Open URLs, files and folders with the platform's default handler, fully
23822
23867
  * detached from the TUI process (fire-and-forget: no stdio pipes, no wait,
@@ -23977,13 +24022,13 @@ function revealInFileManager(filePath) {
23977
24022
  if (existsSync(dir)) openExternal(dir);
23978
24023
  }
23979
24024
  //#endregion
23980
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
24025
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
23981
24026
  /** ChatCode API request capability. Credentials stay in the host adapter. */
23982
24027
  const CHATCODE_API_BASE_URL = "https://chatcode.chinaunicom.cn";
23983
24028
  /** Each mounted TUI receives its own host-authorized request function. */
23984
24029
  const ChatCodeApiContext = (0, import_react.createContext)(void 0);
23985
24030
  //#endregion
23986
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
24031
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
23987
24032
  const RELEASE_NOTE_PATH = join(DATA_DIR, "release-notes.json");
23988
24033
  const RELEASE_NOTE_ENDPOINT = `${CHATCODE_API_BASE_URL}/chatcode/api/v1/cli/version/release-note`;
23989
24034
  function acknowledgedVersion() {
@@ -24079,7 +24124,7 @@ var ReleaseNotesStore = class {
24079
24124
  }
24080
24125
  };
24081
24126
  //#endregion
24082
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
24127
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
24083
24128
  const MAIN_CLI_PACKAGES = new Set(["@chatcode/chatcode-cli", "@chatcode/chatcode-cli-test"]);
24084
24129
  const VERSION_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u;
24085
24130
  const PRODUCT_VERSION_ENV = "CHATCODE_CLI_PRODUCT_VERSION";
@@ -24119,7 +24164,7 @@ function resolveProductVersion(options = {}) {
24119
24164
  /** Product version shown by the TUI, shared with `cco --version` and Web. */
24120
24165
  const PRODUCT_VERSION = resolveProductVersion();
24121
24166
  //#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
24167
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
24123
24168
  const MAX_CAPTURE_BYTES = 64 * 1024;
24124
24169
  function appendBounded(chunks, chunk, total) {
24125
24170
  if (total.value >= MAX_CAPTURE_BYTES) return;
@@ -24189,7 +24234,7 @@ function execFileNoThrow(file, args = [], options) {
24189
24234
  });
24190
24235
  }
24191
24236
  //#endregion
24192
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
24237
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
24193
24238
  const REPORT_TIMEOUT_MS = 2e3;
24194
24239
  const RELEASE_TIMEOUT_MS = 500;
24195
24240
  const RETRY_DELAYS_MS = [
@@ -24577,7 +24622,7 @@ var require_react_jsx_runtime_development = /* @__PURE__ */ __commonJSMin(((expo
24577
24622
  })();
24578
24623
  }));
24579
24624
  //#endregion
24580
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
24625
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
24581
24626
  var import_jsx_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
24582
24627
  if (process.env.NODE_ENV === "production") module.exports = require_react_jsx_runtime_production();
24583
24628
  else module.exports = require_react_jsx_runtime_development();
@@ -24634,7 +24679,7 @@ function writeThemePref(name, dir = PREFS_DIR) {
24634
24679
  }
24635
24680
  }
24636
24681
  //#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
24682
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
24638
24683
  const EMPTY_THEME_SNAPSHOT = Object.freeze([]);
24639
24684
  const subscribeNoThemes = (_listener) => () => {};
24640
24685
  /**
@@ -24662,7 +24707,7 @@ function useRuntimeThemeSnapshot(themeHost) {
24662
24707
  return import_react.useSyncExternalStore(subscribeThemes, getThemeSnapshot, getThemeSnapshot);
24663
24708
  }
24664
24709
  //#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
24710
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
24666
24711
  /**
24667
24712
  * Base class for events with immediate-propagation control.
24668
24713
  *
@@ -24686,7 +24731,7 @@ var Event = class {
24686
24731
  }
24687
24732
  };
24688
24733
  //#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
24734
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
24690
24735
  /**
24691
24736
  * Node-compatible event emitter that is aware of the `Event` class, so
24692
24737
  * `emit` respects `stopImmediatePropagation()` on dispatched events.
@@ -24719,7 +24764,7 @@ var EventEmitter$1 = class extends EventEmitter {
24719
24764
  }
24720
24765
  };
24721
24766
  //#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
24767
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
24723
24768
  /**
24724
24769
  * `StdinContext` is a React context, which exposes input stream.
24725
24770
  */
@@ -24733,14 +24778,14 @@ const StdinContext = (0, import_react.createContext)({
24733
24778
  });
24734
24779
  StdinContext.displayName = "InternalStdinContext";
24735
24780
  //#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
24781
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
24737
24782
  /**
24738
24783
  * React hook exposing the stdin stream and raw-mode helpers from `StdinContext`.
24739
24784
  * @returns the `StdinContext` value.
24740
24785
  */
24741
24786
  const useStdin = () => (0, import_react.useContext)(StdinContext);
24742
24787
  //#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
24788
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
24744
24789
  /**
24745
24790
  * ANSI Control Characters and Escape Sequence Introducers
24746
24791
  *
@@ -24814,7 +24859,7 @@ function isEscFinal(byte) {
24814
24859
  return byte >= 48 && byte <= 126;
24815
24860
  }
24816
24861
  //#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
24862
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
24818
24863
  /**
24819
24864
  * CSI (Control Sequence Introducer) Types
24820
24865
  *
@@ -25130,7 +25175,7 @@ const ENABLE_WIN32_INPUT_MODE = csi("?9001h");
25130
25175
  */
25131
25176
  const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
25132
25177
  //#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
25178
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
25134
25179
  /**
25135
25180
  * Minimal terminal-environment shim for the ported Ink core. The original
25136
25181
  * module computed a richer `env` object from the Claude Code app context; the
@@ -25139,7 +25184,7 @@ const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
25139
25184
  */
25140
25185
  const env$1 = { terminal: (process.env.TERM_PROGRAM ?? process.env.TERM ?? "unknown").toLowerCase() };
25141
25186
  //#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
25187
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
25143
25188
  /**
25144
25189
  * OSC (Operating System Command) Types and Parser
25145
25190
  */
@@ -25535,7 +25580,7 @@ function supportsTabStatus() {
25535
25580
  return process.env.USER_TYPE === "ant";
25536
25581
  }
25537
25582
  //#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
25583
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
25539
25584
  /**
25540
25585
  * Query the terminal and await responses without timeouts.
25541
25586
  *
@@ -25721,7 +25766,7 @@ var TerminalQuerier = class {
25721
25766
  }
25722
25767
  };
25723
25768
  //#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
25769
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
25725
25770
  /**
25726
25771
  * Theme provider with terminal-background auto-detection. With no explicit
25727
25772
  * `theme` prop, no CHATCODE_CLI_TUI_THEME override and no persisted choice
@@ -25867,7 +25912,7 @@ function ThemeProvider({ children, theme, themeHost }) {
25867
25912
  */
25868
25913
  const setTheme = import_react.useCallback((name) => {
25869
25914
  if (!isThemeAvailable(name)) {
25870
- console.warn(`[cco-cli] theme "${name}" not found`);
25915
+ console.warn(`[chatcode-cli] theme "${name}" not found`);
25871
25916
  return false;
25872
25917
  }
25873
25918
  if (!writeThemePref(name)) {
@@ -25920,7 +25965,7 @@ function useTheme() {
25920
25965
  return [theme, setTheme];
25921
25966
  }
25922
25967
  //#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
25968
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
25924
25969
  /**
25925
25970
  * React-free form model behind the `/settings` screen (issue #165), mirroring
25926
25971
  * the web front door's card-form.ts semantics: a section stages what the user
@@ -26164,7 +26209,7 @@ var SettingsForm = class {
26164
26209
  }
26165
26210
  };
26166
26211
  //#endregion
26167
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
26212
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
26168
26213
  /**
26169
26214
  * `/reload` planning — the pi-style soft reload: re-read the TUI's persisted
26170
26215
  * preference files (`~/.chatcode-cli/tui/{theme,lang,agent-preset,model,
@@ -27013,7 +27058,7 @@ var SignalExit = class extends SignalExitBase {
27013
27058
  const process$2 = globalThis.process;
27014
27059
  const { onExit, load, unload } = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback());
27015
27060
  //#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
27061
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
27017
27062
  /**
27018
27063
  * Yoga enums — ported from yoga-layout/src/generated/YGEnums.ts
27019
27064
  * Kept as `const` objects (not TS enums) per repo convention.
@@ -27145,7 +27190,7 @@ const Wrap = {
27145
27190
  WrapReverse: 2
27146
27191
  };
27147
27192
  //#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
27193
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
27149
27194
  /**
27150
27195
  * Pure-TypeScript port of yoga-layout (Meta's flexbox engine).
27151
27196
  *
@@ -29596,7 +29641,7 @@ Object.defineProperties(createChalk.prototype, {
29596
29641
  const chalk = createChalk();
29597
29642
  createChalk({ level: stderrColor ? stderrColor.level : 0 });
29598
29643
  //#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
29644
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
29600
29645
  /**
29601
29646
  * xterm.js (VS Code, Cursor, code-server, Coder) has supported truecolor
29602
29647
  * since 2017, but code-server/Coder containers often don't set
@@ -29727,7 +29772,7 @@ function applyColor(text, color) {
29727
29772
  return colorize(text, color, "foreground");
29728
29773
  }
29729
29774
  //#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
29775
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
29731
29776
  /**
29732
29777
  * Environment truthiness check for the ported Ink core. Accepts the common
29733
29778
  * shell truthy spellings (`1`, `true`, `yes`, `on`).
@@ -29745,7 +29790,7 @@ function isEnvTruthy(value) {
29745
29790
  ].includes(value.toLowerCase());
29746
29791
  }
29747
29792
  //#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
29793
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
29749
29794
  /**
29750
29795
  * Whether mouse click handling is disabled for the ported Ink core. dsh-tui
29751
29796
  * reads its own env flag (`CHATCODE_CLI_TUI_DISABLE_MOUSE`); the original module
@@ -29756,7 +29801,7 @@ function isMouseClicksDisabled() {
29756
29801
  return isEnvTruthy(readTuiEnv("DISABLE_MOUSE"));
29757
29802
  }
29758
29803
  //#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
29804
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
29760
29805
  /**
29761
29806
  * Input suppression window for terminal handoffs (issue #123): when stdin is
29762
29807
  * handed to an external TUI (full-screen editor) and back, the tty can
@@ -29783,7 +29828,7 @@ function isInputSuppressed() {
29783
29828
  return Date.now() < suppressedUntil;
29784
29829
  }
29785
29830
  //#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
29831
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
29787
29832
  /**
29788
29833
  * Input Tokenizer - Escape sequence boundary detection
29789
29834
  *
@@ -29981,7 +30026,7 @@ function tokenize$2(input, initialState, initialBuffer, flush, x10Mouse, splitIn
29981
30026
  };
29982
30027
  }
29983
30028
  //#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
30029
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
29985
30030
  /**
29986
30031
  * Keyboard input parser - converts terminal input to key events
29987
30032
  *
@@ -31045,7 +31090,7 @@ function createWheelKey(s, name, col, row, button) {
31045
31090
  };
31046
31091
  }
31047
31092
  //#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
31093
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
31049
31094
  function parseKey(keypress) {
31050
31095
  const key = {
31051
31096
  upArrow: keypress.name === "up",
@@ -31130,7 +31175,7 @@ var InputEvent = class extends Event {
31130
31175
  }
31131
31176
  };
31132
31177
  //#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
31178
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
31134
31179
  /**
31135
31180
  * Event fired when the terminal window gains or loses focus.
31136
31181
  *
@@ -31149,7 +31194,7 @@ var TerminalFocusEvent = class extends Event {
31149
31194
  }
31150
31195
  };
31151
31196
  //#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
31197
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
31153
31198
  /** Layout bounds cached per rendered node, used for blitting and clearing. */
31154
31199
  const nodeCache = /* @__PURE__ */ new WeakMap();
31155
31200
  /** Rects of removed children that need clearing on next render */
@@ -31187,7 +31232,7 @@ function consumeAbsoluteRemovedFlag() {
31187
31232
  return had;
31188
31233
  }
31189
31234
  //#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
31235
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
31191
31236
  /**
31192
31237
  * Base class for all terminal events with DOM-style propagation.
31193
31238
  *
@@ -31316,7 +31361,7 @@ var TerminalEvent = class extends Event {
31316
31361
  _prepareForTarget(_target) {}
31317
31362
  };
31318
31363
  //#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
31364
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
31320
31365
  /**
31321
31366
  * Base class for pointer-derived terminal events (click, wheel, hover).
31322
31367
  *
@@ -31377,7 +31422,7 @@ var PointerEvent = class extends TerminalEvent {
31377
31422
  }
31378
31423
  };
31379
31424
  //#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
31425
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
31381
31426
  /**
31382
31427
  * Component-level drag event (DOM HTML5 drag semantics subset).
31383
31428
  *
@@ -47485,7 +47530,7 @@ var require_react_reconciler_development = /* @__PURE__ */ __commonJSMin(((expor
47485
47530
  }, module.exports.default = module.exports, Object.defineProperty(module.exports, "__esModule", { value: !0 }));
47486
47531
  }));
47487
47532
  //#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
47533
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
47489
47534
  var import_react_reconciler = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
47490
47535
  if (process.env.NODE_ENV === "production") module.exports = require_react_reconciler_production();
47491
47536
  else module.exports = require_react_reconciler_development();
@@ -47561,7 +47606,7 @@ const LayoutMeasureMode = {
47561
47606
  AtMost: "at-most"
47562
47607
  };
47563
47608
  //#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
47609
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
47565
47610
  const EDGE_MAP = {
47566
47611
  all: Edge.All,
47567
47612
  horizontal: Edge.Horizontal,
@@ -47788,7 +47833,7 @@ function createYogaLayoutNode() {
47788
47833
  return new YogaLayoutNode(YOGA_INSTANCE.Node.create());
47789
47834
  }
47790
47835
  //#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
47836
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
47792
47837
  /**
47793
47838
  * Create a new layout node backed by the Yoga adapter.
47794
47839
  * @returns an empty layout node with no children, styles, or measure function.
@@ -47797,7 +47842,7 @@ function createLayoutNode() {
47797
47842
  return createYogaLayoutNode();
47798
47843
  }
47799
47844
  //#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
47845
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
47801
47846
  const cache = /* @__PURE__ */ new Map();
47802
47847
  const MAX_CACHE_SIZE = 4096;
47803
47848
  const MAX_CACHE_CHARS = 1e5;
@@ -47833,7 +47878,7 @@ function lineWidth(line) {
47833
47878
  return width;
47834
47879
  }
47835
47880
  //#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
47881
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
47837
47882
  /**
47838
47883
  * Measure wrapped text dimensions in a single pass.
47839
47884
  * @param text - the text to measure.
@@ -47864,7 +47909,7 @@ function measureText(text, maxWidth) {
47864
47909
  };
47865
47910
  }
47866
47911
  //#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
47912
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
47868
47913
  /**
47869
47914
  * Squash text nodes into styled segments, propagating styles down through the tree.
47870
47915
  * This allows structured styling without relying on ANSI string transforms.
@@ -47912,7 +47957,7 @@ function squashTextNodes(node) {
47912
47957
  return text;
47913
47958
  }
47914
47959
  //#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
47960
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
47916
47961
  const DEFAULT_TAB_INTERVAL = 8;
47917
47962
  /**
47918
47963
  * Expand tab characters to spaces at fixed column intervals, preserving
@@ -48362,7 +48407,7 @@ function tokenize$1(str, endChar = Number.POSITIVE_INFINITY) {
48362
48407
  return ret;
48363
48408
  }
48364
48409
  //#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
48410
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
48366
48411
  function isEndCode(code) {
48367
48412
  return code.code === code.endCode;
48368
48413
  }
@@ -48979,7 +49024,7 @@ function wrapAnsi$1(string, columns, options) {
48979
49024
  return normalizeText(String(string)).replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs$1(line), columns, options)).join("\n");
48980
49025
  }
48981
49026
  //#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
49027
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
48983
49028
  const wrapAnsiBun = typeof Bun !== "undefined" && typeof Bun.wrapAnsi === "function" ? Bun.wrapAnsi : null;
48984
49029
  const SLOT_MIN_LENGTH = 2048;
48985
49030
  let slot = null;
@@ -49026,7 +49071,7 @@ function wrapAnsiNpmIncremental(input, columns, options) {
49026
49071
  */
49027
49072
  const wrapAnsi = wrapAnsiBun ?? wrapAnsiNpmIncremental;
49028
49073
  //#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
49074
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
49030
49075
  const ELLIPSIS = "…";
49031
49076
  const WRAP_CACHE_MAX_ENTRIES = 2048;
49032
49077
  const WRAP_CACHE_MAX_CHARS = 2e6;
@@ -49090,7 +49135,7 @@ function wrapText$1(text, maxWidth, wrapType) {
49090
49135
  return text;
49091
49136
  }
49092
49137
  //#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
49138
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
49094
49139
  /**
49095
49140
  * Create an element node of the given kind, allocating its yoga layout node
49096
49141
  * unless the kind renders without layout (`ink-virtual-text`, `ink-link`,
@@ -49410,7 +49455,7 @@ function findOwnerChainAtRow(root, y) {
49410
49455
  }
49411
49456
  }
49412
49457
  //#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
49458
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
49414
49459
  /**
49415
49460
  * Reverse lookup: event type string → handler prop names.
49416
49461
  * Used by the dispatcher for O(1) handler lookup per node.
@@ -49464,7 +49509,7 @@ const EVENT_HANDLER_PROPS = new Set([
49464
49509
  "onWheel"
49465
49510
  ]);
49466
49511
  //#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
49512
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
49468
49513
  function getHandler(node, eventType, capture) {
49469
49514
  const handlers = node._eventHandlers;
49470
49515
  if (!handlers) return void 0;
@@ -49632,7 +49677,7 @@ var Dispatcher = class {
49632
49677
  }
49633
49678
  };
49634
49679
  //#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
49680
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
49636
49681
  /**
49637
49682
  * Focus event for component focus changes.
49638
49683
  *
@@ -49657,7 +49702,7 @@ var FocusEvent = class extends TerminalEvent {
49657
49702
  }
49658
49703
  };
49659
49704
  //#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
49705
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
49661
49706
  const MAX_FOCUS_STACK = 32;
49662
49707
  /**
49663
49708
  * DOM-like focus manager for the Ink terminal UI.
@@ -49813,7 +49858,7 @@ function getFocusManager(node) {
49813
49858
  return getRootNode(node).focusManager;
49814
49859
  }
49815
49860
  //#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
49861
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
49817
49862
  const applyPositionStyles = (node, style) => {
49818
49863
  if ("position" in style) node.setPositionType(style.position === "absolute" ? LayoutPositionType.Absolute : LayoutPositionType.Relative);
49819
49864
  if ("top" in style) applyPositionEdge(node, "top", style.top);
@@ -49948,7 +49993,7 @@ const styles = (node, style = {}, resolvedStyle) => {
49948
49993
  applyGapStyles(node, style);
49949
49994
  };
49950
49995
  //#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
49996
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
49952
49997
  if (process.env.NODE_ENV === "development") try {
49953
49998
  import("./devtools-la_KkjCS.js");
49954
49999
  } catch (error) {
@@ -50268,7 +50313,7 @@ const reconciler = (0, import_react_reconciler.default)({
50268
50313
  });
50269
50314
  dispatcher.discreteUpdates = reconciler.discreteUpdates.bind(reconciler);
50270
50315
  //#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
50316
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
50272
50317
  /**
50273
50318
  * Compute the smallest rectangle containing both input rectangles.
50274
50319
  * @param a - the first rectangle.
@@ -50300,7 +50345,7 @@ function clamp(value, min, max) {
50300
50345
  return value;
50301
50346
  }
50302
50347
  //#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
50348
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
50304
50349
  /**
50305
50350
  * Log a warning when a value is present but not an integer.
50306
50351
  * @param value - the value to check; undefined is skipped silently.
@@ -50312,7 +50357,7 @@ function ifNotInteger(value, name) {
50312
50357
  logForDebugging(`${name} should be an integer, got ${value}`, { level: "warn" });
50313
50358
  }
50314
50359
  //#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
50360
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
50316
50361
  /**
50317
50362
  * Pool of character strings shared across all screens.
50318
50363
  * With a shared pool, interned char IDs are valid across screens, so
@@ -51381,7 +51426,7 @@ function markNoSelectRegion(screen, x, y, width, height) {
51381
51426
  }
51382
51427
  }
51383
51428
  //#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
51429
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
51385
51430
  /**
51386
51431
  * Text selection state for fullscreen mode.
51387
51432
  *
@@ -52347,7 +52392,7 @@ function applySelectionOverlay(screen, selection, stylePool) {
52347
52392
  }
52348
52393
  }
52349
52394
  //#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
52395
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
52351
52396
  /**
52352
52397
  * DEC (Digital Equipment Corporation) Private Mode Sequences
52353
52398
  *
@@ -52413,7 +52458,7 @@ const ENABLE_MOUSE_TRACKING = decset(DEC.MOUSE_NORMAL) + decset(DEC.MOUSE_BUTTON
52413
52458
  /** Disable all mouse tracking modes enabled by ENABLE_MOUSE_TRACKING. */
52414
52459
  const DISABLE_MOUSE_TRACKING = decreset(DEC.MOUSE_SGR) + decreset(DEC.MOUSE_ANY) + decreset(DEC.MOUSE_BUTTON) + decreset(DEC.MOUSE_NORMAL);
52415
52460
  //#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
52461
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
52417
52462
  /**
52418
52463
  * True when running inside a JetBrains IDE terminal (JediTerm). The IDE
52419
52464
  * injects `TERMINAL_EMULATOR=JetBrains-JediTerm` into the pty environment of
@@ -52655,7 +52700,7 @@ function writeDiffToTerminal(terminal, diff, skipSyncMarkers = false) {
52655
52700
  terminal.stdout.write(buffer);
52656
52701
  }
52657
52702
  //#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
52703
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
52659
52704
  let focusState = "unknown";
52660
52705
  const resolvers = /* @__PURE__ */ new Set();
52661
52706
  const subscribers = /* @__PURE__ */ new Set();
@@ -52699,7 +52744,7 @@ function subscribeTerminalFocus(cb) {
52699
52744
  };
52700
52745
  }
52701
52746
  //#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
52747
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
52703
52748
  /**
52704
52749
  * `AppContext` is a React context, which exposes a method to manually exit the app (unmount).
52705
52750
  */
@@ -52744,13 +52789,13 @@ var require_react_compiler_runtime_development = /* @__PURE__ */ __commonJSMin((
52744
52789
  })();
52745
52790
  }));
52746
52791
  //#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
52792
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
52748
52793
  var import_compiler_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
52749
52794
  if (process.env.NODE_ENV === "production") module.exports = require_react_compiler_runtime_production();
52750
52795
  else module.exports = require_react_compiler_runtime_development();
52751
52796
  })))();
52752
52797
  //#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
52798
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
52754
52799
  /**
52755
52800
  * Geometry forensics — per-frame scroll-geometry trace (issues #421/#433).
52756
52801
  *
@@ -52830,7 +52875,7 @@ function endGeometryFrame(durationMs) {
52830
52875
  };
52831
52876
  }
52832
52877
  //#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
52878
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
52834
52879
  const TerminalFocusContext = (0, import_react.createContext)({
52835
52880
  isTerminalFocused: true,
52836
52881
  terminalFocusState: "unknown"
@@ -52865,7 +52910,7 @@ function TerminalFocusProvider(t0) {
52865
52910
  return t2;
52866
52911
  }
52867
52912
  //#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
52913
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
52869
52914
  /**
52870
52915
  * Hook to check if the terminal has focus.
52871
52916
  *
@@ -52880,7 +52925,7 @@ function useTerminalFocus() {
52880
52925
  return isTerminalFocused;
52881
52926
  }
52882
52927
  //#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
52928
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
52884
52929
  function createClock(tickIntervalMs) {
52885
52930
  const subscribers = /* @__PURE__ */ new Map();
52886
52931
  let interval = null;
@@ -52977,7 +53022,7 @@ function _temp() {
52977
53022
  return createClock(16);
52978
53023
  }
52979
53024
  //#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
53025
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
52981
53026
  /**
52982
53027
  * React context that provides the cursor-declaration setter to descendants.
52983
53028
  */
@@ -53017,7 +53062,7 @@ var require_escape_string_regexp = /* @__PURE__ */ __commonJSMin(((exports, modu
53017
53062
  };
53018
53063
  }));
53019
53064
  //#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
53065
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
53021
53066
  var import_stack_utils = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
53022
53067
  const escapeStringRegexp = require_escape_string_regexp();
53023
53068
  const cwd = typeof process === "object" && process && typeof process.cwd === "function" ? process.cwd() : ".";
@@ -53385,7 +53430,7 @@ function Box(t0) {
53385
53430
  return t4;
53386
53431
  }
53387
53432
  //#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
53433
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
53389
53434
  const memoizedStylesForWrap = {
53390
53435
  wrap: {
53391
53436
  flexGrow: 0,
@@ -53537,7 +53582,7 @@ function Text(t0) {
53537
53582
  return t16;
53538
53583
  }
53539
53584
  //#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
53585
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
53541
53586
  const cleanupPath = (path) => {
53542
53587
  return path?.replace(`file://${process.cwd()}/`, "");
53543
53588
  };
@@ -53642,10 +53687,10 @@ function ErrorOverview({ error }) {
53642
53687
  });
53643
53688
  }
53644
53689
  //#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
53690
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
53646
53691
  const TerminalSizeContext = (0, import_react.createContext)(null);
53647
53692
  //#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
53693
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
53649
53694
  /**
53650
53695
  * React context providing a raw terminal write function. Null until a
53651
53696
  * TerminalWriteProvider is mounted.
@@ -53656,7 +53701,7 @@ const TerminalWriteContext = (0, import_react.createContext)(null);
53656
53701
  */
53657
53702
  const TerminalWriteProvider = TerminalWriteContext.Provider;
53658
53703
  //#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
53704
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
53660
53705
  const SUPPORTS_SUSPEND = process.platform !== "win32";
53661
53706
  const STDIN_RESUME_GAP_MS = 5e3;
53662
53707
  const MULTI_CLICK_TIMEOUT_MS = 500;
@@ -54182,7 +54227,7 @@ function handleMouseEvent(app, m) {
54182
54227
  }
54183
54228
  }
54184
54229
  //#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
54230
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
54186
54231
  /**
54187
54232
  * Keyboard event dispatched through the DOM tree via capture/bubble.
54188
54233
  *
@@ -54242,7 +54287,7 @@ function keyFromParsed(parsed) {
54242
54287
  return name || seq;
54243
54288
  }
54244
54289
  //#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
54290
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
54246
54291
  /**
54247
54292
  * Create an empty frame with a zero-size screen, the given viewport, and a
54248
54293
  * visible cursor at the origin.
@@ -54268,7 +54313,7 @@ function emptyFrame(rows, columns, stylePool, charPool, hyperlinkPool) {
54268
54313
  };
54269
54314
  }
54270
54315
  //#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
54316
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
54272
54317
  /**
54273
54318
  * Mouse click event. Fired on left-button release without drag, only when
54274
54319
  * mouse tracking is enabled (i.e. inside <AlternateScreen>).
@@ -54299,7 +54344,7 @@ var ClickEvent = class extends PointerEvent {
54299
54344
  }
54300
54345
  };
54301
54346
  //#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
54347
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
54303
54348
  /**
54304
54349
  * Mouse context-menu event. Fired on right-button press (SGR button 2,
54305
54350
  * low bits of the raw button byte), mirroring the DOM `contextmenu` event
@@ -54323,7 +54368,7 @@ var ContextMenuEvent = class extends PointerEvent {
54323
54368
  }
54324
54369
  };
54325
54370
  //#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
54371
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
54327
54372
  /**
54328
54373
  * Mouse wheel event dispatched to the ScrollBox under the pointer.
54329
54374
  *
@@ -54359,7 +54404,7 @@ function indentString(string, count = 1, options = {}) {
54359
54404
  return string.replace(regex, indent.repeat(count));
54360
54405
  }
54361
54406
  //#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
54407
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
54363
54408
  /**
54364
54409
  * Returns the yoga node's content width (computed width minus padding and
54365
54410
  * border).
@@ -54464,7 +54509,7 @@ var cli_boxes_default = {
54464
54509
  }
54465
54510
  };
54466
54511
  //#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
54512
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
54468
54513
  /** Built-in border styles beyond those provided by cli-boxes. */
54469
54514
  const CUSTOM_BORDER_STYLES = { dashed: {
54470
54515
  top: "╌",
@@ -54554,7 +54599,7 @@ const renderBorder = (x, y, node, output) => {
54554
54599
  }
54555
54600
  };
54556
54601
  //#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
54602
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
54558
54603
  /**
54559
54604
  * Get the display width of the widest line in a string.
54560
54605
  * @param string - the text to measure, possibly containing newlines.
@@ -54573,7 +54618,7 @@ function widestLine(string) {
54573
54618
  return maxWidth;
54574
54619
  }
54575
54620
  //#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
54621
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
54577
54622
  function isXtermJsHost() {
54578
54623
  return process.env.TERM_PROGRAM === "vscode" || isXtermJs();
54579
54624
  }
@@ -55389,7 +55434,7 @@ function dropSubtreeCache(node) {
55389
55434
  for (const child of node.childNodes) if (child.nodeName !== "#text") dropSubtreeCache(child);
55390
55435
  }
55391
55436
  //#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
55437
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
55393
55438
  /**
55394
55439
  * Find the deepest DOM element whose rendered rect contains (col, row).
55395
55440
  *
@@ -55779,7 +55824,7 @@ function dispatchHover(root, col, row, hovered) {
55779
55824
  }
55780
55825
  }
55781
55826
  //#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
55827
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
55783
55828
  /**
55784
55829
  * Monotonic terminal-flush counter for the ported Ink core.
55785
55830
  *
@@ -55812,7 +55857,7 @@ function getTerminalFlushTick() {
55812
55857
  return flushTick;
55813
55858
  }
55814
55859
  //#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
55860
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
55816
55861
  /**
55817
55862
  * Live Ink instances keyed by their output stream, so consecutive render()
55818
55863
  * calls reuse the instance for a stream instead of creating a new one.
@@ -55821,7 +55866,7 @@ function getTerminalFlushTick() {
55821
55866
  */
55822
55867
  const instances = /* @__PURE__ */ new Map();
55823
55868
  //#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
55869
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
55825
55870
  const CARRIAGE_RETURN = { type: "carriageReturn" };
55826
55871
  const NEWLINE = {
55827
55872
  type: "stdout",
@@ -56437,7 +56482,7 @@ var VirtualScreen = class {
56437
56482
  }
56438
56483
  };
56439
56484
  //#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
56485
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
56441
56486
  /**
56442
56487
  * Optimize a diff by applying all optimization rules in a single pass.
56443
56488
  * This reduces the number of patches that need to be written to the terminal.
@@ -56502,7 +56547,7 @@ function optimize(diff) {
56502
56547
  return result;
56503
56548
  }
56504
56549
  //#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
56550
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
56506
56551
  var import_bidi = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
56507
56552
  (function(global, factory) {
56508
56553
  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 +57323,7 @@ function hasRTLCharacters(text) {
57278
57323
  return /[\u0590-\u05FF\uFB1D-\uFB4F\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\u0780-\u07BF\u0700-\u074F]/u.test(text);
57279
57324
  }
57280
57325
  //#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
57326
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
57282
57327
  /**
57283
57328
  * charCache bounds. The entry-count cap alone was not enough: a streaming
57284
57329
  * line produces a NEW cache key on every frame, and each entry's cost is
@@ -57948,7 +57993,7 @@ function writeLineToScreen(screen, line, x, y, screenWidth, stylePool, charCache
57948
57993
  return offsetX;
57949
57994
  }
57950
57995
  //#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
57996
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
57952
57997
  const timing = {
57953
57998
  reconcile: 0,
57954
57999
  yoga: 0,
@@ -58042,7 +58087,7 @@ function applyPositionedHighlight(screen, stylePool, positions, rowOffset, curre
58042
58087
  return true;
58043
58088
  }
58044
58089
  //#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
58090
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
58046
58091
  /**
58047
58092
  * Create the renderer function for a root DOM node. The returned renderer
58048
58093
  * reuses an Output across frames so its character cache persists.
@@ -58117,7 +58162,7 @@ function createRenderer(node, stylePool) {
58117
58162
  };
58118
58163
  }
58119
58164
  //#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
58165
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
58121
58166
  /**
58122
58167
  * Highlight all visible occurrences of `query` in the screen buffer by
58123
58168
  * inverting cell styles (SGR 7). Post-render, same damage-tracking machinery
@@ -58179,7 +58224,7 @@ function applySearchHighlight(screen, query, stylePool) {
58179
58224
  return applied;
58180
58225
  }
58181
58226
  //#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
58227
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
58183
58228
  const ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({
58184
58229
  x: 0,
58185
58230
  y: 0,
@@ -59732,7 +59777,7 @@ const CONSOLE_STDERR_METHODS = [
59732
59777
  "trace"
59733
59778
  ];
59734
59779
  //#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
59780
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
59736
59781
  /**
59737
59782
  * Mount a component and render the output.
59738
59783
  * @param node - the React element to render.
@@ -59815,7 +59860,7 @@ const getInstance = (stdout, createInstance) => {
59815
59860
  return instance;
59816
59861
  };
59817
59862
  //#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
59863
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
59819
59864
  /** Resolves a color value that may be a theme key to a raw Color. */
59820
59865
  function resolveColor$1(color, theme) {
59821
59866
  if (!color) return void 0;
@@ -59840,7 +59885,7 @@ function ThemedBox({ borderColor, borderTopColor, borderBottomColor, borderLeftC
59840
59885
  });
59841
59886
  }
59842
59887
  //#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
59888
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
59844
59889
  /**
59845
59890
  * Colors uncolored ThemedText in the subtree. Precedence: explicit `color` >
59846
59891
  * this > dimColor (in the Claude Code visual language, where message rows
@@ -59876,7 +59921,7 @@ function ThemedText({ color, backgroundColor, dimColor = false, bold = false, it
59876
59921
  });
59877
59922
  }
59878
59923
  //#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
59924
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
59880
59925
  /**
59881
59926
  * A flexible space that expands along the major axis of its containing layout.
59882
59927
  * It's useful as a shortcut for filling all the available spaces between elements.
@@ -59891,7 +59936,7 @@ function Spacer() {
59891
59936
  return t0;
59892
59937
  }
59893
59938
  //#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
59939
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
59895
59940
  /**
59896
59941
  * Adds one or more newline (\n) characters. Must be used within <Text> components.
59897
59942
  */
@@ -59914,7 +59959,7 @@ function Newline(t0) {
59914
59959
  return t3;
59915
59960
  }
59916
59961
  //#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
59962
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
59918
59963
  /**
59919
59964
  * Marks its contents as non-selectable in fullscreen text selection.
59920
59965
  * Cells inside this box are skipped by both the selection highlight and
@@ -59965,7 +60010,7 @@ function NoSelect(t0) {
59965
60010
  return t2;
59966
60011
  }
59967
60012
  //#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
60013
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
59969
60014
  /**
59970
60015
  * Run children in the terminal's alternate screen buffer, constrained to
59971
60016
  * the viewport height. While mounted:
@@ -60040,7 +60085,7 @@ function AlternateScreen(t0) {
60040
60085
  return t5;
60041
60086
  }
60042
60087
  //#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
60088
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
60044
60089
  /**
60045
60090
  * A Box with `overflow: scroll` and an imperative scroll API.
60046
60091
  *
@@ -60218,7 +60263,7 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
60218
60263
  });
60219
60264
  }
60220
60265
  //#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
60266
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
60222
60267
  /**
60223
60268
  * Keep an event listener stable while always dispatching to the latest render's
60224
60269
  * callback. Keeping this hook local is important for packaged installs: a
@@ -60284,7 +60329,7 @@ const useInput = (inputHandler, options = {}) => {
60284
60329
  }, [internal_eventEmitter, handleData]);
60285
60330
  };
60286
60331
  //#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
60332
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
60288
60333
  /**
60289
60334
  * Access to text selection operations on the Ink instance (fullscreen only).
60290
60335
  * Returns no-op functions when fullscreen mode is disabled.
@@ -60324,7 +60369,7 @@ function useSelection() {
60324
60369
  }, [ink]);
60325
60370
  }
60326
60371
  //#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
60372
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
60328
60373
  /**
60329
60374
  * Copy-on-select: when a drag finishes (or a double/triple click, or a
60330
60375
  * shift+arrow extension, lands a selection), copy the selected text to the
@@ -60364,14 +60409,14 @@ function useCopyOnSelect(onCopied) {
60364
60409
  ]);
60365
60410
  }
60366
60411
  //#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
60412
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
60368
60413
  /**
60369
60414
  * React hook exposing the manual app-exit function from `AppContext`.
60370
60415
  * @returns the `AppContext` value, whose `exit` function unmounts the app.
60371
60416
  */
60372
60417
  const useApp = () => (0, import_react.useContext)(AppContext);
60373
60418
  //#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
60419
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
60375
60420
  /**
60376
60421
  * Hook to detect if a component is within the terminal viewport.
60377
60422
  *
@@ -60425,7 +60470,7 @@ function useTerminalViewport() {
60425
60470
  return [setElement, entryRef.current];
60426
60471
  }
60427
60472
  //#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
60473
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
60429
60474
  /**
60430
60475
  * Hook for synchronized animations that pause when offscreen.
60431
60476
  *
@@ -60474,7 +60519,7 @@ function useAnimationFrame(intervalMs = 16) {
60474
60519
  return [viewportRef, time];
60475
60520
  }
60476
60521
  //#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
60522
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
60478
60523
  /** Terminal dimensions from the Ink app shell (from Claude Code).
60479
60524
  * @returns the current terminal dimensions.
60480
60525
  */
@@ -60484,7 +60529,7 @@ function useTerminalSize() {
60484
60529
  return size;
60485
60530
  }
60486
60531
  //#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
60532
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
60488
60533
  const BLINK_INTERVAL_MS = 600;
60489
60534
  /**
60490
60535
  * Hook for synchronized blinking animations that pause when offscreen
@@ -60501,7 +60546,7 @@ function useBlink(enabled, intervalMs = BLINK_INTERVAL_MS) {
60501
60546
  return [ref, Math.floor(time / intervalMs) % 2 === 0];
60502
60547
  }
60503
60548
  //#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
60549
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
60505
60550
  var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
60506
60551
  const supportsColor = require_supports_color();
60507
60552
  const hasFlag = require_has_flag();
@@ -60598,7 +60643,7 @@ function supportsHyperlinks(options) {
60598
60643
  return false;
60599
60644
  }
60600
60645
  //#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
60646
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
60602
60647
  function Link(t0) {
60603
60648
  const $ = (0, import_compiler_runtime.c)(5);
60604
60649
  const { children, url, fallback } = t0;
@@ -60626,7 +60671,7 @@ function Link(t0) {
60626
60671
  return t2;
60627
60672
  }
60628
60673
  //#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
60674
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
60630
60675
  /**
60631
60676
  * ESC Sequence Parser
60632
60677
  *
@@ -60682,7 +60727,7 @@ function parseEsc(chars) {
60682
60727
  };
60683
60728
  }
60684
60729
  //#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
60730
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
60686
60731
  /**
60687
60732
  * ANSI Parser - Semantic Types
60688
60733
  *
@@ -60710,7 +60755,7 @@ function defaultStyle() {
60710
60755
  };
60711
60756
  }
60712
60757
  //#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
60758
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
60714
60759
  /**
60715
60760
  * SGR (Select Graphic Rendition) Parser
60716
60761
  *
@@ -61018,7 +61063,7 @@ function applySGR(paramStr, style) {
61018
61063
  return s;
61019
61064
  }
61020
61065
  //#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
61066
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
61022
61067
  /**
61023
61068
  * ANSI Parser - Semantic Action Generator
61024
61069
  *
@@ -61395,7 +61440,7 @@ var Parser = class {
61395
61440
  }
61396
61441
  };
61397
61442
  //#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
61443
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
61399
61444
  /**
61400
61445
  * Component that parses ANSI escape codes and renders them using Text components.
61401
61446
  *
@@ -61646,7 +61691,7 @@ function StyledText(t0) {
61646
61691
  return t1;
61647
61692
  }
61648
61693
  //#endregion
61649
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
61694
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
61650
61695
  var ui_exports = /* @__PURE__ */ __exportAll({
61651
61696
  AlternateScreen: () => AlternateScreen,
61652
61697
  Ansi: () => Ansi,
@@ -61670,7 +61715,7 @@ var ui_exports = /* @__PURE__ */ __exportAll({
61670
61715
  useTheme: () => useTheme
61671
61716
  });
61672
61717
  //#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
61718
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
61674
61719
  /** 嵌套安全的 inset(若未来出现嵌套 PageMargin 会累加)。 */
61675
61720
  const PageInsetContext = import_react.createContext({
61676
61721
  x: 0,
@@ -61724,7 +61769,7 @@ function PageMargin({ children }) {
61724
61769
  });
61725
61770
  }
61726
61771
  //#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
61772
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
61728
61773
  /**
61729
61774
  * UI glyph constants used across the TUI: prompt markers, status badges,
61730
61775
  * direction arrows, media controls, reasoning-effort indicators, and
@@ -61751,7 +61796,7 @@ const THINKING_SPINNER_FRAMES = [
61751
61796
  "⠏"
61752
61797
  ];
61753
61798
  //#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
61799
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
61755
61800
  /**
61756
61801
  * `/provider` wizard — interactively adds, edits, or deletes an LLM
61757
61802
  * provider route at runtime.
@@ -62477,7 +62522,7 @@ function buildProfile(input) {
62477
62522
  return profile;
62478
62523
  }
62479
62524
  //#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
62525
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
62481
62526
  /** `/model-config`: platform catalog plus ~/.chatcode-cli/settings.json custom models. */
62482
62527
  const CUSTOM_MODEL_PROTOCOLS = ["openai-completions", "anthropic-messages"];
62483
62528
  const LEGAL_API_KEY = /^[\x21-\x7e]+$/u;
@@ -63116,7 +63161,7 @@ function parseCapacity(value) {
63116
63161
  return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : void 0;
63117
63162
  }
63118
63163
  //#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
63164
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
63120
63165
  /**
63121
63166
  * Declares where the terminal cursor should be parked after each frame.
63122
63167
  *
@@ -63165,7 +63210,7 @@ function useDeclaredCursor(options) {
63165
63210
  return setNode;
63166
63211
  }
63167
63212
  //#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
63213
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
63169
63214
  /**
63170
63215
  * Measure the rendered dimensions of a Box element.
63171
63216
  * @param node - the DOM element to measure.
@@ -63176,7 +63221,7 @@ const measureElement = (node) => ({
63176
63221
  height: node.yogaNode?.getComputedHeight() ?? 0
63177
63222
  });
63178
63223
  //#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
63224
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
63180
63225
  const MAX_APPLIED_MEASUREMENTS = 8;
63181
63226
  /**
63182
63227
  * A horizontal divider line, optionally with a title in the middle
@@ -64899,7 +64944,7 @@ k.parseInline;
64899
64944
  T.parse;
64900
64945
  R.lex;
64901
64946
  //#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
64947
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
64903
64948
  /** highlight.js token classes -> theme syntax tokens. `default` catches
64904
64949
  * every unmapped class so cli-highlight's own yellow never leaks through
64905
64950
  * (issue #250, P2-6). */
@@ -64965,7 +65010,7 @@ function buildSyntaxTheme(theme) {
64965
65010
  return out;
64966
65011
  }
64967
65012
  //#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
65013
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
64969
65014
  /** OSC 8 hyperlink start sequence: `ESC ] 8 ; ;`, followed by the URL. */
64970
65015
  const OSC8_START = "\x1B]8;;";
64971
65016
  /** Schemes a rendered hyperlink may point at. Anything else degrades to
@@ -65007,7 +65052,7 @@ function createHyperlink(url, content, options) {
65007
65052
  return `${OSC8_START}${safeUrl}${(options?.style ?? ((text) => chalk.blue(text)))(displayText)}${OSC8_START}`;
65008
65053
  }
65009
65054
  //#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
65055
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
65011
65056
  /**
65012
65057
  * Clickable file targets: turning path-like text in AI output into
65013
65058
  * clickable targets, and resolving those targets back to absolute paths at
@@ -65149,7 +65194,7 @@ function linkifyFilePaths(text, wrap) {
65149
65194
  });
65150
65195
  }
65151
65196
  //#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
65197
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
65153
65198
  /**
65154
65199
  * Markdown-to-ANSI renderer over marked's token stream.
65155
65200
  *
@@ -65464,7 +65509,7 @@ function padAligned(content, displayWidth, targetWidth, align) {
65464
65509
  return content + " ".repeat(extra);
65465
65510
  }
65466
65511
  //#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
65512
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
65468
65513
  let cliHighlightPromise;
65469
65514
  async function loadCliHighlight() {
65470
65515
  try {
@@ -65487,7 +65532,7 @@ function getCliHighlightPromise() {
65487
65532
  return cliHighlightPromise;
65488
65533
  }
65489
65534
  //#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
65535
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
65491
65536
  /** Accounts for parent indentation and terminal resize races (from Claude Code). */
65492
65537
  const SAFETY_MARGIN = 4;
65493
65538
  /** Minimum column width to prevent degenerate layouts */
@@ -65674,7 +65719,7 @@ function MarkdownTable({ token, highlight, forceWidth }) {
65674
65719
  return (0, import_jsx_runtime.jsx)(Text, { children: tableLines.join("\n") });
65675
65720
  }
65676
65721
  //#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
65722
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
65678
65723
  const TOKEN_CACHE_CAPACITY = 200;
65679
65724
  const TOKEN_CACHE_CHAR_BUDGET = 2e5;
65680
65725
  const TOKEN_CACHE_MAX_SOURCE_LENGTH = 2e4;
@@ -65783,7 +65828,7 @@ function MarkdownImpl({ children, dimColor = false, cacheTokens = true }) {
65783
65828
  */
65784
65829
  const Markdown = import_react.memo(MarkdownImpl, (prev, next) => prev.children === next.children && prev.dimColor === next.dimColor && prev.cacheTokens === next.cacheTokens);
65785
65830
  //#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
65831
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
65787
65832
  /**
65788
65833
  * The plan-review panel — Claude Code style exit-plan-mode decision card
65789
65834
  * for the DSH user-interaction seam. plan-mode's `exit_plan_mode` tool asks
@@ -66105,7 +66150,7 @@ function PlanReviewPanel({ question, onAnswer, onCancel }) {
66105
66150
  });
66106
66151
  }
66107
66152
  //#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
66153
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
66109
66154
  /**
66110
66155
  * 焦点居中的列表窗口:长列表只渲染焦点附近的一段,保证焦点行始终可见。
66111
66156
  * 瞬态面板走 OverlayAbove 零高度浮层后,超高部分会被 overflow 裁掉且焦点
@@ -66157,7 +66202,7 @@ function listWindow(heights, focusIndex, maxRows, gap = 0) {
66157
66202
  }
66158
66203
  }
66159
66204
  //#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
66205
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
66161
66206
  /**
66162
66207
  * The questionnaire panel — Claude Code style ask-user-question UI for the
66163
66208
  * DSH user-interaction seam. One question per panel (progress header, header
@@ -66740,7 +66785,7 @@ function AskUserQuestionPanel({ question, position, total, answered, initialDraf
66740
66785
  });
66741
66786
  }
66742
66787
  //#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
66788
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
66744
66789
  /**
66745
66790
  * The approval panel — Claude Code style permission prompt for the DSH
66746
66791
  * approval seam (`ctx.approval`). One ask per panel: a permission-colored
@@ -66865,7 +66910,7 @@ function ApprovalPanel({ approval, background = false, onDecide }) {
66865
66910
  });
66866
66911
  }
66867
66912
  //#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
66913
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
66869
66914
  /**
66870
66915
  * A pane — a region below the prompt bounded by a colored top line with a
66871
66916
  * one-row gap above and horizontal padding, mirroring Claude Code's
@@ -66887,7 +66932,7 @@ function Pane({ children, color }) {
66887
66932
  });
66888
66933
  }
66889
66934
  //#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
66935
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
66891
66936
  /**
66892
66937
  * A list item for selection UIs, mirroring Claude Code's
66893
66938
  * design-system/ListItem.tsx: `❯` pointer for the focused row, `✓`
@@ -66984,7 +67029,7 @@ function flattenDeep(node) {
66984
67029
  return node;
66985
67030
  }
66986
67031
  //#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
67032
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
66988
67033
  /**
66989
67034
  * Localized shortcut-hint line: renders a `t('hint-*')` string, with the
66990
67035
  * `**primary shortcut**` segment (the main action's key, wrapped in `**` in
@@ -67001,7 +67046,7 @@ function HintLine({ text }) {
67001
67046
  }, index) : part) });
67002
67047
  }
67003
67048
  //#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
67049
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
67005
67050
  /**
67006
67051
  * The managed plugin dialog (`ctx.tuiDialogs`) — one panel rendering the
67007
67052
  * store's current snapshot in the chat chrome (the slot approval/question
@@ -67261,7 +67306,7 @@ function InputDialog({ dialog, onDecide, onCancel }) {
67261
67306
  });
67262
67307
  }
67263
67308
  //#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
67309
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
67265
67310
  /**
67266
67311
  * Set the search highlight query on the Ink instance. Non-empty → all
67267
67312
  * visible occurrences are inverted on the next frame (SGR 7, screen-buffer
@@ -67293,7 +67338,7 @@ function useSearchHighlight() {
67293
67338
  }, [ink]);
67294
67339
  }
67295
67340
  //#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
67341
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
67297
67342
  /**
67298
67343
  * Declaratively set the terminal tab/window title.
67299
67344
  *
@@ -67316,7 +67361,7 @@ function useTerminalTitle(title) {
67316
67361
  }, [title, writeRaw]);
67317
67362
  }
67318
67363
  //#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
67364
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
67320
67365
  /**
67321
67366
  * Session browser formatting.
67322
67367
  *
@@ -67565,7 +67610,7 @@ function projectName(cwd) {
67565
67610
  return normalized.split("/").filter(Boolean).at(-1) ?? normalized;
67566
67611
  }
67567
67612
  //#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
67613
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
67569
67614
  /**
67570
67615
  * Tooltip hover system — the terminal equivalent of the HTML `title`
67571
67616
  * attribute. Attach {@link useTooltip} props to any Box whose visible text
@@ -67773,7 +67818,7 @@ function wrapTooltipContent(text, width) {
67773
67818
  return rows;
67774
67819
  }
67775
67820
  //#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
67821
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
67777
67822
  /** User prompt row in the legacy CLI treatment: a full-width gray strip. */
67778
67823
  function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
67779
67824
  const { columns } = useTerminalSize();
@@ -67802,7 +67847,7 @@ function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
67802
67847
  });
67803
67848
  }
67804
67849
  //#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
67850
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
67806
67851
  /**
67807
67852
  * Assistant text message: bullet + markdown body (mirroring Claude Code's default branch).
67808
67853
  *
@@ -67835,7 +67880,7 @@ function AssistantTextMessage({ text, addMargin, isSelected = false, isExpanded
67835
67880
  });
67836
67881
  }
67837
67882
  //#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
67883
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
67839
67884
  /**
67840
67885
  * Renders markdown during streaming by splitting at the last top-level block
67841
67886
  * boundary: everything before is stable (memoized, never re-parsed), only the
@@ -68025,7 +68070,7 @@ function StreamingMarkdown({ children, dimColor = false }) {
68025
68070
  });
68026
68071
  }
68027
68072
  //#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
68073
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
68029
68074
  /**
68030
68075
  * Spinner 动画的通用工具集:平台相关的帧字符选择、RGB 颜色插值、
68031
68076
  * HSL 色相转 RGB,以及 `rgb(...)` 颜色字符串的解析与记忆化。
@@ -68105,7 +68150,7 @@ function parseRGB(colorStr) {
68105
68150
  return parsed;
68106
68151
  }
68107
68152
  //#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
68153
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
68109
68154
  /** Header blue-white ladder: brand → ice → pale → soft ice flash.
68110
68155
  * FLASH stays visibly blue (never pure white) — the highlight reads as a
68111
68156
  * mist-brightened crest, not a white strobe. */
@@ -68121,7 +68166,7 @@ const ICE = {
68121
68166
  b: 255
68122
68167
  };
68123
68168
  //#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
68169
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
68125
68170
  /** Preview body rows — a FIXED row count (kimicode-style constant-height
68126
68171
  * ticker). Ink's truncate slices the whole string across newlines as one
68127
68172
  * logical line, so a single joined Text collapses to 1-2 rows whenever
@@ -68234,7 +68279,7 @@ function AssistantThinkingMessage({ thinking, textFull, addMargin, verbose, stre
68234
68279
  });
68235
68280
  }
68236
68281
  //#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
68282
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
68238
68283
  const CATEGORY_BY_TOOL = {
68239
68284
  bash: "exec",
68240
68285
  powershell: "exec",
@@ -68815,7 +68860,7 @@ var ArrayDiff = class extends Diff {
68815
68860
  };
68816
68861
  new ArrayDiff();
68817
68862
  //#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
68863
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
68819
68864
  const ANSI16 = {
68820
68865
  30: "rgb(0,0,0)",
68821
68866
  31: "rgb(128,0,0)",
@@ -68900,7 +68945,7 @@ function syntaxThemeSignature(theme) {
68900
68945
  return Object.values(SYNTAX_CLASS_TO_TOKEN).map((key) => palette[key] ?? "").join("|");
68901
68946
  }
68902
68947
  //#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
68948
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
68904
68949
  /**
68905
68950
  * Smooth streaming reveal — decouples "text the provider has delivered" from
68906
68951
  * "text the screen is showing" (the oh-my-pi `display.smoothStreaming` idea,
@@ -69146,7 +69191,7 @@ function revealLinesOf(key, total, options) {
69146
69191
  return Math.min(existing.revealed, total);
69147
69192
  }
69148
69193
  //#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
69194
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
69150
69195
  /** Replace tabs so width math and alignment hold (pi convention). */
69151
69196
  const expandTabs = (text) => text.replaceAll(" ", " ");
69152
69197
  /**
@@ -69455,7 +69500,7 @@ function SplitDiffView({ diffs, width, maxRows, verbose, toolBackground = "none"
69455
69500
  });
69456
69501
  }
69457
69502
  //#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
69503
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
69459
69504
  /** Async nested Text renderer. Lexes the complete payload before splitting. */
69460
69505
  function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, dimColor }) {
69461
69506
  const [highlighter, setHighlighter] = import_react.useState(null);
@@ -69499,7 +69544,7 @@ function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, d
69499
69544
  }, index)) });
69500
69545
  }
69501
69546
  //#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
69547
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
69503
69548
  /**
69504
69549
  * Trajectory formatting — durations, clocks, badges and heat.
69505
69550
  *
@@ -69701,7 +69746,7 @@ function ledgerLayout(columns) {
69701
69746
  };
69702
69747
  }
69703
69748
  //#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
69749
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
69705
69750
  /**
69706
69751
  * Reveal-frame wakeup as a React hook — bumps once per advancing ~30fps
69707
69752
  * scheduler tick so consumers re-run their render-phase cursor reads
@@ -69731,7 +69776,7 @@ function useRevealVersion(enabled = true) {
69731
69776
  return version;
69732
69777
  }
69733
69778
  //#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
69779
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
69735
69780
  /** Tool display names: DSH emits lowercase tool ids (`bash`); Claude Code
69736
69781
  * shows capitalized names (`Bash`). Map the common ones, fall back to the
69737
69782
  * id with its first letter uppercased. */
@@ -70267,7 +70312,7 @@ function AssistantToolUseMessage({ tool, addMargin, verbose, isSelected = false,
70267
70312
  });
70268
70313
  }
70269
70314
  //#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
70315
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
70271
70316
  /** The waterfall window is a Kimi Code style constant-height region. */
70272
70317
  const WATERFALL_ROWS = 3;
70273
70318
  /** Card left padding + the `│ ` gutter prefix. */
@@ -70475,7 +70520,7 @@ function SubagentMessage({ subagent, addMargin, activityFrames, onClick }) {
70475
70520
  });
70476
70521
  }
70477
70522
  //#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
70523
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
70479
70524
  /** Card left padding + the `│ ` gutter prefix. */
70480
70525
  const WATERFALL_GUTTER = 4;
70481
70526
  /** Static status marker — deliberately NOT the animated activity-indicator
@@ -70628,7 +70673,7 @@ function JobCard({ job, addMargin, onClick }) {
70628
70673
  });
70629
70674
  }
70630
70675
  //#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
70676
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
70632
70677
  /**
70633
70678
  * The dim "interrupted" row shown when the user stops a turn, mirroring
70634
70679
  * Claude Code's `InterruptedByUser.tsx`.
@@ -70643,7 +70688,7 @@ function InterruptedByUser() {
70643
70688
  })] });
70644
70689
  }
70645
70690
  //#endregion
70646
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
70691
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
70647
70692
  /**
70648
70693
  * 当月 AI 代码生成占比统计(移植自 chatcode-cli 的同名服务)。
70649
70694
  *
@@ -70798,7 +70843,7 @@ async function fetchGitCommitRecords(post, signal) {
70798
70843
  /**
70799
70844
  * 计算当月整体 AI 代码生成占比(百分数):
70800
70845
  * sum(AI采纳行数) / sum(新增行数) × 100。
70801
- * 无记录或新增行数为 0 时返回 null(调用方据此隐藏指示行)。
70846
+ * 无记录或新增行数为 0 时返回 null(调用方显示暂无数据,不伪装成 0%)。
70802
70847
  */
70803
70848
  function computeAiRatioPercent(records) {
70804
70849
  let addedTotal = 0;
@@ -70811,51 +70856,71 @@ function computeAiRatioPercent(records) {
70811
70856
  return clampPercent(aiAdoptedTotal / addedTotal * 100);
70812
70857
  }
70813
70858
  //#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
70859
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
70815
70860
  /**
70816
70861
  * 「AI代码生成占比」数据源 Hook(移植自 chatcode-cli 的同名 Hook)。
70817
70862
  *
70818
70863
  * 数据来源:ChatCode 平台 gitCommitRecord 接口(src/gitCommitStats.ts),
70819
70864
  * 聚合当月 sum(AI采纳行数)/sum(新增行数) 得到百分比。
70820
- * 挂载时拉取一次,之后定时轮询刷新;未登录/请求失败时静默(ratio 为 null,
70821
- * 指示行不显示),绝不影响主流程。
70865
+ * 挂载时拉取一次,成功后定时刷新,失败后短间隔重试;状态交给首页展示,
70866
+ * 不向终端打印错误,也不阻塞主流程。
70822
70867
  */
70823
70868
  const POLL_INTERVAL_MS$1 = 600 * 1e3;
70869
+ const RETRY_INTERVAL_MS = 30 * 1e3;
70824
70870
  function useAiRatio(enabled = true) {
70825
70871
  const [ratioPercent, setRatioPercent] = import_react.useState(null);
70826
70872
  const [loading, setLoading] = import_react.useState(true);
70873
+ const [unavailable, setUnavailable] = import_react.useState(false);
70827
70874
  const post = import_react.useContext(ChatCodeApiContext);
70828
70875
  import_react.useEffect(() => {
70829
70876
  if (!enabled || post === void 0) {
70877
+ setRatioPercent(null);
70830
70878
  setLoading(false);
70879
+ setUnavailable(true);
70831
70880
  return;
70832
70881
  }
70833
70882
  let cancelled = false;
70834
70883
  const controller = new AbortController();
70884
+ let timer;
70885
+ setRatioPercent(null);
70886
+ setLoading(true);
70887
+ setUnavailable(false);
70835
70888
  const refresh = async () => {
70889
+ let delay = POLL_INTERVAL_MS$1;
70836
70890
  try {
70837
70891
  const records = await fetchGitCommitRecords(post, controller.signal);
70838
- if (!cancelled) setRatioPercent(computeAiRatioPercent(records));
70839
- } catch {} finally {
70840
- if (!cancelled) setLoading(false);
70892
+ if (!cancelled) {
70893
+ setRatioPercent(computeAiRatioPercent(records));
70894
+ setUnavailable(false);
70895
+ }
70896
+ } catch {
70897
+ delay = RETRY_INTERVAL_MS;
70898
+ if (!cancelled) setUnavailable(true);
70899
+ } finally {
70900
+ if (!cancelled) {
70901
+ setLoading(false);
70902
+ timer = setTimeout(() => {
70903
+ refresh();
70904
+ }, delay);
70905
+ timer.unref?.();
70906
+ }
70841
70907
  }
70842
70908
  };
70843
70909
  refresh();
70844
- const timer = setInterval(() => void refresh(), POLL_INTERVAL_MS$1);
70845
- if (typeof timer.unref === "function") timer.unref();
70846
70910
  return () => {
70847
70911
  cancelled = true;
70848
70912
  controller.abort();
70849
- clearInterval(timer);
70913
+ clearTimeout(timer);
70850
70914
  };
70851
70915
  }, [enabled, post]);
70852
70916
  return {
70853
70917
  ratioPercent,
70854
- loading
70918
+ loading,
70919
+ unavailable
70855
70920
  };
70856
70921
  }
70857
70922
  //#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
70923
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
70859
70924
  /**
70860
70925
  * Slice a string to at most `maxWidth` terminal cells, walking by code
70861
70926
  * point so CJK wide characters never split mid-glyph. Assumes no ANSI in
@@ -70873,7 +70938,7 @@ function truncateToWidth(text, maxWidth) {
70873
70938
  return out;
70874
70939
  }
70875
70940
  //#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
70941
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
70877
70942
  /** Main ChatCode CLI package version shown in the startup information panel. */
70878
70943
  const VERSION = PRODUCT_VERSION;
70879
70944
  const PRODUCT_LABEL = "chatcode-cli";
@@ -71005,7 +71070,7 @@ function InfoRow({ icon, label, value, labelWidth, rowWidth }) {
71005
71070
  function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71006
71071
  const { columns, rows } = useTerminalSize();
71007
71072
  const [driftLine] = import_react.useState(() => drift === void 0 ? upstreamDriftSummary() : drift);
71008
- const { ratioPercent: fetchedAiRatioPercent } = useAiRatio(aiRatio === void 0);
71073
+ const { ratioPercent: fetchedAiRatioPercent, loading, unavailable } = useAiRatio(aiRatio === void 0);
71009
71074
  const aiRatioPercent = aiRatio !== void 0 ? aiRatio : fetchedAiRatioPercent;
71010
71075
  const expandedArt = whale && columns >= ART_MIN_COLUMNS;
71011
71076
  const panelWidth = Math.max(1, Math.min(58, columns - 2));
@@ -71016,7 +71081,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71016
71081
  const modelValue = effort === void 0 ? model : `${model} · ${effort}`;
71017
71082
  const supportLabel = getLang() === "zh" ? panelWidth >= 42 ? "钉钉支撑群" : "支撑群" : panelWidth >= 42 ? "DingTalk support" : "Support";
71018
71083
  const aiRatioLabel = getLang() === "zh" ? "AI代码生成占比" : "AI code ratio";
71019
- const aiRatioValue = getLang() === "zh" ? `${aiRatioPercent?.toFixed(1) ?? ""}%(当月)` : `${aiRatioPercent?.toFixed(1) ?? ""}% (month)`;
71084
+ 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
71085
  return (0, import_jsx_runtime.jsxs)(ThemedBox, {
71021
71086
  flexDirection: "column",
71022
71087
  alignItems: "center",
@@ -71069,7 +71134,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71069
71134
  labelWidth,
71070
71135
  rowWidth: infoRowWidth
71071
71136
  }),
71072
- aiRatioPercent != null && (0, import_jsx_runtime.jsx)(InfoRow, {
71137
+ aiRatio !== null && (0, import_jsx_runtime.jsx)(InfoRow, {
71073
71138
  icon: "◆",
71074
71139
  label: aiRatioLabel,
71075
71140
  value: aiRatioValue,
@@ -71109,7 +71174,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
71109
71174
  });
71110
71175
  }
71111
71176
  //#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
71177
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
71113
71178
  /**
71114
71179
  * Transcript-mode metadata row: `HH:MM · model`, right-aligned above the
71115
71180
  * assistant text, mirroring Claude Code's MessageTimestamp + MessageModel,
@@ -71131,7 +71196,7 @@ function MessageMetadata({ timestamp, model }) {
71131
71196
  });
71132
71197
  }
71133
71198
  //#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
71199
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
71135
71200
  /**
71136
71201
  * Strip the `⏵` self-narration line from assistant text. The
71137
71202
  * dsh-working-activity narrate contract puts exactly one `⏵` line at the
@@ -71247,7 +71312,7 @@ function ellipsize(line, maxWidth) {
71247
71312
  return `${out}…`;
71248
71313
  }
71249
71314
  //#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
71315
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
71251
71316
  /**
71252
71317
  * Transcript rows rendered in the Claude Code visual language: user prompts
71253
71318
  * on a grey bubble with a `❯` pointer, assistant text with a `●` bullet and
@@ -72060,7 +72125,7 @@ function LogoHeader({ model, effort, cwd, whale = true, skipIntro = false }) {
72060
72125
  });
72061
72126
  }
72062
72127
  //#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
72128
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
72064
72129
  /** ▴ / ▾ (U+25B4 / U+25BE — the small triangles; CP437-safe on ConHost too). */
72065
72130
  const CHEVRON_UP = " ▴";
72066
72131
  const CHEVRON_DOWN = " ▾";
@@ -72254,7 +72319,7 @@ function TimelineRail({ handle, turns, activeId, upId, downId, terminalWidth, ho
72254
72319
  }) });
72255
72320
  }
72256
72321
  //#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
72322
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
72258
72323
  /** Thumb glyph across the 2-col gutter: solid, clearly positional —
72259
72324
  * deliberately distinct from the timeline's ━━ active tick. */
72260
72325
  const THUMB = "██";
@@ -72370,7 +72435,7 @@ function ScrollbarGutter({ handle, terminalWidth }) {
72370
72435
  }) });
72371
72436
  }
72372
72437
  //#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
72438
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
72374
72439
  /**
72375
72440
  * 瞬态面板的浮层容器:absolute 定位 + bottom:'100%' 把面板底边钉在锚点
72376
72441
  * (父元素)顶边,向上覆盖转录尾部行,自身**不占布局高度**。
@@ -72403,7 +72468,7 @@ function OverlayAbove({ children, maxHeight }) {
72403
72468
  });
72404
72469
  }
72405
72470
  //#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
72471
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
72407
72472
  /**
72408
72473
  * Trajectory motion — five verbs, one shared clock, one hard rule.
72409
72474
  *
@@ -72528,7 +72593,7 @@ function alert(tick, startTick) {
72528
72593
  return Math.floor(age / 2) % 2 === 0 ? 1 : 0;
72529
72594
  }
72530
72595
  //#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
72596
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
72532
72597
  /** 三幕时间轴(ms):扫光全长、字样启动(波至中段)、字样渐亮、渐隐起止。边框扫光与输入行字样徽标共用。 */
72533
72598
  const IGNITION_TIMELINE = {
72534
72599
  sweepMs: 1e3,
@@ -72676,7 +72741,7 @@ function ignitionLineColors(options) {
72676
72741
  return colors;
72677
72742
  }
72678
72743
  //#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
72744
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
72680
72745
  /**
72681
72746
  * EffortChargeGlyph — 输入提示前缀 `❯ ` 的最高档强调与充能。
72682
72747
  *
@@ -72732,7 +72797,7 @@ function EffortChargeGlyph({ effort, levels, working }) {
72732
72797
  });
72733
72798
  }
72734
72799
  //#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
72800
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
72736
72801
  /**
72737
72802
  * EffortInputBorder — 输入框层上的三幕点焰叠加(对齐 Codex 的完整
72738
72803
  * 语义:光扫过、档位字样浮现、整体渐隐)。
@@ -72867,7 +72932,7 @@ function EffortInputBorder({ effort, levels, columns, onLight, idleColor, topRig
72867
72932
  });
72868
72933
  }
72869
72934
  //#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
72935
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
72871
72936
  /**
72872
72937
  * EffortTierBadge — 输入行尾的档位字样徽标:三幕点焰的第二幕载体
72873
72938
  * (与 EffortInputBorder 的双框扫光同一时间轴、同一触发),切到最高
@@ -72950,7 +73015,7 @@ function EffortTierBadge({ effort, levels, onLight, columns, leadingColumns }) {
72950
73015
  });
72951
73016
  }
72952
73017
  //#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
73018
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
72954
73019
  /**
72955
73020
  * Cross-platform clipboard access for Ctrl+V paste. The TUI runs in raw
72956
73021
  * mode, so the terminal never performs its own paste for Ctrl+V — the key
@@ -73088,7 +73153,7 @@ async function ensureImageDir() {
73088
73153
  if (imageDir !== void 0) return imageDir;
73089
73154
  let dir;
73090
73155
  try {
73091
- dir = await mkdtemp(join(tmpdir(), "dsh-tui-paste-"));
73156
+ dir = await mkdtemp(join(tmpdir(), "chatcode-cli-paste-"));
73092
73157
  } catch {
73093
73158
  return null;
73094
73159
  }
@@ -73464,7 +73529,7 @@ function formatClipboardInsert(content) {
73464
73529
  return content.text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
73465
73530
  }
73466
73531
  //#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
73532
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
73468
73533
  /**
73469
73534
  * External editor round-trip for the prompt input (issue #123): Ctrl+G dumps
73470
73535
  * the current draft into a temp file, hands the terminal to `$VISUAL` /
@@ -73703,7 +73768,7 @@ async function editInExternalEditor(draft) {
73703
73768
  if (argv === void 0) return { kind: "unavailable" };
73704
73769
  let dir;
73705
73770
  try {
73706
- dir = await mkdtemp(join(tmpdir(), "dsh-tui-prompt-"));
73771
+ dir = await mkdtemp(join(tmpdir(), "chatcode-cli-prompt-"));
73707
73772
  const file = join(dir, "input.md");
73708
73773
  await writeFile(file, draft, "utf8");
73709
73774
  const outcome = await withEditorHandoff(argv, file, async (code) => {
@@ -73742,7 +73807,7 @@ async function editInExternalEditor(draft) {
73742
73807
  }
73743
73808
  }
73744
73809
  //#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
73810
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
73746
73811
  let editorNode = null;
73747
73812
  const listeners = /* @__PURE__ */ new Set();
73748
73813
  /** Publish (or withdraw, with null) the fullscreen editor subtree. */
@@ -73818,7 +73883,7 @@ function EditorButton({ label, hint, onClick, primary, accent }) {
73818
73883
  });
73819
73884
  }
73820
73885
  //#endregion
73821
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
73886
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
73822
73887
  const HISTORY_DIR = DATA_DIR;
73823
73888
  const HISTORY_FILE = join(HISTORY_DIR, "history.jsonl");
73824
73889
  const HISTORY_LOCK = `${HISTORY_FILE}.lock`;
@@ -73952,7 +74017,7 @@ function historyEntryId(entry, index = 0) {
73952
74017
  return createHash("sha1").update(`${entry.text}\0${entry.ts}\0${index}`).digest("hex").slice(0, 12);
73953
74018
  }
73954
74019
  //#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
74020
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
73956
74021
  /**
73957
74022
  * `/` 命令菜单与 `@` 文件菜单共用的圆角卡片外壳(与输入框 EffortInputBorder
73958
74023
  * 同款 ╭╮╰╯ 视觉语言):
@@ -74084,7 +74149,7 @@ function splitQueryMatch(name, query) {
74084
74149
  return startsWith(0) ?? (lastSpace >= 0 ? startsWith(lastSpace + 1) : null) ?? startsWith(name.lastIndexOf("/") + 1);
74085
74150
  }
74086
74151
  //#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
74152
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
74088
74153
  /**
74089
74154
  * The slash-command suggestion overlay, mirroring Claude Code's
74090
74155
  * `PromptInputFooterSuggestions.tsx` (command layout only) wrapped in the
@@ -74164,7 +74229,7 @@ function CommandSuggestions({ commands, selectedIndex, columns, query = "", acce
74164
74229
  });
74165
74230
  }
74166
74231
  //#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
74232
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
74168
74233
  /**
74169
74234
  * The `@` file-completion overlay in CC's suggestion style, wrapped in the
74170
74235
  * shared rounded `SuggestionCard` (与 `/` 命令菜单同一视觉语言):
@@ -74263,7 +74328,7 @@ function FileSuggestions({ files, selectedIndex, columns, query = "", accent, on
74263
74328
  });
74264
74329
  }
74265
74330
  //#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
74331
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
74267
74332
  /**
74268
74333
  * The `?` help menu, mirroring Claude Code's `PromptInputHelpMenu.tsx`
74269
74334
  * (three-column shortcut layout, trimmed to the keys dsh-tui actually binds).
@@ -74454,7 +74519,7 @@ function HelpCommandRow({ command, onPick }) {
74454
74519
  });
74455
74520
  }
74456
74521
  //#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
74522
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
74458
74523
  const HISTORY_LIMIT = 50;
74459
74524
  /**
74460
74525
  * Paste fold (CC-style collapse with a visible preview, no black box):
@@ -76734,7 +76799,7 @@ function wordSelectionAt(text, offset, lo, hi) {
76734
76799
  };
76735
76800
  }
76736
76801
  //#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
76802
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
76738
76803
  /** Maximum todo rows shown before the overflow line. */
76739
76804
  const MAX_TODOS = 8;
76740
76805
  const PHASE_LABEL = {
@@ -76980,7 +77045,7 @@ function GoalTodoPanel({ channel, collapsed = false, onToggle }) {
76980
77045
  });
76981
77046
  }
76982
77047
  //#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
77048
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
76984
77049
  /**
76985
77050
  * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
76986
77051
  * at the bottom of the transcript after an automatic summary on session
@@ -77060,7 +77125,7 @@ function summarizeLoadedContext(context) {
77060
77125
  return parts.join(" · ");
77061
77126
  }
77062
77127
  //#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
77128
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
77064
77129
  /** One named entry (section or dynamic context) with its full text. */
77065
77130
  function Entry({ entry }) {
77066
77131
  return (0, import_jsx_runtime.jsxs)(ThemedBox, {
@@ -77197,7 +77262,7 @@ function LoadedContextPanel({ context, open, onToggle }) {
77197
77262
  });
77198
77263
  }
77199
77264
  //#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
77265
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
77201
77266
  /**
77202
77267
  * Terminal-safe construction cycle derived from the supplied China Unicom
77203
77268
  * knot mark. Every frame is one display cell, unlike emoji on mixed terminals.
@@ -77229,7 +77294,7 @@ function UnicomKnotSpinner({ time }) {
77229
77294
  });
77230
77295
  }
77231
77296
  //#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
77297
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
77233
77298
  /**
77234
77299
  * Context-pressure percentage (0–100) from the last usage snapshot, or
77235
77300
  * undefined when unknown — shared by the spinner-line and status-line
@@ -77301,7 +77366,7 @@ function ActivityLine({ activity, activityFrames, warnPct, warnDanger, suffix })
77301
77366
  });
77302
77367
  }
77303
77368
  //#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
77369
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
77305
77370
  /**
77306
77371
  * Structural guards for the session events the trajectory projection reads.
77307
77372
  *
@@ -77525,7 +77590,7 @@ function readTodos(data) {
77525
77590
  };
77526
77591
  }
77527
77592
  //#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
77593
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
77529
77594
  /**
77530
77595
  * Trajectory projection — the data contract shared by the adapter-side fold
77531
77596
  * and the UI-side scene (issue #80 evolution).
@@ -77592,7 +77657,7 @@ function previewText(raw, limit) {
77592
77657
  return `${flat.slice(0, limit)}…`;
77593
77658
  }
77594
77659
  //#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
77660
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
77596
77661
  /**
77597
77662
  * Trajectory projection — folding the session event log into ledger nodes.
77598
77663
  *
@@ -78171,7 +78236,7 @@ function extendTrajectory(previous, events) {
78171
78236
  };
78172
78237
  }
78173
78238
  //#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
78239
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
78175
78240
  /**
78176
78241
  * Trajectory aggregate — the hotspot view's data and the session totals.
78177
78242
  *
@@ -78392,7 +78457,7 @@ function modelTiming(timing) {
78392
78457
  };
78393
78458
  }
78394
78459
  //#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
78460
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
78396
78461
  /**
78397
78462
  * Inspector detail — full content, resolved on demand.
78398
78463
  *
@@ -78552,7 +78617,7 @@ function inspectNode(node, events) {
78552
78617
  };
78553
78618
  }
78554
78619
  //#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
78620
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
78556
78621
  /**
78557
78622
  * Wave band projection — the whole session compressed onto one row of glyphs.
78558
78623
  *
@@ -78725,7 +78790,7 @@ function columnOfIndex(band, ledgerIndex) {
78725
78790
  return 0;
78726
78791
  }
78727
78792
  //#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
78793
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
78729
78794
  /**
78730
78795
  * The mini wake — the whole session as a dozen glyphs in the status line.
78731
78796
  *
@@ -78828,7 +78893,7 @@ function toHex$1(colour) {
78828
78893
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
78829
78894
  }
78830
78895
  //#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
78896
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
78832
78897
  /**
78833
78898
  * Status-line metric renderers, ported from two pi extensions:
78834
78899
  * - `pi-nano-context`: segmented context progress bar (morandi pastel
@@ -79104,7 +79169,7 @@ function tpsStats(samples, nowMs) {
79104
79169
  };
79105
79170
  }
79106
79171
  //#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
79172
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
79108
79173
  /** Free-segment colors, mirroring StatusMetrics' dark-theme defaults. */
79109
79174
  const FREE_FILL = "#E8E8E8";
79110
79175
  const FREE_TEXT = "#4A4A4A";
@@ -79171,7 +79236,7 @@ function ContextBarView({ segments, usedTokens, contextWindow, width, colors, on
79171
79236
  });
79172
79237
  }
79173
79238
  //#endregion
79174
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
79239
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
79175
79240
  /**
79176
79241
  * ChatCode 今日总 Token 消耗量查询(移植自 chatcode-cli 的 chatCodeTokenTrend)。
79177
79242
  *
@@ -79246,7 +79311,7 @@ async function fetchTodayTotalTokens(post, signal) {
79246
79311
  }
79247
79312
  }
79248
79313
  //#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
79314
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
79250
79315
  /**
79251
79316
  * 「今日总Token消耗」数据源 Hook(移植自 chatcode-cli 的 useTokenDashboard)。
79252
79317
  *
@@ -79278,7 +79343,7 @@ function useTodayTotalTokens(enabled = true) {
79278
79343
  return { totalTokens };
79279
79344
  }
79280
79345
  //#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
79346
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
79282
79347
  const BAR_WIDTH = 14;
79283
79348
  /** Yuanjing-compatible percentage label centered inside a fixed-width bar. */
79284
79349
  function LabeledBar({ ratio, percent }) {
@@ -79354,7 +79419,7 @@ function TokenDashboard({ todayTokens, usedTokens, contextWindow, compact = fals
79354
79419
  });
79355
79420
  }
79356
79421
  //#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
79422
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
79358
79423
  /** Stable fallback for stubbed channels: verify/repro harnesses render the
79359
79424
  * real Chat with partial channel literals that predate the jobs field. */
79360
79425
  const NO_BACKGROUND_JOBS = [];
@@ -80265,7 +80330,7 @@ const fallbackSymbols = {
80265
80330
  const figures = isUnicodeSupported() ? mainSymbols : fallbackSymbols;
80266
80331
  Object.entries(specialMainSymbols);
80267
80332
  //#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
80333
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
80269
80334
  /**
80270
80335
  * Joins children with a middot separator (" · ") for inline metadata display
80271
80336
  * (in the Claude Code visual language). Automatically filters out
@@ -80281,7 +80346,7 @@ function Byline({ children }) {
80281
80346
  }), child] }, (0, import_react.isValidElement)(child) ? child.key ?? index : index)) });
80282
80347
  }
80283
80348
  //#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
80349
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
80285
80350
  const ERROR_RED$1 = {
80286
80351
  r: 171,
80287
80352
  g: 43,
@@ -80371,7 +80436,7 @@ function GlimmerMessage({ message, mode, messageColor, glimmerIndex, flashOpacit
80371
80436
  })] });
80372
80437
  }
80373
80438
  //#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
80439
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
80375
80440
  const DEFAULT_CHARACTERS = getDefaultCharacters();
80376
80441
  const SPINNER_FRAMES$1 = [...DEFAULT_CHARACTERS, ...[...DEFAULT_CHARACTERS].reverse()];
80377
80442
  const REDUCED_MOTION_DOT = "●";
@@ -80432,7 +80497,7 @@ function SpinnerGlyph({ frame, messageColor, stalledIntensity = 0, reducedMotion
80432
80497
  });
80433
80498
  }
80434
80499
  //#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
80500
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
80436
80501
  /**
80437
80502
  * Tracks the transition to red when tokens stop flowing (mirroring Claude Code's `Spinner/useStalledAnimation.ts`). Driven by the parent's animation
80438
80503
  * clock time instead of independent intervals, so it slows down when the
@@ -80489,7 +80554,7 @@ function useStalledAnimation(time, currentResponseLength, hasActiveTools = false
80489
80554
  };
80490
80555
  }
80491
80556
  //#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
80557
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
80493
80558
  const SEP_WIDTH = stringWidth$1(" · ");
80494
80559
  const THINKING_BARE_WIDTH = stringWidth$1("thinking");
80495
80560
  const SHOW_TOKENS_AFTER_MS = 3e4;
@@ -80656,7 +80721,7 @@ function SpinnerModeGlyph({ mode }) {
80656
80721
  }
80657
80722
  }
80658
80723
  //#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
80724
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
80660
80725
  /**
80661
80726
  * The working spinner block shown between the transcript and the prompt
80662
80727
  * input while a turn is in flight. Mirrors Claude Code's `Spinner.tsx`
@@ -80726,7 +80791,7 @@ function useThinkingStatus(isThinking) {
80726
80791
  return thinkingStatus;
80727
80792
  }
80728
80793
  //#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
80794
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
80730
80795
  /**
80731
80796
  * Model picker in the CC ModelPicker style: a permission-colored Pane with
80732
80797
  * the rows as Select entries (❯ focus pointer, ✓ on the active row,
@@ -80786,7 +80851,7 @@ function ModelPicker(props) {
80786
80851
  });
80787
80852
  }
80788
80853
  //#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
80854
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
80790
80855
  /**
80791
80856
  * Error boundary for plugin scenes (dsh-tui-scenes). A scene component is
80792
80857
  * third-party code rendered inside Chat's tree: without a boundary a render
@@ -80812,7 +80877,7 @@ var PluginSceneBoundary = class extends import_react.Component {
80812
80877
  }
80813
80878
  };
80814
80879
  //#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
80880
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
80816
80881
  const SPINNER_FRAMES = [...getDefaultCharacters(), ...[...getDefaultCharacters()].reverse()];
80817
80882
  /**
80818
80883
  * A spinner with a loading message for async operations, mirroring Claude Code's design-system/LoadingState.tsx (using the small animated glyph).
@@ -80843,7 +80908,7 @@ function LoadingState({ message, bold = false, dimColor = false, subtitle }) {
80843
80908
  });
80844
80909
  }
80845
80910
  //#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
80911
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
80847
80912
  /** 来源桶 → 本地化标签(未知桶原样显示,SkillSource 对自定义桶开放)。 */
80848
80913
  function sourceLabel(source) {
80849
80914
  switch (source) {
@@ -80921,7 +80986,7 @@ function SkillsPickerLoading() {
80921
80986
  });
80922
80987
  }
80923
80988
  //#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
80989
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
80925
80990
  /**
80926
80991
  * Window a single-line query around the caret so the visible slice fits
80927
80992
  * `avail` display cells (CJK display width, code-point safe — `[...s]`
@@ -81059,7 +81124,7 @@ function SearchBox({ query, placeholder = "Search…", isFocused, isTerminalFocu
81059
81124
  });
81060
81125
  }
81061
81126
  //#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
81127
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
81063
81128
  /**
81064
81129
  * One session in the browser's list: a title line and a metadata line.
81065
81130
  *
@@ -81140,7 +81205,7 @@ function SessionListRow({ session, width, depth, focused, pinned, now, onClick,
81140
81205
  });
81141
81206
  }
81142
81207
  //#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
81208
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
81144
81209
  /** Role marker and colour for a preview entry. */
81145
81210
  const ROLE = {
81146
81211
  user: {
@@ -81231,7 +81296,7 @@ function SessionPreview({ session, entries, loading, width, height, home, now })
81231
81296
  });
81232
81297
  }
81233
81298
  //#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
81299
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
81235
81300
  /** One two-line working-directory choice in the /resume browser. */
81236
81301
  function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width, focused, selected, home, now, onClick }) {
81237
81302
  const [hovered, setHovered] = (0, import_react.useState)(false);
@@ -81276,7 +81341,7 @@ function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width,
81276
81341
  });
81277
81342
  }
81278
81343
  //#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
81344
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
81280
81345
  /** The browser's default view: this project, conversations only. */
81281
81346
  const DEFAULT_FILTERS = {
81282
81347
  query: "",
@@ -81565,7 +81630,7 @@ function windowEnd(rows, top, budget) {
81565
81630
  return at;
81566
81631
  }
81567
81632
  //#endregion
81568
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
81633
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
81569
81634
  /**
81570
81635
  * Pinned sessions for the `/resume` browser, kept at
81571
81636
  * `~/.chatcode-cli/tui/session-pins.json` (a JSON array of session ids) so the pins
@@ -81714,7 +81779,7 @@ function setSessionPinned(id, pinned, dir = DATA_DIR) {
81714
81779
  }
81715
81780
  }
81716
81781
  //#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
81782
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
81718
81783
  /**
81719
81784
  * Rows the layout cannot do without: the header, the four-row scope/search
81720
81785
  * card, the notice slot, and the hints. Everything else yields before these.
@@ -82600,7 +82665,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
82600
82665
  });
82601
82666
  }
82602
82667
  //#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
82668
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
82604
82669
  /** Local HH:MM (or MM/DD HH:MM when older than this year). */
82605
82670
  function formatTime(at, now) {
82606
82671
  const date = new Date(at);
@@ -83356,7 +83421,7 @@ function PreviewPane({ entry, meta, width, height, liveSessionId, now, compact }
83356
83421
  });
83357
83422
  }
83358
83423
  //#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
83424
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
83360
83425
  /** Pick the provider-owned translation for the active language. */
83361
83426
  function pick(text, descriptions) {
83362
83427
  return descriptions?.[getLang()] ?? text;
@@ -83944,7 +84009,7 @@ function Settings({ channel, onClose, initialGroup }) {
83944
84009
  lines: 1,
83945
84010
  node: (0, import_jsx_runtime.jsx)(CardTop, {
83946
84011
  title: pick(section.title, section.descriptions),
83947
- subtitle: section.ns,
84012
+ subtitle: section.ns === "dsh-tui" ? void 0 : section.ns,
83948
84013
  badges: sectionBadges(section),
83949
84014
  columns
83950
84015
  })
@@ -84106,7 +84171,7 @@ function Settings({ channel, onClose, initialGroup }) {
84106
84171
  });
84107
84172
  }
84108
84173
  //#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
84174
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
84110
84175
  const WINDOW$1 = 8;
84111
84176
  /** `/workspace` target picker contributed by local and optional providers. */
84112
84177
  function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
@@ -84144,7 +84209,7 @@ function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
84144
84209
  });
84145
84210
  }
84146
84211
  //#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
84212
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
84148
84213
  /**
84149
84214
  * A single-choice select list in the CC CustomSelect style (ported visual:
84150
84215
  * ListItem rows with ❯ focus pointer, ✓ selected checkmark, descriptions,
@@ -84171,7 +84236,7 @@ function Select({ options, focusIndex, selectedValue, visibleOptionCount = 5, on
84171
84236
  });
84172
84237
  }
84173
84238
  //#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
84239
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
84175
84240
  /**
84176
84241
  * Bare `/workspace` action menu: the built-in subcommands (resume / rename /
84177
84242
  * open) plus any dynamically registered workspace extensions. Enter runs the
@@ -84212,7 +84277,7 @@ function WorkspaceMenuPicker({ options, focusIndex, onPick }) {
84212
84277
  });
84213
84278
  }
84214
84279
  //#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
84280
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
84216
84281
  const WINDOW = 8;
84217
84282
  /** Generic nested choice surface returned by a workspace provider command. */
84218
84283
  function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input = null, onPick }) {
@@ -84270,7 +84335,7 @@ function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input =
84270
84335
  });
84271
84336
  }
84272
84337
  //#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
84338
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
84274
84339
  /**
84275
84340
  * Working-activity indicator picker in the CC ModelPicker style (ported
84276
84341
  * from the pi extension's `/activity` interactive select): a
@@ -84312,7 +84377,7 @@ function ActivityPicker({ focusIndex, currentPreset, onPick }) {
84312
84377
  });
84313
84378
  }
84314
84379
  //#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
84380
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
84316
84381
  /**
84317
84382
  * Session accent color picker (bare `/color`): a permission-colored Pane
84318
84383
  * listing the whole palette with a colored swatch per row, `❯` focus
@@ -84356,7 +84421,7 @@ function ColorPicker({ focusIndex, currentColor, onPick }) {
84356
84421
  });
84357
84422
  }
84358
84423
  //#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
84424
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
84360
84425
  /**
84361
84426
  * Reasoning-effort slider (`/effort`): a rheostat row of the live route's
84362
84427
  * adapter-owned levels in adapter order, ←/→ moving focus (each move applies
@@ -84415,7 +84480,7 @@ function EffortSlider({ options, focusIndex, currentId, onPick }) {
84415
84480
  });
84416
84481
  }
84417
84482
  //#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
84483
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
84419
84484
  /**
84420
84485
  * Agent-preset picker (issue #8) in the CC ModelPicker style — same chrome
84421
84486
  * as the ActivityPicker: a permission-colored Pane listing every roster
@@ -84459,7 +84524,7 @@ function PresetPicker({ presets, focusIndex, currentPreset, onPick }) {
84459
84524
  });
84460
84525
  }
84461
84526
  //#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
84527
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
84463
84528
  /**
84464
84529
  * `/permission` sandbox-preset picker. The command itself is registered by
84465
84530
  * the harness side (dsh-sandbox-policy / dsh-base permission-presets row);
@@ -84506,7 +84571,7 @@ function PermissionsPicker({ options, focusIndex, currentValue, cwd, onPick }) {
84506
84571
  });
84507
84572
  }
84508
84573
  //#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
84574
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
84510
84575
  /**
84511
84576
  * `/plan` on/off picker. The command itself is registered by dsh-plan-mode
84512
84577
  * on the harness side; bare `/plan` opens this picker (with the current
@@ -84551,7 +84616,7 @@ function PlanPicker({ focusIndex, currentOn, onPick }) {
84551
84616
  });
84552
84617
  }
84553
84618
  //#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
84619
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
84555
84620
  /**
84556
84621
  * `/lang` en/zh picker: bare `/lang` opens this picker (the current language
84557
84622
  * marked) and Enter applies the choice through the same path as `/lang <id>`.
@@ -84590,7 +84655,7 @@ function LangPicker({ focusIndex, currentLang, onPick }) {
84590
84655
  });
84591
84656
  }
84592
84657
  //#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
84658
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
84594
84659
  /** One double-block swatch character per preview key, in a row. */
84595
84660
  const SWATCH = "██";
84596
84661
  /** Theme keys previewed in the picker, chosen for visual contrast. */
@@ -84676,7 +84741,7 @@ function ThemePicker({ focusIndex, currentTheme, themeHost, onPick }) {
84676
84741
  });
84677
84742
  }
84678
84743
  //#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
84744
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
84680
84745
  /**
84681
84746
  * The `/thinking` display dialog: a permission-colored Pane with a bold
84682
84747
  * title, the Shown/Hidden select, and the Enter/Esc hint line.
@@ -84725,7 +84790,7 @@ function ThinkingToggle({ currentValue, focusIndex, onPick }) {
84725
84790
  });
84726
84791
  }
84727
84792
  //#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
84793
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
84729
84794
  /**
84730
84795
  * The ctrl+r history search dialog, in the shape of Claude Code's
84731
84796
  * HistorySearchDialog/FuzzyPicker: a permission-colored Pane with a bold
@@ -84788,7 +84853,7 @@ function formatRelativeAge(ts) {
84788
84853
  return t("time-days-ago", { n: Math.floor(elapsed / 864e5) });
84789
84854
  }
84790
84855
  //#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
84856
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
84792
84857
  /**
84793
84858
  * Double-Esc rewind picker (CC's "Double-tap esc to rewind the code and/or
84794
84859
  * conversation to a previous point in time"): lists the user's past messages
@@ -84925,7 +84990,7 @@ function preview(text) {
84925
84990
  return flat.length <= 80 ? flat : `${flat.slice(0, 80)}…`;
84926
84991
  }
84927
84992
  //#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
84993
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
84929
84994
  /**
84930
84995
  * /btw side-question panel (CC's btw.tsx, inline-pane form like the local
84931
84996
  * pickers): title line with the question, a scrollable answer body (error /
@@ -85009,7 +85074,7 @@ function BtwPanel({ question, answer, error, streaming, onClose, onCopy }) {
85009
85074
  });
85010
85075
  }
85011
85076
  //#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
85077
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
85013
85078
  function ReleaseNotesPanel({ release, onClose }) {
85014
85079
  const scrollRef = import_react.useRef(null);
85015
85080
  const { rows } = useTerminalSize();
@@ -85054,7 +85119,7 @@ function ReleaseNotesPanel({ release, onClose }) {
85054
85119
  });
85055
85120
  }
85056
85121
  //#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
85122
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
85058
85123
  /**
85059
85124
  * `/recap` panel (pi-recap semantics), in the picker/dialog visual
85060
85125
  * language: a permission-colored Pane with a title bar (会话回顾), a
@@ -85175,7 +85240,7 @@ function RecapPanel({ summary, title, error, streaming, titleApplied, onClose, o
85175
85240
  });
85176
85241
  }
85177
85242
  //#endregion
85178
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
85243
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
85179
85244
  /**
85180
85245
  * 精简 Tips 池 —— 启动首屏轮换(LogoV2)与 `/tips` 命令面板共用。
85181
85246
  *
@@ -85889,7 +85954,7 @@ const TIPS = [
85889
85954
  }
85890
85955
  ];
85891
85956
  //#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
85957
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
85893
85958
  const GROUP_ORDER = [
85894
85959
  "keys",
85895
85960
  "commands",
@@ -85968,7 +86033,7 @@ function TipsPanel({ onClose }) {
85968
86033
  });
85969
86034
  }
85970
86035
  //#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
86036
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
85972
86037
  function formatDuration$1(ms) {
85973
86038
  const seconds = Math.floor(ms / 1e3);
85974
86039
  return seconds < 60 ? `${seconds}s` : `${Math.floor(seconds / 60)}m${seconds % 60}s`;
@@ -86023,7 +86088,7 @@ function SubagentCard({ subagent, focused, onClick }) {
86023
86088
  });
86024
86089
  }
86025
86090
  //#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
86091
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
86027
86092
  /** 可点击 ✕ 退出按钮:整屏/浮层场景的鼠标退出通道(Esc 等价)。 */
86028
86093
  function ExitButton({ onClick }) {
86029
86094
  const [hovered, setHovered] = import_react.useState(false);
@@ -86171,7 +86236,7 @@ function SubagentDashboard({ subagents, onClose, onSelect }) {
86171
86236
  });
86172
86237
  }
86173
86238
  //#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
86239
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
86175
86240
  function statusInfo(status) {
86176
86241
  const minimal = isMinimalMode();
86177
86242
  switch (status) {
@@ -86459,7 +86524,7 @@ function JobsPanel({ jobs, onClose, onKill }) {
86459
86524
  });
86460
86525
  }
86461
86526
  //#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
86527
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
86463
86528
  function formatDuration(ms) {
86464
86529
  if (ms < 1e3) return `${ms}ms`;
86465
86530
  if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
@@ -86917,7 +86982,7 @@ function FileActionsPanel({ path, isDir, focusIndex, onPick }) {
86917
86982
  });
86918
86983
  }
86919
86984
  //#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
86985
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
86921
86986
  function oneLine(text, max = 70) {
86922
86987
  const compact = text.replace(/\s+/gu, " ").trim();
86923
86988
  return compact.length > max ? `${compact.slice(0, max - 1)}…` : compact;
@@ -87009,7 +87074,7 @@ function DiffLoading() {
87009
87074
  });
87010
87075
  }
87011
87076
  //#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
87077
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
87013
87078
  /** `/copy` argument is a one-based reply age; omission selects the latest. */
87014
87079
  function parseCopyIndex(raw, count) {
87015
87080
  const value = raw.trim();
@@ -87039,7 +87104,7 @@ function copyChoiceText(candidate, index) {
87039
87104
  }
87040
87105
  /** Persist a private fallback when terminal clipboard integration is unavailable. */
87041
87106
  async function writeCopyFallback(text) {
87042
- const file = join(await mkdtemp(join(tmpdir(), "dsh-tui-copy-")), "response.txt");
87107
+ const file = join(await mkdtemp(join(tmpdir(), "chatcode-cli-copy-")), "response.txt");
87043
87108
  await writeFile(file, text, {
87044
87109
  encoding: "utf8",
87045
87110
  mode: 384
@@ -87062,7 +87127,7 @@ function gitDiffLines(report, labels) {
87062
87127
  ];
87063
87128
  }
87064
87129
  //#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
87130
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
87066
87131
  /** Compact duration suitable for a terminal report row. */
87067
87132
  function formatStatsDuration(ms) {
87068
87133
  if (ms < 1e3) return `${Math.round(ms)} ms`;
@@ -87108,7 +87173,7 @@ function parsePresetManagement(input) {
87108
87173
  return { kind: "invalid" };
87109
87174
  }
87110
87175
  //#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
87176
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
87112
87177
  const ALIASES = {
87113
87178
  map: "inspect",
87114
87179
  fixit: "repair",
@@ -87163,7 +87228,7 @@ function buildWorkflowCommand(name, rawInput = "") {
87163
87228
  };
87164
87229
  }
87165
87230
  //#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
87231
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
87167
87232
  const EXTERNAL_SCHEME = /^https?:\/\//i;
87168
87233
  /**
87169
87234
  * Classify a clicked link target. Mirrors the previous handleOpenTarget
@@ -87188,7 +87253,7 @@ function classifyOpenTarget(url) {
87188
87253
  return { kind: "rejected" };
87189
87254
  }
87190
87255
  //#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
87256
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
87192
87257
  /**
87193
87258
  * Subscribe to an external store's version counter at DEFAULT lane.
87194
87259
  *
@@ -87237,7 +87302,7 @@ function useExternalVersion(subscribe, getVersion, enabled = true) {
87237
87302
  return version;
87238
87303
  }
87239
87304
  //#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
87305
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
87241
87306
  /**
87242
87307
  * The wake — the whole session drawn as one row of glyphs.
87243
87308
  *
@@ -87374,7 +87439,7 @@ function toHex(colour) {
87374
87439
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
87375
87440
  }
87376
87441
  //#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
87442
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
87378
87443
  /**
87379
87444
  * The ledger — one line per event, columns aligned across every row.
87380
87445
  *
@@ -87620,7 +87685,7 @@ function Ledger({ rows, start, height, cursor, width, tick, arrivalTick, arrival
87620
87685
  });
87621
87686
  }
87622
87687
  //#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
87688
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
87624
87689
  /**
87625
87690
  * The inspector — full detail for the focused row, in a fixed-height slot.
87626
87691
  *
@@ -87726,7 +87791,7 @@ function Inspector({ node, detail, height, width, expanded, scroll }) {
87726
87791
  });
87727
87792
  }
87728
87793
  //#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
87794
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
87730
87795
  /**
87731
87796
  * The hotspot view — the session ranked by cost instead of ordered by time.
87732
87797
  *
@@ -87889,7 +87954,7 @@ function HotspotView({ agg, sort, width, height, cursor, tick, switchTick, onRow
87889
87954
  });
87890
87955
  }
87891
87956
  //#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
87957
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
87893
87958
  /**
87894
87959
  * Trajectory query — whole-session structured filtering.
87895
87960
  *
@@ -88085,7 +88150,7 @@ function applyQuery(nodes, query) {
88085
88150
  };
88086
88151
  }
88087
88152
  //#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
88153
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
88089
88154
  /**
88090
88155
  * The trajectory scene — the session's own screen.
88091
88156
  *
@@ -88573,7 +88638,7 @@ function TrajectoryScene({ channel, build, onClose }) {
88573
88638
  });
88574
88639
  }
88575
88640
  //#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
88641
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
88577
88642
  /** Build the non-empty pages shown by the loaded-context inspector. */
88578
88643
  function contextPages(context) {
88579
88644
  const pages = [];
@@ -88757,7 +88822,7 @@ function LoadedContextScene({ context, onClose }) {
88757
88822
  });
88758
88823
  }
88759
88824
  //#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
88825
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
88761
88826
  /** Rows the layout cannot do without: header, model/cwd line, dispatch
88762
88827
  * input, hints. */
88763
88828
  const MANDATORY_LINES = 4;
@@ -89361,7 +89426,7 @@ function AgentView({ channel, home, approval, onApprove, returnSessionId, onClos
89361
89426
  });
89362
89427
  }
89363
89428
  //#endregion
89364
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
89429
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
89365
89430
  /**
89366
89431
  * Persisted "the user has seen the trajectory" flag, at
89367
89432
  * `~/.chatcode-cli/tui/trajectory.json`.
@@ -89421,7 +89486,7 @@ function writeTrajectorySeen(dir = DATA_DIR) {
89421
89486
  }
89422
89487
  }
89423
89488
  //#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
89489
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
89425
89490
  const NO_OVERLAY = { kind: "none" };
89426
89491
  /**
89427
89492
  * One-step wrap-around cursor move — the single source of the wrapping rule
@@ -89531,7 +89596,7 @@ function dialogOverlayVisible(overlay, gates) {
89531
89596
  }
89532
89597
  }
89533
89598
  //#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
89599
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
89535
89600
  const LOGOUT_EXIT_DELAY_MS = 200;
89536
89601
  /** Shared empty snapshot for hosts whose channel has no event log. */
89537
89602
  const NO_EVENTS = [];
@@ -91272,9 +91337,10 @@ function Chat({ channel, questionStore, approvalStore, releaseNotes, extensionDi
91272
91337
  return true;
91273
91338
  case "config": {
91274
91339
  const chatCodeHome = resolveChatCodeCliHome();
91340
+ const profile = resolveDshProfileName() ?? "cli";
91275
91341
  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` }),
91342
+ t("doctor-example-config", { path: `chatcode-cli --profile ${profile}` }),
91343
+ t("doctor-user-config", { path: `${chatCodeHome}/profiles/${profile}/cordis.patch.yml` }),
91278
91344
  "",
91279
91345
  t("doctor-launch-hint"),
91280
91346
  t("doctor-route-hint")
@@ -93328,7 +93394,7 @@ function ModelPickerLoading() {
93328
93394
  });
93329
93395
  }
93330
93396
  //#endregion
93331
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.14_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
93397
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
93332
93398
  const MAIN_CLI_PACKAGE = "@chatcode/chatcode-cli";
93333
93399
  function asError(value) {
93334
93400
  return value instanceof Error ? value : new Error(String(value));
@@ -93449,7 +93515,7 @@ function launchWebFrontend(cwd, options = {}) {
93449
93515
  }
93450
93516
  }
93451
93517
  //#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
93518
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
93453
93519
  /**
93454
93520
  * External injection channel — lets an out-of-process editor integration
93455
93521
  * (e.g. the `dsh.nvim` Neovim plugin) push text into the running TUI's
@@ -93644,7 +93710,7 @@ function openInjectChannel(sessionId, cwd, handlers, onError) {
93644
93710
  };
93645
93711
  }
93646
93712
  //#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
93713
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
93648
93714
  const CHATCODE_CLI_OAUTH_TOKEN = "CHATCODE_CLI_OAUTH_TOKEN";
93649
93715
  const DEFAULT_SERVICE_WAIT_MS = 75e3;
93650
93716
  function authService(ctx) {
@@ -93710,13 +93776,13 @@ async function promptChoice(promptText, invalidText) {
93710
93776
  while (true) {
93711
93777
  let answer;
93712
93778
  try {
93713
- answer = (await prompt.question(`[cco-cli] ${promptText}`)).trim().toLowerCase();
93779
+ answer = (await prompt.question(`[chatcode-cli] ${promptText}`)).trim().toLowerCase();
93714
93780
  } catch {
93715
93781
  return "exit";
93716
93782
  }
93717
93783
  if (answer === "1" || answer === "r" || answer === "retry") return "retry";
93718
93784
  if (answer === "" || answer === "2" || answer === "q" || answer === "quit" || answer === "exit") return "exit";
93719
- process.stderr.write(`[cco-cli] ${invalidText}\n`);
93785
+ process.stderr.write(`[chatcode-cli] ${invalidText}\n`);
93720
93786
  }
93721
93787
  } finally {
93722
93788
  prompt.close();
@@ -93822,7 +93888,7 @@ async function requireChatCodeStartupLogin(ctx, options) {
93822
93888
  return "ready";
93823
93889
  }
93824
93890
  //#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
93891
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
93826
93892
  /** Bind authenticated statistics requests to one TUI lifetime. */
93827
93893
  function createChatCodeAuthorizedPost(ctx) {
93828
93894
  const lifetime = new AbortController();
@@ -93861,7 +93927,7 @@ function createChatCodeAuthorizedPost(ctx) {
93861
93927
  };
93862
93928
  }
93863
93929
  //#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
93930
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.16_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
93865
93931
  /**
93866
93932
  * Interactive TUI front door for ChatCode CLI agents.
93867
93933
  *
@@ -93960,7 +94026,7 @@ async function apply(ctx, config) {
93960
94026
  const hostMode = resolveTuiHostMode();
93961
94027
  if (hostMode === "invalid-explicit-launch") {
93962
94028
  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).");
94029
+ throw new Error("chatcode-cli requires an interactive terminal (stdout must be a TTY).");
93964
94030
  }
93965
94031
  if (hostMode === "headless-host") {
93966
94032
  ctx.logger.info("ChatCode CLI TUI: non-interactive host detected (stdout is not a TTY); skipping the TUI frontend");
@@ -93983,7 +94049,7 @@ async function apply(ctx, config) {
93983
94049
  }
93984
94050
  const chatCodeStartup = await requireChatCodeStartupLogin(ctx, {
93985
94051
  openUrl: openExternal,
93986
- report: (message) => process.stderr.write(`[cco-cli] ${message}\n`)
94052
+ report: (message) => process.stderr.write(`[chatcode-cli] ${message}\n`)
93987
94053
  });
93988
94054
  if (chatCodeStartup === "exit" || chatCodeStartup === "blocked") {
93989
94055
  const exit = ctx.get("appExit");
@@ -94004,8 +94070,8 @@ async function apply(ctx, config) {
94004
94070
  if (process.stderr.isTTY) process.stderr.write(`\nChatCode CLI TUI: 更新后版本未变化(仍为 ${now ?? "unknown"},原为 ${updatedFrom});可能是镜像 registry 未同步,请稍后重试或检查 registry 配置。\n`);
94005
94071
  } else if (process.stderr.isTTY) {
94006
94072
  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", {
94073
+ if (launcherVersion === void 0) process.stderr.write(`\n[chatcode-cli] ${t("update-launcher-align-unknown", { version: now })}\n`);
94074
+ else if (isVersionNewer(now, launcherVersion)) process.stderr.write(`\n[chatcode-cli] ${t("update-launcher-outdated", {
94009
94075
  profile: now,
94010
94076
  launcher: launcherVersion
94011
94077
  })}\n`);
@@ -94351,7 +94417,7 @@ async function apply(ctx, config) {
94351
94417
  {
94352
94418
  const unregister = (getHostSettingsSections(ctx.get("tuiSettingsSections")) ?? getLocalSettingsSectionsHost()).register({
94353
94419
  ns: "dsh-tui",
94354
- title: "dsh-tui",
94420
+ title: "chatcode-cli",
94355
94421
  groups: [
94356
94422
  {
94357
94423
  id: "status-bar",
@@ -94817,7 +94883,7 @@ async function apply(ctx, config) {
94817
94883
  if (error !== void 0) {
94818
94884
  const message = error instanceof Error ? error.message : String(error);
94819
94885
  ctx.logger.error(`ChatCode CLI TUI: exit after error: ${message}`);
94820
- finishExit(ctx, instance, bootedFullscreen, void 0, `dsh-tui crashed: ${message}`, () => disposeRootAndExit(ctx, 1));
94886
+ finishExit(ctx, instance, bootedFullscreen, void 0, `chatcode-cli crashed: ${message}`, () => disposeRootAndExit(ctx, 1));
94821
94887
  return;
94822
94888
  }
94823
94889
  if (updateRequested) {
@@ -95206,12 +95272,12 @@ function runRestart(ctx, profile, sessionId) {
95206
95272
  logRestartEvent("runRestart: root disposed, starting restartTui");
95207
95273
  restartTui(sessionId).then((restartCode) => {
95208
95274
  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`);
95275
+ 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
95276
  process.exit(restartCode);
95211
95277
  }, (restartError) => {
95212
95278
  const message = restartError instanceof Error ? restartError.message : String(restartError);
95213
95279
  logRestartEvent("runRestart: restartTui rejected", { message });
95214
- writeHandoffNotice(`\ndsh-tui restart failed: ${message}. Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95280
+ writeHandoffNotice(`\nchatcode-cli restart failed: ${message}. Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95215
95281
  process.exit(1);
95216
95282
  });
95217
95283
  });
@@ -95223,11 +95289,11 @@ function runUpdate(ctx, profile, sessionId, targetVersion) {
95223
95289
  process.exit(1);
95224
95290
  }
95225
95291
  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`);
95292
+ 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
95293
  process.exit(restartCode);
95228
95294
  }, (updateError) => {
95229
95295
  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`);
95296
+ process.stderr.write(`\nchatcode-cli update failed: ${message}. Your session is preserved — resume with:\n${resumeCommand(profile, sessionId)}\n\n`);
95231
95297
  process.exit(1);
95232
95298
  });
95233
95299
  });
@@ -95254,7 +95320,7 @@ function disposeRootAndExit(ctx, code) {
95254
95320
  */
95255
95321
  function resumeCommand(profile, sessionId) {
95256
95322
  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}`;
95323
+ return process.platform === "win32" ? `${profile === void 0 ? "chatcode-cli" : boot} --resume ${sessionId}` : `CHATCODE_CLI_TUI_RESUME_SESSION=${sessionId} ${boot}`;
95258
95324
  }
95259
95325
  /**
95260
95326
  * Dispose the Cordis tree, then run a process-level handoff action. The