@chatcode/chatcode-cli 3.0.4-rc.5 → 3.0.4-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 (53) hide show
  1. package/README.i18n.yaml +4 -4
  2. package/README.md +4 -2
  3. package/README.zh.md +4 -2
  4. package/lib/bin.js +3 -3
  5. package/lib/{command-errors-BJ_ZWzUU.js → command-errors-Ca64Lgba.js} +12 -12
  6. package/lib/{command-trees-C9b7-bci.js → command-trees-CVc4Xu_z.js} +2 -2
  7. package/lib/{component-identity-Jb1DYjke.js → component-identity-6aEut5Yt.js} +3 -3
  8. package/lib/dump-config-CDixiJNt.js +2 -0
  9. package/lib/{dump-config-BcH-VYuv.js → dump-config-ZzrfvtnX.js} +10 -6
  10. package/lib/{dump-config-schema-DM0fb6Ns.js → dump-config-schema-BlO-eZ-J.js} +2 -2
  11. package/lib/{extension-events-DKX4LXOd.js → extension-events-C7MUpqVE.js} +20 -20
  12. package/lib/headless-compat.js +31 -31
  13. package/lib/{host-access-CMg6rsWt.js → host-access-CLbyAGT5.js} +1 -1
  14. package/lib/{keymap-CrC4pSNH.js → keymap-82JwLLHe.js} +2 -2
  15. package/lib/{plugin-eJjD6r12.js → plugin-BZdazFXS.js} +1 -1
  16. package/lib/{plugin-CmyMCGfb.js → plugin-BlQlWIR5.js} +425 -451
  17. package/lib/{profile-boot-BNQry1NM.js → profile-boot-B0aEEQIR.js} +40 -11
  18. package/lib/profile-boot.js +2 -2
  19. package/lib/{scenes-Cil9RnwU.js → scenes-BNS0ZFyQ.js} +3 -3
  20. package/lib/{settings-sections-jVCqXwdH.js → settings-sections-CXH24cu5.js} +3 -3
  21. package/lib/{statusBarSettings-DNoBH3Cq.js → statusBarSettings-BAMzn8fX.js} +6 -6
  22. package/lib/{themes-BdgeY3It.js → themes-DXUIvP7m.js} +12 -12
  23. package/lib/tui-compat-command-trees.js +1 -1
  24. package/lib/tui-compat-extensions.js +3 -3
  25. package/lib/tui-compat-plugin-host.js +5 -5
  26. package/lib/tui-compat-scenes.js +1 -1
  27. package/lib/tui-compat-settings-sections.js +1 -1
  28. package/lib/tui-compat-working-activity.js +17 -17
  29. package/lib/tui-compat-workspaces.js +1 -1
  30. package/lib/tui-compat.js +39 -39
  31. package/lib/types/dump-config.d.ts +3 -3
  32. package/lib/types/profile-boot.d.ts +13 -3
  33. package/lib/{workspaces-DOatJRYr.js → workspaces-CUJXNU5W.js} +2 -2
  34. package/package.json +28 -28
  35. package/runtime/manifest.json +1 -1
  36. package/runtime/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js +1 -1
  37. package/runtime/node_modules/@deepseek-ai/cordis-plugin-loader/src/config/entry.ts +1 -1
  38. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +5 -1
  39. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/profile-context.d.ts +2 -0
  40. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
  41. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
  42. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +3 -1
  43. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +17 -159
  44. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +1 -2
  45. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/index.js +5 -1
  46. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/{index-Dz_cDcce.js → index-D-8yUukj.js} +24 -24
  47. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/{index-Dz_cDcce.js.map → index-D-8yUukj.js.map} +1 -1
  48. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +1 -1
  49. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/preview.html +1 -1
  50. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/index.js +32 -29
  51. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.d.ts +0 -2
  52. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.js +39 -30
  53. package/lib/dump-config-CyopmD85.js +0 -2
@@ -1,14 +1,14 @@
1
1
  import { i as __toESM, n as __exportAll, r as __require, t as __commonJSMin } from "./rolldown-runtime-2rV9d50f.js";
2
- import { _ as settingsValue, a as formatContextUsage, c as normalizePageMargin, d as normalizeToolBackground, f as parsePageMarginSpec, h as displaySettingsScope, i as applyPageMargin, l as normalizeScrollGutter, m as subscribePageMargin, n as createStatusBarSchema, o as getPageMarginSetting, p as resolvePageMargin, s as isPageMarginMode, t as STATUS_BAR_FIELDS, u as normalizeStatusBar } from "./statusBarSettings-DNoBH3Cq.js";
3
- import { a as draftComboConflict, 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-CrC4pSNH.js";
4
- import { c as withHostRootCapability } from "./host-access-CMg6rsWt.js";
5
- import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-DOatJRYr.js";
6
- import { n as getHostCommandTrees } from "./command-trees-C9b7-bci.js";
7
- import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-jVCqXwdH.js";
8
- import { n as getHostSceneRuntime } from "./scenes-Cil9RnwU.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-DKX4LXOd.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-BJ_ZWzUU.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-BdgeY3It.js";
2
+ import { _ as settingsValue, a as formatContextUsage, c as normalizePageMargin, d as normalizeToolBackground, f as parsePageMarginSpec, h as displaySettingsScope, i as applyPageMargin, l as normalizeScrollGutter, m as subscribePageMargin, n as createStatusBarSchema, o as getPageMarginSetting, p as resolvePageMargin, s as isPageMarginMode, t as STATUS_BAR_FIELDS, u as normalizeStatusBar } from "./statusBarSettings-BAMzn8fX.js";
3
+ import { a as draftComboConflict, 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-82JwLLHe.js";
4
+ import { c as withHostRootCapability } from "./host-access-CLbyAGT5.js";
5
+ import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-CUJXNU5W.js";
6
+ import { n as getHostCommandTrees } from "./command-trees-CVc4Xu_z.js";
7
+ import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-CXH24cu5.js";
8
+ import { n as getHostSceneRuntime } from "./scenes-BNS0ZFyQ.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-C7MUpqVE.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-Ca64Lgba.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-DXUIvP7m.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-B89znn_0.js";
13
13
  import { n as require_has_flag, t as require_supports_color } from "./supports-color-CcW-FGjr.js";
14
14
  import { createRequire, findPackageJSON } from "node:module";
@@ -18,9 +18,9 @@ import os, { homedir, tmpdir } from "node:os";
18
18
  import { basename, delimiter, dirname, extname, isAbsolute, join, resolve, sep, win32 } from "node:path";
19
19
  import { createHash, randomUUID } from "node:crypto";
20
20
  import { chmod, mkdir, mkdtemp, open, readFile, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
21
+ import Schema from "@deepseek-ai/schemastery";
21
22
  import { createServer } from "node:net";
22
23
  import { writeFileAtomic } from "@deepseek-ai/dsh-atomic-write";
23
- import z from "@deepseek-ai/schemastery";
24
24
  import { assembleContextFor, installModelSelection } from "@deepseek-ai/dsh-agent";
25
25
  import { BlockAssembler, MessageId, ReasoningEffortId, createUserMessage, isAgentLoopRequest } from "@deepseek-ai/dsh-llm";
26
26
  import * as dshSession from "@deepseek-ai/dsh-session";
@@ -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.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sideQuestion.js
1201
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_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.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/recap.js
1271
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_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.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/log.js
1384
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_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.20_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.21_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.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/sessionColors.js
1538
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_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.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/deepseekPricing.js
1579
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/deepseekPricing.js
1580
1580
  /**
1581
1581
  * 是否处于高峰计费时段:北京时间周一至周五 9:00-12:00、14:00-18:00。
1582
1582
  * 北京时间为 UTC+8 固定偏移(无夏令时),用 UTC 时刻加偏移换算。
@@ -1595,7 +1595,7 @@ Object.freeze({
1595
1595
  cacheWrite: 0
1596
1596
  });
1597
1597
  //#endregion
1598
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/i18n.js
1598
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/i18n.js
1599
1599
  /**
1600
1600
  * dsh-tui localization — UI strings for Chinese (`zh`, the default) and
1601
1601
  * English (`en`).
@@ -3667,14 +3667,6 @@ const dict = {
3667
3667
  zh: "已恢复会话",
3668
3668
  en: "Session resumed"
3669
3669
  },
3670
- "resume-delete-confirm": {
3671
- zh: "永久删除 {{n}} 条记录(含子代理):「{{name}}」?无法撤销。",
3672
- en: "Permanently delete {{n}} records: \"{{name}}\"? Cannot undo."
3673
- },
3674
- "resume-deleted": {
3675
- zh: "已删除会话「{{name}}」",
3676
- en: "Deleted session {{name}}"
3677
- },
3678
3670
  "resume-archived": {
3679
3671
  zh: "已归档会话「{{name}}」",
3680
3672
  en: "Archived session {{name}}"
@@ -3687,10 +3679,6 @@ const dict = {
3687
3679
  zh: "无法归档会话「{{name}}」",
3688
3680
  en: "Could not archive session {{name}}"
3689
3681
  },
3690
- "resume-delete-failed": {
3691
- zh: "无法删除会话「{{name}}」",
3692
- en: "Could not delete session {{name}}"
3693
- },
3694
3682
  "resume-rename-placeholder": {
3695
3683
  zh: "新的会话名称…",
3696
3684
  en: "New session name…"
@@ -3716,21 +3704,13 @@ const dict = {
3716
3704
  en: "Restore"
3717
3705
  },
3718
3706
  "resume-hint-archived-list": {
3719
- zh: "**Enter** 恢复 · {{mod}}+D 永久删除 · {{mod}}+E 返回",
3720
- en: "**Enter** restore · {{mod}}+D delete permanently · {{mod}}+E back"
3721
- },
3722
- "resume-hint-permanent-delete": {
3723
- zh: "**Tab / ← →** 选择 · **Enter** 确认 · Esc 取消",
3724
- en: "**Tab / ← →** choose · **Enter** confirm · Esc cancel"
3707
+ zh: "**Enter** 恢复 · {{mod}}+E 返回",
3708
+ en: "**Enter** restore · {{mod}}+E back"
3725
3709
  },
3726
3710
  "resume-hint-archive": {
3727
3711
  zh: "**Enter** 归档 · Esc 取消",
3728
3712
  en: "**Enter** archive · Esc cancel"
3729
3713
  },
3730
- "resume-delete-unavailable": {
3731
- zh: "共享会话删除服务不可用,请更新主程序",
3732
- en: "Shared session deletion is unavailable; update the Host"
3733
- },
3734
3714
  "resume-restored": {
3735
3715
  zh: "已恢复会话「{{name}}」",
3736
3716
  en: "Restored session {{name}}"
@@ -6528,7 +6508,7 @@ function resolveStartupLang(dir = PREFS_DIR$6, env = process.env) {
6528
6508
  return readLangPref(dir) ?? "zh";
6529
6509
  }
6530
6510
  //#endregion
6531
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/commands.js
6511
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/commands.js
6532
6512
  /**
6533
6513
  * Local slash commands for the dsh-tui TUI. Claude Code's command system is
6534
6514
  * deeply wired into its engine; dsh-tui ships a small built-in set with the
@@ -6992,7 +6972,7 @@ function matchingCompletionToken(candidate, prefix) {
6992
6972
  return candidate.aliases?.find((alias) => alias.toLowerCase().startsWith(prefix));
6993
6973
  }
6994
6974
  //#endregion
6995
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionHistory.js
6975
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionHistory.js
6996
6976
  /**
6997
6977
  * Launcher contract for `dsh-tui --resume`: the TUI writes the chosen session
6998
6978
  * id to `<CHATCODE_CLI_HOME>/tui/resume.txt`, and the launcher feeds it back as
@@ -7159,7 +7139,7 @@ function forgetAgentViewSession(sessionId) {
7159
7139
  } catch {}
7160
7140
  }
7161
7141
  //#endregion
7162
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionTags.js
7142
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionTags.js
7163
7143
  /**
7164
7144
  * One searchable local tag per persisted session.
7165
7145
  *
@@ -7309,7 +7289,7 @@ function forgetSessionTag(sessionId, dir = DATA_DIR) {
7309
7289
  return setSessionTag(sessionId, void 0, dir).ok;
7310
7290
  }
7311
7291
  //#endregion
7312
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/liveSession.js
7292
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/liveSession.js
7313
7293
  /**
7314
7294
  * Live Session compatibility facade.
7315
7295
  *
@@ -7471,7 +7451,7 @@ function liveSessionCreateOptions(request) {
7471
7451
  };
7472
7452
  }
7473
7453
  //#endregion
7474
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionLog.js
7454
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionLog.js
7475
7455
  /**
7476
7456
  * Legacy third-party session-event types the TUI vouches for as ephemeral
7477
7457
  * UI frames — safe for the strict read path to accept and skip. Exported
@@ -8163,7 +8143,7 @@ function appendSessionTitle(sessionId, title) {
8163
8143
  }
8164
8144
  }
8165
8145
  //#endregion
8166
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionEvent.js
8146
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionEvent.js
8167
8147
  /** Narrow an unknown/session event to the retired durable chunk envelope. */
8168
8148
  function legacyAssistantChunkOf(event) {
8169
8149
  if (event === null || typeof event !== "object") return void 0;
@@ -8177,7 +8157,7 @@ function legacyAssistantChunkOf(event) {
8177
8157
  return event;
8178
8158
  }
8179
8159
  //#endregion
8180
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compaction.js
8160
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compaction.js
8181
8161
  /**
8182
8162
  * Recognize both the current checkpoint source and the legacy plugin marker.
8183
8163
  * Harness session format v4 migrated `plugin/compact` to the dedicated
@@ -8188,7 +8168,7 @@ function isCompactionCheckpointSource(source) {
8188
8168
  return source.kind === "compact-checkpoint" || source.kind === "plugin" && source.plugin === "compact";
8189
8169
  }
8190
8170
  //#endregion
8191
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessionTree.js
8171
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessionTree.js
8192
8172
  const TREE_FILTERS = [
8193
8173
  "default",
8194
8174
  "no-tools",
@@ -10344,7 +10324,7 @@ var require_subset = /* @__PURE__ */ __commonJSMin(((exports, module) => {
10344
10324
  module.exports = subset;
10345
10325
  }));
10346
10326
  //#endregion
10347
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/shellQuote.js
10327
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/shellQuote.js
10348
10328
  var import_semver = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
10349
10329
  const internalRe = require_re();
10350
10330
  const constants = require_constants$1();
@@ -10437,7 +10417,7 @@ function cmdEscapeArgument(arg, doubleEscapeMetaChars = false) {
10437
10417
  return out;
10438
10418
  }
10439
10419
  //#endregion
10440
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/update.js
10420
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/update.js
10441
10421
  const PACKAGE_NAME = "@chatcode/cco-tui";
10442
10422
  const DEFAULT_REGISTRY = "https://registry.npmjs.org";
10443
10423
  const GITHUB_REPO = "ccch1mneyyy/dsh-TUI";
@@ -11788,7 +11768,7 @@ async function restartTui(sessionId, options = {}) {
11788
11768
  });
11789
11769
  }
11790
11770
  //#endregion
11791
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/header.js
11771
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/header.js
11792
11772
  /** A finite number, or undefined for anything else (NaN and ±Infinity included). */
11793
11773
  function finiteNumber(value) {
11794
11774
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
@@ -11862,7 +11842,7 @@ function classify(header) {
11862
11842
  return { kind: "root" };
11863
11843
  }
11864
11844
  //#endregion
11865
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/frames.js
11845
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/frames.js
11866
11846
  /**
11867
11847
  * Bounded reads over the JSONL backend's concatenated-Zstandard session logs.
11868
11848
  *
@@ -12108,7 +12088,7 @@ function decodeTail(window) {
12108
12088
  return decodeFrames(window.buffer, window.whole ? walkFrames(window.buffer) : resyncFrames(window.buffer));
12109
12089
  }
12110
12090
  //#endregion
12111
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/digest.js
12091
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/digest.js
12112
12092
  /**
12113
12093
  * What a bounded read can learn about a session log.
12114
12094
  *
@@ -12591,7 +12571,7 @@ function previewSession(path, limit) {
12591
12571
  return entries.slice(-limit);
12592
12572
  }
12593
12573
  //#endregion
12594
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
12574
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
12595
12575
  /** Read-only artifact lookup for session summaries and previews. */
12596
12576
  /** Highest published compressed generation; temporary migration files are ignored. */
12597
12577
  function inDirectory(directory) {
@@ -12644,7 +12624,7 @@ function findSessionArtifact(sessionId, target) {
12644
12624
  }
12645
12625
  }
12646
12626
  //#endregion
12647
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
12627
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
12648
12628
  /**
12649
12629
  * The session index — a local cache keyed by the backend's own change token.
12650
12630
  *
@@ -12808,7 +12788,7 @@ function noteBranch(sessionId, branch) {
12808
12788
  writeIndex(index);
12809
12789
  }
12810
12790
  //#endregion
12811
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
12791
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
12812
12792
  /**
12813
12793
  * Building the session list.
12814
12794
  *
@@ -13089,7 +13069,7 @@ async function locateSession(source, sessionId, signal) {
13089
13069
  return match === void 0 ? void 0 : locate$1(source, match.raw, sessionId);
13090
13070
  }
13091
13071
  //#endregion
13092
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
13072
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
13093
13073
  /**
13094
13074
  * Agent view (CC `claude agents`) derivation helpers — pure functions over
13095
13075
  * session events that the channel folds into {@link AgentViewRow}s. Kept in
@@ -13319,7 +13299,7 @@ function featureOn(config, name) {
13319
13299
  return config.mode !== "minimal";
13320
13300
  }
13321
13301
  //#endregion
13322
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13302
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
13323
13303
  /**
13324
13304
  * Persisted working-activity indicator preference, mirroring the pi
13325
13305
  * working-activity extension's `~/.pi/agent/working-activity.json`
@@ -13388,7 +13368,7 @@ function writeActivityFrames(name, dir = PREFS_DIR$5) {
13388
13368
  }
13389
13369
  }
13390
13370
  //#endregion
13391
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
13371
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
13392
13372
  const pathSeparators = /[\\/]/;
13393
13373
  function isPathLikeQuery(query) {
13394
13374
  return query.startsWith(".") || query.startsWith("~") || query.startsWith("/") || /^[A-Za-z]:[\\/]/.test(query) || pathSeparators.test(query);
@@ -13411,7 +13391,7 @@ function rankFileCandidates(candidates, query, topK) {
13411
13391
  return topK === void 0 ? ranked : ranked.slice(0, Math.max(0, topK));
13412
13392
  }
13413
13393
  //#endregion
13414
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13394
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
13415
13395
  /**
13416
13396
  * Persisted reasoning-effort preference (`~/.chatcode-cli/tui/effort.json`). Set via
13417
13397
  * `/effort` (slider or `/effort <id>`; `/effort status` reports the current
@@ -13453,7 +13433,7 @@ function writeEffortPref(effort, dir = PREFS_DIR$4) {
13453
13433
  }
13454
13434
  }
13455
13435
  //#endregion
13456
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13436
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
13457
13437
  /**
13458
13438
  * Persisted model-route preference (`/model` picker choice), kept at
13459
13439
  * `~/.chatcode-cli/model.json` (`provider` + `model` keys) so CLI and Web share it
@@ -13536,7 +13516,7 @@ function writeModelPref(provider, model, dir = PREFS_DIR$3) {
13536
13516
  }
13537
13517
  }
13538
13518
  //#endregion
13539
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13519
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
13540
13520
  /**
13541
13521
  * Model route resolution (issue #67). The `(provider, model)` pair is a
13542
13522
  * single value: every source either supplies the WHOLE route or is skipped,
@@ -13771,7 +13751,7 @@ function orderModelProviders(providers) {
13771
13751
  return [...providers].sort((left, right) => rank(left.id) - rank(right.id));
13772
13752
  }
13773
13753
  //#endregion
13774
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelSettings.js
13754
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelSettings.js
13775
13755
  /** Custom-model forms over the same settings and credential services used by Web. */
13776
13756
  function record(value) {
13777
13757
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -13973,7 +13953,7 @@ function createCustomModelSettingsStore(path, host) {
13973
13953
  };
13974
13954
  }
13975
13955
  //#endregion
13976
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelTest.js
13956
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelTest.js
13977
13957
  /** Direct, one-shot generation used by `/model-config` before a model is registered. */
13978
13958
  function requestEndpoint(baseURL, api) {
13979
13959
  const url = new URL(baseURL);
@@ -14062,7 +14042,7 @@ async function testCustomModelConnection(request, fetchImpl = fetch) {
14062
14042
  }
14063
14043
  }
14064
14044
  //#endregion
14065
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/catalogDefaults.js
14045
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/catalogDefaults.js
14066
14046
  /** Read display defaults from the host adapter's own installed pi-ai catalog. */
14067
14047
  const catalogs = /* @__PURE__ */ new Map();
14068
14048
  async function installedCatalog(anchor) {
@@ -14109,7 +14089,7 @@ async function catalogProviderDefaults(provider, model, anchor = import.meta.url
14109
14089
  };
14110
14090
  }
14111
14091
  //#endregion
14112
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
14092
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
14113
14093
  /**
14114
14094
  * Persisted agent-preset preference (`/preset` picker choice), kept at
14115
14095
  * `~/.chatcode-cli/tui/agent-preset.json` (`preset` key) so the choice survives
@@ -14168,7 +14148,7 @@ function migratePresetPref(requested, resolved, dir = PREFS_DIR$2) {
14168
14148
  return requested === void 0 || resolved === void 0 || requested === resolved ? true : writePresetPref(resolved, dir);
14169
14149
  }
14170
14150
  //#endregion
14171
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
14151
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
14172
14152
  /** Undefined means the service exposes neither supported read API. */
14173
14153
  async function readPersistedSession(persistence, id) {
14174
14154
  if (persistence === null || typeof persistence !== "object") return void 0;
@@ -14188,7 +14168,7 @@ async function readPersistedSession(persistence, id) {
14188
14168
  if (typeof reader.load === "function") return reader.load(id);
14189
14169
  }
14190
14170
  //#endregion
14191
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
14171
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
14192
14172
  /**
14193
14173
  * Agent-preset resolution across upstream prerelease lines.
14194
14174
  *
@@ -14226,7 +14206,7 @@ async function resolveCompatiblePreset(presets, requested) {
14226
14206
  return presets.resolve(requested);
14227
14207
  }
14228
14208
  //#endregion
14229
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
14209
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
14230
14210
  /**
14231
14211
  * Agent-presets roster integration (issue #8): compose each session's
14232
14212
  * model-facing world (tools, prompt sections, projections) from one preset
@@ -14376,7 +14356,7 @@ function serviceForAgent(ctx, agent, key) {
14376
14356
  return ctx.get(key);
14377
14357
  }
14378
14358
  //#endregion
14379
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
14359
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
14380
14360
  const failureReason = (error) => error instanceof Error ? error.message : String(error);
14381
14361
  /** Read a roster-resolved composition without bypassing preset ownership. */
14382
14362
  async function readPresetComposition(presets, presetId) {
@@ -14433,7 +14413,7 @@ async function removePresetComposition(presets, presetId) {
14433
14413
  }
14434
14414
  }
14435
14415
  //#endregion
14436
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
14416
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
14437
14417
  /** Adapter-only readers for optional Harness session-organization services. */
14438
14418
  const STAT_KEYS = [
14439
14419
  "turns",
@@ -14494,7 +14474,7 @@ function presetCompositionRows(content, limit = 80) {
14494
14474
  };
14495
14475
  }
14496
14476
  //#endregion
14497
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
14477
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
14498
14478
  /**
14499
14479
  * Debug logger for the ported Ink core. Writes to stderr only when
14500
14480
  * `CHATCODE_CLI_TUI_DEBUG` (or its legacy alias) is set, so normal runs stay quiet.
@@ -14524,7 +14504,7 @@ function logMouseDebug(message, fields) {
14524
14504
  } catch {}
14525
14505
  }
14526
14506
  //#endregion
14527
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
14507
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
14528
14508
  /**
14529
14509
  * `@` file-mention parsing (issue #15).
14530
14510
  *
@@ -14670,7 +14650,7 @@ function mentionAtCaret(value, cursor) {
14670
14650
  };
14671
14651
  }
14672
14652
  //#endregion
14673
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
14653
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
14674
14654
  /** Format only the files in the authoritative loaded-context projection. */
14675
14655
  function loadedFileLines(files, copy) {
14676
14656
  if (files === void 0) return [copy.unavailable];
@@ -14785,7 +14765,7 @@ function codeRatioLines(report, copy, maxAuthors = 20) {
14785
14765
  return lines;
14786
14766
  }
14787
14767
  //#endregion
14788
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14768
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
14789
14769
  /**
14790
14770
  * Cordis-free theme catalog shared by future pickers, commands and hosts.
14791
14771
  *
@@ -14866,7 +14846,7 @@ function listThemeCatalog(host) {
14866
14846
  return Object.freeze(entries);
14867
14847
  }
14868
14848
  //#endregion
14869
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14849
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
14870
14850
  /**
14871
14851
  * Configurable Shift+Tab session modes (the `modes` dsh-tui plugin config):
14872
14852
  * each mode is a named bundle of optional DSH plane switches — plan mode
@@ -14930,7 +14910,7 @@ function modeDisplayName(spec) {
14930
14910
  return spec.id;
14931
14911
  }
14932
14912
  //#endregion
14933
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
14913
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
14934
14914
  /** Unified subagent activity domain model used by the adapter and every view. */
14935
14915
  const MAX_OUTPUT_EVENTS = 160;
14936
14916
  const MAX_OUTPUT_LINES = 160;
@@ -15308,7 +15288,7 @@ function formatJobDuration(job, now = Date.now()) {
15308
15288
  return `${Math.floor(minutes / 60)}h${String(minutes % 60).padStart(2, "0")}m`;
15309
15289
  }
15310
15290
  //#endregion
15311
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
15291
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
15312
15292
  /**
15313
15293
  * Minimal mode: one process-wide flag gating decorative UI (header splash,
15314
15294
  * emoji status glyphs and non-tool text colors). Footer field choices remain
@@ -15328,7 +15308,7 @@ function setMinimalMode(enabled) {
15328
15308
  minimal = enabled;
15329
15309
  }
15330
15310
  //#endregion
15331
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
15311
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
15332
15312
  function registryOf(ctx) {
15333
15313
  const registry = ctx.get("workspaceRegistry");
15334
15314
  if (registry === void 0 || typeof registry.pinSession !== "function" || typeof registry.unpinSession !== "function") return void 0;
@@ -15403,7 +15383,7 @@ async function unarchiveWorkspaceSession(ctx, id) {
15403
15383
  return true;
15404
15384
  }
15405
15385
  //#endregion
15406
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
15386
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
15407
15387
  /**
15408
15388
  * Upstream compatibility contract.
15409
15389
  *
@@ -15832,7 +15812,7 @@ function pluginsInfoLines(args, deps) {
15832
15812
  return lines;
15833
15813
  }
15834
15814
  //#endregion
15835
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
15815
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
15836
15816
  /** Loader and tool-registry projection used by the TUI's `/mcp` report. */
15837
15817
  const MCP_CLIENT_PACKAGE = "@deepseek-ai/dsh-mcp-client";
15838
15818
  const FIBER_ACTIVE = 2;
@@ -15885,7 +15865,7 @@ function collectMcpServerStatus(schemas, entries) {
15885
15865
  }));
15886
15866
  }
15887
15867
  //#endregion
15888
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
15868
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
15889
15869
  /**
15890
15870
  * Number, token-count, and duration formatters shared by the status line
15891
15871
  * and message rows.
@@ -15948,7 +15928,7 @@ function formatDuration$4(durationMs, options = {}) {
15948
15928
  return parts.join(" ");
15949
15929
  }
15950
15930
  //#endregion
15951
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
15931
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
15952
15932
  /**
15953
15933
  * Return the current context occupancy. The latest request is authoritative:
15954
15934
  * its uncached input and cache read/write tokens are all part of that request's
@@ -16332,7 +16312,7 @@ function prepareMemoryTargetFile(requested, candidates, cwd, dshHome) {
16332
16312
  }
16333
16313
  }
16334
16314
  //#endregion
16335
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
16315
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
16336
16316
  /** Return the step left open by a tree fork cut within one turn. */
16337
16317
  function openStepAtForkCut(events, turn) {
16338
16318
  for (let i = events.length - 1; i >= 0; i--) {
@@ -16922,10 +16902,6 @@ function createChannel(ctx, initialAgent, options) {
16922
16902
  }, 300);
16923
16903
  };
16924
16904
  let persistedRowsCache = [];
16925
- listSessionsSnapshot(ctx).then((rows) => {
16926
- persistedRowsCache = rows;
16927
- notifyAgentView();
16928
- });
16929
16905
  const agentViewFolds = /* @__PURE__ */ new Map();
16930
16906
  const foldOf = (liveAgent) => {
16931
16907
  const events = snapshotLiveSessionEvents(liveAgent.session);
@@ -23027,7 +23003,7 @@ async function expandMentions(fs, cwd, text, attachments, stagedImages) {
23027
23003
  };
23028
23004
  }
23029
23005
  //#endregion
23030
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
23006
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
23031
23007
  /**
23032
23008
  * Child-process stderr guard (issue #17).
23033
23009
  *
@@ -23196,7 +23172,26 @@ function createChildStderrReporter(notify, options = {}) {
23196
23172
  };
23197
23173
  }
23198
23174
  //#endregion
23199
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
23175
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/startupTrace.js
23176
+ /** Opt-in startup timings; labels never contain paths, Session identities, or credentials. */
23177
+ /**
23178
+ * Measure one initialization operation without changing its result or failure.
23179
+ * @param phase - fixed source-owned phase label, never user-supplied data.
23180
+ * @param operation - synchronous or asynchronous initialization work.
23181
+ * @returns the operation's original result; failures propagate unchanged.
23182
+ */
23183
+ async function traceTuiStartup(phase, operation) {
23184
+ if (process.env.CHATCODE_CLI_STARTUP_TRACE !== "1") return await operation();
23185
+ const started = performance.now();
23186
+ process.stderr.write(`[cco-startup] tui/${phase}: begin\n`);
23187
+ try {
23188
+ return await operation();
23189
+ } finally {
23190
+ process.stderr.write(`[cco-startup] tui/${phase}: ${(performance.now() - started).toFixed(1)} ms\n`);
23191
+ }
23192
+ }
23193
+ //#endregion
23194
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
23200
23195
  /**
23201
23196
  * Ask-user-question store — the UI-side half of the DSH user-interaction
23202
23197
  * seam (`ctx.userQuestions`). The harness's model-facing
@@ -23436,7 +23431,7 @@ var QuestionStore = class {
23436
23431
  }
23437
23432
  };
23438
23433
  //#endregion
23439
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
23434
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
23440
23435
  /**
23441
23436
  * Question-provider seat guard (issue #98 security follow-up).
23442
23437
  *
@@ -23548,7 +23543,7 @@ function incumbentQuestionProviderId(service) {
23548
23543
  } catch {}
23549
23544
  }
23550
23545
  //#endregion
23551
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
23546
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
23552
23547
  /**
23553
23548
  * User-question answerer compatibility.
23554
23549
  *
@@ -23607,7 +23602,7 @@ function prepareQuestionAnswerer(ctx, service, answerer) {
23607
23602
  }
23608
23603
  }
23609
23604
  //#endregion
23610
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
23605
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
23611
23606
  /**
23612
23607
  * Approval store — the UI-side answerer half of the DSH approval seam
23613
23608
  * (`ctx.approval`). The harness's permission layer asks
@@ -24001,7 +23996,7 @@ var ApprovalStore = class {
24001
23996
  }
24002
23997
  };
24003
23998
  //#endregion
24004
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
23999
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
24005
24000
  /**
24006
24001
  * On-demand capture of every final AgentLoop request context observed for a
24007
24002
  * live session.
@@ -24147,7 +24142,7 @@ function registerPromptDebug(ctx) {
24147
24142
  }));
24148
24143
  }
24149
24144
  //#endregion
24150
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
24145
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
24151
24146
  /**
24152
24147
  * One-time local migrations (`~/.chatcode-cli/tui/migrations.json`), keyed by stable
24153
24148
  * migration id → ISO timestamp. Named keys (not a bare flag) so later
@@ -24238,7 +24233,7 @@ async function commitFullscreenFactoryMigration(plan, options) {
24238
24233
  } catch {}
24239
24234
  }
24240
24235
  //#endregion
24241
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
24236
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
24242
24237
  const OWNER = "@chatcode/cco-tui";
24243
24238
  const MARKER = ".dsh-tui-managed.json";
24244
24239
  const RETIRED_PACKAGED_PRESETS = ["liangshen"];
@@ -24280,7 +24275,7 @@ function cleanupRetiredPackagedPresets(options = {}) {
24280
24275
  return results;
24281
24276
  }
24282
24277
  //#endregion
24283
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
24278
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
24284
24279
  /** The browser's default view: this project, conversations only. */
24285
24280
  const DEFAULT_FILTERS = {
24286
24281
  query: "",
@@ -24614,7 +24609,7 @@ function windowEnd(rows, top, budget) {
24614
24609
  return at;
24615
24610
  }
24616
24611
  //#endregion
24617
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/resume.js
24612
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/resume.js
24618
24613
  /** Resolve launch-time resume flags against persisted conversations. */
24619
24614
  /**
24620
24615
  * Select the latest conversation in the exact launch directory for bare flags.
@@ -24634,7 +24629,7 @@ async function resolveStartupSessionId(source, argv, cwd) {
24634
24629
  return latest.id;
24635
24630
  }
24636
24631
  //#endregion
24637
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
24632
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
24638
24633
  /** Resolve a fresh session's working directory without widening it to a Git ancestor. */
24639
24634
  /**
24640
24635
  * Explicit configuration wins; otherwise keep the invoking directory, even
@@ -24647,7 +24642,7 @@ function resolveSessionCwd(configured, start = process.cwd()) {
24647
24642
  return resolve(start, configured ?? "");
24648
24643
  }
24649
24644
  //#endregion
24650
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
24645
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
24651
24646
  /**
24652
24647
  * Open URLs, files and folders with the platform's default handler, fully
24653
24648
  * detached from the TUI process (fire-and-forget: no stdio pipes, no wait,
@@ -24808,7 +24803,7 @@ function revealInFileManager(filePath) {
24808
24803
  if (existsSync(dir)) openExternal(dir);
24809
24804
  }
24810
24805
  //#endregion
24811
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
24806
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
24812
24807
  /** ChatCode API request capability. Credentials stay in the host adapter. */
24813
24808
  const CHATCODE_API_BASE_URL = "https://chatcode.chinaunicom.cn";
24814
24809
  /** CVP(天梯)平台基础 URL,承载 modules/notification 等公开/独立鉴权模块接口。 */
@@ -24816,7 +24811,7 @@ const CVP_CHATCODE_API_URL = `${CHATCODE_API_BASE_URL}/cvp`;
24816
24811
  /** Each mounted TUI receives its own host-authorized request function. */
24817
24812
  const ChatCodeApiContext = (0, import_react.createContext)(void 0);
24818
24813
  //#endregion
24819
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
24814
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
24820
24815
  const RELEASE_NOTE_PATH = join(DATA_DIR, "release-notes.json");
24821
24816
  const RELEASE_NOTE_ENDPOINT = `${CHATCODE_API_BASE_URL}/chatcode/api/v1/cli/version/release-note`;
24822
24817
  function acknowledgedVersion() {
@@ -24912,7 +24907,7 @@ var ReleaseNotesStore = class {
24912
24907
  }
24913
24908
  };
24914
24909
  //#endregion
24915
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
24910
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
24916
24911
  const MAIN_CLI_PACKAGES = new Set(["@chatcode/chatcode-cli", "@chatcode/chatcode-cli-test"]);
24917
24912
  const VERSION_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u;
24918
24913
  const PRODUCT_VERSION_ENV = "CHATCODE_CLI_PRODUCT_VERSION";
@@ -24952,7 +24947,7 @@ function resolveProductVersion(options = {}) {
24952
24947
  /** Product version shown by the TUI, shared with `cco --version` and Web. */
24953
24948
  const PRODUCT_VERSION = resolveProductVersion();
24954
24949
  //#endregion
24955
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
24950
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
24956
24951
  const MAX_CAPTURE_BYTES = 64 * 1024;
24957
24952
  function appendBounded(chunks, chunk, total) {
24958
24953
  if (total.value >= MAX_CAPTURE_BYTES) return;
@@ -25022,7 +25017,7 @@ function execFileNoThrow(file, args = [], options) {
25022
25017
  });
25023
25018
  }
25024
25019
  //#endregion
25025
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
25020
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
25026
25021
  const REPORT_TIMEOUT_MS = 2e3;
25027
25022
  const RELEASE_TIMEOUT_MS = 500;
25028
25023
  const RETRY_DELAYS_MS = [
@@ -25410,7 +25405,7 @@ var require_react_jsx_runtime_development = /* @__PURE__ */ __commonJSMin(((expo
25410
25405
  })();
25411
25406
  }));
25412
25407
  //#endregion
25413
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
25408
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
25414
25409
  var import_jsx_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
25415
25410
  if (process.env.NODE_ENV === "production") module.exports = require_react_jsx_runtime_production();
25416
25411
  else module.exports = require_react_jsx_runtime_development();
@@ -25467,7 +25462,7 @@ function writeThemePref(name, dir = PREFS_DIR) {
25467
25462
  }
25468
25463
  }
25469
25464
  //#endregion
25470
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
25465
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
25471
25466
  const EMPTY_THEME_SNAPSHOT = Object.freeze([]);
25472
25467
  const subscribeNoThemes = (_listener) => () => {};
25473
25468
  /**
@@ -25495,7 +25490,7 @@ function useRuntimeThemeSnapshot(themeHost) {
25495
25490
  return import_react.useSyncExternalStore(subscribeThemes, getThemeSnapshot, getThemeSnapshot);
25496
25491
  }
25497
25492
  //#endregion
25498
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
25493
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
25499
25494
  /**
25500
25495
  * Base class for events with immediate-propagation control.
25501
25496
  *
@@ -25519,7 +25514,7 @@ var Event = class {
25519
25514
  }
25520
25515
  };
25521
25516
  //#endregion
25522
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
25517
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
25523
25518
  /**
25524
25519
  * Node-compatible event emitter that is aware of the `Event` class, so
25525
25520
  * `emit` respects `stopImmediatePropagation()` on dispatched events.
@@ -25552,7 +25547,7 @@ var EventEmitter$1 = class extends EventEmitter {
25552
25547
  }
25553
25548
  };
25554
25549
  //#endregion
25555
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
25550
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
25556
25551
  /**
25557
25552
  * `StdinContext` is a React context, which exposes input stream.
25558
25553
  */
@@ -25566,14 +25561,14 @@ const StdinContext = (0, import_react.createContext)({
25566
25561
  });
25567
25562
  StdinContext.displayName = "InternalStdinContext";
25568
25563
  //#endregion
25569
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
25564
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
25570
25565
  /**
25571
25566
  * React hook exposing the stdin stream and raw-mode helpers from `StdinContext`.
25572
25567
  * @returns the `StdinContext` value.
25573
25568
  */
25574
25569
  const useStdin = () => (0, import_react.useContext)(StdinContext);
25575
25570
  //#endregion
25576
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
25571
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
25577
25572
  /**
25578
25573
  * ANSI Control Characters and Escape Sequence Introducers
25579
25574
  *
@@ -25647,7 +25642,7 @@ function isEscFinal(byte) {
25647
25642
  return byte >= 48 && byte <= 126;
25648
25643
  }
25649
25644
  //#endregion
25650
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
25645
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
25651
25646
  /**
25652
25647
  * CSI (Control Sequence Introducer) Types
25653
25648
  *
@@ -25970,7 +25965,7 @@ const ENABLE_WIN32_INPUT_MODE = csi("?9001h");
25970
25965
  */
25971
25966
  const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
25972
25967
  //#endregion
25973
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
25968
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
25974
25969
  /**
25975
25970
  * Minimal terminal-environment shim for the ported Ink core. The original
25976
25971
  * module computed a richer `env` object from the Claude Code app context; the
@@ -25979,7 +25974,7 @@ const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
25979
25974
  */
25980
25975
  const env$1 = { terminal: (process.env.TERM_PROGRAM ?? process.env.TERM ?? "unknown").toLowerCase() };
25981
25976
  //#endregion
25982
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
25977
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
25983
25978
  /**
25984
25979
  * OSC (Operating System Command) Types and Parser
25985
25980
  */
@@ -26375,7 +26370,7 @@ function supportsTabStatus() {
26375
26370
  return process.env.USER_TYPE === "ant";
26376
26371
  }
26377
26372
  //#endregion
26378
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
26373
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
26379
26374
  /**
26380
26375
  * Query the terminal and await responses without timeouts.
26381
26376
  *
@@ -26561,7 +26556,7 @@ var TerminalQuerier = class {
26561
26556
  }
26562
26557
  };
26563
26558
  //#endregion
26564
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
26559
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
26565
26560
  /**
26566
26561
  * Theme provider with terminal-background auto-detection. With no explicit
26567
26562
  * `theme` prop, no CHATCODE_CLI_TUI_THEME override and no persisted choice
@@ -26760,7 +26755,7 @@ function useTheme() {
26760
26755
  return [theme, setTheme];
26761
26756
  }
26762
26757
  //#endregion
26763
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
26758
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
26764
26759
  /**
26765
26760
  * React-free form model behind the `/settings` screen (issue #165), mirroring
26766
26761
  * the web front door's card-form.ts semantics: a section stages what the user
@@ -27010,7 +27005,7 @@ var SettingsForm = class {
27010
27005
  }
27011
27006
  };
27012
27007
  //#endregion
27013
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
27008
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
27014
27009
  /**
27015
27010
  * `/reload` planning — the pi-style soft reload: re-read the TUI's persisted
27016
27011
  * preference files (`~/.chatcode-cli/tui/{theme,lang,agent-preset,model,
@@ -27859,7 +27854,7 @@ var SignalExit = class extends SignalExitBase {
27859
27854
  const process$2 = globalThis.process;
27860
27855
  const { onExit, load, unload } = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback());
27861
27856
  //#endregion
27862
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
27857
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
27863
27858
  /**
27864
27859
  * Yoga enums — ported from yoga-layout/src/generated/YGEnums.ts
27865
27860
  * Kept as `const` objects (not TS enums) per repo convention.
@@ -27991,7 +27986,7 @@ const Wrap = {
27991
27986
  WrapReverse: 2
27992
27987
  };
27993
27988
  //#endregion
27994
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
27989
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
27995
27990
  /**
27996
27991
  * Pure-TypeScript port of yoga-layout (Meta's flexbox engine).
27997
27992
  *
@@ -30442,7 +30437,7 @@ Object.defineProperties(createChalk.prototype, {
30442
30437
  const chalk = createChalk();
30443
30438
  createChalk({ level: stderrColor ? stderrColor.level : 0 });
30444
30439
  //#endregion
30445
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
30440
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
30446
30441
  /**
30447
30442
  * xterm.js (VS Code, Cursor, code-server, Coder) has supported truecolor
30448
30443
  * since 2017, but code-server/Coder containers often don't set
@@ -30573,7 +30568,7 @@ function applyColor(text, color) {
30573
30568
  return colorize(text, color, "foreground");
30574
30569
  }
30575
30570
  //#endregion
30576
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
30571
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
30577
30572
  /**
30578
30573
  * Environment truthiness check for the ported Ink core. Accepts the common
30579
30574
  * shell truthy spellings (`1`, `true`, `yes`, `on`).
@@ -30591,7 +30586,7 @@ function isEnvTruthy(value) {
30591
30586
  ].includes(value.toLowerCase());
30592
30587
  }
30593
30588
  //#endregion
30594
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
30589
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
30595
30590
  /**
30596
30591
  * Whether mouse click handling is disabled for the ported Ink core. dsh-tui
30597
30592
  * reads its own env flag (`CHATCODE_CLI_TUI_DISABLE_MOUSE`); the original module
@@ -30602,7 +30597,7 @@ function isMouseClicksDisabled() {
30602
30597
  return isEnvTruthy(readTuiEnv("DISABLE_MOUSE"));
30603
30598
  }
30604
30599
  //#endregion
30605
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
30600
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
30606
30601
  /**
30607
30602
  * Input suppression window for terminal handoffs (issue #123): when stdin is
30608
30603
  * handed to an external TUI (full-screen editor) and back, the tty can
@@ -30629,7 +30624,7 @@ function isInputSuppressed() {
30629
30624
  return Date.now() < suppressedUntil;
30630
30625
  }
30631
30626
  //#endregion
30632
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
30627
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
30633
30628
  /**
30634
30629
  * Input Tokenizer - Escape sequence boundary detection
30635
30630
  *
@@ -30827,7 +30822,7 @@ function tokenize$2(input, initialState, initialBuffer, flush, x10Mouse, splitIn
30827
30822
  };
30828
30823
  }
30829
30824
  //#endregion
30830
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
30825
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
30831
30826
  /**
30832
30827
  * Keyboard input parser - converts terminal input to key events
30833
30828
  *
@@ -31902,7 +31897,7 @@ function createWheelKey(s, name, col, row, button) {
31902
31897
  };
31903
31898
  }
31904
31899
  //#endregion
31905
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
31900
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
31906
31901
  function parseKey(keypress) {
31907
31902
  const key = {
31908
31903
  upArrow: keypress.name === "up",
@@ -31987,7 +31982,7 @@ var InputEvent = class extends Event {
31987
31982
  }
31988
31983
  };
31989
31984
  //#endregion
31990
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
31985
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
31991
31986
  /**
31992
31987
  * Event fired when the terminal window gains or loses focus.
31993
31988
  *
@@ -32006,7 +32001,7 @@ var TerminalFocusEvent = class extends Event {
32006
32001
  }
32007
32002
  };
32008
32003
  //#endregion
32009
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
32004
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
32010
32005
  /** Layout bounds cached per rendered node, used for blitting and clearing. */
32011
32006
  const nodeCache = /* @__PURE__ */ new WeakMap();
32012
32007
  /** Rects of removed children that need clearing on next render */
@@ -32044,7 +32039,7 @@ function consumeAbsoluteRemovedFlag() {
32044
32039
  return had;
32045
32040
  }
32046
32041
  //#endregion
32047
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
32042
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
32048
32043
  /**
32049
32044
  * Base class for all terminal events with DOM-style propagation.
32050
32045
  *
@@ -32173,7 +32168,7 @@ var TerminalEvent = class extends Event {
32173
32168
  _prepareForTarget(_target) {}
32174
32169
  };
32175
32170
  //#endregion
32176
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
32171
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
32177
32172
  /**
32178
32173
  * Base class for pointer-derived terminal events (click, wheel, hover).
32179
32174
  *
@@ -32234,7 +32229,7 @@ var PointerEvent = class extends TerminalEvent {
32234
32229
  }
32235
32230
  };
32236
32231
  //#endregion
32237
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
32232
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
32238
32233
  /**
32239
32234
  * Component-level drag event (DOM HTML5 drag semantics subset).
32240
32235
  *
@@ -48342,7 +48337,7 @@ var require_react_reconciler_development = /* @__PURE__ */ __commonJSMin(((expor
48342
48337
  }, module.exports.default = module.exports, Object.defineProperty(module.exports, "__esModule", { value: !0 }));
48343
48338
  }));
48344
48339
  //#endregion
48345
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
48340
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
48346
48341
  var import_react_reconciler = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
48347
48342
  if (process.env.NODE_ENV === "production") module.exports = require_react_reconciler_production();
48348
48343
  else module.exports = require_react_reconciler_development();
@@ -48418,7 +48413,7 @@ const LayoutMeasureMode = {
48418
48413
  AtMost: "at-most"
48419
48414
  };
48420
48415
  //#endregion
48421
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
48416
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
48422
48417
  const EDGE_MAP = {
48423
48418
  all: Edge.All,
48424
48419
  horizontal: Edge.Horizontal,
@@ -48645,7 +48640,7 @@ function createYogaLayoutNode() {
48645
48640
  return new YogaLayoutNode(YOGA_INSTANCE.Node.create());
48646
48641
  }
48647
48642
  //#endregion
48648
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
48643
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
48649
48644
  /**
48650
48645
  * Create a new layout node backed by the Yoga adapter.
48651
48646
  * @returns an empty layout node with no children, styles, or measure function.
@@ -48654,7 +48649,7 @@ function createLayoutNode() {
48654
48649
  return createYogaLayoutNode();
48655
48650
  }
48656
48651
  //#endregion
48657
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
48652
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
48658
48653
  const cache = /* @__PURE__ */ new Map();
48659
48654
  const MAX_CACHE_SIZE = 4096;
48660
48655
  const MAX_CACHE_CHARS = 1e5;
@@ -48690,7 +48685,7 @@ function lineWidth(line) {
48690
48685
  return width;
48691
48686
  }
48692
48687
  //#endregion
48693
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
48688
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
48694
48689
  /**
48695
48690
  * Measure wrapped text dimensions in a single pass.
48696
48691
  * @param text - the text to measure.
@@ -48721,7 +48716,7 @@ function measureText(text, maxWidth) {
48721
48716
  };
48722
48717
  }
48723
48718
  //#endregion
48724
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
48719
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
48725
48720
  /**
48726
48721
  * Squash text nodes into styled segments, propagating styles down through the tree.
48727
48722
  * This allows structured styling without relying on ANSI string transforms.
@@ -48769,7 +48764,7 @@ function squashTextNodes(node) {
48769
48764
  return text;
48770
48765
  }
48771
48766
  //#endregion
48772
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
48767
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
48773
48768
  const DEFAULT_TAB_INTERVAL = 8;
48774
48769
  /**
48775
48770
  * Expand tab characters to spaces at fixed column intervals, preserving
@@ -49219,7 +49214,7 @@ function tokenize$1(str, endChar = Number.POSITIVE_INFINITY) {
49219
49214
  return ret;
49220
49215
  }
49221
49216
  //#endregion
49222
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
49217
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
49223
49218
  function isEndCode(code) {
49224
49219
  return code.code === code.endCode;
49225
49220
  }
@@ -49836,7 +49831,7 @@ function wrapAnsi$1(string, columns, options) {
49836
49831
  return normalizeText(String(string)).replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs$1(line), columns, options)).join("\n");
49837
49832
  }
49838
49833
  //#endregion
49839
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
49834
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
49840
49835
  const wrapAnsiBun = typeof Bun !== "undefined" && typeof Bun.wrapAnsi === "function" ? Bun.wrapAnsi : null;
49841
49836
  const SLOT_MIN_LENGTH = 2048;
49842
49837
  let slot = null;
@@ -49883,7 +49878,7 @@ function wrapAnsiNpmIncremental(input, columns, options) {
49883
49878
  */
49884
49879
  const wrapAnsi = wrapAnsiBun ?? wrapAnsiNpmIncremental;
49885
49880
  //#endregion
49886
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
49881
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
49887
49882
  const ELLIPSIS = "…";
49888
49883
  const WRAP_CACHE_MAX_ENTRIES = 2048;
49889
49884
  const WRAP_CACHE_MAX_CHARS = 2e6;
@@ -49947,7 +49942,7 @@ function wrapText$1(text, maxWidth, wrapType) {
49947
49942
  return text;
49948
49943
  }
49949
49944
  //#endregion
49950
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
49945
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
49951
49946
  /**
49952
49947
  * Create an element node of the given kind, allocating its yoga layout node
49953
49948
  * unless the kind renders without layout (`ink-virtual-text`, `ink-link`,
@@ -50267,7 +50262,7 @@ function findOwnerChainAtRow(root, y) {
50267
50262
  }
50268
50263
  }
50269
50264
  //#endregion
50270
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
50265
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
50271
50266
  /**
50272
50267
  * Reverse lookup: event type string → handler prop names.
50273
50268
  * Used by the dispatcher for O(1) handler lookup per node.
@@ -50321,7 +50316,7 @@ const EVENT_HANDLER_PROPS = new Set([
50321
50316
  "onWheel"
50322
50317
  ]);
50323
50318
  //#endregion
50324
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
50319
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
50325
50320
  function getHandler(node, eventType, capture) {
50326
50321
  const handlers = node._eventHandlers;
50327
50322
  if (!handlers) return void 0;
@@ -50489,7 +50484,7 @@ var Dispatcher = class {
50489
50484
  }
50490
50485
  };
50491
50486
  //#endregion
50492
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
50487
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
50493
50488
  /**
50494
50489
  * Focus event for component focus changes.
50495
50490
  *
@@ -50514,7 +50509,7 @@ var FocusEvent = class extends TerminalEvent {
50514
50509
  }
50515
50510
  };
50516
50511
  //#endregion
50517
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
50512
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
50518
50513
  const MAX_FOCUS_STACK = 32;
50519
50514
  /**
50520
50515
  * DOM-like focus manager for the Ink terminal UI.
@@ -50670,7 +50665,7 @@ function getFocusManager(node) {
50670
50665
  return getRootNode(node).focusManager;
50671
50666
  }
50672
50667
  //#endregion
50673
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
50668
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
50674
50669
  const applyPositionStyles = (node, style) => {
50675
50670
  if ("position" in style) node.setPositionType(style.position === "absolute" ? LayoutPositionType.Absolute : LayoutPositionType.Relative);
50676
50671
  if ("top" in style) applyPositionEdge(node, "top", style.top);
@@ -50805,7 +50800,7 @@ const styles = (node, style = {}, resolvedStyle) => {
50805
50800
  applyGapStyles(node, style);
50806
50801
  };
50807
50802
  //#endregion
50808
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
50803
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
50809
50804
  if (process.env.NODE_ENV === "development") try {
50810
50805
  import("./devtools-la_KkjCS.js");
50811
50806
  } catch (error) {
@@ -51125,7 +51120,7 @@ const reconciler = (0, import_react_reconciler.default)({
51125
51120
  });
51126
51121
  dispatcher.discreteUpdates = reconciler.discreteUpdates.bind(reconciler);
51127
51122
  //#endregion
51128
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
51123
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
51129
51124
  /**
51130
51125
  * Compute the smallest rectangle containing both input rectangles.
51131
51126
  * @param a - the first rectangle.
@@ -51157,7 +51152,7 @@ function clamp(value, min, max) {
51157
51152
  return value;
51158
51153
  }
51159
51154
  //#endregion
51160
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
51155
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
51161
51156
  /**
51162
51157
  * Log a warning when a value is present but not an integer.
51163
51158
  * @param value - the value to check; undefined is skipped silently.
@@ -51169,7 +51164,7 @@ function ifNotInteger(value, name) {
51169
51164
  logForDebugging(`${name} should be an integer, got ${value}`, { level: "warn" });
51170
51165
  }
51171
51166
  //#endregion
51172
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
51167
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
51173
51168
  /**
51174
51169
  * Pool of character strings shared across all screens.
51175
51170
  * With a shared pool, interned char IDs are valid across screens, so
@@ -52238,7 +52233,7 @@ function markNoSelectRegion(screen, x, y, width, height) {
52238
52233
  }
52239
52234
  }
52240
52235
  //#endregion
52241
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
52236
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
52242
52237
  /**
52243
52238
  * Text selection state for fullscreen mode.
52244
52239
  *
@@ -53204,7 +53199,7 @@ function applySelectionOverlay(screen, selection, stylePool) {
53204
53199
  }
53205
53200
  }
53206
53201
  //#endregion
53207
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
53202
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
53208
53203
  /**
53209
53204
  * DEC (Digital Equipment Corporation) Private Mode Sequences
53210
53205
  *
@@ -53270,7 +53265,7 @@ const ENABLE_MOUSE_TRACKING = decset(DEC.MOUSE_NORMAL) + decset(DEC.MOUSE_BUTTON
53270
53265
  /** Disable all mouse tracking modes enabled by ENABLE_MOUSE_TRACKING. */
53271
53266
  const DISABLE_MOUSE_TRACKING = decreset(DEC.MOUSE_SGR) + decreset(DEC.MOUSE_ANY) + decreset(DEC.MOUSE_BUTTON) + decreset(DEC.MOUSE_NORMAL);
53272
53267
  //#endregion
53273
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
53268
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
53274
53269
  /**
53275
53270
  * True when running inside a JetBrains IDE terminal (JediTerm). The IDE
53276
53271
  * injects `TERMINAL_EMULATOR=JetBrains-JediTerm` into the pty environment of
@@ -53512,7 +53507,7 @@ function writeDiffToTerminal(terminal, diff, skipSyncMarkers = false) {
53512
53507
  terminal.stdout.write(buffer);
53513
53508
  }
53514
53509
  //#endregion
53515
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
53510
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
53516
53511
  let focusState = "unknown";
53517
53512
  const resolvers = /* @__PURE__ */ new Set();
53518
53513
  const subscribers = /* @__PURE__ */ new Set();
@@ -53556,7 +53551,7 @@ function subscribeTerminalFocus(cb) {
53556
53551
  };
53557
53552
  }
53558
53553
  //#endregion
53559
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
53554
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
53560
53555
  /**
53561
53556
  * `AppContext` is a React context, which exposes a method to manually exit the app (unmount).
53562
53557
  */
@@ -53601,13 +53596,13 @@ var require_react_compiler_runtime_development = /* @__PURE__ */ __commonJSMin((
53601
53596
  })();
53602
53597
  }));
53603
53598
  //#endregion
53604
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
53599
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
53605
53600
  var import_compiler_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
53606
53601
  if (process.env.NODE_ENV === "production") module.exports = require_react_compiler_runtime_production();
53607
53602
  else module.exports = require_react_compiler_runtime_development();
53608
53603
  })))();
53609
53604
  //#endregion
53610
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
53605
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
53611
53606
  /**
53612
53607
  * Geometry forensics — per-frame scroll-geometry trace (issues #421/#433).
53613
53608
  *
@@ -53687,7 +53682,7 @@ function endGeometryFrame(durationMs) {
53687
53682
  };
53688
53683
  }
53689
53684
  //#endregion
53690
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
53685
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
53691
53686
  const TerminalFocusContext = (0, import_react.createContext)({
53692
53687
  isTerminalFocused: true,
53693
53688
  terminalFocusState: "unknown"
@@ -53722,7 +53717,7 @@ function TerminalFocusProvider(t0) {
53722
53717
  return t2;
53723
53718
  }
53724
53719
  //#endregion
53725
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
53720
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
53726
53721
  /**
53727
53722
  * Hook to check if the terminal has focus.
53728
53723
  *
@@ -53737,7 +53732,7 @@ function useTerminalFocus() {
53737
53732
  return isTerminalFocused;
53738
53733
  }
53739
53734
  //#endregion
53740
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
53735
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
53741
53736
  function createClock(tickIntervalMs) {
53742
53737
  const subscribers = /* @__PURE__ */ new Map();
53743
53738
  let interval = null;
@@ -53834,7 +53829,7 @@ function _temp() {
53834
53829
  return createClock(16);
53835
53830
  }
53836
53831
  //#endregion
53837
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
53832
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
53838
53833
  /**
53839
53834
  * React context that provides the cursor-declaration setter to descendants.
53840
53835
  */
@@ -53874,7 +53869,7 @@ var require_escape_string_regexp = /* @__PURE__ */ __commonJSMin(((exports, modu
53874
53869
  };
53875
53870
  }));
53876
53871
  //#endregion
53877
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
53872
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
53878
53873
  var import_stack_utils = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
53879
53874
  const escapeStringRegexp = require_escape_string_regexp();
53880
53875
  const cwd = typeof process === "object" && process && typeof process.cwd === "function" ? process.cwd() : ".";
@@ -54242,7 +54237,7 @@ function Box(t0) {
54242
54237
  return t4;
54243
54238
  }
54244
54239
  //#endregion
54245
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
54240
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
54246
54241
  const memoizedStylesForWrap = {
54247
54242
  wrap: {
54248
54243
  flexGrow: 0,
@@ -54394,7 +54389,7 @@ function Text(t0) {
54394
54389
  return t16;
54395
54390
  }
54396
54391
  //#endregion
54397
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
54392
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
54398
54393
  const cleanupPath = (path) => {
54399
54394
  return path?.replace(`file://${process.cwd()}/`, "");
54400
54395
  };
@@ -54499,10 +54494,10 @@ function ErrorOverview({ error }) {
54499
54494
  });
54500
54495
  }
54501
54496
  //#endregion
54502
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
54497
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
54503
54498
  const TerminalSizeContext = (0, import_react.createContext)(null);
54504
54499
  //#endregion
54505
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
54500
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
54506
54501
  /**
54507
54502
  * React context providing a raw terminal write function. Null until a
54508
54503
  * TerminalWriteProvider is mounted.
@@ -54513,7 +54508,7 @@ const TerminalWriteContext = (0, import_react.createContext)(null);
54513
54508
  */
54514
54509
  const TerminalWriteProvider = TerminalWriteContext.Provider;
54515
54510
  //#endregion
54516
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
54511
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
54517
54512
  const SUPPORTS_SUSPEND = process.platform !== "win32";
54518
54513
  const STDIN_RESUME_GAP_MS = 5e3;
54519
54514
  const MULTI_CLICK_TIMEOUT_MS = 500;
@@ -55039,7 +55034,7 @@ function handleMouseEvent(app, m) {
55039
55034
  }
55040
55035
  }
55041
55036
  //#endregion
55042
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
55037
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
55043
55038
  /**
55044
55039
  * Keyboard event dispatched through the DOM tree via capture/bubble.
55045
55040
  *
@@ -55099,7 +55094,7 @@ function keyFromParsed(parsed) {
55099
55094
  return name || seq;
55100
55095
  }
55101
55096
  //#endregion
55102
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
55097
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
55103
55098
  /**
55104
55099
  * Create an empty frame with a zero-size screen, the given viewport, and a
55105
55100
  * visible cursor at the origin.
@@ -55125,7 +55120,7 @@ function emptyFrame(rows, columns, stylePool, charPool, hyperlinkPool) {
55125
55120
  };
55126
55121
  }
55127
55122
  //#endregion
55128
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
55123
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
55129
55124
  /**
55130
55125
  * Mouse click event. Fired on left-button release without drag, only when
55131
55126
  * mouse tracking is enabled (i.e. inside <AlternateScreen>).
@@ -55156,7 +55151,7 @@ var ClickEvent = class extends PointerEvent {
55156
55151
  }
55157
55152
  };
55158
55153
  //#endregion
55159
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
55154
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
55160
55155
  /**
55161
55156
  * Mouse context-menu event. Fired on right-button press (SGR button 2,
55162
55157
  * low bits of the raw button byte), mirroring the DOM `contextmenu` event
@@ -55180,7 +55175,7 @@ var ContextMenuEvent = class extends PointerEvent {
55180
55175
  }
55181
55176
  };
55182
55177
  //#endregion
55183
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
55178
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
55184
55179
  /**
55185
55180
  * Mouse wheel event dispatched to the ScrollBox under the pointer.
55186
55181
  *
@@ -55216,7 +55211,7 @@ function indentString(string, count = 1, options = {}) {
55216
55211
  return string.replace(regex, indent.repeat(count));
55217
55212
  }
55218
55213
  //#endregion
55219
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
55214
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
55220
55215
  /**
55221
55216
  * Returns the yoga node's content width (computed width minus padding and
55222
55217
  * border).
@@ -55321,7 +55316,7 @@ var cli_boxes_default = {
55321
55316
  }
55322
55317
  };
55323
55318
  //#endregion
55324
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
55319
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
55325
55320
  /** Built-in border styles beyond those provided by cli-boxes. */
55326
55321
  const CUSTOM_BORDER_STYLES = { dashed: {
55327
55322
  top: "╌",
@@ -55411,7 +55406,7 @@ const renderBorder = (x, y, node, output) => {
55411
55406
  }
55412
55407
  };
55413
55408
  //#endregion
55414
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
55409
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
55415
55410
  /**
55416
55411
  * Get the display width of the widest line in a string.
55417
55412
  * @param string - the text to measure, possibly containing newlines.
@@ -55430,7 +55425,7 @@ function widestLine(string) {
55430
55425
  return maxWidth;
55431
55426
  }
55432
55427
  //#endregion
55433
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
55428
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
55434
55429
  function isXtermJsHost() {
55435
55430
  return process.env.TERM_PROGRAM === "vscode" || isXtermJs();
55436
55431
  }
@@ -56246,7 +56241,7 @@ function dropSubtreeCache(node) {
56246
56241
  for (const child of node.childNodes) if (child.nodeName !== "#text") dropSubtreeCache(child);
56247
56242
  }
56248
56243
  //#endregion
56249
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
56244
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
56250
56245
  /**
56251
56246
  * Find the deepest DOM element whose rendered rect contains (col, row).
56252
56247
  *
@@ -56636,7 +56631,7 @@ function dispatchHover(root, col, row, hovered) {
56636
56631
  }
56637
56632
  }
56638
56633
  //#endregion
56639
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
56634
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
56640
56635
  /**
56641
56636
  * Monotonic terminal-flush counter for the ported Ink core.
56642
56637
  *
@@ -56669,7 +56664,7 @@ function getTerminalFlushTick() {
56669
56664
  return flushTick;
56670
56665
  }
56671
56666
  //#endregion
56672
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
56667
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
56673
56668
  /**
56674
56669
  * Live Ink instances keyed by their output stream, so consecutive render()
56675
56670
  * calls reuse the instance for a stream instead of creating a new one.
@@ -56678,7 +56673,7 @@ function getTerminalFlushTick() {
56678
56673
  */
56679
56674
  const instances = /* @__PURE__ */ new Map();
56680
56675
  //#endregion
56681
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
56676
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
56682
56677
  const CARRIAGE_RETURN = { type: "carriageReturn" };
56683
56678
  const NEWLINE = {
56684
56679
  type: "stdout",
@@ -57315,7 +57310,7 @@ var VirtualScreen = class {
57315
57310
  }
57316
57311
  };
57317
57312
  //#endregion
57318
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
57313
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
57319
57314
  /**
57320
57315
  * Optimize a diff by applying all optimization rules in a single pass.
57321
57316
  * This reduces the number of patches that need to be written to the terminal.
@@ -57380,7 +57375,7 @@ function optimize(diff) {
57380
57375
  return result;
57381
57376
  }
57382
57377
  //#endregion
57383
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
57378
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
57384
57379
  var import_bidi = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
57385
57380
  (function(global, factory) {
57386
57381
  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());
@@ -58156,7 +58151,7 @@ function hasRTLCharacters(text) {
58156
58151
  return /[\u0590-\u05FF\uFB1D-\uFB4F\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\u0780-\u07BF\u0700-\u074F]/u.test(text);
58157
58152
  }
58158
58153
  //#endregion
58159
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
58154
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
58160
58155
  /**
58161
58156
  * charCache bounds. The entry-count cap alone was not enough: a streaming
58162
58157
  * line produces a NEW cache key on every frame, and each entry's cost is
@@ -58826,7 +58821,7 @@ function writeLineToScreen(screen, line, x, y, screenWidth, stylePool, charCache
58826
58821
  return offsetX;
58827
58822
  }
58828
58823
  //#endregion
58829
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
58824
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
58830
58825
  const timing = {
58831
58826
  reconcile: 0,
58832
58827
  yoga: 0,
@@ -58920,7 +58915,7 @@ function applyPositionedHighlight(screen, stylePool, positions, rowOffset, curre
58920
58915
  return true;
58921
58916
  }
58922
58917
  //#endregion
58923
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
58918
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
58924
58919
  /**
58925
58920
  * Create the renderer function for a root DOM node. The returned renderer
58926
58921
  * reuses an Output across frames so its character cache persists.
@@ -58995,7 +58990,7 @@ function createRenderer(node, stylePool) {
58995
58990
  };
58996
58991
  }
58997
58992
  //#endregion
58998
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
58993
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
58999
58994
  /**
59000
58995
  * Highlight all visible occurrences of `query` in the screen buffer by
59001
58996
  * inverting cell styles (SGR 7). Post-render, same damage-tracking machinery
@@ -59057,7 +59052,7 @@ function applySearchHighlight(screen, query, stylePool) {
59057
59052
  return applied;
59058
59053
  }
59059
59054
  //#endregion
59060
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
59055
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
59061
59056
  const ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({
59062
59057
  x: 0,
59063
59058
  y: 0,
@@ -60610,7 +60605,7 @@ const CONSOLE_STDERR_METHODS = [
60610
60605
  "trace"
60611
60606
  ];
60612
60607
  //#endregion
60613
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
60608
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
60614
60609
  /**
60615
60610
  * Mount a component and render the output.
60616
60611
  * @param node - the React element to render.
@@ -60693,7 +60688,7 @@ const getInstance = (stdout, createInstance) => {
60693
60688
  return instance;
60694
60689
  };
60695
60690
  //#endregion
60696
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
60691
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
60697
60692
  /** Resolves a color value that may be a theme key to a raw Color. */
60698
60693
  function resolveColor$1(color, theme) {
60699
60694
  if (!color) return void 0;
@@ -60718,7 +60713,7 @@ function ThemedBox({ borderColor, borderTopColor, borderBottomColor, borderLeftC
60718
60713
  });
60719
60714
  }
60720
60715
  //#endregion
60721
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
60716
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
60722
60717
  /**
60723
60718
  * Colors uncolored ThemedText in the subtree. Precedence: explicit `color` >
60724
60719
  * this > dimColor (in the Claude Code visual language, where message rows
@@ -60754,7 +60749,7 @@ function ThemedText({ color, backgroundColor, dimColor = false, bold = false, it
60754
60749
  });
60755
60750
  }
60756
60751
  //#endregion
60757
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
60752
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
60758
60753
  /**
60759
60754
  * A flexible space that expands along the major axis of its containing layout.
60760
60755
  * It's useful as a shortcut for filling all the available spaces between elements.
@@ -60769,7 +60764,7 @@ function Spacer() {
60769
60764
  return t0;
60770
60765
  }
60771
60766
  //#endregion
60772
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
60767
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
60773
60768
  /**
60774
60769
  * Adds one or more newline (\n) characters. Must be used within <Text> components.
60775
60770
  */
@@ -60792,7 +60787,7 @@ function Newline(t0) {
60792
60787
  return t3;
60793
60788
  }
60794
60789
  //#endregion
60795
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
60790
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
60796
60791
  /**
60797
60792
  * Marks its contents as non-selectable in fullscreen text selection.
60798
60793
  * Cells inside this box are skipped by both the selection highlight and
@@ -60843,7 +60838,7 @@ function NoSelect(t0) {
60843
60838
  return t2;
60844
60839
  }
60845
60840
  //#endregion
60846
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
60841
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
60847
60842
  /**
60848
60843
  * Run children in the terminal's alternate screen buffer, constrained to
60849
60844
  * the viewport height. While mounted:
@@ -60918,7 +60913,7 @@ function AlternateScreen(t0) {
60918
60913
  return t5;
60919
60914
  }
60920
60915
  //#endregion
60921
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
60916
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
60922
60917
  /**
60923
60918
  * A Box with `overflow: scroll` and an imperative scroll API.
60924
60919
  *
@@ -61096,7 +61091,7 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
61096
61091
  });
61097
61092
  }
61098
61093
  //#endregion
61099
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
61094
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
61100
61095
  /**
61101
61096
  * Keep an event listener stable while always dispatching to the latest render's
61102
61097
  * callback. Keeping this hook local is important for packaged installs: a
@@ -61162,7 +61157,7 @@ const useInput = (inputHandler, options = {}) => {
61162
61157
  }, [internal_eventEmitter, handleData]);
61163
61158
  };
61164
61159
  //#endregion
61165
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
61160
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
61166
61161
  /**
61167
61162
  * Access to text selection operations on the Ink instance (fullscreen only).
61168
61163
  * Returns no-op functions when fullscreen mode is disabled.
@@ -61202,7 +61197,7 @@ function useSelection() {
61202
61197
  }, [ink]);
61203
61198
  }
61204
61199
  //#endregion
61205
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
61200
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
61206
61201
  /**
61207
61202
  * Copy-on-select: when a drag finishes (or a double/triple click, or a
61208
61203
  * shift+arrow extension, lands a selection), copy the selected text to the
@@ -61242,14 +61237,14 @@ function useCopyOnSelect(onCopied) {
61242
61237
  ]);
61243
61238
  }
61244
61239
  //#endregion
61245
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
61240
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
61246
61241
  /**
61247
61242
  * React hook exposing the manual app-exit function from `AppContext`.
61248
61243
  * @returns the `AppContext` value, whose `exit` function unmounts the app.
61249
61244
  */
61250
61245
  const useApp = () => (0, import_react.useContext)(AppContext);
61251
61246
  //#endregion
61252
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
61247
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
61253
61248
  /**
61254
61249
  * Hook to detect if a component is within the terminal viewport.
61255
61250
  *
@@ -61303,7 +61298,7 @@ function useTerminalViewport() {
61303
61298
  return [setElement, entryRef.current];
61304
61299
  }
61305
61300
  //#endregion
61306
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
61301
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
61307
61302
  /**
61308
61303
  * Hook for synchronized animations that pause when offscreen.
61309
61304
  *
@@ -61352,7 +61347,7 @@ function useAnimationFrame(intervalMs = 16) {
61352
61347
  return [viewportRef, time];
61353
61348
  }
61354
61349
  //#endregion
61355
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
61350
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
61356
61351
  /** Terminal dimensions from the Ink app shell (from Claude Code).
61357
61352
  * @returns the current terminal dimensions.
61358
61353
  */
@@ -61362,7 +61357,7 @@ function useTerminalSize() {
61362
61357
  return size;
61363
61358
  }
61364
61359
  //#endregion
61365
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
61360
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
61366
61361
  const BLINK_INTERVAL_MS = 600;
61367
61362
  /**
61368
61363
  * Hook for synchronized blinking animations that pause when offscreen
@@ -61379,7 +61374,7 @@ function useBlink(enabled, intervalMs = BLINK_INTERVAL_MS) {
61379
61374
  return [ref, Math.floor(time / intervalMs) % 2 === 0];
61380
61375
  }
61381
61376
  //#endregion
61382
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
61377
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
61383
61378
  var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
61384
61379
  const supportsColor = require_supports_color();
61385
61380
  const hasFlag = require_has_flag();
@@ -61476,7 +61471,7 @@ function supportsHyperlinks(options) {
61476
61471
  return false;
61477
61472
  }
61478
61473
  //#endregion
61479
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
61474
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
61480
61475
  function Link(t0) {
61481
61476
  const $ = (0, import_compiler_runtime.c)(5);
61482
61477
  const { children, url, fallback } = t0;
@@ -61504,7 +61499,7 @@ function Link(t0) {
61504
61499
  return t2;
61505
61500
  }
61506
61501
  //#endregion
61507
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
61502
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
61508
61503
  /**
61509
61504
  * ESC Sequence Parser
61510
61505
  *
@@ -61560,7 +61555,7 @@ function parseEsc(chars) {
61560
61555
  };
61561
61556
  }
61562
61557
  //#endregion
61563
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
61558
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
61564
61559
  /**
61565
61560
  * ANSI Parser - Semantic Types
61566
61561
  *
@@ -61588,7 +61583,7 @@ function defaultStyle() {
61588
61583
  };
61589
61584
  }
61590
61585
  //#endregion
61591
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
61586
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
61592
61587
  /**
61593
61588
  * SGR (Select Graphic Rendition) Parser
61594
61589
  *
@@ -61896,7 +61891,7 @@ function applySGR(paramStr, style) {
61896
61891
  return s;
61897
61892
  }
61898
61893
  //#endregion
61899
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
61894
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
61900
61895
  /**
61901
61896
  * ANSI Parser - Semantic Action Generator
61902
61897
  *
@@ -62273,7 +62268,7 @@ var Parser = class {
62273
62268
  }
62274
62269
  };
62275
62270
  //#endregion
62276
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
62271
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
62277
62272
  /**
62278
62273
  * Component that parses ANSI escape codes and renders them using Text components.
62279
62274
  *
@@ -62524,7 +62519,7 @@ function StyledText(t0) {
62524
62519
  return t1;
62525
62520
  }
62526
62521
  //#endregion
62527
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
62522
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
62528
62523
  var ui_exports = /* @__PURE__ */ __exportAll({
62529
62524
  AlternateScreen: () => AlternateScreen,
62530
62525
  Ansi: () => Ansi,
@@ -62548,7 +62543,7 @@ var ui_exports = /* @__PURE__ */ __exportAll({
62548
62543
  useTheme: () => useTheme
62549
62544
  });
62550
62545
  //#endregion
62551
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
62546
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
62552
62547
  /** 嵌套安全的 inset(若未来出现嵌套 PageMargin 会累加)。 */
62553
62548
  const PageInsetContext = import_react.createContext({
62554
62549
  x: 0,
@@ -62602,7 +62597,7 @@ function PageMargin({ children }) {
62602
62597
  });
62603
62598
  }
62604
62599
  //#endregion
62605
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
62600
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
62606
62601
  /**
62607
62602
  * UI glyph constants used across the TUI: prompt markers, status badges,
62608
62603
  * direction arrows, media controls, reasoning-effort indicators, and
@@ -62629,7 +62624,7 @@ const THINKING_SPINNER_FRAMES = [
62629
62624
  "⠏"
62630
62625
  ];
62631
62626
  //#endregion
62632
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
62627
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
62633
62628
  /**
62634
62629
  * `/provider` wizard — interactively adds, edits, or deletes an LLM
62635
62630
  * provider route at runtime.
@@ -63355,7 +63350,7 @@ function buildProfile(input) {
63355
63350
  return profile;
63356
63351
  }
63357
63352
  //#endregion
63358
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
63353
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
63359
63354
  /** `/model-config`: platform catalogs and shared provider configuration. */
63360
63355
  const CUSTOM_MODEL_PROTOCOLS = [
63361
63356
  "openai-completions",
@@ -64237,7 +64232,7 @@ function parseCapacity(value) {
64237
64232
  return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : void 0;
64238
64233
  }
64239
64234
  //#endregion
64240
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
64235
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
64241
64236
  /**
64242
64237
  * Declares where the terminal cursor should be parked after each frame.
64243
64238
  *
@@ -64286,7 +64281,7 @@ function useDeclaredCursor(options) {
64286
64281
  return setNode;
64287
64282
  }
64288
64283
  //#endregion
64289
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
64284
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
64290
64285
  /**
64291
64286
  * Measure the rendered dimensions of a Box element.
64292
64287
  * @param node - the DOM element to measure.
@@ -64297,7 +64292,7 @@ const measureElement = (node) => ({
64297
64292
  height: node.yogaNode?.getComputedHeight() ?? 0
64298
64293
  });
64299
64294
  //#endregion
64300
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
64295
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
64301
64296
  const MAX_APPLIED_MEASUREMENTS = 8;
64302
64297
  /**
64303
64298
  * A horizontal divider line, optionally with a title in the middle
@@ -65589,7 +65584,7 @@ ${e}</tr>
65589
65584
  return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : w(e.text);
65590
65585
  }
65591
65586
  };
65592
- var z$1 = class {
65587
+ var z = class {
65593
65588
  strong({ text: e }) {
65594
65589
  return e;
65595
65590
  }
@@ -65626,7 +65621,7 @@ var O = class a {
65626
65621
  renderer;
65627
65622
  textRenderer;
65628
65623
  constructor(e) {
65629
- this.options = e || y, this.options.renderer = this.options.renderer || new $(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new z$1();
65624
+ this.options = e || y, this.options.renderer = this.options.renderer || new $(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new z();
65630
65625
  }
65631
65626
  static parse(e, t) {
65632
65627
  return new a(t).parse(e);
@@ -65822,7 +65817,7 @@ var U = class {
65822
65817
  parseInline = this.parseMarkdown(!1);
65823
65818
  Parser = O;
65824
65819
  Renderer = $;
65825
- TextRenderer = z$1;
65820
+ TextRenderer = z;
65826
65821
  Lexer = T;
65827
65822
  Tokenizer = _;
65828
65823
  Hooks = L;
@@ -66012,7 +66007,7 @@ f.parseInline = I.parseInline;
66012
66007
  f.Parser = O;
66013
66008
  f.parser = O.parse;
66014
66009
  f.Renderer = $;
66015
- f.TextRenderer = z$1;
66010
+ f.TextRenderer = z;
66016
66011
  f.Lexer = T;
66017
66012
  f.lexer = T.lex;
66018
66013
  f.Tokenizer = _;
@@ -66025,7 +66020,7 @@ f.parseInline;
66025
66020
  O.parse;
66026
66021
  T.lex;
66027
66022
  //#endregion
66028
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
66023
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
66029
66024
  /** highlight.js token classes -> theme syntax tokens. `default` catches
66030
66025
  * every unmapped class so cli-highlight's own yellow never leaks through
66031
66026
  * (issue #250, P2-6). */
@@ -66091,7 +66086,7 @@ function buildSyntaxTheme(theme) {
66091
66086
  return out;
66092
66087
  }
66093
66088
  //#endregion
66094
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
66089
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
66095
66090
  /** OSC 8 hyperlink start sequence: `ESC ] 8 ; ;`, followed by the URL. */
66096
66091
  const OSC8_START = "\x1B]8;;";
66097
66092
  /** Schemes a rendered hyperlink may point at. Anything else degrades to
@@ -66133,7 +66128,7 @@ function createHyperlink(url, content, options) {
66133
66128
  return `${OSC8_START}${safeUrl}${(options?.style ?? ((text) => chalk.blue(text)))(displayText)}${OSC8_START}`;
66134
66129
  }
66135
66130
  //#endregion
66136
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
66131
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
66137
66132
  /**
66138
66133
  * Clickable file targets: turning path-like text in AI output into
66139
66134
  * clickable targets, and resolving those targets back to absolute paths at
@@ -66275,7 +66270,7 @@ function linkifyFilePaths(text, wrap) {
66275
66270
  });
66276
66271
  }
66277
66272
  //#endregion
66278
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
66273
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
66279
66274
  /**
66280
66275
  * Markdown-to-ANSI renderer over marked's token stream.
66281
66276
  *
@@ -66590,7 +66585,7 @@ function padAligned(content, displayWidth, targetWidth, align) {
66590
66585
  return content + " ".repeat(extra);
66591
66586
  }
66592
66587
  //#endregion
66593
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
66588
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
66594
66589
  let cliHighlightPromise;
66595
66590
  async function loadCliHighlight() {
66596
66591
  try {
@@ -66613,7 +66608,7 @@ function getCliHighlightPromise() {
66613
66608
  return cliHighlightPromise;
66614
66609
  }
66615
66610
  //#endregion
66616
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
66611
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
66617
66612
  /** Accounts for parent indentation and terminal resize races (from Claude Code). */
66618
66613
  const SAFETY_MARGIN = 4;
66619
66614
  /** Minimum column width to prevent degenerate layouts */
@@ -66800,7 +66795,7 @@ function MarkdownTable({ token, highlight, forceWidth }) {
66800
66795
  return (0, import_jsx_runtime.jsx)(Text, { children: tableLines.join("\n") });
66801
66796
  }
66802
66797
  //#endregion
66803
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
66798
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
66804
66799
  const TOKEN_CACHE_CAPACITY = 200;
66805
66800
  const TOKEN_CACHE_CHAR_BUDGET = 2e5;
66806
66801
  const TOKEN_CACHE_MAX_SOURCE_LENGTH = 2e4;
@@ -66909,7 +66904,7 @@ function MarkdownImpl({ children, dimColor = false, cacheTokens = true }) {
66909
66904
  */
66910
66905
  const Markdown = import_react.memo(MarkdownImpl, (prev, next) => prev.children === next.children && prev.dimColor === next.dimColor && prev.cacheTokens === next.cacheTokens);
66911
66906
  //#endregion
66912
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
66907
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
66913
66908
  /**
66914
66909
  * The plan-review panel — Claude Code style exit-plan-mode decision card
66915
66910
  * for the DSH user-interaction seam. plan-mode's `exit_plan_mode` tool asks
@@ -67231,7 +67226,7 @@ function PlanReviewPanel({ question, onAnswer, onCancel }) {
67231
67226
  });
67232
67227
  }
67233
67228
  //#endregion
67234
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
67229
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
67235
67230
  /**
67236
67231
  * 焦点居中的列表窗口:长列表只渲染焦点附近的一段,保证焦点行始终可见。
67237
67232
  * 瞬态面板走 OverlayAbove 零高度浮层后,超高部分会被 overflow 裁掉且焦点
@@ -67283,7 +67278,7 @@ function listWindow(heights, focusIndex, maxRows, gap = 0) {
67283
67278
  }
67284
67279
  }
67285
67280
  //#endregion
67286
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
67281
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
67287
67282
  /**
67288
67283
  * The questionnaire panel — Claude Code style ask-user-question UI for the
67289
67284
  * DSH user-interaction seam. One question per panel (progress header, header
@@ -67877,7 +67872,7 @@ function AskUserQuestionPanel({ question, position, total, answered, initialDraf
67877
67872
  });
67878
67873
  }
67879
67874
  //#endregion
67880
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
67875
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
67881
67876
  /**
67882
67877
  * The approval panel — Claude Code style permission prompt for the DSH
67883
67878
  * approval seam (`ctx.approval`). One ask per panel: a permission-colored
@@ -68002,7 +67997,7 @@ function ApprovalPanel({ approval, background = false, onDecide }) {
68002
67997
  });
68003
67998
  }
68004
67999
  //#endregion
68005
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
68000
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
68006
68001
  /**
68007
68002
  * A pane — a region below the prompt bounded by a colored top line with a
68008
68003
  * one-row gap above and horizontal padding, mirroring Claude Code's
@@ -68024,7 +68019,7 @@ function Pane({ children, color }) {
68024
68019
  });
68025
68020
  }
68026
68021
  //#endregion
68027
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
68022
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
68028
68023
  /**
68029
68024
  * A list item for selection UIs, mirroring Claude Code's
68030
68025
  * design-system/ListItem.tsx: `❯` pointer for the focused row, `✓`
@@ -68121,7 +68116,7 @@ function flattenDeep(node) {
68121
68116
  return node;
68122
68117
  }
68123
68118
  //#endregion
68124
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
68119
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
68125
68120
  /**
68126
68121
  * Localized shortcut-hint line: renders a `t('hint-*')` string, with the
68127
68122
  * `**primary shortcut**` segment (the main action's key, wrapped in `**` in
@@ -68138,7 +68133,7 @@ function HintLine({ text }) {
68138
68133
  }, index) : part) });
68139
68134
  }
68140
68135
  //#endregion
68141
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
68136
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
68142
68137
  /**
68143
68138
  * The managed plugin dialog (`ctx.tuiDialogs`) — one panel rendering the
68144
68139
  * store's current snapshot in the chat chrome (the slot approval/question
@@ -68398,7 +68393,7 @@ function InputDialog({ dialog, onDecide, onCancel }) {
68398
68393
  });
68399
68394
  }
68400
68395
  //#endregion
68401
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
68396
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
68402
68397
  /**
68403
68398
  * Set the search highlight query on the Ink instance. Non-empty → all
68404
68399
  * visible occurrences are inverted on the next frame (SGR 7, screen-buffer
@@ -68430,7 +68425,7 @@ function useSearchHighlight() {
68430
68425
  }, [ink]);
68431
68426
  }
68432
68427
  //#endregion
68433
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
68428
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
68434
68429
  /**
68435
68430
  * Declaratively set the terminal tab/window title.
68436
68431
  *
@@ -68453,7 +68448,7 @@ function useTerminalTitle(title) {
68453
68448
  }, [title, writeRaw]);
68454
68449
  }
68455
68450
  //#endregion
68456
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
68451
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
68457
68452
  /**
68458
68453
  * Session browser formatting.
68459
68454
  *
@@ -68702,7 +68697,7 @@ function projectName(cwd) {
68702
68697
  return normalized.split("/").filter(Boolean).at(-1) ?? normalized;
68703
68698
  }
68704
68699
  //#endregion
68705
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
68700
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
68706
68701
  /**
68707
68702
  * Tooltip hover system — the terminal equivalent of the HTML `title`
68708
68703
  * attribute. Attach {@link useTooltip} props to any Box whose visible text
@@ -68910,7 +68905,7 @@ function wrapTooltipContent(text, width) {
68910
68905
  return rows;
68911
68906
  }
68912
68907
  //#endregion
68913
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
68908
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
68914
68909
  /** User prompt row in the legacy CLI treatment: a full-width gray strip. */
68915
68910
  function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
68916
68911
  const { columns } = useTerminalSize();
@@ -68939,7 +68934,7 @@ function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
68939
68934
  });
68940
68935
  }
68941
68936
  //#endregion
68942
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
68937
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
68943
68938
  /**
68944
68939
  * Assistant text message: bullet + markdown body (mirroring Claude Code's default branch).
68945
68940
  *
@@ -68972,7 +68967,7 @@ function AssistantTextMessage({ text, addMargin, isSelected = false, isExpanded
68972
68967
  });
68973
68968
  }
68974
68969
  //#endregion
68975
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
68970
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
68976
68971
  /**
68977
68972
  * Renders markdown during streaming by splitting at the last top-level block
68978
68973
  * boundary: everything before is stable (memoized, never re-parsed), only the
@@ -69162,7 +69157,7 @@ function StreamingMarkdown({ children, dimColor = false }) {
69162
69157
  });
69163
69158
  }
69164
69159
  //#endregion
69165
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
69160
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
69166
69161
  /**
69167
69162
  * Spinner 动画的通用工具集:平台相关的帧字符选择、RGB 颜色插值、
69168
69163
  * HSL 色相转 RGB,以及 `rgb(...)` 颜色字符串的解析与记忆化。
@@ -69242,7 +69237,7 @@ function parseRGB(colorStr) {
69242
69237
  return parsed;
69243
69238
  }
69244
69239
  //#endregion
69245
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
69240
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
69246
69241
  /** Header blue-white ladder: brand → ice → pale → soft ice flash.
69247
69242
  * FLASH stays visibly blue (never pure white) — the highlight reads as a
69248
69243
  * mist-brightened crest, not a white strobe. */
@@ -69258,7 +69253,7 @@ const ICE = {
69258
69253
  b: 255
69259
69254
  };
69260
69255
  //#endregion
69261
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
69256
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
69262
69257
  /** Preview body rows — a FIXED row count (kimicode-style constant-height
69263
69258
  * ticker). Ink's truncate slices the whole string across newlines as one
69264
69259
  * logical line, so a single joined Text collapses to 1-2 rows whenever
@@ -69371,7 +69366,7 @@ function AssistantThinkingMessage({ thinking, textFull, addMargin, verbose, stre
69371
69366
  });
69372
69367
  }
69373
69368
  //#endregion
69374
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
69369
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
69375
69370
  const CATEGORY_BY_TOOL = {
69376
69371
  bash: "exec",
69377
69372
  powershell: "exec",
@@ -69952,7 +69947,7 @@ var ArrayDiff = class extends Diff {
69952
69947
  };
69953
69948
  new ArrayDiff();
69954
69949
  //#endregion
69955
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
69950
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
69956
69951
  const ANSI16 = {
69957
69952
  30: "rgb(0,0,0)",
69958
69953
  31: "rgb(128,0,0)",
@@ -70037,7 +70032,7 @@ function syntaxThemeSignature(theme) {
70037
70032
  return Object.values(SYNTAX_CLASS_TO_TOKEN).map((key) => palette[key] ?? "").join("|");
70038
70033
  }
70039
70034
  //#endregion
70040
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
70035
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
70041
70036
  /**
70042
70037
  * Smooth streaming reveal — decouples "text the provider has delivered" from
70043
70038
  * "text the screen is showing" (the oh-my-pi `display.smoothStreaming` idea,
@@ -70283,7 +70278,7 @@ function revealLinesOf(key, total, options) {
70283
70278
  return Math.min(existing.revealed, total);
70284
70279
  }
70285
70280
  //#endregion
70286
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
70281
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
70287
70282
  /** Replace tabs so width math and alignment hold (pi convention). */
70288
70283
  const expandTabs = (text) => text.replaceAll(" ", " ");
70289
70284
  /**
@@ -70592,7 +70587,7 @@ function SplitDiffView({ diffs, width, maxRows, verbose, toolBackground = "none"
70592
70587
  });
70593
70588
  }
70594
70589
  //#endregion
70595
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
70590
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
70596
70591
  /** Async nested Text renderer. Lexes the complete payload before splitting. */
70597
70592
  function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, dimColor }) {
70598
70593
  const [highlighter, setHighlighter] = import_react.useState(null);
@@ -70636,7 +70631,7 @@ function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, d
70636
70631
  }, index)) });
70637
70632
  }
70638
70633
  //#endregion
70639
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
70634
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
70640
70635
  /**
70641
70636
  * Trajectory formatting — durations, clocks, badges and heat.
70642
70637
  *
@@ -70838,7 +70833,7 @@ function ledgerLayout(columns) {
70838
70833
  };
70839
70834
  }
70840
70835
  //#endregion
70841
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
70836
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
70842
70837
  /**
70843
70838
  * Reveal-frame wakeup as a React hook — bumps once per advancing ~30fps
70844
70839
  * scheduler tick so consumers re-run their render-phase cursor reads
@@ -70868,7 +70863,7 @@ function useRevealVersion(enabled = true) {
70868
70863
  return version;
70869
70864
  }
70870
70865
  //#endregion
70871
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
70866
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
70872
70867
  /** Tool display names: DSH emits lowercase tool ids (`bash`); Claude Code
70873
70868
  * shows capitalized names (`Bash`). Map the common ones, fall back to the
70874
70869
  * id with its first letter uppercased. */
@@ -71404,7 +71399,7 @@ function AssistantToolUseMessage({ tool, addMargin, verbose, isSelected = false,
71404
71399
  });
71405
71400
  }
71406
71401
  //#endregion
71407
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
71402
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
71408
71403
  /** The waterfall window is a Kimi Code style constant-height region. */
71409
71404
  const WATERFALL_ROWS = 3;
71410
71405
  /** Card left padding + the `│ ` gutter prefix. */
@@ -71612,7 +71607,7 @@ function SubagentMessage({ subagent, addMargin, activityFrames, onClick }) {
71612
71607
  });
71613
71608
  }
71614
71609
  //#endregion
71615
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
71610
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
71616
71611
  /** Card left padding + the `│ ` gutter prefix. */
71617
71612
  const WATERFALL_GUTTER = 4;
71618
71613
  /** Static status marker — deliberately NOT the animated activity-indicator
@@ -71765,7 +71760,7 @@ function JobCard({ job, addMargin, onClick }) {
71765
71760
  });
71766
71761
  }
71767
71762
  //#endregion
71768
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
71763
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
71769
71764
  /**
71770
71765
  * The dim "interrupted" row shown when the user stops a turn, mirroring
71771
71766
  * Claude Code's `InterruptedByUser.tsx`.
@@ -71780,7 +71775,7 @@ function InterruptedByUser() {
71780
71775
  })] });
71781
71776
  }
71782
71777
  //#endregion
71783
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
71778
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
71784
71779
  /**
71785
71780
  * 当月 AI 代码生成占比统计(移植自 chatcode-cli 的同名服务)。
71786
71781
  *
@@ -71948,7 +71943,7 @@ function computeAiRatioPercent(records) {
71948
71943
  return clampPercent(aiAdoptedTotal / addedTotal * 100);
71949
71944
  }
71950
71945
  //#endregion
71951
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
71946
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
71952
71947
  /**
71953
71948
  * 「AI代码生成占比」数据源 Hook(移植自 chatcode-cli 的同名 Hook)。
71954
71949
  *
@@ -72012,7 +72007,7 @@ function useAiRatio(enabled = true) {
72012
72007
  };
72013
72008
  }
72014
72009
  //#endregion
72015
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useNotification.js
72010
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useNotification.js
72016
72011
  /**
72017
72012
  * 「通知」数据源 Hook(移植自 chatcode-cli 的 LogoV2/FooterInfo 通知行)。
72018
72013
  *
@@ -72049,7 +72044,7 @@ function useNotification() {
72049
72044
  return { message };
72050
72045
  }
72051
72046
  //#endregion
72052
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
72047
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
72053
72048
  /**
72054
72049
  * Slice a string to at most `maxWidth` terminal cells, walking by code
72055
72050
  * point so CJK wide characters never split mid-glyph. Assumes no ANSI in
@@ -72067,7 +72062,7 @@ function truncateToWidth(text, maxWidth) {
72067
72062
  return out;
72068
72063
  }
72069
72064
  //#endregion
72070
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
72065
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
72071
72066
  /** Main ChatCode CLI package version shown in the startup information panel. */
72072
72067
  const VERSION = PRODUCT_VERSION;
72073
72068
  const PRODUCT_LABEL = "chatcode-cli";
@@ -72338,7 +72333,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
72338
72333
  });
72339
72334
  }
72340
72335
  //#endregion
72341
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
72336
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
72342
72337
  /**
72343
72338
  * Transcript-mode metadata row: `HH:MM · model`, right-aligned above the
72344
72339
  * assistant text, mirroring Claude Code's MessageTimestamp + MessageModel,
@@ -72360,7 +72355,7 @@ function MessageMetadata({ timestamp, model }) {
72360
72355
  });
72361
72356
  }
72362
72357
  //#endregion
72363
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
72358
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
72364
72359
  /**
72365
72360
  * Strip the `⏵` self-narration line from assistant text. The
72366
72361
  * dsh-working-activity narrate contract puts exactly one `⏵` line at the
@@ -72476,7 +72471,7 @@ function ellipsize(line, maxWidth) {
72476
72471
  return `${out}…`;
72477
72472
  }
72478
72473
  //#endregion
72479
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
72474
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
72480
72475
  /**
72481
72476
  * Transcript rows rendered in the Claude Code visual language: user prompts
72482
72477
  * on a grey bubble with a `❯` pointer, assistant text with a `●` bullet and
@@ -73289,7 +73284,7 @@ function LogoHeader({ model, effort, cwd, whale = true, skipIntro = false }) {
73289
73284
  });
73290
73285
  }
73291
73286
  //#endregion
73292
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
73287
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
73293
73288
  /** ▴ / ▾ (U+25B4 / U+25BE — the small triangles; CP437-safe on ConHost too). */
73294
73289
  const CHEVRON_UP = " ▴";
73295
73290
  const CHEVRON_DOWN = " ▾";
@@ -73483,7 +73478,7 @@ function TimelineRail({ handle, turns, activeId, upId, downId, terminalWidth, ho
73483
73478
  }) });
73484
73479
  }
73485
73480
  //#endregion
73486
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
73481
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
73487
73482
  /** Thumb glyph across the 2-col gutter: solid, clearly positional —
73488
73483
  * deliberately distinct from the timeline's ━━ active tick. */
73489
73484
  const THUMB = "██";
@@ -73599,7 +73594,7 @@ function ScrollbarGutter({ handle, terminalWidth }) {
73599
73594
  }) });
73600
73595
  }
73601
73596
  //#endregion
73602
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
73597
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
73603
73598
  /**
73604
73599
  * 瞬态面板的浮层容器:absolute 定位 + bottom:'100%' 把面板底边钉在锚点
73605
73600
  * (父元素)顶边,向上覆盖转录尾部行,自身**不占布局高度**。
@@ -73632,7 +73627,7 @@ function OverlayAbove({ children, maxHeight }) {
73632
73627
  });
73633
73628
  }
73634
73629
  //#endregion
73635
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
73630
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
73636
73631
  /**
73637
73632
  * Trajectory motion — five verbs, one shared clock, one hard rule.
73638
73633
  *
@@ -73757,7 +73752,7 @@ function alert(tick, startTick) {
73757
73752
  return Math.floor(age / 2) % 2 === 0 ? 1 : 0;
73758
73753
  }
73759
73754
  //#endregion
73760
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
73755
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
73761
73756
  /** 三幕时间轴(ms):扫光全长、字样启动(波至中段)、字样渐亮、渐隐起止。边框扫光与输入行字样徽标共用。 */
73762
73757
  const IGNITION_TIMELINE = {
73763
73758
  sweepMs: 1e3,
@@ -73905,7 +73900,7 @@ function ignitionLineColors(options) {
73905
73900
  return colors;
73906
73901
  }
73907
73902
  //#endregion
73908
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
73903
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
73909
73904
  /**
73910
73905
  * EffortChargeGlyph — 输入提示前缀 `❯ ` 的最高档强调与充能。
73911
73906
  *
@@ -73961,7 +73956,7 @@ function EffortChargeGlyph({ effort, levels, working }) {
73961
73956
  });
73962
73957
  }
73963
73958
  //#endregion
73964
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
73959
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
73965
73960
  /**
73966
73961
  * EffortInputBorder — 输入框层上的三幕点焰叠加(对齐 Codex 的完整
73967
73962
  * 语义:光扫过、档位字样浮现、整体渐隐)。
@@ -74096,7 +74091,7 @@ function EffortInputBorder({ effort, levels, columns, onLight, idleColor, topRig
74096
74091
  });
74097
74092
  }
74098
74093
  //#endregion
74099
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
74094
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
74100
74095
  /**
74101
74096
  * EffortTierBadge — 输入行尾的档位字样徽标:三幕点焰的第二幕载体
74102
74097
  * (与 EffortInputBorder 的双框扫光同一时间轴、同一触发),切到最高
@@ -74179,7 +74174,7 @@ function EffortTierBadge({ effort, levels, onLight, columns, leadingColumns }) {
74179
74174
  });
74180
74175
  }
74181
74176
  //#endregion
74182
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
74177
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
74183
74178
  /**
74184
74179
  * Cross-platform clipboard access for Ctrl+V paste. The TUI runs in raw
74185
74180
  * mode, so the terminal never performs its own paste for Ctrl+V — the key
@@ -74693,7 +74688,7 @@ function formatClipboardInsert(content) {
74693
74688
  return content.text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
74694
74689
  }
74695
74690
  //#endregion
74696
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
74691
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
74697
74692
  /**
74698
74693
  * External editor round-trip for the prompt input (issue #123): Ctrl+G dumps
74699
74694
  * the current draft into a temp file, hands the terminal to `$VISUAL` /
@@ -74971,7 +74966,7 @@ async function editInExternalEditor(draft) {
74971
74966
  }
74972
74967
  }
74973
74968
  //#endregion
74974
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
74969
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
74975
74970
  let editorNode = null;
74976
74971
  const listeners = /* @__PURE__ */ new Set();
74977
74972
  /** Publish (or withdraw, with null) the fullscreen editor subtree. */
@@ -75047,7 +75042,7 @@ function EditorButton({ label, hint, onClick, primary, accent }) {
75047
75042
  });
75048
75043
  }
75049
75044
  //#endregion
75050
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
75045
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
75051
75046
  const HISTORY_DIR = DATA_DIR;
75052
75047
  const HISTORY_FILE = join(HISTORY_DIR, "history.jsonl");
75053
75048
  const HISTORY_LOCK = `${HISTORY_FILE}.lock`;
@@ -75181,7 +75176,7 @@ function historyEntryId(entry, index = 0) {
75181
75176
  return createHash("sha1").update(`${entry.text}\0${entry.ts}\0${index}`).digest("hex").slice(0, 12);
75182
75177
  }
75183
75178
  //#endregion
75184
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
75179
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
75185
75180
  /**
75186
75181
  * `/` 命令菜单与 `@` 文件菜单共用的圆角卡片外壳(与输入框 EffortInputBorder
75187
75182
  * 同款 ╭╮╰╯ 视觉语言):
@@ -75313,7 +75308,7 @@ function splitQueryMatch(name, query) {
75313
75308
  return startsWith(0) ?? (lastSpace >= 0 ? startsWith(lastSpace + 1) : null) ?? startsWith(name.lastIndexOf("/") + 1);
75314
75309
  }
75315
75310
  //#endregion
75316
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
75311
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
75317
75312
  /**
75318
75313
  * The slash-command suggestion overlay, mirroring Claude Code's
75319
75314
  * `PromptInputFooterSuggestions.tsx` (command layout only) wrapped in the
@@ -75393,7 +75388,7 @@ function CommandSuggestions({ commands, selectedIndex, columns, query = "", acce
75393
75388
  });
75394
75389
  }
75395
75390
  //#endregion
75396
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
75391
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
75397
75392
  /**
75398
75393
  * The `@` file-completion overlay in CC's suggestion style, wrapped in the
75399
75394
  * shared rounded `SuggestionCard` (与 `/` 命令菜单同一视觉语言):
@@ -75490,7 +75485,7 @@ function FileSuggestions({ files, selectedIndex, columns, query = "", loading, a
75490
75485
  });
75491
75486
  }
75492
75487
  //#endregion
75493
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
75488
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
75494
75489
  /**
75495
75490
  * The `?` help menu, mirroring Claude Code's `PromptInputHelpMenu.tsx`
75496
75491
  * (three-column shortcut layout, trimmed to the keys dsh-tui actually binds).
@@ -75681,7 +75676,7 @@ function HelpCommandRow({ command, onPick }) {
75681
75676
  });
75682
75677
  }
75683
75678
  //#endregion
75684
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
75679
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
75685
75680
  const HISTORY_LIMIT = 50;
75686
75681
  /**
75687
75682
  * Paste fold (CC-style collapse with a visible preview, no black box):
@@ -78028,7 +78023,7 @@ function wordSelectionAt(text, offset, lo, hi) {
78028
78023
  };
78029
78024
  }
78030
78025
  //#endregion
78031
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
78026
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
78032
78027
  /** Maximum todo rows shown before the overflow line. */
78033
78028
  const MAX_TODOS = 8;
78034
78029
  const PHASE_LABEL = {
@@ -78274,7 +78269,7 @@ function GoalTodoPanel({ channel, collapsed = false, onToggle }) {
78274
78269
  });
78275
78270
  }
78276
78271
  //#endregion
78277
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
78272
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
78278
78273
  /**
78279
78274
  * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
78280
78275
  * at the bottom of the transcript after an automatic summary on session
@@ -78354,7 +78349,7 @@ function summarizeLoadedContext(context) {
78354
78349
  return parts.join(" · ");
78355
78350
  }
78356
78351
  //#endregion
78357
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
78352
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
78358
78353
  /** One named entry (section or dynamic context) with its full text. */
78359
78354
  function Entry({ entry }) {
78360
78355
  return (0, import_jsx_runtime.jsxs)(ThemedBox, {
@@ -78491,7 +78486,7 @@ function LoadedContextPanel({ context, open, onToggle }) {
78491
78486
  });
78492
78487
  }
78493
78488
  //#endregion
78494
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
78489
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
78495
78490
  /**
78496
78491
  * Terminal-safe construction cycle derived from the supplied China Unicom
78497
78492
  * knot mark. Every frame is one display cell, unlike emoji on mixed terminals.
@@ -78523,7 +78518,7 @@ function UnicomKnotSpinner({ time }) {
78523
78518
  });
78524
78519
  }
78525
78520
  //#endregion
78526
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
78521
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
78527
78522
  /**
78528
78523
  * Context-pressure percentage (0–100) from the last usage snapshot, or
78529
78524
  * undefined when unknown — shared by the spinner-line and status-line
@@ -78595,7 +78590,7 @@ function ActivityLine({ activity, activityFrames, warnPct, warnDanger, suffix })
78595
78590
  });
78596
78591
  }
78597
78592
  //#endregion
78598
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
78593
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
78599
78594
  /**
78600
78595
  * Structural guards for the session events the trajectory projection reads.
78601
78596
  *
@@ -78819,7 +78814,7 @@ function readTodos(data) {
78819
78814
  };
78820
78815
  }
78821
78816
  //#endregion
78822
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
78817
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
78823
78818
  /**
78824
78819
  * Trajectory projection — the data contract shared by the adapter-side fold
78825
78820
  * and the UI-side scene (issue #80 evolution).
@@ -78886,7 +78881,7 @@ function previewText(raw, limit) {
78886
78881
  return `${flat.slice(0, limit)}…`;
78887
78882
  }
78888
78883
  //#endregion
78889
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
78884
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
78890
78885
  /**
78891
78886
  * Trajectory projection — folding the session event log into ledger nodes.
78892
78887
  *
@@ -79465,7 +79460,7 @@ function extendTrajectory(previous, events) {
79465
79460
  };
79466
79461
  }
79467
79462
  //#endregion
79468
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
79463
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
79469
79464
  /**
79470
79465
  * Trajectory aggregate — the hotspot view's data and the session totals.
79471
79466
  *
@@ -79686,7 +79681,7 @@ function modelTiming(timing) {
79686
79681
  };
79687
79682
  }
79688
79683
  //#endregion
79689
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
79684
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
79690
79685
  /**
79691
79686
  * Inspector detail — full content, resolved on demand.
79692
79687
  *
@@ -79846,7 +79841,7 @@ function inspectNode(node, events) {
79846
79841
  };
79847
79842
  }
79848
79843
  //#endregion
79849
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
79844
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
79850
79845
  /**
79851
79846
  * Wave band projection — the whole session compressed onto one row of glyphs.
79852
79847
  *
@@ -80019,7 +80014,7 @@ function columnOfIndex(band, ledgerIndex) {
80019
80014
  return 0;
80020
80015
  }
80021
80016
  //#endregion
80022
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
80017
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
80023
80018
  /**
80024
80019
  * The mini wake — the whole session as a dozen glyphs in the status line.
80025
80020
  *
@@ -80122,7 +80117,7 @@ function toHex$1(colour) {
80122
80117
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
80123
80118
  }
80124
80119
  //#endregion
80125
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
80120
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
80126
80121
  /**
80127
80122
  * Status-line metric renderers, ported from two pi extensions:
80128
80123
  * - `pi-nano-context`: segmented context progress bar (morandi pastel
@@ -80398,7 +80393,7 @@ function tpsStats(samples, nowMs) {
80398
80393
  };
80399
80394
  }
80400
80395
  //#endregion
80401
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
80396
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
80402
80397
  /** Free-segment colors, mirroring StatusMetrics' dark-theme defaults. */
80403
80398
  const FREE_FILL = "#E8E8E8";
80404
80399
  const FREE_TEXT = "#4A4A4A";
@@ -80465,7 +80460,7 @@ function ContextBarView({ segments, usedTokens, contextWindow, width, colors, on
80465
80460
  });
80466
80461
  }
80467
80462
  //#endregion
80468
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
80463
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
80469
80464
  /**
80470
80465
  * ChatCode 今日总 Token 消耗量查询(移植自 chatcode-cli 的 chatCodeTokenTrend)。
80471
80466
  *
@@ -80540,7 +80535,7 @@ async function fetchTodayTotalTokens(post, signal) {
80540
80535
  }
80541
80536
  }
80542
80537
  //#endregion
80543
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
80538
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
80544
80539
  /**
80545
80540
  * 「今日总Token消耗」数据源 Hook(移植自 chatcode-cli 的 useTokenDashboard)。
80546
80541
  *
@@ -80572,7 +80567,7 @@ function useTodayTotalTokens(enabled = true) {
80572
80567
  return { totalTokens };
80573
80568
  }
80574
80569
  //#endregion
80575
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
80570
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
80576
80571
  const BAR_WIDTH = 14;
80577
80572
  /** Yuanjing-compatible percentage label centered inside a fixed-width bar. */
80578
80573
  function LabeledBar({ ratio, percent }) {
@@ -80656,7 +80651,7 @@ function TokenDashboard({ todayTokens, usedTokens, contextWindow, compact = fals
80656
80651
  });
80657
80652
  }
80658
80653
  //#endregion
80659
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
80654
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
80660
80655
  /** Stable fallback for stubbed channels: verify/repro harnesses render the
80661
80656
  * real Chat with partial channel literals that predate the jobs field. */
80662
80657
  const NO_BACKGROUND_JOBS = [];
@@ -81514,7 +81509,7 @@ const fallbackSymbols = {
81514
81509
  const figures = isUnicodeSupported() ? mainSymbols : fallbackSymbols;
81515
81510
  Object.entries(specialMainSymbols);
81516
81511
  //#endregion
81517
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
81512
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
81518
81513
  /**
81519
81514
  * Joins children with a middot separator (" · ") for inline metadata display
81520
81515
  * (in the Claude Code visual language). Automatically filters out
@@ -81530,7 +81525,7 @@ function Byline({ children }) {
81530
81525
  }), child] }, (0, import_react.isValidElement)(child) ? child.key ?? index : index)) });
81531
81526
  }
81532
81527
  //#endregion
81533
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
81528
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
81534
81529
  const ERROR_RED$1 = {
81535
81530
  r: 171,
81536
81531
  g: 43,
@@ -81620,7 +81615,7 @@ function GlimmerMessage({ message, mode, messageColor, glimmerIndex, flashOpacit
81620
81615
  })] });
81621
81616
  }
81622
81617
  //#endregion
81623
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
81618
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
81624
81619
  const DEFAULT_CHARACTERS = getDefaultCharacters();
81625
81620
  const SPINNER_FRAMES$1 = [...DEFAULT_CHARACTERS, ...[...DEFAULT_CHARACTERS].reverse()];
81626
81621
  const REDUCED_MOTION_DOT = "●";
@@ -81681,7 +81676,7 @@ function SpinnerGlyph({ frame, messageColor, stalledIntensity = 0, reducedMotion
81681
81676
  });
81682
81677
  }
81683
81678
  //#endregion
81684
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
81679
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
81685
81680
  /**
81686
81681
  * Tracks the transition to red when tokens stop flowing (mirroring Claude Code's `Spinner/useStalledAnimation.ts`). Driven by the parent's animation
81687
81682
  * clock time instead of independent intervals, so it slows down when the
@@ -81738,7 +81733,7 @@ function useStalledAnimation(time, currentResponseLength, hasActiveTools = false
81738
81733
  };
81739
81734
  }
81740
81735
  //#endregion
81741
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
81736
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
81742
81737
  const SEP_WIDTH = stringWidth$1(" · ");
81743
81738
  const THINKING_BARE_WIDTH = stringWidth$1("thinking");
81744
81739
  const SHOW_TOKENS_AFTER_MS = 3e4;
@@ -81905,7 +81900,7 @@ function SpinnerModeGlyph({ mode }) {
81905
81900
  }
81906
81901
  }
81907
81902
  //#endregion
81908
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
81903
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
81909
81904
  /**
81910
81905
  * The working spinner block shown between the transcript and the prompt
81911
81906
  * input while a turn is in flight. Mirrors Claude Code's `Spinner.tsx`
@@ -81975,7 +81970,7 @@ function useThinkingStatus(isThinking) {
81975
81970
  return thinkingStatus;
81976
81971
  }
81977
81972
  //#endregion
81978
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
81973
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
81979
81974
  /**
81980
81975
  * Model picker in the CC ModelPicker style: a permission-colored Pane with
81981
81976
  * the rows as Select entries (❯ focus pointer, ✓ on the active row,
@@ -82035,7 +82030,7 @@ function ModelPicker(props) {
82035
82030
  });
82036
82031
  }
82037
82032
  //#endregion
82038
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
82033
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
82039
82034
  /**
82040
82035
  * Error boundary for plugin scenes (dsh-tui-scenes). A scene component is
82041
82036
  * third-party code rendered inside Chat's tree: without a boundary a render
@@ -82061,7 +82056,7 @@ var PluginSceneBoundary = class extends import_react.Component {
82061
82056
  }
82062
82057
  };
82063
82058
  //#endregion
82064
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
82059
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
82065
82060
  const SPINNER_FRAMES = [...getDefaultCharacters(), ...[...getDefaultCharacters()].reverse()];
82066
82061
  /**
82067
82062
  * A spinner with a loading message for async operations, mirroring Claude Code's design-system/LoadingState.tsx (using the small animated glyph).
@@ -82092,7 +82087,7 @@ function LoadingState({ message, bold = false, dimColor = false, subtitle }) {
82092
82087
  });
82093
82088
  }
82094
82089
  //#endregion
82095
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
82090
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
82096
82091
  /** 来源桶 → 本地化标签(未知桶原样显示,SkillSource 对自定义桶开放)。 */
82097
82092
  function sourceLabel(source) {
82098
82093
  switch (source) {
@@ -82170,7 +82165,7 @@ function SkillsPickerLoading() {
82170
82165
  });
82171
82166
  }
82172
82167
  //#endregion
82173
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
82168
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
82174
82169
  /**
82175
82170
  * Window a single-line query around the caret so the visible slice fits
82176
82171
  * `avail` display cells (CJK display width, code-point safe — `[...s]`
@@ -82308,7 +82303,7 @@ function SearchBox({ query, placeholder = "Search…", isFocused, isTerminalFocu
82308
82303
  });
82309
82304
  }
82310
82305
  //#endregion
82311
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
82306
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
82312
82307
  /**
82313
82308
  * One session in the browser's list: a title line and a metadata line.
82314
82309
  *
@@ -82389,7 +82384,7 @@ function SessionListRow({ session, width, depth, focused, pinned, now, onClick,
82389
82384
  });
82390
82385
  }
82391
82386
  //#endregion
82392
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
82387
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
82393
82388
  /** Role marker and colour for a preview entry. */
82394
82389
  const ROLE = {
82395
82390
  user: {
@@ -82480,7 +82475,7 @@ function SessionPreview({ session, entries, loading, width, height, home, now })
82480
82475
  });
82481
82476
  }
82482
82477
  //#endregion
82483
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
82478
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
82484
82479
  /** One two-line working-directory choice in the /resume browser. */
82485
82480
  function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width, focused, selected, home, now, onClick }) {
82486
82481
  const [hovered, setHovered] = (0, import_react.useState)(false);
@@ -82525,7 +82520,7 @@ function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width,
82525
82520
  });
82526
82521
  }
82527
82522
  //#endregion
82528
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
82523
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
82529
82524
  /**
82530
82525
  * Pinned sessions for the `/resume` browser, kept at
82531
82526
  * `~/.chatcode-cli/tui/session-pins.json` (a JSON array of session ids) so the pins
@@ -82674,7 +82669,7 @@ function setSessionPinned(id, pinned, dir = DATA_DIR) {
82674
82669
  }
82675
82670
  }
82676
82671
  //#endregion
82677
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
82672
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
82678
82673
  /**
82679
82674
  * Rows the layout cannot do without: the header, the four-row scope/search
82680
82675
  * card, the notice slot, and the hints. Everything else yields before these.
@@ -82786,10 +82781,8 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
82786
82781
  const topRef = import_react.useRef(0);
82787
82782
  const workspaceTopRef = import_react.useRef(0);
82788
82783
  const [mode, setMode] = import_react.useState("list");
82789
- const [deleteScope, setDeleteScope] = import_react.useState([]);
82790
- const [deleteArmed, setDeleteArmed] = import_react.useState(false);
82791
82784
  const archivedOnly = filters.archivedOnly === true;
82792
- const menuActions = archivedOnly ? ["open", "delete"] : MENU_ACTIONS;
82785
+ const menuActions = archivedOnly ? ["open"] : MENU_ACTIONS;
82793
82786
  const [renameText, setRenameText] = import_react.useState("");
82794
82787
  /** Hover state for the confirm rows (only one is ever mounted). */
82795
82788
  const [confirmHovered, setConfirmHovered] = import_react.useState(false);
@@ -83120,7 +83113,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83120
83113
  const soloPreview = previewOpen && canPreview && sessionAreaVisible && !splitPreview;
83121
83114
  const previewWidth = splitPreview ? Math.min(56, Math.floor(sessionAreaWidth * .42)) : sessionAreaWidth;
83122
83115
  const listWidth = Math.max(20, sessionAreaWidth - (splitPreview ? previewWidth : 0));
83123
- const extraLines = mode === "list" ? 0 : archivedOnly && mode === "confirm-delete" ? 2 : 1;
83116
+ const extraLines = mode === "list" ? 0 : 1;
83124
83117
  const ruleBudget = Math.max(0, Math.min(RULE_PRIORITY$1.length, rows - mandatoryLines - extraLines - WORKSPACE_ROW_HEIGHT));
83125
83118
  const rules = new Set(RULE_PRIORITY$1.slice(0, ruleBudget));
83126
83119
  const listHeight = Math.max(0, rows - mandatoryLines - extraLines - rules.size);
@@ -83206,22 +83199,12 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83206
83199
  if (workspaceState === void 0) apply();
83207
83200
  else runAction(apply);
83208
83201
  };
83209
- const runDelete = (target) => mutate(() => archivedOnly ? channel.deleteSession(target.id, deleteScope) : channel.archiveSession(target.id), t(archivedOnly ? "resume-deleted" : "resume-archived", { name: target.title.text }), t(archivedOnly ? "resume-delete-failed" : "resume-archive-failed", { name: target.title.text }));
83210
- const requestDelete = (target) => {
83211
- if (!archivedOnly) {
83212
- setMode("confirm-delete");
83213
- return;
83214
- }
83215
- runAction(async () => {
83216
- try {
83217
- if (channel.sessionDeletionScope === void 0) throw new Error(t("resume-delete-unavailable"));
83218
- setDeleteScope(await channel.sessionDeletionScope(target.id));
83219
- setDeleteArmed(false);
83220
- setMode("confirm-delete");
83221
- } catch (error) {
83222
- report(message$2(error), "error");
83223
- }
83224
- });
83202
+ const runDelete = (target) => {
83203
+ if (archivedOnly) return;
83204
+ mutate(() => channel.archiveSession(target.id), t("resume-archived", { name: target.title.text }), t("resume-archive-failed", { name: target.title.text }));
83205
+ };
83206
+ const requestDelete = (_target) => {
83207
+ if (!archivedOnly) setMode("confirm-delete");
83225
83208
  };
83226
83209
  const restoreSession = (target) => mutate(() => channel.unarchiveSession?.(target.id) ?? Promise.resolve(false), t("resume-restored", { name: target.title.text }), t("resume-restore-failed", { name: target.title.text }));
83227
83210
  const openOrRestore = (target) => {
@@ -83269,9 +83252,8 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83269
83252
  if (mode === "confirm-delete") {
83270
83253
  if (isPlainReturn(key)) {
83271
83254
  setMode("list");
83272
- if (focused !== void 0 && (!archivedOnly || deleteArmed)) runDelete(focused);
83273
- } else if (archivedOnly && (key.tab || key.leftArrow || key.rightArrow)) setDeleteArmed((value) => !value);
83274
- else if (key.escape) setMode("list");
83255
+ if (focused !== void 0) runDelete(focused);
83256
+ } else if (key.escape) setMode("list");
83275
83257
  return;
83276
83258
  }
83277
83259
  if (mode === "confirm-clean") {
@@ -83351,7 +83333,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83351
83333
  } else if (isMod(key) && input === "p" && !archivedOnly) {
83352
83334
  const target = sessionAt(view.rows, focusRef.current);
83353
83335
  if (target !== void 0) togglePin(target);
83354
- } else if (isMod(key) && input === "d" && focused !== void 0) requestDelete(focused);
83336
+ } else if (isMod(key) && input === "d" && !archivedOnly && focused !== void 0) requestDelete(focused);
83355
83337
  else if (isMod(key) && input === "x" && !archivedOnly && view.emptyCount > 0) setMode("confirm-clean");
83356
83338
  else if (key.backspace || key.delete) applyFilters((current) => ({ query: current.query.slice(0, -1) }));
83357
83339
  else if (!isMod(key) && !key.meta && !key.super && input && !key.return) {
@@ -83374,7 +83356,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83374
83356
  const scopeRow = spreadRow(archivedOnly ? t("resume-archived-title") : level === "workspaces" ? `▣ ${t("session-workspace-select-title")}` : `▣ ${t("session-workspace-scope")} ${scope}`, archivedOnly ? t("resume-hint-archived-list", { mod: modLabel }) : level === "workspaces" ? t("session-workspace-project-count", { n: workspaceGroups.length }) : t("session-workspace-switch"), inputBudget);
83375
83357
  const activeQuery = level === "workspaces" ? workspaceQuery : filters.query;
83376
83358
  const searchPlaceholder = level === "workspaces" ? t("session-workspace-search-placeholder") : t("session-search-placeholder", { scope });
83377
- const hint = mode === "confirm-delete" || mode === "confirm-clean" ? fitHint$2([t(archivedOnly ? "resume-hint-permanent-delete" : "resume-hint-archive")], inputBudget) : mode === "rename" ? fitHint$2([t("resume-hint-rename")], inputBudget) : level === "workspaces" ? fitHint$2([t("session-hint-workspaces", { mod: modLabel }), t("session-hint-workspaces-short")], inputBudget) : fitHint$2([
83359
+ const hint = mode === "confirm-delete" || mode === "confirm-clean" ? fitHint$2([t("resume-hint-archive")], inputBudget) : mode === "rename" ? fitHint$2([t("resume-hint-rename")], inputBudget) : level === "workspaces" ? fitHint$2([t("session-hint-workspaces", { mod: modLabel }), t("session-hint-workspaces-short")], inputBudget) : fitHint$2([
83378
83360
  t(archivedOnly ? "resume-hint-archived-list" : "session-hint-list-archive", {
83379
83361
  mod: modLabel,
83380
83362
  projects: filters.allProjects ? t("session-toggle-on") : t("session-toggle-off"),
@@ -83568,9 +83550,9 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83568
83550
  children: notice === void 0 ? " " : ` ${notice.tone === "error" ? "✗" : "✓"} ${truncateWidth$1(notice.text, Math.max(0, columns - 4))}`
83569
83551
  })
83570
83552
  }),
83571
- mode === "confirm-delete" && focused !== void 0 && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [(0, import_jsx_runtime.jsx)(ThemedBox, {
83553
+ mode === "confirm-delete" && focused !== void 0 && (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: (0, import_jsx_runtime.jsx)(ThemedBox, {
83572
83554
  flexShrink: 0,
83573
- onClick: archivedOnly ? void 0 : () => {
83555
+ onClick: () => {
83574
83556
  setMode("list");
83575
83557
  runDelete(focused);
83576
83558
  },
@@ -83579,30 +83561,9 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83579
83561
  backgroundColor: confirmHovered ? "userMessageBackgroundHover" : void 0,
83580
83562
  children: (0, import_jsx_runtime.jsx)(ThemedText, {
83581
83563
  color: "error",
83582
- children: ` ${truncateWidth$1(t(archivedOnly ? "resume-delete-confirm" : "resume-archive-confirm", {
83583
- name: focused.title.text,
83584
- n: deleteScope.length
83585
- }), inputBudget)}`
83564
+ children: ` ${truncateWidth$1(t("resume-archive-confirm", { name: focused.title.text }), inputBudget)}`
83586
83565
  })
83587
- }), archivedOnly && (0, import_jsx_runtime.jsxs)(ThemedBox, {
83588
- flexShrink: 0,
83589
- children: [(0, import_jsx_runtime.jsx)(ThemedBox, {
83590
- onClick: () => setMode("list"),
83591
- children: (0, import_jsx_runtime.jsx)(ThemedText, {
83592
- color: !deleteArmed ? "remember" : void 0,
83593
- children: ` ${!deleteArmed ? "❯ " : ""}${t("tree-menu-cancel")} `
83594
- })
83595
- }), (0, import_jsx_runtime.jsx)(ThemedBox, {
83596
- onClick: () => {
83597
- setMode("list");
83598
- runDelete(focused);
83599
- },
83600
- children: (0, import_jsx_runtime.jsx)(ThemedText, {
83601
- color: "error",
83602
- children: ` ${deleteArmed ? "❯ " : ""}${t("resume-menu-delete")} `
83603
- })
83604
- })]
83605
- })] }),
83566
+ }) }),
83606
83567
  mode === "confirm-clean" && (0, import_jsx_runtime.jsx)(ThemedBox, {
83607
83568
  flexShrink: 0,
83608
83569
  onClick: () => {
@@ -83666,7 +83627,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83666
83627
  },
83667
83628
  children: (0, import_jsx_runtime.jsx)(ThemedText, {
83668
83629
  color: action === "delete" ? "error" : void 0,
83669
- children: ` ${index === menu.item ? "❯" : " "} ${t(action === "delete" ? archivedOnly ? "resume-menu-delete" : "resume-menu-archive" : action === "open" && archivedOnly ? "resume-menu-restore" : menuLabelKey(action, effectivePins.has(menuTarget.id)))}`
83630
+ children: ` ${index === menu.item ? "❯" : " "} ${t(action === "delete" ? "resume-menu-archive" : action === "open" && archivedOnly ? "resume-menu-restore" : menuLabelKey(action, effectivePins.has(menuTarget.id)))}`
83670
83631
  })
83671
83632
  }, action))
83672
83633
  })
@@ -83674,7 +83635,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
83674
83635
  });
83675
83636
  }
83676
83637
  //#endregion
83677
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
83638
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
83678
83639
  /** Local HH:MM (or MM/DD HH:MM when older than this year). */
83679
83640
  function formatTime(at, now) {
83680
83641
  const date = new Date(at);
@@ -84430,7 +84391,7 @@ function PreviewPane({ entry, meta, width, height, liveSessionId, now, compact }
84430
84391
  });
84431
84392
  }
84432
84393
  //#endregion
84433
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
84394
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
84434
84395
  /** Pick the provider-owned translation for the active language. */
84435
84396
  function pick(text, descriptions) {
84436
84397
  return descriptions?.[getLang()] ?? text;
@@ -85255,7 +85216,7 @@ function Settings({ channel, onClose, initialGroup }) {
85255
85216
  });
85256
85217
  }
85257
85218
  //#endregion
85258
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
85219
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
85259
85220
  const WINDOW$1 = 8;
85260
85221
  /** `/workspace` target picker contributed by local and optional providers. */
85261
85222
  function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
@@ -85293,7 +85254,7 @@ function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
85293
85254
  });
85294
85255
  }
85295
85256
  //#endregion
85296
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
85257
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
85297
85258
  /**
85298
85259
  * A single-choice select list in the CC CustomSelect style (ported visual:
85299
85260
  * ListItem rows with ❯ focus pointer, ✓ selected checkmark, descriptions,
@@ -85320,7 +85281,7 @@ function Select({ options, focusIndex, selectedValue, visibleOptionCount = 5, on
85320
85281
  });
85321
85282
  }
85322
85283
  //#endregion
85323
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
85284
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
85324
85285
  /**
85325
85286
  * Bare `/workspace` action menu: the built-in subcommands (resume / rename /
85326
85287
  * open) plus any dynamically registered workspace extensions. Enter runs the
@@ -85361,7 +85322,7 @@ function WorkspaceMenuPicker({ options, focusIndex, onPick }) {
85361
85322
  });
85362
85323
  }
85363
85324
  //#endregion
85364
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
85325
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
85365
85326
  const WINDOW = 8;
85366
85327
  /** Generic nested choice surface returned by a workspace provider command. */
85367
85328
  function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input = null, onPick }) {
@@ -85419,7 +85380,7 @@ function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input =
85419
85380
  });
85420
85381
  }
85421
85382
  //#endregion
85422
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
85383
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
85423
85384
  /**
85424
85385
  * Working-activity indicator picker in the CC ModelPicker style (ported
85425
85386
  * from the pi extension's `/activity` interactive select): a
@@ -85461,7 +85422,7 @@ function ActivityPicker({ focusIndex, currentPreset, onPick }) {
85461
85422
  });
85462
85423
  }
85463
85424
  //#endregion
85464
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
85425
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
85465
85426
  /**
85466
85427
  * Session accent color picker (bare `/color`): a permission-colored Pane
85467
85428
  * listing the whole palette with a colored swatch per row, `❯` focus
@@ -85505,7 +85466,7 @@ function ColorPicker({ focusIndex, currentColor, onPick }) {
85505
85466
  });
85506
85467
  }
85507
85468
  //#endregion
85508
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
85469
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
85509
85470
  /**
85510
85471
  * Reasoning-effort slider (`/effort`): a rheostat row of the live route's
85511
85472
  * adapter-owned levels in adapter order, ←/→ moving focus (each move applies
@@ -85564,7 +85525,7 @@ function EffortSlider({ options, focusIndex, currentId, onPick }) {
85564
85525
  });
85565
85526
  }
85566
85527
  //#endregion
85567
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
85528
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
85568
85529
  /**
85569
85530
  * Agent-preset picker (issue #8) in the CC ModelPicker style — same chrome
85570
85531
  * as the ActivityPicker: a permission-colored Pane listing every roster
@@ -85608,7 +85569,7 @@ function PresetPicker({ presets, focusIndex, currentPreset, onPick }) {
85608
85569
  });
85609
85570
  }
85610
85571
  //#endregion
85611
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
85572
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
85612
85573
  /**
85613
85574
  * `/permission` sandbox-preset picker. The command itself is registered by
85614
85575
  * the harness side (dsh-sandbox-policy / dsh-base permission-presets row);
@@ -85655,7 +85616,7 @@ function PermissionsPicker({ options, focusIndex, currentValue, cwd, onPick }) {
85655
85616
  });
85656
85617
  }
85657
85618
  //#endregion
85658
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
85619
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
85659
85620
  /**
85660
85621
  * `/plan` on/off picker. The command itself is registered by dsh-plan-mode
85661
85622
  * on the harness side; bare `/plan` opens this picker (with the current
@@ -85700,7 +85661,7 @@ function PlanPicker({ focusIndex, currentOn, onPick }) {
85700
85661
  });
85701
85662
  }
85702
85663
  //#endregion
85703
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
85664
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
85704
85665
  /**
85705
85666
  * `/lang` en/zh picker: bare `/lang` opens this picker (the current language
85706
85667
  * marked) and Enter applies the choice through the same path as `/lang <id>`.
@@ -85739,7 +85700,7 @@ function LangPicker({ focusIndex, currentLang, onPick }) {
85739
85700
  });
85740
85701
  }
85741
85702
  //#endregion
85742
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
85703
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
85743
85704
  /** One double-block swatch character per preview key, in a row. */
85744
85705
  const SWATCH = "██";
85745
85706
  /** Theme keys previewed in the picker, chosen for visual contrast. */
@@ -85825,7 +85786,7 @@ function ThemePicker({ focusIndex, currentTheme, themeHost, onPick }) {
85825
85786
  });
85826
85787
  }
85827
85788
  //#endregion
85828
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
85789
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
85829
85790
  /**
85830
85791
  * The `/thinking` display dialog: a permission-colored Pane with a bold
85831
85792
  * title, the Shown/Hidden select, and the Enter/Esc hint line.
@@ -85874,7 +85835,7 @@ function ThinkingToggle({ currentValue, focusIndex, onPick }) {
85874
85835
  });
85875
85836
  }
85876
85837
  //#endregion
85877
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
85838
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
85878
85839
  /**
85879
85840
  * The ctrl+r history search dialog, in the shape of Claude Code's
85880
85841
  * HistorySearchDialog/FuzzyPicker: a permission-colored Pane with a bold
@@ -85937,7 +85898,7 @@ function formatRelativeAge(ts) {
85937
85898
  return t("time-days-ago", { n: Math.floor(elapsed / 864e5) });
85938
85899
  }
85939
85900
  //#endregion
85940
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
85901
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
85941
85902
  /**
85942
85903
  * Double-Esc rewind picker (CC's "Double-tap esc to rewind the code and/or
85943
85904
  * conversation to a previous point in time"): lists the user's past messages
@@ -86074,7 +86035,7 @@ function preview(text) {
86074
86035
  return flat.length <= 80 ? flat : `${flat.slice(0, 80)}…`;
86075
86036
  }
86076
86037
  //#endregion
86077
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
86038
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
86078
86039
  /**
86079
86040
  * /btw side-question panel (CC's btw.tsx, inline-pane form like the local
86080
86041
  * pickers): title line with the question, a scrollable answer body (error /
@@ -86158,7 +86119,7 @@ function BtwPanel({ question, answer, error, streaming, onClose, onCopy }) {
86158
86119
  });
86159
86120
  }
86160
86121
  //#endregion
86161
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
86122
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
86162
86123
  function ReleaseNotesPanel({ release, onClose }) {
86163
86124
  const scrollRef = import_react.useRef(null);
86164
86125
  const { rows } = useTerminalSize();
@@ -86203,7 +86164,7 @@ function ReleaseNotesPanel({ release, onClose }) {
86203
86164
  });
86204
86165
  }
86205
86166
  //#endregion
86206
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
86167
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
86207
86168
  /**
86208
86169
  * `/recap` panel (pi-recap semantics), in the picker/dialog visual
86209
86170
  * language: a permission-colored Pane with a title bar (会话回顾), a
@@ -86324,7 +86285,7 @@ function RecapPanel({ summary, title, error, streaming, titleApplied, onClose, o
86324
86285
  });
86325
86286
  }
86326
86287
  //#endregion
86327
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
86288
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
86328
86289
  /**
86329
86290
  * 精简 Tips 池 —— 启动首屏轮换(LogoV2)与 `/tips` 命令面板共用。
86330
86291
  *
@@ -87038,7 +86999,7 @@ const TIPS = [
87038
86999
  }
87039
87000
  ];
87040
87001
  //#endregion
87041
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
87002
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
87042
87003
  const GROUP_ORDER = [
87043
87004
  "keys",
87044
87005
  "commands",
@@ -87117,7 +87078,7 @@ function TipsPanel({ onClose }) {
87117
87078
  });
87118
87079
  }
87119
87080
  //#endregion
87120
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
87081
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
87121
87082
  function formatDuration$1(ms) {
87122
87083
  const seconds = Math.floor(ms / 1e3);
87123
87084
  return seconds < 60 ? `${seconds}s` : `${Math.floor(seconds / 60)}m${seconds % 60}s`;
@@ -87172,7 +87133,7 @@ function SubagentCard({ subagent, focused, onClick }) {
87172
87133
  });
87173
87134
  }
87174
87135
  //#endregion
87175
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
87136
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
87176
87137
  /** 可点击 ✕ 退出按钮:整屏/浮层场景的鼠标退出通道(Esc 等价)。 */
87177
87138
  function ExitButton({ onClick }) {
87178
87139
  const [hovered, setHovered] = import_react.useState(false);
@@ -87320,7 +87281,7 @@ function SubagentDashboard({ subagents, onClose, onSelect }) {
87320
87281
  });
87321
87282
  }
87322
87283
  //#endregion
87323
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
87284
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
87324
87285
  function statusInfo(status) {
87325
87286
  const minimal = isMinimalMode();
87326
87287
  switch (status) {
@@ -87608,7 +87569,7 @@ function JobsPanel({ jobs, onClose, onKill }) {
87608
87569
  });
87609
87570
  }
87610
87571
  //#endregion
87611
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
87572
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
87612
87573
  function formatDuration(ms) {
87613
87574
  if (ms < 1e3) return `${ms}ms`;
87614
87575
  if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
@@ -88066,7 +88027,7 @@ function FileActionsPanel({ path, isDir, focusIndex, onPick }) {
88066
88027
  });
88067
88028
  }
88068
88029
  //#endregion
88069
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
88030
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
88070
88031
  function oneLine(text, max = 70) {
88071
88032
  const compact = text.replace(/\s+/gu, " ").trim();
88072
88033
  return compact.length > max ? `${compact.slice(0, max - 1)}…` : compact;
@@ -88158,7 +88119,7 @@ function DiffLoading() {
88158
88119
  });
88159
88120
  }
88160
88121
  //#endregion
88161
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
88122
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
88162
88123
  /** `/copy` argument is a one-based reply age; omission selects the latest. */
88163
88124
  function parseCopyIndex(raw, count) {
88164
88125
  const value = raw.trim();
@@ -88211,7 +88172,7 @@ function gitDiffLines(report, labels) {
88211
88172
  ];
88212
88173
  }
88213
88174
  //#endregion
88214
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
88175
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
88215
88176
  /** Compact duration suitable for a terminal report row. */
88216
88177
  function formatStatsDuration(ms) {
88217
88178
  if (ms < 1e3) return `${Math.round(ms)} ms`;
@@ -88257,7 +88218,7 @@ function parsePresetManagement(input) {
88257
88218
  return { kind: "invalid" };
88258
88219
  }
88259
88220
  //#endregion
88260
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
88221
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
88261
88222
  const ALIASES = {
88262
88223
  map: "inspect",
88263
88224
  fixit: "repair",
@@ -88312,7 +88273,7 @@ function buildWorkflowCommand(name, rawInput = "") {
88312
88273
  };
88313
88274
  }
88314
88275
  //#endregion
88315
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
88276
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
88316
88277
  const EXTERNAL_SCHEME = /^https?:\/\//i;
88317
88278
  /**
88318
88279
  * Classify a clicked link target. Mirrors the previous handleOpenTarget
@@ -88337,7 +88298,7 @@ function classifyOpenTarget(url) {
88337
88298
  return { kind: "rejected" };
88338
88299
  }
88339
88300
  //#endregion
88340
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
88301
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
88341
88302
  /**
88342
88303
  * Subscribe to an external store's version counter at DEFAULT lane.
88343
88304
  *
@@ -88386,7 +88347,7 @@ function useExternalVersion(subscribe, getVersion, enabled = true) {
88386
88347
  return version;
88387
88348
  }
88388
88349
  //#endregion
88389
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
88350
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
88390
88351
  /**
88391
88352
  * The wake — the whole session drawn as one row of glyphs.
88392
88353
  *
@@ -88523,7 +88484,7 @@ function toHex(colour) {
88523
88484
  return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
88524
88485
  }
88525
88486
  //#endregion
88526
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
88487
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
88527
88488
  /**
88528
88489
  * The ledger — one line per event, columns aligned across every row.
88529
88490
  *
@@ -88769,7 +88730,7 @@ function Ledger({ rows, start, height, cursor, width, tick, arrivalTick, arrival
88769
88730
  });
88770
88731
  }
88771
88732
  //#endregion
88772
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
88733
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
88773
88734
  /**
88774
88735
  * The inspector — full detail for the focused row, in a fixed-height slot.
88775
88736
  *
@@ -88875,7 +88836,7 @@ function Inspector({ node, detail, height, width, expanded, scroll }) {
88875
88836
  });
88876
88837
  }
88877
88838
  //#endregion
88878
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
88839
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
88879
88840
  /**
88880
88841
  * The hotspot view — the session ranked by cost instead of ordered by time.
88881
88842
  *
@@ -89038,7 +88999,7 @@ function HotspotView({ agg, sort, width, height, cursor, tick, switchTick, onRow
89038
88999
  });
89039
89000
  }
89040
89001
  //#endregion
89041
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
89002
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
89042
89003
  /**
89043
89004
  * Trajectory query — whole-session structured filtering.
89044
89005
  *
@@ -89234,7 +89195,7 @@ function applyQuery(nodes, query) {
89234
89195
  };
89235
89196
  }
89236
89197
  //#endregion
89237
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
89198
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
89238
89199
  /**
89239
89200
  * The trajectory scene — the session's own screen.
89240
89201
  *
@@ -89722,7 +89683,7 @@ function TrajectoryScene({ channel, build, onClose }) {
89722
89683
  });
89723
89684
  }
89724
89685
  //#endregion
89725
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
89686
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
89726
89687
  /** Build the non-empty pages shown by the loaded-context inspector. */
89727
89688
  function contextPages(context) {
89728
89689
  const pages = [];
@@ -89906,7 +89867,7 @@ function LoadedContextScene({ context, onClose }) {
89906
89867
  });
89907
89868
  }
89908
89869
  //#endregion
89909
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
89870
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
89910
89871
  /** Rows the layout cannot do without: header, model/cwd line, dispatch
89911
89872
  * input, hints. */
89912
89873
  const MANDATORY_LINES = 4;
@@ -90051,6 +90012,11 @@ function AgentView({ channel, home, approval, onApprove, returnSessionId, onClos
90051
90012
  const getRows = import_react.useCallback(() => channel.agentViewRows(), [channel]);
90052
90013
  const subscribe = import_react.useCallback((listener) => channel.subscribeAgentView(listener), [channel]);
90053
90014
  const agentRows = import_react.useSyncExternalStore(subscribe, getRows);
90015
+ import_react.useEffect(() => {
90016
+ channel.listSessions().catch((error) => {
90017
+ logForDebugging(`agent view: history load failed: ${error instanceof Error ? error.message : String(error)}`);
90018
+ });
90019
+ }, [channel]);
90054
90020
  const [focusId, setFocusId] = import_react.useState(void 0);
90055
90021
  const [mode, setMode] = import_react.useState("list");
90056
90022
  const [renameText, setRenameText] = import_react.useState("");
@@ -90510,7 +90476,7 @@ function AgentView({ channel, home, approval, onApprove, returnSessionId, onClos
90510
90476
  });
90511
90477
  }
90512
90478
  //#endregion
90513
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
90479
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
90514
90480
  /**
90515
90481
  * Persisted "the user has seen the trajectory" flag, at
90516
90482
  * `~/.chatcode-cli/tui/trajectory.json`.
@@ -90570,7 +90536,7 @@ function writeTrajectorySeen(dir = DATA_DIR) {
90570
90536
  }
90571
90537
  }
90572
90538
  //#endregion
90573
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
90539
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
90574
90540
  const NO_OVERLAY = { kind: "none" };
90575
90541
  /**
90576
90542
  * One-step wrap-around cursor move — the single source of the wrapping rule
@@ -90680,7 +90646,7 @@ function dialogOverlayVisible(overlay, gates) {
90680
90646
  }
90681
90647
  }
90682
90648
  //#endregion
90683
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
90649
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
90684
90650
  const LOGOUT_EXIT_DELAY_MS = 200;
90685
90651
  /** Shared empty snapshot for hosts whose channel has no event log. */
90686
90652
  const NO_EVENTS = [];
@@ -94491,7 +94457,7 @@ function ModelPickerLoading() {
94491
94457
  });
94492
94458
  }
94493
94459
  //#endregion
94494
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
94460
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
94495
94461
  const MAIN_CLI_PACKAGE = "@chatcode/chatcode-cli";
94496
94462
  function asError(value) {
94497
94463
  return value instanceof Error ? value : new Error(String(value));
@@ -94647,7 +94613,7 @@ function launchWebFrontend(cwd, options = {}) {
94647
94613
  }
94648
94614
  }
94649
94615
  //#endregion
94650
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
94616
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
94651
94617
  /**
94652
94618
  * External injection channel — lets an out-of-process editor integration
94653
94619
  * (e.g. the `dsh.nvim` Neovim plugin) push text into the running TUI's
@@ -94842,7 +94808,7 @@ function openInjectChannel(sessionId, cwd, handlers, onError) {
94842
94808
  };
94843
94809
  }
94844
94810
  //#endregion
94845
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
94811
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
94846
94812
  const CHATCODE_CLI_OAUTH_TOKEN = "CHATCODE_CLI_OAUTH_TOKEN";
94847
94813
  const DEFAULT_SERVICE_WAIT_MS = 75e3;
94848
94814
  function authService(ctx) {
@@ -95016,7 +94982,7 @@ async function requireChatCodeStartupLogin(ctx, options) {
95016
94982
  return "ready";
95017
94983
  }
95018
94984
  //#endregion
95019
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
94985
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
95020
94986
  /** Bind authenticated statistics requests to one TUI lifetime. */
95021
94987
  function createChatCodeAuthorizedPost(ctx) {
95022
94988
  const lifetime = new AbortController();
@@ -95055,7 +95021,7 @@ function createChatCodeAuthorizedPost(ctx) {
95055
95021
  };
95056
95022
  }
95057
95023
  //#endregion
95058
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
95024
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
95059
95025
  /**
95060
95026
  * Interactive TUI front door for ChatCode CLI agents.
95061
95027
  *
@@ -95262,13 +95228,18 @@ async function apply(ctx, config) {
95262
95228
  const llmCatalog = resolveLlmCatalog();
95263
95229
  const expectsChatCode = chatCodeAuthExpected(ctx);
95264
95230
  const tokenBackedChatCode = chatCodeEnvironmentTokenActive(ctx);
95265
- const tokenCodingPlanRoute = tokenBackedChatCode ? await waitForModelRouteForProvider(resolveLlmCatalog, CHATCODE_CODING_PLAN_PROVIDER) : void 0;
95266
- const advertisedFallback = tokenBackedChatCode ? tokenCodingPlanRoute : expectsChatCode ? await waitForFirstAvailableModelRoute(resolveLlmCatalog) : await firstAvailableModelRoute(llmCatalog);
95231
+ const { tokenCodingPlanRoute, advertisedFallback } = await traceTuiStartup("model-catalog", async () => {
95232
+ const tokenCodingPlanRoute = tokenBackedChatCode ? await waitForModelRouteForProvider(resolveLlmCatalog, CHATCODE_CODING_PLAN_PROVIDER) : void 0;
95233
+ return {
95234
+ tokenCodingPlanRoute,
95235
+ advertisedFallback: tokenBackedChatCode ? tokenCodingPlanRoute : expectsChatCode ? await waitForFirstAvailableModelRoute(resolveLlmCatalog) : await firstAvailableModelRoute(llmCatalog)
95236
+ };
95237
+ });
95267
95238
  const noStartupModel = advertisedFallback === void 0 && (expectsChatCode || tokenBackedChatCode);
95268
95239
  const availableFallback = noStartupModel ? UNCONFIGURED_MODEL_ROUTE : advertisedFallback;
95269
95240
  const sharedModels = ctx.get("agentDefaultModel");
95270
95241
  const processModelSelection = sharedModels?.usesSharedPreference?.() === true;
95271
- const startupRoute = processModelSelection && sharedModels?.resolveSelection !== void 0 ? await sharedModels.resolveSelection() : resolveStartupModelRoute(configuredRoute, readModelPref(), noStartupModel ? UNCONFIGURED_MODEL_ROUTE : harnessDefault ?? availableFallback, tokenCodingPlanRoute);
95242
+ const startupRoute = await traceTuiStartup("model-selection", () => processModelSelection && sharedModels?.resolveSelection !== void 0 ? sharedModels.resolveSelection() : resolveStartupModelRoute(configuredRoute, readModelPref(), noStartupModel ? UNCONFIGURED_MODEL_ROUTE : harnessDefault ?? availableFallback, tokenCodingPlanRoute));
95272
95243
  const requestedWorkspace = config.workspace ?? readTuiEnv("WORKSPACE_TARGET");
95273
95244
  const mountedWorkspaceService = getHostWorkspaceRuntime(ctx.get("tuiWorkspaces"));
95274
95245
  if (mountedWorkspaceService === void 0 && resolveDshProfileName() !== void 0) ctx.logger.warn("ChatCode CLI TUI: tuiWorkspaces service is not mounted; /workspace runs with the local-only fallback. The bundle patch is older than the installed TUI package — update the globally installed ChatCode CLI package to match the profile (issue #183).");
@@ -95277,21 +95248,22 @@ async function apply(ctx, config) {
95277
95248
  const themeHost = getHostThemes(ctx.get("tuiThemes"));
95278
95249
  if ((ctx.get("tuiDialogs") === void 0 || themeHost === void 0) && resolveDshProfileName() !== void 0) ctx.logger.warn("ChatCode CLI TUI: tuiDialogs/tuiStatus/tuiShortcuts/tuiRenderers/tuiThemes services are not mounted; plugin dialogs, status contributions, shortcuts, custom-entry renderers and runtime themes are off. Static ~/.chatcode-cli/tui/themes JSON remains available. The bundle patch is older than the installed TUI package — update the globally installed ChatCode CLI package to match the profile (issue #183).");
95279
95250
  if (ctx.get("tuiPluginHost") === void 0 && resolveDshProfileName() !== void 0) ctx.logger.warn("ChatCode CLI TUI: tuiPluginHost service is not mounted; plugin grant store, runtime generation and Host Descriptor are unavailable. The bundle patch is older than the installed TUI package — update the globally installed ChatCode CLI package to match the profile (issue #183).");
95280
- const initialWorkspace = requestedWorkspace === void 0 ? void 0 : await workspaceService.resolve(requestedWorkspace);
95251
+ const initialWorkspace = await traceTuiStartup("workspace-resolution", async () => requestedWorkspace === void 0 ? void 0 : await workspaceService.resolve(requestedWorkspace));
95281
95252
  if (requestedWorkspace !== void 0 && initialWorkspace === void 0) throw new Error(`ChatCode CLI TUI: unsupported or unavailable workspace target: ${requestedWorkspace}`);
95282
95253
  const sessionCwd = initialWorkspace?.cwd ?? resolveSessionCwd(config.cwd);
95283
95254
  const meta = { cwd: sessionCwd };
95284
95255
  const cmdline = ctx.cmdlineArgs;
95285
95256
  const cmdlineArgs = cmdline?.get?.() ?? cmdline?.args;
95286
- const { agent, handle, agentPreset, route: createdRoute } = await resolveAgent(ctx, config.sessionId ?? await resolveStartupSessionId(ctx.get("sessionPersistence"), cmdlineArgs ?? process.argv.slice(2), sessionCwd), processModelSelection ? startupRoute : configuredRoute, startupRoute, processModelSelection ? UNCONFIGURED_MODEL_ROUTE : availableFallback, meta, config.preset, processModelSelection);
95257
+ const launchSessionId = config.sessionId ?? await traceTuiStartup("resume-selection", () => resolveStartupSessionId(ctx.get("sessionPersistence"), cmdlineArgs ?? process.argv.slice(2), sessionCwd));
95258
+ const { agent, handle, agentPreset, route: createdRoute } = await traceTuiStartup("agent-resolution", () => resolveAgent(ctx, launchSessionId, processModelSelection ? startupRoute : configuredRoute, startupRoute, processModelSelection ? UNCONFIGURED_MODEL_ROUTE : availableFallback, meta, config.preset, processModelSelection));
95287
95259
  try {
95288
- if (!await attachSessionToWorkspace(ctx, agent.session.header.cwd ?? meta.cwd, agent.session.id)) ctx.logger.warn(`ChatCode CLI TUI: session "${agent.session.id}" has no workspace ownership because workspaceRegistry is not mounted`);
95260
+ if (!await traceTuiStartup("workspace-attach", () => attachSessionToWorkspace(ctx, agent.session.header.cwd ?? meta.cwd, agent.session.id))) ctx.logger.warn(`ChatCode CLI TUI: session "${agent.session.id}" has no workspace ownership because workspaceRegistry is not mounted`);
95289
95261
  } catch (error) {
95290
95262
  ctx.logger.warn(`ChatCode CLI TUI: session "${agent.session.id}" workspace attachment failed: ${error instanceof Error ? error.message : String(error)}`);
95291
95263
  }
95292
95264
  const displayRoute = createdRoute ?? startupRoute;
95293
- const displayModelName = explicitModelRoute(displayRoute) === void 0 ? void 0 : await resolveLlmCatalog()?.listModels(displayRoute.provider).then((list) => list.find((model) => model.id === displayRoute.model)?.name).catch(() => void 0);
95294
- const channel = createChannel(ctx, agent, {
95265
+ const displayModelName = await traceTuiStartup("model-display", () => explicitModelRoute(displayRoute) === void 0 ? void 0 : resolveLlmCatalog()?.listModels(displayRoute.provider).then((list) => list.find((model) => model.id === displayRoute.model)?.name).catch(() => void 0));
95266
+ const channel = await traceTuiStartup("channel", () => createChannel(ctx, agent, {
95295
95267
  model: displayRoute.model,
95296
95268
  modelName: displayModelName,
95297
95269
  cwd: agent.session.header.cwd ?? sessionCwd,
@@ -95318,7 +95290,7 @@ async function apply(ctx, config) {
95318
95290
  smoothStreaming: config.smoothStreaming,
95319
95291
  statusBar: config.statusBar,
95320
95292
  handle
95321
- });
95293
+ }));
95322
95294
  applyPageMargin(config.pageMargin);
95323
95295
  getHostToastStore(ctx.get("tuiToast"))?.setSink((delivery) => {
95324
95296
  channel.notify(delivery.text, {
@@ -95336,35 +95308,35 @@ async function apply(ctx, config) {
95336
95308
  });
95337
95309
  ctx.inject(["settings"], (settingsCtx) => {
95338
95310
  const tuiSettingsNs = "dsh-tui";
95339
- const scope = displaySettingsScope(ctx, settingsCtx, tuiSettingsNs, z.object({
95340
- diffLayout: z.union([
95311
+ const scope = displaySettingsScope(ctx, settingsCtx, tuiSettingsNs, Schema.object({
95312
+ diffLayout: Schema.union([
95341
95313
  "auto",
95342
95314
  "split",
95343
95315
  "unified"
95344
95316
  ]).default("auto"),
95345
- thinkingFold: z.union(["preview", "full"]).default("preview"),
95346
- toolBackground: z.union([
95317
+ thinkingFold: Schema.union(["preview", "full"]).default("preview"),
95318
+ toolBackground: Schema.union([
95347
95319
  "none",
95348
95320
  "subtle",
95349
95321
  "strong"
95350
95322
  ]).default("none"),
95351
- scrollGutter: z.union([
95323
+ scrollGutter: Schema.union([
95352
95324
  "timeline",
95353
95325
  "scrollbar",
95354
95326
  "hidden"
95355
95327
  ]).default("timeline"),
95356
- pageMargin: z.transform(z.string().default("normal"), (value) => normalizePageMargin(value)),
95357
- foldTerminalCommand: z.boolean(),
95358
- promptSessionLabel: z.boolean().default(false),
95359
- expandEditor: z.boolean(),
95360
- smoothStreaming: z.boolean(),
95328
+ pageMargin: Schema.transform(Schema.string().default("normal"), (value) => normalizePageMargin(value)),
95329
+ foldTerminalCommand: Schema.boolean(),
95330
+ promptSessionLabel: Schema.boolean().default(false),
95331
+ expandEditor: Schema.boolean(),
95332
+ smoothStreaming: Schema.boolean(),
95361
95333
  statusBar: createStatusBarSchema(),
95362
- whale: z.boolean().default(true),
95363
- recapOnOpen: z.boolean().default(true),
95364
- minimal: z.boolean().default(false),
95365
- lang: z.union(["zh", "en"]),
95366
- fullscreen: z.boolean(),
95367
- shortcuts: z.object(Object.fromEntries(SHORTCUT_ACTIONS.map((action) => [action.id, z.string().required(false)]))).required(false)
95334
+ whale: Schema.boolean().default(true),
95335
+ recapOnOpen: Schema.boolean().default(true),
95336
+ minimal: Schema.boolean().default(false),
95337
+ lang: Schema.union(["zh", "en"]),
95338
+ fullscreen: Schema.boolean(),
95339
+ shortcuts: Schema.object(Object.fromEntries(SHORTCUT_ACTIONS.map((action) => [action.id, Schema.string().required(false)]))).required(false)
95368
95340
  }), config);
95369
95341
  const applyLayout = (value) => {
95370
95342
  channel.setDiffLayout(value.diffLayout ?? config.diffLayout ?? "auto");
@@ -95882,7 +95854,7 @@ async function apply(ctx, config) {
95882
95854
  webLaunches.clear();
95883
95855
  });
95884
95856
  const injectControllerRef = import_react.createRef();
95885
- await settingsReady;
95857
+ await traceTuiStartup("settings", () => settingsReady);
95886
95858
  const chat = import_react.createElement(Chat, {
95887
95859
  channel,
95888
95860
  questionStore,
@@ -95968,10 +95940,11 @@ async function apply(ctx, config) {
95968
95940
  if (bootedFullscreen === false && lastBootedFullscreen === true) bootedFullscreen = true;
95969
95941
  fullscreenFrozen = true;
95970
95942
  const marginChildren = bootedFullscreen ? import_react.createElement(AlternateScreen, null, import_react.createElement(PageMargin, null, chat)) : import_react.createElement(PageMargin, null, chat);
95971
- instance = await wrappedRender(import_react.createElement(ThemeProvider, {
95943
+ const tree = import_react.createElement(ThemeProvider, {
95972
95944
  themeHost,
95973
95945
  children: import_react.createElement(ChatCodeApiContext.Provider, { value: createChatCodeAuthorizedPost(ctx) }, marginChildren)
95974
- }), { exitOnCtrlC: false });
95946
+ });
95947
+ instance = await traceTuiStartup("render", () => wrappedRender(tree, { exitOnCtrlC: false }));
95975
95948
  if (noStartupModel) channel.notify(t("model-startup-none"), {
95976
95949
  color: "warning",
95977
95950
  timeoutMs: 8e3
@@ -96067,11 +96040,12 @@ async function resolveAgent(ctx, requestedSessionId, configuredRoute, startupRou
96067
96040
  }
96068
96041
  const sessionId = SessionId(randomUUID());
96069
96042
  const presetPref = configuredPreset === void 0 ? readPresetPref() : void 0;
96070
- const composed = await composePreset(ctx, configuredPreset ?? presetPref);
96043
+ const composed = await traceTuiStartup("preset-resolution", () => composePreset(ctx, configuredPreset ?? presetPref));
96071
96044
  if (!migratePresetPref(presetPref, composed.agentPreset)) ctx.logger.warn(`ChatCode CLI TUI: resolved preset preference "${presetPref}" as "${composed.agentPreset}" but could not persist the migrated id`);
96072
- const { route, rejected } = await validateModelRoute(ctx.get("llm"), startupRoute, availableFallback);
96045
+ const llm = ctx.get("llm");
96046
+ const { route, rejected } = await traceTuiStartup("model-validation", () => validateModelRoute(llm, startupRoute, availableFallback));
96073
96047
  if (rejected !== void 0) ctx.logger.warn(`ChatCode CLI TUI: model route ${rejected.provider}/${rejected.model} is not advertised by provider "${rejected.provider}"; falling back to ${route.provider}/${route.model}`);
96074
- const created = await ctx.agents.create({
96048
+ const created = await traceTuiStartup("agent-create", () => ctx.agents.create({
96075
96049
  sessionId,
96076
96050
  meta: {
96077
96051
  ...meta,
@@ -96079,7 +96053,7 @@ async function resolveAgent(ctx, requestedSessionId, configuredRoute, startupRou
96079
96053
  },
96080
96054
  agentOptions: route,
96081
96055
  ...composed.setup === void 0 ? {} : { setup: composed.setup }
96082
- }).catch((error) => {
96056
+ })).catch((error) => {
96083
96057
  const message = error instanceof Error ? error.message : String(error);
96084
96058
  throw new Error(`ChatCode CLI TUI: failed to create agent (provider=${route.provider}, model=${route.model}): ${message}`);
96085
96059
  });