@chatcode/chatcode-cli 3.0.4 → 3.0.5-rc.1
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.
- package/README.i18n.yaml +6 -6
- package/README.md +10 -4
- package/README.zh.md +10 -4
- package/lib/bin.js +23 -9
- package/lib/{command-errors-Ca64Lgba.js → command-errors-CsRCh0gk.js} +12 -12
- package/lib/{command-trees-CVc4Xu_z.js → command-trees-CD_43rxX.js} +2 -2
- package/lib/{component-identity-6aEut5Yt.js → component-identity-DGA2-TeB.js} +3 -3
- package/lib/{dump-config-ZzrfvtnX.js → dump-config-D8kXfdTs.js} +1 -1
- package/lib/dump-config-DuCc-QB7.js +2 -0
- package/lib/{dump-config-schema-BlO-eZ-J.js → dump-config-schema-CtZbroi6.js} +2 -2
- package/lib/{extension-events-C7MUpqVE.js → extension-events-D0BjYRqT.js} +21 -21
- package/lib/{host-access-CLbyAGT5.js → host-access-DLJjuR07.js} +1 -1
- package/lib/{keymap-82JwLLHe.js → keymap-C4cs2IBN.js} +2 -2
- package/lib/{plugin-BlQlWIR5.js → plugin-CGtTByud.js} +801 -456
- package/lib/{plugin-BZdazFXS.js → plugin-CYw-MBRn.js} +1 -1
- package/lib/{profile-boot-B0aEEQIR.js → profile-boot-CffsubnV.js} +7 -7
- package/lib/profile-boot.js +1 -1
- package/lib/{scenes-BNS0ZFyQ.js → scenes-CbAGK5Uy.js} +3 -3
- package/lib/{settings-sections-CXH24cu5.js → settings-sections-DYKDa04e.js} +3 -3
- package/lib/{statusBarSettings-BAMzn8fX.js → statusBarSettings-T1m8xad4.js} +3 -3
- package/lib/{themes-DXUIvP7m.js → themes-BY2ui1Dv.js} +12 -12
- package/lib/tui-compat-command-trees.js +1 -1
- package/lib/tui-compat-extensions.js +3 -3
- package/lib/tui-compat-plugin-host.js +5 -5
- package/lib/tui-compat-scenes.js +1 -1
- package/lib/tui-compat-settings-sections.js +1 -1
- package/lib/tui-compat-working-activity.js +1 -1
- package/lib/tui-compat-workspaces.js +1 -1
- package/lib/tui-compat.js +7 -7
- package/lib/types/bin.d.ts +9 -0
- package/lib/types/tui-compat.d.ts +1 -1
- package/lib/types/web-instance-process.d.ts +20 -0
- package/lib/{web-instance-DbP7IHPv.js → web-instance-D_Ppi2Zo.js} +176 -14
- package/lib/{web-instance-B0jec7cq.js → web-instance-amvCJWnq.js} +1 -1
- package/lib/{workspaces-CUJXNU5W.js → workspaces-D5VKbESy.js} +2 -2
- package/package.json +23 -24
- package/runtime/manifest.json +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +7 -3
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/client.js +11 -3
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/contract/snapshot.d.ts +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.js +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/session.js +10 -3
- package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +32 -11
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/index.js +62 -11
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/darwin-lock.d.ts +7 -0
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/index.d.ts +7 -2
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/linux-lock.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +7 -7
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +62 -62
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-approval/lib/client.js +10 -10
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js +49 -49
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +204 -204
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +16 -16
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +159 -157
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/types/client/service.d.ts +4 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +74 -74
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +129 -123
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/index.js +19 -14
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/changes.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/Deliverables.d.ts +1 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/locales.d.ts +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/present-open.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +2 -4
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +39 -39
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +16 -16
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +23 -23
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +37 -37
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +9 -9
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +12 -12
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +119 -32
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/catalog.d.ts +13 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/effort-preferences.d.ts +20 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/slots.d.ts +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-open-in-app/lib/client.js +8 -8
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +18 -18
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +22 -22
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/lib/client.js +128 -128
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-schedule/lib/client.js +182 -182
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +130 -130
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +50 -50
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +88 -88
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +36 -36
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +13 -13
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-subagent/lib/client.js +27 -27
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-shortcuts/lib/client.js +42 -42
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +44 -44
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/lib/client.js +25 -25
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.excel.js +9 -9
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.js +70 -70
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.pdf.js +9 -9
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-files/lib/client.js +18 -18
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/lib/client.js +26 -26
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.js +16 -16
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.terminal.js +11 -11
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +20 -20
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +37 -37
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +27 -27
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +95 -95
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +197 -197
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +49 -49
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +24 -24
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +656 -152
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +9 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +46 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/DeleteSession.d.ts +9 -10
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/deletion.d.ts +57 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/lib/client.js +32 -32
- package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-voice-input/lib/client.js +24 -24
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/index.js +899 -453
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/adapter.d.ts +4 -20
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/adapter.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/serialize.d.ts +10 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/sse.d.ts +24 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/translate.d.ts +37 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/types.d.ts +159 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/file-store.d.ts +3 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/files-api.d.ts +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/index.d.ts +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol-adapter.d.ts +41 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol.d.ts +35 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/transport.d.ts +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/types.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-mcp-client/lib/index.js +5 -4
- package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +4 -4
- package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/index.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/index.js +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +12 -10
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/index.js +208 -39
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.d.ts +47 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.js +129 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.js +31 -8
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.d.ts +7 -2
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.js +35 -19
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/types.d.ts +11 -10
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/package.json +1 -0
- package/scripts/link-embedded-runtime.mjs +1 -1
- package/lib/dump-config-CDixiJNt.js +0 -2
- package/lib/{home-migration-BjDmRwBB.js → home-migration-lRjtl2fP.js} +1 -1
- package/lib/{startup-diagnostics-C_hRCp-q.js → startup-diagnostics-4mLHYTFc.js} +1 -1
|
@@ -1,22 +1,22 @@
|
|
|
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-
|
|
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-
|
|
4
|
-
import { c as withHostRootCapability } from "./host-access-
|
|
5
|
-
import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-
|
|
6
|
-
import { n as getHostCommandTrees } from "./command-trees-
|
|
7
|
-
import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-
|
|
8
|
-
import { n as getHostSceneRuntime } from "./scenes-
|
|
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-
|
|
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-
|
|
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-
|
|
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-T1m8xad4.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-C4cs2IBN.js";
|
|
4
|
+
import { c as withHostRootCapability } from "./host-access-DLJjuR07.js";
|
|
5
|
+
import { i as getHostWorkspaceRuntime, r as createLocalWorkspaceRuntime } from "./workspaces-D5VKbESy.js";
|
|
6
|
+
import { n as getHostCommandTrees } from "./command-trees-CD_43rxX.js";
|
|
7
|
+
import { a as isReservedCredentialRef, n as getHostSettingsSections, r as getLocalSettingsSectionsHost } from "./settings-sections-DYKDa04e.js";
|
|
8
|
+
import { n as getHostSceneRuntime } from "./scenes-CbAGK5Uy.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-D0BjYRqT.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-CsRCh0gk.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-BY2ui1Dv.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";
|
|
15
15
|
import { appendFileSync, chmodSync, closeSync, constants, copyFileSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
16
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
16
17
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
17
18
|
import os, { homedir, tmpdir } from "node:os";
|
|
18
19
|
import { basename, delimiter, dirname, extname, isAbsolute, join, resolve, sep, win32 } from "node:path";
|
|
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
21
|
import Schema from "@deepseek-ai/schemastery";
|
|
22
22
|
import { createServer } from "node:net";
|
|
@@ -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.
|
|
1201
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_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.
|
|
1271
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_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.
|
|
1384
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_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.
|
|
1395
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_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.
|
|
1538
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_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.
|
|
1579
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_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.
|
|
1598
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_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`).
|
|
@@ -2591,6 +2591,18 @@ const dict = {
|
|
|
2591
2591
|
zh: "导出失败(无法写入工作目录)",
|
|
2592
2592
|
en: "Export failed (cannot write to working directory)"
|
|
2593
2593
|
},
|
|
2594
|
+
"export-usage": {
|
|
2595
|
+
zh: "用法:/export [jsonl|markdown](默认 JSONL,可重新导入)",
|
|
2596
|
+
en: "Usage: /export [jsonl|markdown] (default: re-importable JSONL)"
|
|
2597
|
+
},
|
|
2598
|
+
"export-import-hint": {
|
|
2599
|
+
zh: "导入命令(需要会话导入插件):/import cco {{target}}",
|
|
2600
|
+
en: "Import command (requires the chat import plugin): /import cco {{target}}"
|
|
2601
|
+
},
|
|
2602
|
+
"import-running": {
|
|
2603
|
+
zh: "正在导入会话,请稍候…",
|
|
2604
|
+
en: "Importing sessions, please wait…"
|
|
2605
|
+
},
|
|
2594
2606
|
"export-saved": {
|
|
2595
2607
|
zh: "已导出: {{target}}(文件位于当前工作区,若工作区在同步/共享目录请注意清理)",
|
|
2596
2608
|
en: "Exported: {{target}} (the file lives in the current workspace — clean it up promptly if the workspace is synced or shared)"
|
|
@@ -2688,8 +2700,8 @@ const dict = {
|
|
|
2688
2700
|
en: "Checking ChatCode availability…"
|
|
2689
2701
|
},
|
|
2690
2702
|
"startup-gate-service-missing": {
|
|
2691
|
-
zh: "ChatCode 启动检查服务未能启动;请重新构建
|
|
2692
|
-
en: "The ChatCode startup check service did not start; rebuild
|
|
2703
|
+
zh: "ChatCode 启动检查服务未能启动;请重新构建 cco-llm-chatcode-config。",
|
|
2704
|
+
en: "The ChatCode startup check service did not start; rebuild cco-llm-chatcode-config."
|
|
2693
2705
|
},
|
|
2694
2706
|
"startup-gate-check-failed": {
|
|
2695
2707
|
zh: "无法执行 ChatCode 启动检查;请检查 CVP 地址和启动配置凭证。",
|
|
@@ -2724,8 +2736,8 @@ const dict = {
|
|
|
2724
2736
|
en: "The previous ChatCode sign-in is unfinished; reopening the sign-in page…"
|
|
2725
2737
|
},
|
|
2726
2738
|
"login-gate-service-missing": {
|
|
2727
|
-
zh: "已配置 ChatCode 登录 bundle,但鉴权服务未能启动。请重新构建
|
|
2728
|
-
en: "The ChatCode sign-in bundle is configured, but its auth service did not start. Rebuild
|
|
2739
|
+
zh: "已配置 ChatCode 登录 bundle,但鉴权服务未能启动。请重新构建 cco-llm-chatcode-config 后重试。",
|
|
2740
|
+
en: "The ChatCode sign-in bundle is configured, but its auth service did not start. Rebuild cco-llm-chatcode-config and try again."
|
|
2729
2741
|
},
|
|
2730
2742
|
"login-gate-status-failed": {
|
|
2731
2743
|
zh: "无法读取 ChatCode 登录状态;请检查 ~/.chatcode-cli 凭据文件权限。",
|
|
@@ -3176,7 +3188,7 @@ const dict = {
|
|
|
3176
3188
|
en: "{{usage}} · {{percent}}% of context"
|
|
3177
3189
|
},
|
|
3178
3190
|
"token-dashboard-today": {
|
|
3179
|
-
zh: "今日总
|
|
3191
|
+
zh: "今日总Token消耗",
|
|
3180
3192
|
en: "Total tokens today"
|
|
3181
3193
|
},
|
|
3182
3194
|
"token-dashboard-context": {
|
|
@@ -3667,6 +3679,14 @@ const dict = {
|
|
|
3667
3679
|
zh: "已恢复会话",
|
|
3668
3680
|
en: "Session resumed"
|
|
3669
3681
|
},
|
|
3682
|
+
"resume-delete-confirm": {
|
|
3683
|
+
zh: "永久删除 {{n}} 条记录(含子代理):「{{name}}」?无法撤销。",
|
|
3684
|
+
en: "Permanently delete {{n}} records: \"{{name}}\"? Cannot undo."
|
|
3685
|
+
},
|
|
3686
|
+
"resume-deleted": {
|
|
3687
|
+
zh: "已删除会话「{{name}}」",
|
|
3688
|
+
en: "Deleted session {{name}}"
|
|
3689
|
+
},
|
|
3670
3690
|
"resume-archived": {
|
|
3671
3691
|
zh: "已归档会话「{{name}}」",
|
|
3672
3692
|
en: "Archived session {{name}}"
|
|
@@ -3679,6 +3699,10 @@ const dict = {
|
|
|
3679
3699
|
zh: "无法归档会话「{{name}}」",
|
|
3680
3700
|
en: "Could not archive session {{name}}"
|
|
3681
3701
|
},
|
|
3702
|
+
"resume-delete-failed": {
|
|
3703
|
+
zh: "无法删除会话「{{name}}」",
|
|
3704
|
+
en: "Could not delete session {{name}}"
|
|
3705
|
+
},
|
|
3682
3706
|
"resume-rename-placeholder": {
|
|
3683
3707
|
zh: "新的会话名称…",
|
|
3684
3708
|
en: "New session name…"
|
|
@@ -3704,13 +3728,25 @@ const dict = {
|
|
|
3704
3728
|
en: "Restore"
|
|
3705
3729
|
},
|
|
3706
3730
|
"resume-hint-archived-list": {
|
|
3707
|
-
zh: "**Enter** 恢复 · {{mod}}
|
|
3708
|
-
en: "**Enter** restore · {{mod}}
|
|
3731
|
+
zh: "**Enter** 恢复 · {{mod}}d 永久删除 · {{mod}}e 返回",
|
|
3732
|
+
en: "**Enter** restore · {{mod}}d delete permanently · {{mod}}e back"
|
|
3733
|
+
},
|
|
3734
|
+
"resume-hint-archived-short": {
|
|
3735
|
+
zh: "**Enter** 恢复 · {{mod}}e 返回",
|
|
3736
|
+
en: "**Enter** restore · {{mod}}e back"
|
|
3737
|
+
},
|
|
3738
|
+
"resume-hint-permanent-delete": {
|
|
3739
|
+
zh: "**Tab / ← →** 选择 · **Enter** 确认 · Esc 取消",
|
|
3740
|
+
en: "**Tab / ← →** choose · **Enter** confirm · Esc cancel"
|
|
3709
3741
|
},
|
|
3710
3742
|
"resume-hint-archive": {
|
|
3711
3743
|
zh: "**Enter** 归档 · Esc 取消",
|
|
3712
3744
|
en: "**Enter** archive · Esc cancel"
|
|
3713
3745
|
},
|
|
3746
|
+
"resume-delete-unavailable": {
|
|
3747
|
+
zh: "共享会话删除服务不可用,请更新主程序",
|
|
3748
|
+
en: "Shared session deletion is unavailable; update the Host"
|
|
3749
|
+
},
|
|
3714
3750
|
"resume-restored": {
|
|
3715
3751
|
zh: "已恢复会话「{{name}}」",
|
|
3716
3752
|
en: "Restored session {{name}}"
|
|
@@ -6181,7 +6217,7 @@ const dict = {
|
|
|
6181
6217
|
"cmd-desc-tree": { zh: "浏览会话分叉树(回退/分叉/切分支)" },
|
|
6182
6218
|
"cmd-desc-fork": { zh: "把当前会话分叉为可恢复副本" },
|
|
6183
6219
|
"cmd-desc-branch": { zh: "分叉当前会话,并可指定副本标题" },
|
|
6184
|
-
"cmd-desc-export": { zh: "
|
|
6220
|
+
"cmd-desc-export": { zh: "导出可重新导入的 JSONL 会话(或 Markdown)" },
|
|
6185
6221
|
"cmd-desc-copy": { zh: "复制最近的助手回复或其中的代码块" },
|
|
6186
6222
|
"cmd-desc-context": { zh: "查看已加载的上下文明细" },
|
|
6187
6223
|
"cmd-desc-files": { zh: "列出已加载到会话上下文的指令文件" },
|
|
@@ -6508,7 +6544,7 @@ function resolveStartupLang(dir = PREFS_DIR$6, env = process.env) {
|
|
|
6508
6544
|
return readLangPref(dir) ?? "zh";
|
|
6509
6545
|
}
|
|
6510
6546
|
//#endregion
|
|
6511
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
6547
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/commands.js
|
|
6512
6548
|
/**
|
|
6513
6549
|
* Local slash commands for the dsh-tui TUI. Claude Code's command system is
|
|
6514
6550
|
* deeply wired into its engine; dsh-tui ships a small built-in set with the
|
|
@@ -6573,7 +6609,17 @@ const LOCAL_COMMANDS = [
|
|
|
6573
6609
|
},
|
|
6574
6610
|
{
|
|
6575
6611
|
name: "export",
|
|
6576
|
-
description: "Export
|
|
6612
|
+
description: "Export a re-importable JSONL session (or Markdown)",
|
|
6613
|
+
argumentSuggestions: [{
|
|
6614
|
+
name: "jsonl",
|
|
6615
|
+
description: "Export a session for /import cco",
|
|
6616
|
+
descriptions: { zh: "导出可用 /import cco 导入的会话" }
|
|
6617
|
+
}, {
|
|
6618
|
+
name: "markdown",
|
|
6619
|
+
aliases: ["md"],
|
|
6620
|
+
description: "Export readable Markdown",
|
|
6621
|
+
descriptions: { zh: "导出便于阅读的 Markdown" }
|
|
6622
|
+
}]
|
|
6577
6623
|
},
|
|
6578
6624
|
{
|
|
6579
6625
|
name: "copy",
|
|
@@ -6972,7 +7018,7 @@ function matchingCompletionToken(candidate, prefix) {
|
|
|
6972
7018
|
return candidate.aliases?.find((alias) => alias.toLowerCase().startsWith(prefix));
|
|
6973
7019
|
}
|
|
6974
7020
|
//#endregion
|
|
6975
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
7021
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionHistory.js
|
|
6976
7022
|
/**
|
|
6977
7023
|
* Launcher contract for `dsh-tui --resume`: the TUI writes the chosen session
|
|
6978
7024
|
* id to `<CHATCODE_CLI_HOME>/tui/resume.txt`, and the launcher feeds it back as
|
|
@@ -7139,7 +7185,7 @@ function forgetAgentViewSession(sessionId) {
|
|
|
7139
7185
|
} catch {}
|
|
7140
7186
|
}
|
|
7141
7187
|
//#endregion
|
|
7142
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
7188
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionTags.js
|
|
7143
7189
|
/**
|
|
7144
7190
|
* One searchable local tag per persisted session.
|
|
7145
7191
|
*
|
|
@@ -7289,7 +7335,7 @@ function forgetSessionTag(sessionId, dir = DATA_DIR) {
|
|
|
7289
7335
|
return setSessionTag(sessionId, void 0, dir).ok;
|
|
7290
7336
|
}
|
|
7291
7337
|
//#endregion
|
|
7292
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
7338
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/liveSession.js
|
|
7293
7339
|
/**
|
|
7294
7340
|
* Live Session compatibility facade.
|
|
7295
7341
|
*
|
|
@@ -7451,7 +7497,7 @@ function liveSessionCreateOptions(request) {
|
|
|
7451
7497
|
};
|
|
7452
7498
|
}
|
|
7453
7499
|
//#endregion
|
|
7454
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
7500
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionLog.js
|
|
7455
7501
|
/**
|
|
7456
7502
|
* Legacy third-party session-event types the TUI vouches for as ephemeral
|
|
7457
7503
|
* UI frames — safe for the strict read path to accept and skip. Exported
|
|
@@ -8143,7 +8189,7 @@ function appendSessionTitle(sessionId, title) {
|
|
|
8143
8189
|
}
|
|
8144
8190
|
}
|
|
8145
8191
|
//#endregion
|
|
8146
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
8192
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/sessionEvent.js
|
|
8147
8193
|
/** Narrow an unknown/session event to the retired durable chunk envelope. */
|
|
8148
8194
|
function legacyAssistantChunkOf(event) {
|
|
8149
8195
|
if (event === null || typeof event !== "object") return void 0;
|
|
@@ -8157,7 +8203,7 @@ function legacyAssistantChunkOf(event) {
|
|
|
8157
8203
|
return event;
|
|
8158
8204
|
}
|
|
8159
8205
|
//#endregion
|
|
8160
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
8206
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compaction.js
|
|
8161
8207
|
/**
|
|
8162
8208
|
* Recognize both the current checkpoint source and the legacy plugin marker.
|
|
8163
8209
|
* Harness session format v4 migrated `plugin/compact` to the dedicated
|
|
@@ -8168,7 +8214,7 @@ function isCompactionCheckpointSource(source) {
|
|
|
8168
8214
|
return source.kind === "compact-checkpoint" || source.kind === "plugin" && source.plugin === "compact";
|
|
8169
8215
|
}
|
|
8170
8216
|
//#endregion
|
|
8171
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
8217
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessionTree.js
|
|
8172
8218
|
const TREE_FILTERS = [
|
|
8173
8219
|
"default",
|
|
8174
8220
|
"no-tools",
|
|
@@ -10324,7 +10370,7 @@ var require_subset = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10324
10370
|
module.exports = subset;
|
|
10325
10371
|
}));
|
|
10326
10372
|
//#endregion
|
|
10327
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
10373
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/shellQuote.js
|
|
10328
10374
|
var import_semver = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
10329
10375
|
const internalRe = require_re();
|
|
10330
10376
|
const constants = require_constants$1();
|
|
@@ -10417,7 +10463,7 @@ function cmdEscapeArgument(arg, doubleEscapeMetaChars = false) {
|
|
|
10417
10463
|
return out;
|
|
10418
10464
|
}
|
|
10419
10465
|
//#endregion
|
|
10420
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
10466
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/update.js
|
|
10421
10467
|
const PACKAGE_NAME = "@chatcode/cco-tui";
|
|
10422
10468
|
const DEFAULT_REGISTRY = "https://registry.npmjs.org";
|
|
10423
10469
|
const GITHUB_REPO = "ccch1mneyyy/dsh-TUI";
|
|
@@ -11768,7 +11814,7 @@ async function restartTui(sessionId, options = {}) {
|
|
|
11768
11814
|
});
|
|
11769
11815
|
}
|
|
11770
11816
|
//#endregion
|
|
11771
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
11817
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/header.js
|
|
11772
11818
|
/** A finite number, or undefined for anything else (NaN and ±Infinity included). */
|
|
11773
11819
|
function finiteNumber(value) {
|
|
11774
11820
|
return typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
@@ -11842,7 +11888,7 @@ function classify(header) {
|
|
|
11842
11888
|
return { kind: "root" };
|
|
11843
11889
|
}
|
|
11844
11890
|
//#endregion
|
|
11845
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
11891
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/frames.js
|
|
11846
11892
|
/**
|
|
11847
11893
|
* Bounded reads over the JSONL backend's concatenated-Zstandard session logs.
|
|
11848
11894
|
*
|
|
@@ -12088,7 +12134,7 @@ function decodeTail(window) {
|
|
|
12088
12134
|
return decodeFrames(window.buffer, window.whole ? walkFrames(window.buffer) : resyncFrames(window.buffer));
|
|
12089
12135
|
}
|
|
12090
12136
|
//#endregion
|
|
12091
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
12137
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/digest.js
|
|
12092
12138
|
/**
|
|
12093
12139
|
* What a bounded read can learn about a session log.
|
|
12094
12140
|
*
|
|
@@ -12571,7 +12617,7 @@ function previewSession(path, limit) {
|
|
|
12571
12617
|
return entries.slice(-limit);
|
|
12572
12618
|
}
|
|
12573
12619
|
//#endregion
|
|
12574
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
12620
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/artifact.js
|
|
12575
12621
|
/** Read-only artifact lookup for session summaries and previews. */
|
|
12576
12622
|
/** Highest published compressed generation; temporary migration files are ignored. */
|
|
12577
12623
|
function inDirectory(directory) {
|
|
@@ -12624,7 +12670,7 @@ function findSessionArtifact(sessionId, target) {
|
|
|
12624
12670
|
}
|
|
12625
12671
|
}
|
|
12626
12672
|
//#endregion
|
|
12627
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
12673
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/store.js
|
|
12628
12674
|
/**
|
|
12629
12675
|
* The session index — a local cache keyed by the backend's own change token.
|
|
12630
12676
|
*
|
|
@@ -12788,7 +12834,7 @@ function noteBranch(sessionId, branch) {
|
|
|
12788
12834
|
writeIndex(index);
|
|
12789
12835
|
}
|
|
12790
12836
|
//#endregion
|
|
12791
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
12837
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/list.js
|
|
12792
12838
|
/**
|
|
12793
12839
|
* Building the session list.
|
|
12794
12840
|
*
|
|
@@ -13069,7 +13115,7 @@ async function locateSession(source, sessionId, signal) {
|
|
|
13069
13115
|
return match === void 0 ? void 0 : locate$1(source, match.raw, sessionId);
|
|
13070
13116
|
}
|
|
13071
13117
|
//#endregion
|
|
13072
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
13118
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/agent-view.js
|
|
13073
13119
|
/**
|
|
13074
13120
|
* Agent view (CC `claude agents`) derivation helpers — pure functions over
|
|
13075
13121
|
* session events that the channel folds into {@link AgentViewRow}s. Kept in
|
|
@@ -13299,7 +13345,7 @@ function featureOn(config, name) {
|
|
|
13299
13345
|
return config.mode !== "minimal";
|
|
13300
13346
|
}
|
|
13301
13347
|
//#endregion
|
|
13302
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
13348
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/activityPrefs.js
|
|
13303
13349
|
/**
|
|
13304
13350
|
* Persisted working-activity indicator preference, mirroring the pi
|
|
13305
13351
|
* working-activity extension's `~/.pi/agent/working-activity.json`
|
|
@@ -13368,7 +13414,7 @@ function writeActivityFrames(name, dir = PREFS_DIR$5) {
|
|
|
13368
13414
|
}
|
|
13369
13415
|
}
|
|
13370
13416
|
//#endregion
|
|
13371
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
13417
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileSuggestions.js
|
|
13372
13418
|
const pathSeparators = /[\\/]/;
|
|
13373
13419
|
function isPathLikeQuery(query) {
|
|
13374
13420
|
return query.startsWith(".") || query.startsWith("~") || query.startsWith("/") || /^[A-Za-z]:[\\/]/.test(query) || pathSeparators.test(query);
|
|
@@ -13391,7 +13437,7 @@ function rankFileCandidates(candidates, query, topK) {
|
|
|
13391
13437
|
return topK === void 0 ? ranked : ranked.slice(0, Math.max(0, topK));
|
|
13392
13438
|
}
|
|
13393
13439
|
//#endregion
|
|
13394
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
13440
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/effortPrefs.js
|
|
13395
13441
|
/**
|
|
13396
13442
|
* Persisted reasoning-effort preference (`~/.chatcode-cli/tui/effort.json`). Set via
|
|
13397
13443
|
* `/effort` (slider or `/effort <id>`; `/effort status` reports the current
|
|
@@ -13433,7 +13479,7 @@ function writeEffortPref(effort, dir = PREFS_DIR$4) {
|
|
|
13433
13479
|
}
|
|
13434
13480
|
}
|
|
13435
13481
|
//#endregion
|
|
13436
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
13482
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelPrefs.js
|
|
13437
13483
|
/**
|
|
13438
13484
|
* Persisted model-route preference (`/model` picker choice), kept at
|
|
13439
13485
|
* `~/.chatcode-cli/model.json` (`provider` + `model` keys) so CLI and Web share it
|
|
@@ -13516,7 +13562,7 @@ function writeModelPref(provider, model, dir = PREFS_DIR$3) {
|
|
|
13516
13562
|
}
|
|
13517
13563
|
}
|
|
13518
13564
|
//#endregion
|
|
13519
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
13565
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/modelRoute.js
|
|
13520
13566
|
/**
|
|
13521
13567
|
* Model route resolution (issue #67). The `(provider, model)` pair is a
|
|
13522
13568
|
* single value: every source either supplies the WHOLE route or is skipped,
|
|
@@ -13751,7 +13797,7 @@ function orderModelProviders(providers) {
|
|
|
13751
13797
|
return [...providers].sort((left, right) => rank(left.id) - rank(right.id));
|
|
13752
13798
|
}
|
|
13753
13799
|
//#endregion
|
|
13754
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
13800
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelSettings.js
|
|
13755
13801
|
/** Custom-model forms over the same settings and credential services used by Web. */
|
|
13756
13802
|
function record(value) {
|
|
13757
13803
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -13953,7 +13999,7 @@ function createCustomModelSettingsStore(path, host) {
|
|
|
13953
13999
|
};
|
|
13954
14000
|
}
|
|
13955
14001
|
//#endregion
|
|
13956
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14002
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/customModelTest.js
|
|
13957
14003
|
/** Direct, one-shot generation used by `/model-config` before a model is registered. */
|
|
13958
14004
|
function requestEndpoint(baseURL, api) {
|
|
13959
14005
|
const url = new URL(baseURL);
|
|
@@ -14042,7 +14088,7 @@ async function testCustomModelConnection(request, fetchImpl = fetch) {
|
|
|
14042
14088
|
}
|
|
14043
14089
|
}
|
|
14044
14090
|
//#endregion
|
|
14045
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14091
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/catalogDefaults.js
|
|
14046
14092
|
/** Read display defaults from the host adapter's own installed pi-ai catalog. */
|
|
14047
14093
|
const catalogs = /* @__PURE__ */ new Map();
|
|
14048
14094
|
async function installedCatalog(anchor) {
|
|
@@ -14089,7 +14135,7 @@ async function catalogProviderDefaults(provider, model, anchor = import.meta.url
|
|
|
14089
14135
|
};
|
|
14090
14136
|
}
|
|
14091
14137
|
//#endregion
|
|
14092
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14138
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/presetPrefs.js
|
|
14093
14139
|
/**
|
|
14094
14140
|
* Persisted agent-preset preference (`/preset` picker choice), kept at
|
|
14095
14141
|
* `~/.chatcode-cli/tui/agent-preset.json` (`preset` key) so the choice survives
|
|
@@ -14148,7 +14194,7 @@ function migratePresetPref(requested, resolved, dir = PREFS_DIR$2) {
|
|
|
14148
14194
|
return requested === void 0 || resolved === void 0 || requested === resolved ? true : writePresetPref(resolved, dir);
|
|
14149
14195
|
}
|
|
14150
14196
|
//#endregion
|
|
14151
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14197
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/compat/persistedSession.js
|
|
14152
14198
|
/** Undefined means the service exposes neither supported read API. */
|
|
14153
14199
|
async function readPersistedSession(persistence, id) {
|
|
14154
14200
|
if (persistence === null || typeof persistence !== "object") return void 0;
|
|
@@ -14168,7 +14214,7 @@ async function readPersistedSession(persistence, id) {
|
|
|
14168
14214
|
if (typeof reader.load === "function") return reader.load(id);
|
|
14169
14215
|
}
|
|
14170
14216
|
//#endregion
|
|
14171
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14217
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-resolution.js
|
|
14172
14218
|
/**
|
|
14173
14219
|
* Agent-preset resolution across upstream prerelease lines.
|
|
14174
14220
|
*
|
|
@@ -14206,7 +14252,7 @@ async function resolveCompatiblePreset(presets, requested) {
|
|
|
14206
14252
|
return presets.resolve(requested);
|
|
14207
14253
|
}
|
|
14208
14254
|
//#endregion
|
|
14209
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14255
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/presets.js
|
|
14210
14256
|
/**
|
|
14211
14257
|
* Agent-presets roster integration (issue #8): compose each session's
|
|
14212
14258
|
* model-facing world (tools, prompt sections, projections) from one preset
|
|
@@ -14356,7 +14402,7 @@ function serviceForAgent(ctx, agent, key) {
|
|
|
14356
14402
|
return ctx.get(key);
|
|
14357
14403
|
}
|
|
14358
14404
|
//#endregion
|
|
14359
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14405
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/preset-management.js
|
|
14360
14406
|
const failureReason = (error) => error instanceof Error ? error.message : String(error);
|
|
14361
14407
|
/** Read a roster-resolved composition without bypassing preset ownership. */
|
|
14362
14408
|
async function readPresetComposition(presets, presetId) {
|
|
@@ -14413,7 +14459,7 @@ async function removePresetComposition(presets, presetId) {
|
|
|
14413
14459
|
}
|
|
14414
14460
|
}
|
|
14415
14461
|
//#endregion
|
|
14416
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14462
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/session-organization.js
|
|
14417
14463
|
/** Adapter-only readers for optional Harness session-organization services. */
|
|
14418
14464
|
const STAT_KEYS = [
|
|
14419
14465
|
"turns",
|
|
@@ -14474,7 +14520,7 @@ function presetCompositionRows(content, limit = 80) {
|
|
|
14474
14520
|
};
|
|
14475
14521
|
}
|
|
14476
14522
|
//#endregion
|
|
14477
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14523
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/debug.js
|
|
14478
14524
|
/**
|
|
14479
14525
|
* Debug logger for the ported Ink core. Writes to stderr only when
|
|
14480
14526
|
* `CHATCODE_CLI_TUI_DEBUG` (or its legacy alias) is set, so normal runs stay quiet.
|
|
@@ -14504,7 +14550,7 @@ function logMouseDebug(message, fields) {
|
|
|
14504
14550
|
} catch {}
|
|
14505
14551
|
}
|
|
14506
14552
|
//#endregion
|
|
14507
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14553
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/mentions.js
|
|
14508
14554
|
/**
|
|
14509
14555
|
* `@` file-mention parsing (issue #15).
|
|
14510
14556
|
*
|
|
@@ -14650,7 +14696,7 @@ function mentionAtCaret(value, cursor) {
|
|
|
14650
14696
|
};
|
|
14651
14697
|
}
|
|
14652
14698
|
//#endregion
|
|
14653
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14699
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/commonUtilityCommands.js
|
|
14654
14700
|
/** Format only the files in the authoritative loaded-context projection. */
|
|
14655
14701
|
function loadedFileLines(files, copy) {
|
|
14656
14702
|
if (files === void 0) return [copy.unavailable];
|
|
@@ -14765,7 +14811,7 @@ function codeRatioLines(report, copy, maxAuthors = 20) {
|
|
|
14765
14811
|
return lines;
|
|
14766
14812
|
}
|
|
14767
14813
|
//#endregion
|
|
14768
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14814
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themeCatalog.js
|
|
14769
14815
|
/**
|
|
14770
14816
|
* Cordis-free theme catalog shared by future pickers, commands and hosts.
|
|
14771
14817
|
*
|
|
@@ -14846,7 +14892,7 @@ function listThemeCatalog(host) {
|
|
|
14846
14892
|
return Object.freeze(entries);
|
|
14847
14893
|
}
|
|
14848
14894
|
//#endregion
|
|
14849
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14895
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionModes.js
|
|
14850
14896
|
/**
|
|
14851
14897
|
* Configurable Shift+Tab session modes (the `modes` dsh-tui plugin config):
|
|
14852
14898
|
* each mode is a named bundle of optional DSH plane switches — plan mode
|
|
@@ -14910,7 +14956,7 @@ function modeDisplayName(spec) {
|
|
|
14910
14956
|
return spec.id;
|
|
14911
14957
|
}
|
|
14912
14958
|
//#endregion
|
|
14913
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
14959
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/subagents.js
|
|
14914
14960
|
/** Unified subagent activity domain model used by the adapter and every view. */
|
|
14915
14961
|
const MAX_OUTPUT_EVENTS = 160;
|
|
14916
14962
|
const MAX_OUTPUT_LINES = 160;
|
|
@@ -15288,7 +15334,7 @@ function formatJobDuration(job, now = Date.now()) {
|
|
|
15288
15334
|
return `${Math.floor(minutes / 60)}h${String(minutes % 60).padStart(2, "0")}m`;
|
|
15289
15335
|
}
|
|
15290
15336
|
//#endregion
|
|
15291
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
15337
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/minimalMode.js
|
|
15292
15338
|
/**
|
|
15293
15339
|
* Minimal mode: one process-wide flag gating decorative UI (header splash,
|
|
15294
15340
|
* emoji status glyphs and non-tool text colors). Footer field choices remain
|
|
@@ -15308,7 +15354,7 @@ function setMinimalMode(enabled) {
|
|
|
15308
15354
|
minimal = enabled;
|
|
15309
15355
|
}
|
|
15310
15356
|
//#endregion
|
|
15311
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
15357
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/workspace.js
|
|
15312
15358
|
function registryOf(ctx) {
|
|
15313
15359
|
const registry = ctx.get("workspaceRegistry");
|
|
15314
15360
|
if (registry === void 0 || typeof registry.pinSession !== "function" || typeof registry.unpinSession !== "function") return void 0;
|
|
@@ -15383,7 +15429,7 @@ async function unarchiveWorkspaceSession(ctx, id) {
|
|
|
15383
15429
|
return true;
|
|
15384
15430
|
}
|
|
15385
15431
|
//#endregion
|
|
15386
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
15432
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/contract.js
|
|
15387
15433
|
/**
|
|
15388
15434
|
* Upstream compatibility contract.
|
|
15389
15435
|
*
|
|
@@ -15812,7 +15858,7 @@ function pluginsInfoLines(args, deps) {
|
|
|
15812
15858
|
return lines;
|
|
15813
15859
|
}
|
|
15814
15860
|
//#endregion
|
|
15815
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
15861
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/mcp-status.js
|
|
15816
15862
|
/** Loader and tool-registry projection used by the TUI's `/mcp` report. */
|
|
15817
15863
|
const MCP_CLIENT_PACKAGE = "@deepseek-ai/dsh-mcp-client";
|
|
15818
15864
|
const FIBER_ACTIVE = 2;
|
|
@@ -15865,7 +15911,7 @@ function collectMcpServerStatus(schemas, entries) {
|
|
|
15865
15911
|
}));
|
|
15866
15912
|
}
|
|
15867
15913
|
//#endregion
|
|
15868
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
15914
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/format.js
|
|
15869
15915
|
/**
|
|
15870
15916
|
* Number, token-count, and duration formatters shared by the status line
|
|
15871
15917
|
* and message rows.
|
|
@@ -15928,7 +15974,7 @@ function formatDuration$4(durationMs, options = {}) {
|
|
|
15928
15974
|
return parts.join(" ");
|
|
15929
15975
|
}
|
|
15930
15976
|
//#endregion
|
|
15931
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
15977
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/contextUsage.js
|
|
15932
15978
|
/**
|
|
15933
15979
|
* Return the current context occupancy. The latest request is authoritative:
|
|
15934
15980
|
* its uncached input and cache read/write tokens are all part of that request's
|
|
@@ -16312,7 +16358,7 @@ function prepareMemoryTargetFile(requested, candidates, cwd, dshHome) {
|
|
|
16312
16358
|
}
|
|
16313
16359
|
}
|
|
16314
16360
|
//#endregion
|
|
16315
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
16361
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/channel.js
|
|
16316
16362
|
/** Return the step left open by a tree fork cut within one turn. */
|
|
16317
16363
|
function openStepAtForkCut(events, turn) {
|
|
16318
16364
|
for (let i = events.length - 1; i >= 0; i--) {
|
|
@@ -16458,7 +16504,7 @@ function normalizePermissionPresetOption(value) {
|
|
|
16458
16504
|
...description === void 0 || description === "" ? {} : { description }
|
|
16459
16505
|
};
|
|
16460
16506
|
}
|
|
16461
|
-
function permissionPresetSnapshotFromService(service,
|
|
16507
|
+
function permissionPresetSnapshotFromService(service, session) {
|
|
16462
16508
|
if (!isRecord$1(service)) return unavailablePermissionPresetSnapshot();
|
|
16463
16509
|
const runtime = service;
|
|
16464
16510
|
try {
|
|
@@ -16475,13 +16521,13 @@ function permissionPresetSnapshotFromService(service, events) {
|
|
|
16475
16521
|
}
|
|
16476
16522
|
const options = [];
|
|
16477
16523
|
for (const name of names) {
|
|
16478
|
-
const option = normalizePermissionPresetOption(optionOf(name));
|
|
16524
|
+
const option = normalizePermissionPresetOption(optionOf.call(service, name));
|
|
16479
16525
|
if (option === void 0 || option.value !== name) return unavailablePermissionPresetSnapshot();
|
|
16480
16526
|
options.push({ ...option });
|
|
16481
16527
|
}
|
|
16482
|
-
const currentValue = current(
|
|
16528
|
+
const currentValue = current.call(service, typeof runtime.catalog === "function" ? session : snapshotLiveSessionEvents(session));
|
|
16483
16529
|
if (typeof currentValue !== "string" || currentValue !== PERMISSION_PRESET_CUSTOM && !seen.has(currentValue)) return unavailablePermissionPresetSnapshot();
|
|
16484
|
-
const currentOption = normalizePermissionPresetOption(optionOf(currentValue));
|
|
16530
|
+
const currentOption = normalizePermissionPresetOption(optionOf.call(service, currentValue));
|
|
16485
16531
|
if (currentOption === void 0 || currentOption.value !== currentValue) return unavailablePermissionPresetSnapshot();
|
|
16486
16532
|
if (currentValue !== PERMISSION_PRESET_CUSTOM) {
|
|
16487
16533
|
const rosterOption = options.find((option) => option.value === currentValue);
|
|
@@ -16552,7 +16598,7 @@ function toolCommandOf(argsFull) {
|
|
|
16552
16598
|
}
|
|
16553
16599
|
/** The ack a shell tool returns for `run_in_background: true`. */
|
|
16554
16600
|
const BACKGROUND_START_ACK = /^started background job (\S+)/;
|
|
16555
|
-
/** Public provider route registered by
|
|
16601
|
+
/** Public provider route registered by cco-llm-chatcode-config for MAAS. */
|
|
16556
16602
|
const CHATCODE_MAAS_PROVIDER = "chatcode-maas";
|
|
16557
16603
|
/** Narrow an optional plugin event without importing its module augmentation. */
|
|
16558
16604
|
function todoPanelItems(data) {
|
|
@@ -16710,6 +16756,31 @@ function toolResultText(event) {
|
|
|
16710
16756
|
if (block === void 0 || block.type !== "tool-result") return "";
|
|
16711
16757
|
return block.content.map((item) => item.type === "text" ? item.text : "").join("").trim();
|
|
16712
16758
|
}
|
|
16759
|
+
/** Restore an acknowledged todo_write when an imported log lacks todo/write. */
|
|
16760
|
+
function acknowledgedTodoItems(todos, event) {
|
|
16761
|
+
const message = event.data.message;
|
|
16762
|
+
const block = message.content[0];
|
|
16763
|
+
const legacyError = message.isError;
|
|
16764
|
+
if (event.data.error !== void 0 || legacyError === true || block?.type === "tool-result" && block.isError === true) return void 0;
|
|
16765
|
+
const result = block?.type === "tool-result" ? toolResultText(event) : message.content.map((item) => item.type === "text" ? item.text : "").join("").trim();
|
|
16766
|
+
try {
|
|
16767
|
+
const returned = todoPanelItems(JSON.parse(result));
|
|
16768
|
+
if (returned !== void 0) return returned;
|
|
16769
|
+
} catch {}
|
|
16770
|
+
const counts = /^Updated todo list: (\d+) pending, (\d+) in progress, (\d+) completed\.$/.exec(result);
|
|
16771
|
+
if (counts === null) return void 0;
|
|
16772
|
+
if (![
|
|
16773
|
+
"pending",
|
|
16774
|
+
"in_progress",
|
|
16775
|
+
"completed"
|
|
16776
|
+
].every((status, index) => todos.filter((todo) => todo.status === status).length === Number(counts[index + 1]))) return void 0;
|
|
16777
|
+
const normalized = todos.map((todo) => ({
|
|
16778
|
+
...todo,
|
|
16779
|
+
content: todo.content.trim()
|
|
16780
|
+
}));
|
|
16781
|
+
if (normalized.some((todo) => todo.content === "") || new Set(normalized.map((todo) => todo.content)).size !== normalized.length) return void 0;
|
|
16782
|
+
return normalized;
|
|
16783
|
+
}
|
|
16713
16784
|
/** Phase badge for the harness goal card — mirrors the panel's PhaseBadge. */
|
|
16714
16785
|
const GOAL_RESULT_BADGE = {
|
|
16715
16786
|
active: "● active",
|
|
@@ -17074,6 +17145,7 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
17074
17145
|
description: sub.description,
|
|
17075
17146
|
provider: sub.provider,
|
|
17076
17147
|
model: sub.model || "default",
|
|
17148
|
+
modelName: sub.modelName,
|
|
17077
17149
|
effort: sub.effort,
|
|
17078
17150
|
status: sub.status,
|
|
17079
17151
|
startedAt: sub.startedAt,
|
|
@@ -17472,6 +17544,21 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
17472
17544
|
let cancelInFlight = false;
|
|
17473
17545
|
/** The llm runtime seam (dsh-llm LlmRuntime): route metadata resolution. */
|
|
17474
17546
|
const llmRuntime = ctx.get("llm");
|
|
17547
|
+
/** Catalog display names for subagent routes, keyed `provider\0model`.
|
|
17548
|
+
* Subagent cards are display surfaces: they show the catalog's `name`, and
|
|
17549
|
+
* the wire id remains only the fallback while the catalog is unresolved.
|
|
17550
|
+
* Entries are shared across subagents on one route and never invalidated —
|
|
17551
|
+
* a route's display name does not change within a session. */
|
|
17552
|
+
const subagentModelNames = /* @__PURE__ */ new Map();
|
|
17553
|
+
const resolveSubagentModelName = (provider, model) => {
|
|
17554
|
+
if (llmRuntime === void 0) return Promise.resolve(void 0);
|
|
17555
|
+
const key = `${provider}\u0000${model}`;
|
|
17556
|
+
const cached = subagentModelNames.get(key);
|
|
17557
|
+
if (cached !== void 0) return cached;
|
|
17558
|
+
const pending = llmRuntime.resolveModelInfo(provider, model).then((info) => info.name?.trim() || void 0).catch(() => void 0);
|
|
17559
|
+
subagentModelNames.set(key, pending);
|
|
17560
|
+
return pending;
|
|
17561
|
+
};
|
|
17475
17562
|
/** Mutable per-agent model selection (dsh-agent's routing override seam).
|
|
17476
17563
|
* Model and effort choices override subsequent requests without a fork;
|
|
17477
17564
|
* default routing still comes from agentOptions until a choice; bindAgent
|
|
@@ -18281,7 +18368,21 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
18281
18368
|
if ("preset".startsWith(head)) warmPresetOptions();
|
|
18282
18369
|
if ("effort".startsWith(head)) warmEffortLevels();
|
|
18283
18370
|
}
|
|
18284
|
-
|
|
18371
|
+
let roots = state.commandList;
|
|
18372
|
+
if (head === "permission") {
|
|
18373
|
+
const snapshot = state.permissionPresets();
|
|
18374
|
+
const argumentSuggestions = snapshot.options.filter((option) => isCommandCompletionToken(option.value)).map((option) => ({
|
|
18375
|
+
name: option.value,
|
|
18376
|
+
description: option.description ?? option.name,
|
|
18377
|
+
...option.value === "read-only" ? { descriptionKey: "permission-preset-readonly-desc" } : option.value === "workspace-write" ? { descriptionKey: "permission-preset-workspace-write-desc" } : option.value === "danger-full-access" ? { descriptionKey: "permission-preset-full-access-desc" } : {},
|
|
18378
|
+
...snapshot.current?.kind === "preset" && snapshot.current.value === option.value ? { tag: "current" } : {}
|
|
18379
|
+
}));
|
|
18380
|
+
roots = roots.map((command) => command.name === "permission" ? {
|
|
18381
|
+
...command,
|
|
18382
|
+
argumentSuggestions
|
|
18383
|
+
} : command);
|
|
18384
|
+
}
|
|
18385
|
+
return completeCommands(input, roots, (path) => {
|
|
18285
18386
|
if (path.length === 1 && path[0] === "web") return [{
|
|
18286
18387
|
name: "on",
|
|
18287
18388
|
description: "Start or reopen Web and show its authenticated URL",
|
|
@@ -18467,15 +18568,6 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
18467
18568
|
description: command.description
|
|
18468
18569
|
}))];
|
|
18469
18570
|
}
|
|
18470
|
-
if (path.length === 1 && path[0] === "permission") {
|
|
18471
|
-
const snapshot = state.permissionPresets();
|
|
18472
|
-
return snapshot.options.filter((option) => isCommandCompletionToken(option.value)).map((option) => ({
|
|
18473
|
-
name: option.value,
|
|
18474
|
-
description: option.description ?? option.name,
|
|
18475
|
-
...option.value === "read-only" ? { descriptionKey: "permission-preset-readonly-desc" } : option.value === "workspace-write" ? { descriptionKey: "permission-preset-workspace-write-desc" } : option.value === "danger-full-access" ? { descriptionKey: "permission-preset-full-access-desc" } : {},
|
|
18476
|
-
...snapshot.current?.kind === "preset" && snapshot.current.value === option.value ? { tag: "current" } : {}
|
|
18477
|
-
}));
|
|
18478
|
-
}
|
|
18479
18571
|
if (path.length === 1 && path[0] === "plan") return [{
|
|
18480
18572
|
name: "on",
|
|
18481
18573
|
description: "Enter plan mode: read-only, plan before acting",
|
|
@@ -19809,7 +19901,7 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
19809
19901
|
return unavailablePermissionPresetSnapshot();
|
|
19810
19902
|
}
|
|
19811
19903
|
if (service === void 0) return legacyPermissionPresetSnapshot(state.mode.sandbox);
|
|
19812
|
-
return permissionPresetSnapshotFromService(service,
|
|
19904
|
+
return permissionPresetSnapshotFromService(service, agent.session);
|
|
19813
19905
|
},
|
|
19814
19906
|
/** Localized roster projection for the /preset picker — resolves
|
|
19815
19907
|
* built-in display text through the dictionary under `en`; the
|
|
@@ -20941,7 +21033,27 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
20941
21033
|
}
|
|
20942
21034
|
return lines;
|
|
20943
21035
|
},
|
|
20944
|
-
exportSession() {
|
|
21036
|
+
exportSession(format = "jsonl") {
|
|
21037
|
+
const events = snapshotLiveSessionEvents(agent.session);
|
|
21038
|
+
const fileName = `chatcode-cli-export-${Date.now()}-${randomUUID().slice(0, 8)}.${format === "jsonl" ? "jsonl" : "md"}`;
|
|
21039
|
+
const target = join(state.cwd, fileName);
|
|
21040
|
+
if (format === "jsonl") {
|
|
21041
|
+
const lines = [JSON.stringify({
|
|
21042
|
+
type: "session",
|
|
21043
|
+
...agent.session.header
|
|
21044
|
+
})];
|
|
21045
|
+
for (const event of events) lines.push(JSON.stringify(event));
|
|
21046
|
+
try {
|
|
21047
|
+
writeFileSync(target, lines.join("\n") + "\n", {
|
|
21048
|
+
encoding: "utf8",
|
|
21049
|
+
mode: 384,
|
|
21050
|
+
flag: "wx"
|
|
21051
|
+
});
|
|
21052
|
+
return target;
|
|
21053
|
+
} catch {
|
|
21054
|
+
return null;
|
|
21055
|
+
}
|
|
21056
|
+
}
|
|
20945
21057
|
const parts = [
|
|
20946
21058
|
t("export-title"),
|
|
20947
21059
|
"",
|
|
@@ -20951,7 +21063,7 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
20951
21063
|
t("export-dir", { cwd: state.cwd }),
|
|
20952
21064
|
""
|
|
20953
21065
|
];
|
|
20954
|
-
for (const event of
|
|
21066
|
+
for (const event of events) switch (event.type) {
|
|
20955
21067
|
case "user/message": {
|
|
20956
21068
|
if (event.data.source.kind !== "user") break;
|
|
20957
21069
|
const text = firstTextOf(event.data.content);
|
|
@@ -20969,18 +21081,18 @@ function createChannel(ctx, initialAgent, options) {
|
|
|
20969
21081
|
break;
|
|
20970
21082
|
case "tool/result": {
|
|
20971
21083
|
const block = event.data.message.content[0];
|
|
20972
|
-
|
|
20973
|
-
|
|
20974
|
-
if (text) parts.push(`${t("export-result-section")}\n\n\`\`\`\n${text}\n\`\`\`\n`);
|
|
20975
|
-
}
|
|
21084
|
+
const text = textOf(block?.type === "tool-result" ? block.content : event.data.message.content);
|
|
21085
|
+
if (text) parts.push(`${t("export-result-section")}\n\n\`\`\`\n${text}\n\`\`\`\n`);
|
|
20976
21086
|
break;
|
|
20977
21087
|
}
|
|
20978
21088
|
default: break;
|
|
20979
21089
|
}
|
|
20980
|
-
const fileName = `chatcode-cli-export-${Date.now()}.md`;
|
|
20981
21090
|
try {
|
|
20982
|
-
|
|
20983
|
-
|
|
21091
|
+
writeFileSync(target, parts.join("\n"), {
|
|
21092
|
+
encoding: "utf8",
|
|
21093
|
+
mode: 384,
|
|
21094
|
+
flag: "wx"
|
|
21095
|
+
});
|
|
20984
21096
|
return target;
|
|
20985
21097
|
} catch {
|
|
20986
21098
|
return null;
|
|
@@ -21545,6 +21657,8 @@ ${output}
|
|
|
21545
21657
|
let tpsStep;
|
|
21546
21658
|
/** Tool cards by callId, so tool/result can settle the running card. */
|
|
21547
21659
|
const toolCards = /* @__PURE__ */ new Map();
|
|
21660
|
+
const pendingTodoWrites = /* @__PURE__ */ new Map();
|
|
21661
|
+
let lastTodoWriteSeq = -1;
|
|
21548
21662
|
/**
|
|
21549
21663
|
* Session events are delivered live and can also be replayed around a
|
|
21550
21664
|
* reconnect. A repeated sealed message must not create a second assistant
|
|
@@ -21800,6 +21914,8 @@ ${output}
|
|
|
21800
21914
|
assistantRowsByStep.clear();
|
|
21801
21915
|
reasoningRowsByStep.clear();
|
|
21802
21916
|
lastTextDelta.clear();
|
|
21917
|
+
pendingTodoWrites.clear();
|
|
21918
|
+
lastTodoWriteSeq = -1;
|
|
21803
21919
|
replaying = true;
|
|
21804
21920
|
try {
|
|
21805
21921
|
for (const event of prepareReplayEvents(events)) renderEvent(event);
|
|
@@ -22000,6 +22116,13 @@ ${output}
|
|
|
22000
22116
|
break;
|
|
22001
22117
|
}
|
|
22002
22118
|
case "tool/call": {
|
|
22119
|
+
if (event.data.name === "todo_write") try {
|
|
22120
|
+
const todos = todoPanelItems(JSON.parse(event.data.arguments));
|
|
22121
|
+
if (todos !== void 0) pendingTodoWrites.set(event.data.callId, {
|
|
22122
|
+
seq: event.seq,
|
|
22123
|
+
todos
|
|
22124
|
+
});
|
|
22125
|
+
} catch {}
|
|
22003
22126
|
if (event.data.name === "ask_user_question") break;
|
|
22004
22127
|
if (isSubagentToolName(event.data.name)) {
|
|
22005
22128
|
try {
|
|
@@ -22034,6 +22157,12 @@ ${output}
|
|
|
22034
22157
|
break;
|
|
22035
22158
|
}
|
|
22036
22159
|
case "tool/result": {
|
|
22160
|
+
const pendingTodo = pendingTodoWrites.get(event.data.message.source.callId);
|
|
22161
|
+
pendingTodoWrites.delete(event.data.message.source.callId);
|
|
22162
|
+
if (pendingTodo !== void 0 && pendingTodo.seq > lastTodoWriteSeq) {
|
|
22163
|
+
const todos = acknowledgedTodoItems(pendingTodo.todos, event);
|
|
22164
|
+
if (todos !== void 0) state.todos = todos;
|
|
22165
|
+
}
|
|
22037
22166
|
const card = toolCards.get(event.data.message.source.callId);
|
|
22038
22167
|
if (card !== void 0 && card.tool !== void 0) {
|
|
22039
22168
|
card.tool.durationMs = Math.max(0, Date.now() - card.tool.startedAt);
|
|
@@ -22072,6 +22201,9 @@ ${output}
|
|
|
22072
22201
|
case "turn/start":
|
|
22073
22202
|
cancelInFlight = false;
|
|
22074
22203
|
state.cancelPending = false;
|
|
22204
|
+
state.todos = [];
|
|
22205
|
+
pendingTodoWrites.clear();
|
|
22206
|
+
lastTodoWriteSeq = -1;
|
|
22075
22207
|
state.working = true;
|
|
22076
22208
|
state.turnStart = Date.now();
|
|
22077
22209
|
state.responseChars = 0;
|
|
@@ -22086,6 +22218,7 @@ ${output}
|
|
|
22086
22218
|
case "turn/end": {
|
|
22087
22219
|
cancelInFlight = false;
|
|
22088
22220
|
state.cancelPending = false;
|
|
22221
|
+
pendingTodoWrites.clear();
|
|
22089
22222
|
settleStreaming();
|
|
22090
22223
|
state.working = false;
|
|
22091
22224
|
state.activeToolCount = 0;
|
|
@@ -22149,7 +22282,10 @@ ${output}
|
|
|
22149
22282
|
default:
|
|
22150
22283
|
if (event.type === "todo/write") {
|
|
22151
22284
|
const todos = todoPanelItems(event.data);
|
|
22152
|
-
if (todos !== void 0)
|
|
22285
|
+
if (todos !== void 0) {
|
|
22286
|
+
state.todos = todos;
|
|
22287
|
+
lastTodoWriteSeq = event.seq;
|
|
22288
|
+
}
|
|
22153
22289
|
break;
|
|
22154
22290
|
}
|
|
22155
22291
|
if (event.type === "agent-preset/selected") {
|
|
@@ -22465,10 +22601,19 @@ ${output}
|
|
|
22465
22601
|
if (child?.session) {
|
|
22466
22602
|
subagentStore.linkSession(info.id, child.session);
|
|
22467
22603
|
const model = child.options?.model ?? child.options?.provider;
|
|
22468
|
-
if (model)
|
|
22469
|
-
|
|
22470
|
-
|
|
22471
|
-
|
|
22604
|
+
if (model) {
|
|
22605
|
+
const provider = child.options?.provider ?? info.provider;
|
|
22606
|
+
subagentStore.patch(info.id, {
|
|
22607
|
+
model,
|
|
22608
|
+
provider
|
|
22609
|
+
});
|
|
22610
|
+
resolveSubagentModelName(provider, model).then((name) => {
|
|
22611
|
+
if (name === void 0) return;
|
|
22612
|
+
subagentStore.patch(info.id, { modelName: name });
|
|
22613
|
+
syncSubagentsNow();
|
|
22614
|
+
state.emit();
|
|
22615
|
+
});
|
|
22616
|
+
}
|
|
22472
22617
|
}
|
|
22473
22618
|
} catch {}
|
|
22474
22619
|
syncSubagentsNow();
|
|
@@ -23003,7 +23148,7 @@ async function expandMentions(fs, cwd, text, attachments, stagedImages) {
|
|
|
23003
23148
|
};
|
|
23004
23149
|
}
|
|
23005
23150
|
//#endregion
|
|
23006
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
23151
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/childStderr.js
|
|
23007
23152
|
/**
|
|
23008
23153
|
* Child-process stderr guard (issue #17).
|
|
23009
23154
|
*
|
|
@@ -23172,7 +23317,7 @@ function createChildStderrReporter(notify, options = {}) {
|
|
|
23172
23317
|
};
|
|
23173
23318
|
}
|
|
23174
23319
|
//#endregion
|
|
23175
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
23320
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/startupTrace.js
|
|
23176
23321
|
/** Opt-in startup timings; labels never contain paths, Session identities, or credentials. */
|
|
23177
23322
|
/**
|
|
23178
23323
|
* Measure one initialization operation without changing its result or failure.
|
|
@@ -23191,7 +23336,7 @@ async function traceTuiStartup(phase, operation) {
|
|
|
23191
23336
|
}
|
|
23192
23337
|
}
|
|
23193
23338
|
//#endregion
|
|
23194
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
23339
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions.js
|
|
23195
23340
|
/**
|
|
23196
23341
|
* Ask-user-question store — the UI-side half of the DSH user-interaction
|
|
23197
23342
|
* seam (`ctx.userQuestions`). The harness's model-facing
|
|
@@ -23431,7 +23576,7 @@ var QuestionStore = class {
|
|
|
23431
23576
|
}
|
|
23432
23577
|
};
|
|
23433
23578
|
//#endregion
|
|
23434
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
23579
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerGuard.js
|
|
23435
23580
|
/**
|
|
23436
23581
|
* Question-provider seat guard (issue #98 security follow-up).
|
|
23437
23582
|
*
|
|
@@ -23543,7 +23688,7 @@ function incumbentQuestionProviderId(service) {
|
|
|
23543
23688
|
} catch {}
|
|
23544
23689
|
}
|
|
23545
23690
|
//#endregion
|
|
23546
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
23691
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/questions-answerer.js
|
|
23547
23692
|
/**
|
|
23548
23693
|
* User-question answerer compatibility.
|
|
23549
23694
|
*
|
|
@@ -23602,7 +23747,7 @@ function prepareQuestionAnswerer(ctx, service, answerer) {
|
|
|
23602
23747
|
}
|
|
23603
23748
|
}
|
|
23604
23749
|
//#endregion
|
|
23605
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
23750
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/approvals.js
|
|
23606
23751
|
/**
|
|
23607
23752
|
* Approval store — the UI-side answerer half of the DSH approval seam
|
|
23608
23753
|
* (`ctx.approval`). The harness's permission layer asks
|
|
@@ -23996,7 +24141,7 @@ var ApprovalStore = class {
|
|
|
23996
24141
|
}
|
|
23997
24142
|
};
|
|
23998
24143
|
//#endregion
|
|
23999
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24144
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/promptDebug.js
|
|
24000
24145
|
/**
|
|
24001
24146
|
* On-demand capture of every final AgentLoop request context observed for a
|
|
24002
24147
|
* live session.
|
|
@@ -24142,7 +24287,7 @@ function registerPromptDebug(ctx) {
|
|
|
24142
24287
|
}));
|
|
24143
24288
|
}
|
|
24144
24289
|
//#endregion
|
|
24145
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24290
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/migrationPrefs.js
|
|
24146
24291
|
/**
|
|
24147
24292
|
* One-time local migrations (`~/.chatcode-cli/tui/migrations.json`), keyed by stable
|
|
24148
24293
|
* migration id → ISO timestamp. Named keys (not a bare flag) so later
|
|
@@ -24233,7 +24378,7 @@ async function commitFullscreenFactoryMigration(plan, options) {
|
|
|
24233
24378
|
} catch {}
|
|
24234
24379
|
}
|
|
24235
24380
|
//#endregion
|
|
24236
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24381
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/retired-packaged-presets.js
|
|
24237
24382
|
const OWNER = "@chatcode/cco-tui";
|
|
24238
24383
|
const MARKER = ".dsh-tui-managed.json";
|
|
24239
24384
|
const RETIRED_PACKAGED_PRESETS = ["liangshen"];
|
|
@@ -24275,7 +24420,7 @@ function cleanupRetiredPackagedPresets(options = {}) {
|
|
|
24275
24420
|
return results;
|
|
24276
24421
|
}
|
|
24277
24422
|
//#endregion
|
|
24278
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24423
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/view.js
|
|
24279
24424
|
/** The browser's default view: this project, conversations only. */
|
|
24280
24425
|
const DEFAULT_FILTERS = {
|
|
24281
24426
|
query: "",
|
|
@@ -24609,7 +24754,7 @@ function windowEnd(rows, top, budget) {
|
|
|
24609
24754
|
return at;
|
|
24610
24755
|
}
|
|
24611
24756
|
//#endregion
|
|
24612
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24757
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sessions/resume.js
|
|
24613
24758
|
/** Resolve launch-time resume flags against persisted conversations. */
|
|
24614
24759
|
/**
|
|
24615
24760
|
* Select the latest conversation in the exact launch directory for bare flags.
|
|
@@ -24629,7 +24774,7 @@ async function resolveStartupSessionId(source, argv, cwd) {
|
|
|
24629
24774
|
return latest.id;
|
|
24630
24775
|
}
|
|
24631
24776
|
//#endregion
|
|
24632
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24777
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workspaceRoot.js
|
|
24633
24778
|
/** Resolve a fresh session's working directory without widening it to a Git ancestor. */
|
|
24634
24779
|
/**
|
|
24635
24780
|
* Explicit configuration wins; otherwise keep the invoking directory, even
|
|
@@ -24642,7 +24787,7 @@ function resolveSessionCwd(configured, start = process.cwd()) {
|
|
|
24642
24787
|
return resolve(start, configured ?? "");
|
|
24643
24788
|
}
|
|
24644
24789
|
//#endregion
|
|
24645
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24790
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/openExternal.js
|
|
24646
24791
|
/**
|
|
24647
24792
|
* Open URLs, files and folders with the platform's default handler, fully
|
|
24648
24793
|
* detached from the TUI process (fire-and-forget: no stdio pipes, no wait,
|
|
@@ -24803,7 +24948,7 @@ function revealInFileManager(filePath) {
|
|
|
24803
24948
|
if (existsSync(dir)) openExternal(dir);
|
|
24804
24949
|
}
|
|
24805
24950
|
//#endregion
|
|
24806
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24951
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeApi.js
|
|
24807
24952
|
/** ChatCode API request capability. Credentials stay in the host adapter. */
|
|
24808
24953
|
const CHATCODE_API_BASE_URL = "https://chatcode.chinaunicom.cn";
|
|
24809
24954
|
/** CVP(天梯)平台基础 URL,承载 modules/notification 等公开/独立鉴权模块接口。 */
|
|
@@ -24811,7 +24956,7 @@ const CVP_CHATCODE_API_URL = `${CHATCODE_API_BASE_URL}/cvp`;
|
|
|
24811
24956
|
/** Each mounted TUI receives its own host-authorized request function. */
|
|
24812
24957
|
const ChatCodeApiContext = (0, import_react.createContext)(void 0);
|
|
24813
24958
|
//#endregion
|
|
24814
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
24959
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/releaseNotes.js
|
|
24815
24960
|
const RELEASE_NOTE_PATH = join(DATA_DIR, "release-notes.json");
|
|
24816
24961
|
const RELEASE_NOTE_ENDPOINT = `${CHATCODE_API_BASE_URL}/chatcode/api/v1/cli/version/release-note`;
|
|
24817
24962
|
function acknowledgedVersion() {
|
|
@@ -24907,7 +25052,7 @@ var ReleaseNotesStore = class {
|
|
|
24907
25052
|
}
|
|
24908
25053
|
};
|
|
24909
25054
|
//#endregion
|
|
24910
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25055
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/version.js
|
|
24911
25056
|
const MAIN_CLI_PACKAGES = new Set(["@chatcode/chatcode-cli", "@chatcode/chatcode-cli-test"]);
|
|
24912
25057
|
const VERSION_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u;
|
|
24913
25058
|
const PRODUCT_VERSION_ENV = "CHATCODE_CLI_PRODUCT_VERSION";
|
|
@@ -24947,7 +25092,7 @@ function resolveProductVersion(options = {}) {
|
|
|
24947
25092
|
/** Product version shown by the TUI, shared with `cco --version` and Web. */
|
|
24948
25093
|
const PRODUCT_VERSION = resolveProductVersion();
|
|
24949
25094
|
//#endregion
|
|
24950
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25095
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/execFileNoThrow.js
|
|
24951
25096
|
const MAX_CAPTURE_BYTES = 64 * 1024;
|
|
24952
25097
|
function appendBounded(chunks, chunk, total) {
|
|
24953
25098
|
if (total.value >= MAX_CAPTURE_BYTES) return;
|
|
@@ -25017,7 +25162,7 @@ function execFileNoThrow(file, args = [], options) {
|
|
|
25017
25162
|
});
|
|
25018
25163
|
}
|
|
25019
25164
|
//#endregion
|
|
25020
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25165
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/herdr.js
|
|
25021
25166
|
const REPORT_TIMEOUT_MS = 2e3;
|
|
25022
25167
|
const RELEASE_TIMEOUT_MS = 500;
|
|
25023
25168
|
const RETRY_DELAYS_MS = [
|
|
@@ -25405,7 +25550,7 @@ var require_react_jsx_runtime_development = /* @__PURE__ */ __commonJSMin(((expo
|
|
|
25405
25550
|
})();
|
|
25406
25551
|
}));
|
|
25407
25552
|
//#endregion
|
|
25408
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25553
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/themePrefs.js
|
|
25409
25554
|
var import_jsx_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
25410
25555
|
if (process.env.NODE_ENV === "production") module.exports = require_react_jsx_runtime_production();
|
|
25411
25556
|
else module.exports = require_react_jsx_runtime_development();
|
|
@@ -25462,7 +25607,7 @@ function writeThemePref(name, dir = PREFS_DIR) {
|
|
|
25462
25607
|
}
|
|
25463
25608
|
}
|
|
25464
25609
|
//#endregion
|
|
25465
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25610
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRuntimeThemeSnapshot.js
|
|
25466
25611
|
const EMPTY_THEME_SNAPSHOT = Object.freeze([]);
|
|
25467
25612
|
const subscribeNoThemes = (_listener) => () => {};
|
|
25468
25613
|
/**
|
|
@@ -25490,7 +25635,7 @@ function useRuntimeThemeSnapshot(themeHost) {
|
|
|
25490
25635
|
return import_react.useSyncExternalStore(subscribeThemes, getThemeSnapshot, getThemeSnapshot);
|
|
25491
25636
|
}
|
|
25492
25637
|
//#endregion
|
|
25493
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25638
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event.js
|
|
25494
25639
|
/**
|
|
25495
25640
|
* Base class for events with immediate-propagation control.
|
|
25496
25641
|
*
|
|
@@ -25514,7 +25659,7 @@ var Event = class {
|
|
|
25514
25659
|
}
|
|
25515
25660
|
};
|
|
25516
25661
|
//#endregion
|
|
25517
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25662
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/emitter.js
|
|
25518
25663
|
/**
|
|
25519
25664
|
* Node-compatible event emitter that is aware of the `Event` class, so
|
|
25520
25665
|
* `emit` respects `stopImmediatePropagation()` on dispatched events.
|
|
@@ -25547,7 +25692,7 @@ var EventEmitter$1 = class extends EventEmitter {
|
|
|
25547
25692
|
}
|
|
25548
25693
|
};
|
|
25549
25694
|
//#endregion
|
|
25550
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25695
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/StdinContext.js
|
|
25551
25696
|
/**
|
|
25552
25697
|
* `StdinContext` is a React context, which exposes input stream.
|
|
25553
25698
|
*/
|
|
@@ -25561,14 +25706,14 @@ const StdinContext = (0, import_react.createContext)({
|
|
|
25561
25706
|
});
|
|
25562
25707
|
StdinContext.displayName = "InternalStdinContext";
|
|
25563
25708
|
//#endregion
|
|
25564
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25709
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-stdin.js
|
|
25565
25710
|
/**
|
|
25566
25711
|
* React hook exposing the stdin stream and raw-mode helpers from `StdinContext`.
|
|
25567
25712
|
* @returns the `StdinContext` value.
|
|
25568
25713
|
*/
|
|
25569
25714
|
const useStdin = () => (0, import_react.useContext)(StdinContext);
|
|
25570
25715
|
//#endregion
|
|
25571
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25716
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/ansi.js
|
|
25572
25717
|
/**
|
|
25573
25718
|
* ANSI Control Characters and Escape Sequence Introducers
|
|
25574
25719
|
*
|
|
@@ -25642,7 +25787,7 @@ function isEscFinal(byte) {
|
|
|
25642
25787
|
return byte >= 48 && byte <= 126;
|
|
25643
25788
|
}
|
|
25644
25789
|
//#endregion
|
|
25645
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
25790
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/csi.js
|
|
25646
25791
|
/**
|
|
25647
25792
|
* CSI (Control Sequence Introducer) Types
|
|
25648
25793
|
*
|
|
@@ -25965,7 +26110,7 @@ const ENABLE_WIN32_INPUT_MODE = csi("?9001h");
|
|
|
25965
26110
|
*/
|
|
25966
26111
|
const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
|
|
25967
26112
|
//#endregion
|
|
25968
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
26113
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/env.js
|
|
25969
26114
|
/**
|
|
25970
26115
|
* Minimal terminal-environment shim for the ported Ink core. The original
|
|
25971
26116
|
* module computed a richer `env` object from the Claude Code app context; the
|
|
@@ -25974,7 +26119,7 @@ const DISABLE_WIN32_INPUT_MODE = csi("?9001l");
|
|
|
25974
26119
|
*/
|
|
25975
26120
|
const env$1 = { terminal: (process.env.TERM_PROGRAM ?? process.env.TERM ?? "unknown").toLowerCase() };
|
|
25976
26121
|
//#endregion
|
|
25977
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
26122
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/osc.js
|
|
25978
26123
|
/**
|
|
25979
26124
|
* OSC (Operating System Command) Types and Parser
|
|
25980
26125
|
*/
|
|
@@ -26370,7 +26515,7 @@ function supportsTabStatus() {
|
|
|
26370
26515
|
return process.env.USER_TYPE === "ant";
|
|
26371
26516
|
}
|
|
26372
26517
|
//#endregion
|
|
26373
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
26518
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-querier.js
|
|
26374
26519
|
/**
|
|
26375
26520
|
* Query the terminal and await responses without timeouts.
|
|
26376
26521
|
*
|
|
@@ -26556,7 +26701,7 @@ var TerminalQuerier = class {
|
|
|
26556
26701
|
}
|
|
26557
26702
|
};
|
|
26558
26703
|
//#endregion
|
|
26559
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
26704
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemeProvider.js
|
|
26560
26705
|
/**
|
|
26561
26706
|
* Theme provider with terminal-background auto-detection. With no explicit
|
|
26562
26707
|
* `theme` prop, no CHATCODE_CLI_TUI_THEME override and no persisted choice
|
|
@@ -26755,7 +26900,7 @@ function useTheme() {
|
|
|
26755
26900
|
return [theme, setTheme];
|
|
26756
26901
|
}
|
|
26757
26902
|
//#endregion
|
|
26758
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
26903
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/settingsEditor.js
|
|
26759
26904
|
/**
|
|
26760
26905
|
* React-free form model behind the `/settings` screen (issue #165), mirroring
|
|
26761
26906
|
* the web front door's card-form.ts semantics: a section stages what the user
|
|
@@ -27005,7 +27150,7 @@ var SettingsForm = class {
|
|
|
27005
27150
|
}
|
|
27006
27151
|
};
|
|
27007
27152
|
//#endregion
|
|
27008
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
27153
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/reload.js
|
|
27009
27154
|
/**
|
|
27010
27155
|
* `/reload` planning — the pi-style soft reload: re-read the TUI's persisted
|
|
27011
27156
|
* preference files (`~/.chatcode-cli/tui/{theme,lang,agent-preset,model,
|
|
@@ -27854,7 +27999,7 @@ var SignalExit = class extends SignalExitBase {
|
|
|
27854
27999
|
const process$2 = globalThis.process;
|
|
27855
28000
|
const { onExit, load, unload } = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback());
|
|
27856
28001
|
//#endregion
|
|
27857
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
28002
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/enums.js
|
|
27858
28003
|
/**
|
|
27859
28004
|
* Yoga enums — ported from yoga-layout/src/generated/YGEnums.ts
|
|
27860
28005
|
* Kept as `const` objects (not TS enums) per repo convention.
|
|
@@ -27986,7 +28131,7 @@ const Wrap = {
|
|
|
27986
28131
|
WrapReverse: 2
|
|
27987
28132
|
};
|
|
27988
28133
|
//#endregion
|
|
27989
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
28134
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/native-ts/yoga-layout/index.js
|
|
27990
28135
|
/**
|
|
27991
28136
|
* Pure-TypeScript port of yoga-layout (Meta's flexbox engine).
|
|
27992
28137
|
*
|
|
@@ -30437,7 +30582,7 @@ Object.defineProperties(createChalk.prototype, {
|
|
|
30437
30582
|
const chalk = createChalk();
|
|
30438
30583
|
createChalk({ level: stderrColor ? stderrColor.level : 0 });
|
|
30439
30584
|
//#endregion
|
|
30440
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
30585
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/colorize.js
|
|
30441
30586
|
/**
|
|
30442
30587
|
* xterm.js (VS Code, Cursor, code-server, Coder) has supported truecolor
|
|
30443
30588
|
* since 2017, but code-server/Coder containers often don't set
|
|
@@ -30568,7 +30713,7 @@ function applyColor(text, color) {
|
|
|
30568
30713
|
return colorize(text, color, "foreground");
|
|
30569
30714
|
}
|
|
30570
30715
|
//#endregion
|
|
30571
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
30716
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/envUtils.js
|
|
30572
30717
|
/**
|
|
30573
30718
|
* Environment truthiness check for the ported Ink core. Accepts the common
|
|
30574
30719
|
* shell truthy spellings (`1`, `true`, `yes`, `on`).
|
|
@@ -30586,7 +30731,7 @@ function isEnvTruthy(value) {
|
|
|
30586
30731
|
].includes(value.toLowerCase());
|
|
30587
30732
|
}
|
|
30588
30733
|
//#endregion
|
|
30589
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
30734
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fullscreen.js
|
|
30590
30735
|
/**
|
|
30591
30736
|
* Whether mouse click handling is disabled for the ported Ink core. dsh-tui
|
|
30592
30737
|
* reads its own env flag (`CHATCODE_CLI_TUI_DISABLE_MOUSE`); the original module
|
|
@@ -30597,7 +30742,7 @@ function isMouseClicksDisabled() {
|
|
|
30597
30742
|
return isEnvTruthy(readTuiEnv("DISABLE_MOUSE"));
|
|
30598
30743
|
}
|
|
30599
30744
|
//#endregion
|
|
30600
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
30745
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/input-suppression.js
|
|
30601
30746
|
/**
|
|
30602
30747
|
* Input suppression window for terminal handoffs (issue #123): when stdin is
|
|
30603
30748
|
* handed to an external TUI (full-screen editor) and back, the tty can
|
|
@@ -30624,7 +30769,7 @@ function isInputSuppressed() {
|
|
|
30624
30769
|
return Date.now() < suppressedUntil;
|
|
30625
30770
|
}
|
|
30626
30771
|
//#endregion
|
|
30627
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
30772
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/tokenize.js
|
|
30628
30773
|
/**
|
|
30629
30774
|
* Input Tokenizer - Escape sequence boundary detection
|
|
30630
30775
|
*
|
|
@@ -30822,7 +30967,7 @@ function tokenize$2(input, initialState, initialBuffer, flush, x10Mouse, splitIn
|
|
|
30822
30967
|
};
|
|
30823
30968
|
}
|
|
30824
30969
|
//#endregion
|
|
30825
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
30970
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/parse-keypress.js
|
|
30826
30971
|
/**
|
|
30827
30972
|
* Keyboard input parser - converts terminal input to key events
|
|
30828
30973
|
*
|
|
@@ -31897,7 +32042,7 @@ function createWheelKey(s, name, col, row, button) {
|
|
|
31897
32042
|
};
|
|
31898
32043
|
}
|
|
31899
32044
|
//#endregion
|
|
31900
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
32045
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/input-event.js
|
|
31901
32046
|
function parseKey(keypress) {
|
|
31902
32047
|
const key = {
|
|
31903
32048
|
upArrow: keypress.name === "up",
|
|
@@ -31982,7 +32127,7 @@ var InputEvent = class extends Event {
|
|
|
31982
32127
|
}
|
|
31983
32128
|
};
|
|
31984
32129
|
//#endregion
|
|
31985
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
32130
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-focus-event.js
|
|
31986
32131
|
/**
|
|
31987
32132
|
* Event fired when the terminal window gains or loses focus.
|
|
31988
32133
|
*
|
|
@@ -32001,7 +32146,7 @@ var TerminalFocusEvent = class extends Event {
|
|
|
32001
32146
|
}
|
|
32002
32147
|
};
|
|
32003
32148
|
//#endregion
|
|
32004
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
32149
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/node-cache.js
|
|
32005
32150
|
/** Layout bounds cached per rendered node, used for blitting and clearing. */
|
|
32006
32151
|
const nodeCache = /* @__PURE__ */ new WeakMap();
|
|
32007
32152
|
/** Rects of removed children that need clearing on next render */
|
|
@@ -32039,7 +32184,7 @@ function consumeAbsoluteRemovedFlag() {
|
|
|
32039
32184
|
return had;
|
|
32040
32185
|
}
|
|
32041
32186
|
//#endregion
|
|
32042
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
32187
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/terminal-event.js
|
|
32043
32188
|
/**
|
|
32044
32189
|
* Base class for all terminal events with DOM-style propagation.
|
|
32045
32190
|
*
|
|
@@ -32168,7 +32313,7 @@ var TerminalEvent = class extends Event {
|
|
|
32168
32313
|
_prepareForTarget(_target) {}
|
|
32169
32314
|
};
|
|
32170
32315
|
//#endregion
|
|
32171
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
32316
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/pointer-event.js
|
|
32172
32317
|
/**
|
|
32173
32318
|
* Base class for pointer-derived terminal events (click, wheel, hover).
|
|
32174
32319
|
*
|
|
@@ -32229,7 +32374,7 @@ var PointerEvent = class extends TerminalEvent {
|
|
|
32229
32374
|
}
|
|
32230
32375
|
};
|
|
32231
32376
|
//#endregion
|
|
32232
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
32377
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/drag-event.js
|
|
32233
32378
|
/**
|
|
32234
32379
|
* Component-level drag event (DOM HTML5 drag semantics subset).
|
|
32235
32380
|
*
|
|
@@ -48337,7 +48482,7 @@ var require_react_reconciler_development = /* @__PURE__ */ __commonJSMin(((expor
|
|
|
48337
48482
|
}, module.exports.default = module.exports, Object.defineProperty(module.exports, "__esModule", { value: !0 }));
|
|
48338
48483
|
}));
|
|
48339
48484
|
//#endregion
|
|
48340
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
48485
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/node.js
|
|
48341
48486
|
var import_react_reconciler = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
48342
48487
|
if (process.env.NODE_ENV === "production") module.exports = require_react_reconciler_production();
|
|
48343
48488
|
else module.exports = require_react_reconciler_development();
|
|
@@ -48413,7 +48558,7 @@ const LayoutMeasureMode = {
|
|
|
48413
48558
|
AtMost: "at-most"
|
|
48414
48559
|
};
|
|
48415
48560
|
//#endregion
|
|
48416
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
48561
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/yoga.js
|
|
48417
48562
|
const EDGE_MAP = {
|
|
48418
48563
|
all: Edge.All,
|
|
48419
48564
|
horizontal: Edge.Horizontal,
|
|
@@ -48640,7 +48785,7 @@ function createYogaLayoutNode() {
|
|
|
48640
48785
|
return new YogaLayoutNode(YOGA_INSTANCE.Node.create());
|
|
48641
48786
|
}
|
|
48642
48787
|
//#endregion
|
|
48643
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
48788
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/engine.js
|
|
48644
48789
|
/**
|
|
48645
48790
|
* Create a new layout node backed by the Yoga adapter.
|
|
48646
48791
|
* @returns an empty layout node with no children, styles, or measure function.
|
|
@@ -48649,7 +48794,7 @@ function createLayoutNode() {
|
|
|
48649
48794
|
return createYogaLayoutNode();
|
|
48650
48795
|
}
|
|
48651
48796
|
//#endregion
|
|
48652
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
48797
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/line-width-cache.js
|
|
48653
48798
|
const cache = /* @__PURE__ */ new Map();
|
|
48654
48799
|
const MAX_CACHE_SIZE = 4096;
|
|
48655
48800
|
const MAX_CACHE_CHARS = 1e5;
|
|
@@ -48685,7 +48830,7 @@ function lineWidth(line) {
|
|
|
48685
48830
|
return width;
|
|
48686
48831
|
}
|
|
48687
48832
|
//#endregion
|
|
48688
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
48833
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-text.js
|
|
48689
48834
|
/**
|
|
48690
48835
|
* Measure wrapped text dimensions in a single pass.
|
|
48691
48836
|
* @param text - the text to measure.
|
|
@@ -48716,7 +48861,7 @@ function measureText(text, maxWidth) {
|
|
|
48716
48861
|
};
|
|
48717
48862
|
}
|
|
48718
48863
|
//#endregion
|
|
48719
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
48864
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/squash-text-nodes.js
|
|
48720
48865
|
/**
|
|
48721
48866
|
* Squash text nodes into styled segments, propagating styles down through the tree.
|
|
48722
48867
|
* This allows structured styling without relying on ANSI string transforms.
|
|
@@ -48764,7 +48909,7 @@ function squashTextNodes(node) {
|
|
|
48764
48909
|
return text;
|
|
48765
48910
|
}
|
|
48766
48911
|
//#endregion
|
|
48767
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
48912
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/tabstops.js
|
|
48768
48913
|
const DEFAULT_TAB_INTERVAL = 8;
|
|
48769
48914
|
/**
|
|
48770
48915
|
* Expand tab characters to spaces at fixed column intervals, preserving
|
|
@@ -49214,7 +49359,7 @@ function tokenize$1(str, endChar = Number.POSITIVE_INFINITY) {
|
|
|
49214
49359
|
return ret;
|
|
49215
49360
|
}
|
|
49216
49361
|
//#endregion
|
|
49217
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
49362
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sliceAnsi.js
|
|
49218
49363
|
function isEndCode(code) {
|
|
49219
49364
|
return code.code === code.endCode;
|
|
49220
49365
|
}
|
|
@@ -49831,7 +49976,7 @@ function wrapAnsi$1(string, columns, options) {
|
|
|
49831
49976
|
return normalizeText(String(string)).replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs$1(line), columns, options)).join("\n");
|
|
49832
49977
|
}
|
|
49833
49978
|
//#endregion
|
|
49834
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
49979
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrapAnsi.js
|
|
49835
49980
|
const wrapAnsiBun = typeof Bun !== "undefined" && typeof Bun.wrapAnsi === "function" ? Bun.wrapAnsi : null;
|
|
49836
49981
|
const SLOT_MIN_LENGTH = 2048;
|
|
49837
49982
|
let slot = null;
|
|
@@ -49878,7 +50023,7 @@ function wrapAnsiNpmIncremental(input, columns, options) {
|
|
|
49878
50023
|
*/
|
|
49879
50024
|
const wrapAnsi = wrapAnsiBun ?? wrapAnsiNpmIncremental;
|
|
49880
50025
|
//#endregion
|
|
49881
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50026
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/wrap-text.js
|
|
49882
50027
|
const ELLIPSIS = "…";
|
|
49883
50028
|
const WRAP_CACHE_MAX_ENTRIES = 2048;
|
|
49884
50029
|
const WRAP_CACHE_MAX_CHARS = 2e6;
|
|
@@ -49942,7 +50087,7 @@ function wrapText$1(text, maxWidth, wrapType) {
|
|
|
49942
50087
|
return text;
|
|
49943
50088
|
}
|
|
49944
50089
|
//#endregion
|
|
49945
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50090
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/dom.js
|
|
49946
50091
|
/**
|
|
49947
50092
|
* Create an element node of the given kind, allocating its yoga layout node
|
|
49948
50093
|
* unless the kind renders without layout (`ink-virtual-text`, `ink-link`,
|
|
@@ -50262,7 +50407,7 @@ function findOwnerChainAtRow(root, y) {
|
|
|
50262
50407
|
}
|
|
50263
50408
|
}
|
|
50264
50409
|
//#endregion
|
|
50265
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50410
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/event-handlers.js
|
|
50266
50411
|
/**
|
|
50267
50412
|
* Reverse lookup: event type string → handler prop names.
|
|
50268
50413
|
* Used by the dispatcher for O(1) handler lookup per node.
|
|
@@ -50316,7 +50461,7 @@ const EVENT_HANDLER_PROPS = new Set([
|
|
|
50316
50461
|
"onWheel"
|
|
50317
50462
|
]);
|
|
50318
50463
|
//#endregion
|
|
50319
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50464
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/dispatcher.js
|
|
50320
50465
|
function getHandler(node, eventType, capture) {
|
|
50321
50466
|
const handlers = node._eventHandlers;
|
|
50322
50467
|
if (!handlers) return void 0;
|
|
@@ -50484,7 +50629,7 @@ var Dispatcher = class {
|
|
|
50484
50629
|
}
|
|
50485
50630
|
};
|
|
50486
50631
|
//#endregion
|
|
50487
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50632
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/focus-event.js
|
|
50488
50633
|
/**
|
|
50489
50634
|
* Focus event for component focus changes.
|
|
50490
50635
|
*
|
|
@@ -50509,7 +50654,7 @@ var FocusEvent = class extends TerminalEvent {
|
|
|
50509
50654
|
}
|
|
50510
50655
|
};
|
|
50511
50656
|
//#endregion
|
|
50512
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50657
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/focus.js
|
|
50513
50658
|
const MAX_FOCUS_STACK = 32;
|
|
50514
50659
|
/**
|
|
50515
50660
|
* DOM-like focus manager for the Ink terminal UI.
|
|
@@ -50665,7 +50810,7 @@ function getFocusManager(node) {
|
|
|
50665
50810
|
return getRootNode(node).focusManager;
|
|
50666
50811
|
}
|
|
50667
50812
|
//#endregion
|
|
50668
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50813
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/styles.js
|
|
50669
50814
|
const applyPositionStyles = (node, style) => {
|
|
50670
50815
|
if ("position" in style) node.setPositionType(style.position === "absolute" ? LayoutPositionType.Absolute : LayoutPositionType.Relative);
|
|
50671
50816
|
if ("top" in style) applyPositionEdge(node, "top", style.top);
|
|
@@ -50800,7 +50945,7 @@ const styles = (node, style = {}, resolvedStyle) => {
|
|
|
50800
50945
|
applyGapStyles(node, style);
|
|
50801
50946
|
};
|
|
50802
50947
|
//#endregion
|
|
50803
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
50948
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/reconciler.js
|
|
50804
50949
|
if (process.env.NODE_ENV === "development") try {
|
|
50805
50950
|
import("./devtools-la_KkjCS.js");
|
|
50806
50951
|
} catch (error) {
|
|
@@ -51120,7 +51265,7 @@ const reconciler = (0, import_react_reconciler.default)({
|
|
|
51120
51265
|
});
|
|
51121
51266
|
dispatcher.discreteUpdates = reconciler.discreteUpdates.bind(reconciler);
|
|
51122
51267
|
//#endregion
|
|
51123
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
51268
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/layout/geometry.js
|
|
51124
51269
|
/**
|
|
51125
51270
|
* Compute the smallest rectangle containing both input rectangles.
|
|
51126
51271
|
* @param a - the first rectangle.
|
|
@@ -51152,7 +51297,7 @@ function clamp(value, min, max) {
|
|
|
51152
51297
|
return value;
|
|
51153
51298
|
}
|
|
51154
51299
|
//#endregion
|
|
51155
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
51300
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/warn.js
|
|
51156
51301
|
/**
|
|
51157
51302
|
* Log a warning when a value is present but not an integer.
|
|
51158
51303
|
* @param value - the value to check; undefined is skipped silently.
|
|
@@ -51164,7 +51309,7 @@ function ifNotInteger(value, name) {
|
|
|
51164
51309
|
logForDebugging(`${name} should be an integer, got ${value}`, { level: "warn" });
|
|
51165
51310
|
}
|
|
51166
51311
|
//#endregion
|
|
51167
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
51312
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/screen.js
|
|
51168
51313
|
/**
|
|
51169
51314
|
* Pool of character strings shared across all screens.
|
|
51170
51315
|
* With a shared pool, interned char IDs are valid across screens, so
|
|
@@ -52233,7 +52378,7 @@ function markNoSelectRegion(screen, x, y, width, height) {
|
|
|
52233
52378
|
}
|
|
52234
52379
|
}
|
|
52235
52380
|
//#endregion
|
|
52236
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
52381
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/selection.js
|
|
52237
52382
|
/**
|
|
52238
52383
|
* Text selection state for fullscreen mode.
|
|
52239
52384
|
*
|
|
@@ -53199,7 +53344,7 @@ function applySelectionOverlay(screen, selection, stylePool) {
|
|
|
53199
53344
|
}
|
|
53200
53345
|
}
|
|
53201
53346
|
//#endregion
|
|
53202
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53347
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/dec.js
|
|
53203
53348
|
/**
|
|
53204
53349
|
* DEC (Digital Equipment Corporation) Private Mode Sequences
|
|
53205
53350
|
*
|
|
@@ -53265,7 +53410,7 @@ const ENABLE_MOUSE_TRACKING = decset(DEC.MOUSE_NORMAL) + decset(DEC.MOUSE_BUTTON
|
|
|
53265
53410
|
/** Disable all mouse tracking modes enabled by ENABLE_MOUSE_TRACKING. */
|
|
53266
53411
|
const DISABLE_MOUSE_TRACKING = decreset(DEC.MOUSE_SGR) + decreset(DEC.MOUSE_ANY) + decreset(DEC.MOUSE_BUTTON) + decreset(DEC.MOUSE_NORMAL);
|
|
53267
53412
|
//#endregion
|
|
53268
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53413
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal.js
|
|
53269
53414
|
/**
|
|
53270
53415
|
* True when running inside a JetBrains IDE terminal (JediTerm). The IDE
|
|
53271
53416
|
* injects `TERMINAL_EMULATOR=JetBrains-JediTerm` into the pty environment of
|
|
@@ -53507,7 +53652,7 @@ function writeDiffToTerminal(terminal, diff, skipSyncMarkers = false) {
|
|
|
53507
53652
|
terminal.stdout.write(buffer);
|
|
53508
53653
|
}
|
|
53509
53654
|
//#endregion
|
|
53510
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53655
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/terminal-focus-state.js
|
|
53511
53656
|
let focusState = "unknown";
|
|
53512
53657
|
const resolvers = /* @__PURE__ */ new Set();
|
|
53513
53658
|
const subscribers = /* @__PURE__ */ new Set();
|
|
@@ -53551,7 +53696,7 @@ function subscribeTerminalFocus(cb) {
|
|
|
53551
53696
|
};
|
|
53552
53697
|
}
|
|
53553
53698
|
//#endregion
|
|
53554
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53699
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AppContext.js
|
|
53555
53700
|
/**
|
|
53556
53701
|
* `AppContext` is a React context, which exposes a method to manually exit the app (unmount).
|
|
53557
53702
|
*/
|
|
@@ -53596,13 +53741,13 @@ var require_react_compiler_runtime_development = /* @__PURE__ */ __commonJSMin((
|
|
|
53596
53741
|
})();
|
|
53597
53742
|
}));
|
|
53598
53743
|
//#endregion
|
|
53599
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53744
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/constants.js
|
|
53600
53745
|
var import_compiler_runtime = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
53601
53746
|
if (process.env.NODE_ENV === "production") module.exports = require_react_compiler_runtime_production();
|
|
53602
53747
|
else module.exports = require_react_compiler_runtime_development();
|
|
53603
53748
|
})))();
|
|
53604
53749
|
//#endregion
|
|
53605
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53750
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/geometry-trace.js
|
|
53606
53751
|
/**
|
|
53607
53752
|
* Geometry forensics — per-frame scroll-geometry trace (issues #421/#433).
|
|
53608
53753
|
*
|
|
@@ -53682,7 +53827,7 @@ function endGeometryFrame(durationMs) {
|
|
|
53682
53827
|
};
|
|
53683
53828
|
}
|
|
53684
53829
|
//#endregion
|
|
53685
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53830
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalFocusContext.js
|
|
53686
53831
|
const TerminalFocusContext = (0, import_react.createContext)({
|
|
53687
53832
|
isTerminalFocused: true,
|
|
53688
53833
|
terminalFocusState: "unknown"
|
|
@@ -53717,7 +53862,7 @@ function TerminalFocusProvider(t0) {
|
|
|
53717
53862
|
return t2;
|
|
53718
53863
|
}
|
|
53719
53864
|
//#endregion
|
|
53720
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53865
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-focus.js
|
|
53721
53866
|
/**
|
|
53722
53867
|
* Hook to check if the terminal has focus.
|
|
53723
53868
|
*
|
|
@@ -53732,7 +53877,7 @@ function useTerminalFocus() {
|
|
|
53732
53877
|
return isTerminalFocused;
|
|
53733
53878
|
}
|
|
53734
53879
|
//#endregion
|
|
53735
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53880
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ClockContext.js
|
|
53736
53881
|
function createClock(tickIntervalMs) {
|
|
53737
53882
|
const subscribers = /* @__PURE__ */ new Map();
|
|
53738
53883
|
let interval = null;
|
|
@@ -53829,7 +53974,7 @@ function _temp() {
|
|
|
53829
53974
|
return createClock(16);
|
|
53830
53975
|
}
|
|
53831
53976
|
//#endregion
|
|
53832
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
53977
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/CursorDeclarationContext.js
|
|
53833
53978
|
/**
|
|
53834
53979
|
* React context that provides the cursor-declaration setter to descendants.
|
|
53835
53980
|
*/
|
|
@@ -53869,7 +54014,7 @@ var require_escape_string_regexp = /* @__PURE__ */ __commonJSMin(((exports, modu
|
|
|
53869
54014
|
};
|
|
53870
54015
|
}));
|
|
53871
54016
|
//#endregion
|
|
53872
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
54017
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Box.js
|
|
53873
54018
|
var import_stack_utils = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
53874
54019
|
const escapeStringRegexp = require_escape_string_regexp();
|
|
53875
54020
|
const cwd = typeof process === "object" && process && typeof process.cwd === "function" ? process.cwd() : ".";
|
|
@@ -54237,7 +54382,7 @@ function Box(t0) {
|
|
|
54237
54382
|
return t4;
|
|
54238
54383
|
}
|
|
54239
54384
|
//#endregion
|
|
54240
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
54385
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Text.js
|
|
54241
54386
|
const memoizedStylesForWrap = {
|
|
54242
54387
|
wrap: {
|
|
54243
54388
|
flexGrow: 0,
|
|
@@ -54389,7 +54534,7 @@ function Text(t0) {
|
|
|
54389
54534
|
return t16;
|
|
54390
54535
|
}
|
|
54391
54536
|
//#endregion
|
|
54392
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
54537
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ErrorOverview.js
|
|
54393
54538
|
const cleanupPath = (path) => {
|
|
54394
54539
|
return path?.replace(`file://${process.cwd()}/`, "");
|
|
54395
54540
|
};
|
|
@@ -54494,10 +54639,10 @@ function ErrorOverview({ error }) {
|
|
|
54494
54639
|
});
|
|
54495
54640
|
}
|
|
54496
54641
|
//#endregion
|
|
54497
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
54642
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/TerminalSizeContext.js
|
|
54498
54643
|
const TerminalSizeContext = (0, import_react.createContext)(null);
|
|
54499
54644
|
//#endregion
|
|
54500
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
54645
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/useTerminalNotification.js
|
|
54501
54646
|
/**
|
|
54502
54647
|
* React context providing a raw terminal write function. Null until a
|
|
54503
54648
|
* TerminalWriteProvider is mounted.
|
|
@@ -54508,7 +54653,7 @@ const TerminalWriteContext = (0, import_react.createContext)(null);
|
|
|
54508
54653
|
*/
|
|
54509
54654
|
const TerminalWriteProvider = TerminalWriteContext.Provider;
|
|
54510
54655
|
//#endregion
|
|
54511
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
54656
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/App.js
|
|
54512
54657
|
const SUPPORTS_SUSPEND = process.platform !== "win32";
|
|
54513
54658
|
const STDIN_RESUME_GAP_MS = 5e3;
|
|
54514
54659
|
const MULTI_CLICK_TIMEOUT_MS = 500;
|
|
@@ -55034,7 +55179,7 @@ function handleMouseEvent(app, m) {
|
|
|
55034
55179
|
}
|
|
55035
55180
|
}
|
|
55036
55181
|
//#endregion
|
|
55037
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55182
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/keyboard-event.js
|
|
55038
55183
|
/**
|
|
55039
55184
|
* Keyboard event dispatched through the DOM tree via capture/bubble.
|
|
55040
55185
|
*
|
|
@@ -55094,7 +55239,7 @@ function keyFromParsed(parsed) {
|
|
|
55094
55239
|
return name || seq;
|
|
55095
55240
|
}
|
|
55096
55241
|
//#endregion
|
|
55097
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55242
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/frame.js
|
|
55098
55243
|
/**
|
|
55099
55244
|
* Create an empty frame with a zero-size screen, the given viewport, and a
|
|
55100
55245
|
* visible cursor at the origin.
|
|
@@ -55120,7 +55265,7 @@ function emptyFrame(rows, columns, stylePool, charPool, hyperlinkPool) {
|
|
|
55120
55265
|
};
|
|
55121
55266
|
}
|
|
55122
55267
|
//#endregion
|
|
55123
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55268
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/click-event.js
|
|
55124
55269
|
/**
|
|
55125
55270
|
* Mouse click event. Fired on left-button release without drag, only when
|
|
55126
55271
|
* mouse tracking is enabled (i.e. inside <AlternateScreen>).
|
|
@@ -55151,7 +55296,7 @@ var ClickEvent = class extends PointerEvent {
|
|
|
55151
55296
|
}
|
|
55152
55297
|
};
|
|
55153
55298
|
//#endregion
|
|
55154
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55299
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/context-menu-event.js
|
|
55155
55300
|
/**
|
|
55156
55301
|
* Mouse context-menu event. Fired on right-button press (SGR button 2,
|
|
55157
55302
|
* low bits of the raw button byte), mirroring the DOM `contextmenu` event
|
|
@@ -55175,7 +55320,7 @@ var ContextMenuEvent = class extends PointerEvent {
|
|
|
55175
55320
|
}
|
|
55176
55321
|
};
|
|
55177
55322
|
//#endregion
|
|
55178
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55323
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/events/wheel-event.js
|
|
55179
55324
|
/**
|
|
55180
55325
|
* Mouse wheel event dispatched to the ScrollBox under the pointer.
|
|
55181
55326
|
*
|
|
@@ -55211,7 +55356,7 @@ function indentString(string, count = 1, options = {}) {
|
|
|
55211
55356
|
return string.replace(regex, indent.repeat(count));
|
|
55212
55357
|
}
|
|
55213
55358
|
//#endregion
|
|
55214
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55359
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/get-max-width.js
|
|
55215
55360
|
/**
|
|
55216
55361
|
* Returns the yoga node's content width (computed width minus padding and
|
|
55217
55362
|
* border).
|
|
@@ -55316,7 +55461,7 @@ var cli_boxes_default = {
|
|
|
55316
55461
|
}
|
|
55317
55462
|
};
|
|
55318
55463
|
//#endregion
|
|
55319
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55464
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-border.js
|
|
55320
55465
|
/** Built-in border styles beyond those provided by cli-boxes. */
|
|
55321
55466
|
const CUSTOM_BORDER_STYLES = { dashed: {
|
|
55322
55467
|
top: "╌",
|
|
@@ -55406,7 +55551,7 @@ const renderBorder = (x, y, node, output) => {
|
|
|
55406
55551
|
}
|
|
55407
55552
|
};
|
|
55408
55553
|
//#endregion
|
|
55409
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55554
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/widest-line.js
|
|
55410
55555
|
/**
|
|
55411
55556
|
* Get the display width of the widest line in a string.
|
|
55412
55557
|
* @param string - the text to measure, possibly containing newlines.
|
|
@@ -55425,7 +55570,7 @@ function widestLine(string) {
|
|
|
55425
55570
|
return maxWidth;
|
|
55426
55571
|
}
|
|
55427
55572
|
//#endregion
|
|
55428
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
55573
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-node-to-output.js
|
|
55429
55574
|
function isXtermJsHost() {
|
|
55430
55575
|
return process.env.TERM_PROGRAM === "vscode" || isXtermJs();
|
|
55431
55576
|
}
|
|
@@ -56241,7 +56386,7 @@ function dropSubtreeCache(node) {
|
|
|
56241
56386
|
for (const child of node.childNodes) if (child.nodeName !== "#text") dropSubtreeCache(child);
|
|
56242
56387
|
}
|
|
56243
56388
|
//#endregion
|
|
56244
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
56389
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hit-test.js
|
|
56245
56390
|
/**
|
|
56246
56391
|
* Find the deepest DOM element whose rendered rect contains (col, row).
|
|
56247
56392
|
*
|
|
@@ -56631,7 +56776,7 @@ function dispatchHover(root, col, row, hovered) {
|
|
|
56631
56776
|
}
|
|
56632
56777
|
}
|
|
56633
56778
|
//#endregion
|
|
56634
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
56779
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/flush-tick.js
|
|
56635
56780
|
/**
|
|
56636
56781
|
* Monotonic terminal-flush counter for the ported Ink core.
|
|
56637
56782
|
*
|
|
@@ -56664,7 +56809,7 @@ function getTerminalFlushTick() {
|
|
|
56664
56809
|
return flushTick;
|
|
56665
56810
|
}
|
|
56666
56811
|
//#endregion
|
|
56667
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
56812
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/instances.js
|
|
56668
56813
|
/**
|
|
56669
56814
|
* Live Ink instances keyed by their output stream, so consecutive render()
|
|
56670
56815
|
* calls reuse the instance for a stream instead of creating a new one.
|
|
@@ -56673,7 +56818,7 @@ function getTerminalFlushTick() {
|
|
|
56673
56818
|
*/
|
|
56674
56819
|
const instances = /* @__PURE__ */ new Map();
|
|
56675
56820
|
//#endregion
|
|
56676
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
56821
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/log-update.js
|
|
56677
56822
|
const CARRIAGE_RETURN = { type: "carriageReturn" };
|
|
56678
56823
|
const NEWLINE = {
|
|
56679
56824
|
type: "stdout",
|
|
@@ -57310,7 +57455,7 @@ var VirtualScreen = class {
|
|
|
57310
57455
|
}
|
|
57311
57456
|
};
|
|
57312
57457
|
//#endregion
|
|
57313
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
57458
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/optimizer.js
|
|
57314
57459
|
/**
|
|
57315
57460
|
* Optimize a diff by applying all optimization rules in a single pass.
|
|
57316
57461
|
* This reduces the number of patches that need to be written to the terminal.
|
|
@@ -57375,7 +57520,7 @@ function optimize(diff) {
|
|
|
57375
57520
|
return result;
|
|
57376
57521
|
}
|
|
57377
57522
|
//#endregion
|
|
57378
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
57523
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/bidi.js
|
|
57379
57524
|
var import_bidi = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
57380
57525
|
(function(global, factory) {
|
|
57381
57526
|
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());
|
|
@@ -58151,7 +58296,7 @@ function hasRTLCharacters(text) {
|
|
|
58151
58296
|
return /[\u0590-\u05FF\uFB1D-\uFB4F\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\u0780-\u07BF\u0700-\u074F]/u.test(text);
|
|
58152
58297
|
}
|
|
58153
58298
|
//#endregion
|
|
58154
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
58299
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/output.js
|
|
58155
58300
|
/**
|
|
58156
58301
|
* charCache bounds. The entry-count cap alone was not enough: a streaming
|
|
58157
58302
|
* line produces a NEW cache key on every frame, and each entry's cost is
|
|
@@ -58821,7 +58966,7 @@ function writeLineToScreen(screen, line, x, y, screenWidth, stylePool, charCache
|
|
|
58821
58966
|
return offsetX;
|
|
58822
58967
|
}
|
|
58823
58968
|
//#endregion
|
|
58824
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
58969
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/render-to-screen.js
|
|
58825
58970
|
const timing = {
|
|
58826
58971
|
reconcile: 0,
|
|
58827
58972
|
yoga: 0,
|
|
@@ -58915,7 +59060,7 @@ function applyPositionedHighlight(screen, stylePool, positions, rowOffset, curre
|
|
|
58915
59060
|
return true;
|
|
58916
59061
|
}
|
|
58917
59062
|
//#endregion
|
|
58918
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
59063
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/renderer.js
|
|
58919
59064
|
/**
|
|
58920
59065
|
* Create the renderer function for a root DOM node. The returned renderer
|
|
58921
59066
|
* reuses an Output across frames so its character cache persists.
|
|
@@ -58990,7 +59135,7 @@ function createRenderer(node, stylePool) {
|
|
|
58990
59135
|
};
|
|
58991
59136
|
}
|
|
58992
59137
|
//#endregion
|
|
58993
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
59138
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/searchHighlight.js
|
|
58994
59139
|
/**
|
|
58995
59140
|
* Highlight all visible occurrences of `query` in the screen buffer by
|
|
58996
59141
|
* inverting cell styles (SGR 7). Post-render, same damage-tracking machinery
|
|
@@ -59052,7 +59197,7 @@ function applySearchHighlight(screen, query, stylePool) {
|
|
|
59052
59197
|
return applied;
|
|
59053
59198
|
}
|
|
59054
59199
|
//#endregion
|
|
59055
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
59200
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/ink.js
|
|
59056
59201
|
const ALT_SCREEN_ANCHOR_CURSOR = Object.freeze({
|
|
59057
59202
|
x: 0,
|
|
59058
59203
|
y: 0,
|
|
@@ -59130,7 +59275,7 @@ var Ink = class {
|
|
|
59130
59275
|
if (options.stdin.isTTY) options.stdin.on("error", this.handleStdinError);
|
|
59131
59276
|
if (this.options.patchConsole) {
|
|
59132
59277
|
this.restoreConsole = this.patchConsole();
|
|
59133
|
-
this.restoreStderr = this.patchStderr();
|
|
59278
|
+
if (process.stderr.isTTY) this.restoreStderr = this.patchStderr();
|
|
59134
59279
|
}
|
|
59135
59280
|
this.terminal = {
|
|
59136
59281
|
stdout: options.stdout,
|
|
@@ -60605,7 +60750,7 @@ const CONSOLE_STDERR_METHODS = [
|
|
|
60605
60750
|
"trace"
|
|
60606
60751
|
];
|
|
60607
60752
|
//#endregion
|
|
60608
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
60753
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/root.js
|
|
60609
60754
|
/**
|
|
60610
60755
|
* Mount a component and render the output.
|
|
60611
60756
|
* @param node - the React element to render.
|
|
@@ -60688,7 +60833,7 @@ const getInstance = (stdout, createInstance) => {
|
|
|
60688
60833
|
return instance;
|
|
60689
60834
|
};
|
|
60690
60835
|
//#endregion
|
|
60691
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
60836
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedBox.js
|
|
60692
60837
|
/** Resolves a color value that may be a theme key to a raw Color. */
|
|
60693
60838
|
function resolveColor$1(color, theme) {
|
|
60694
60839
|
if (!color) return void 0;
|
|
@@ -60713,7 +60858,7 @@ function ThemedBox({ borderColor, borderTopColor, borderBottomColor, borderLeftC
|
|
|
60713
60858
|
});
|
|
60714
60859
|
}
|
|
60715
60860
|
//#endregion
|
|
60716
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
60861
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ThemedText.js
|
|
60717
60862
|
/**
|
|
60718
60863
|
* Colors uncolored ThemedText in the subtree. Precedence: explicit `color` >
|
|
60719
60864
|
* this > dimColor (in the Claude Code visual language, where message rows
|
|
@@ -60749,7 +60894,7 @@ function ThemedText({ color, backgroundColor, dimColor = false, bold = false, it
|
|
|
60749
60894
|
});
|
|
60750
60895
|
}
|
|
60751
60896
|
//#endregion
|
|
60752
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
60897
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Spacer.js
|
|
60753
60898
|
/**
|
|
60754
60899
|
* A flexible space that expands along the major axis of its containing layout.
|
|
60755
60900
|
* It's useful as a shortcut for filling all the available spaces between elements.
|
|
@@ -60764,7 +60909,7 @@ function Spacer() {
|
|
|
60764
60909
|
return t0;
|
|
60765
60910
|
}
|
|
60766
60911
|
//#endregion
|
|
60767
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
60912
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Newline.js
|
|
60768
60913
|
/**
|
|
60769
60914
|
* Adds one or more newline (\n) characters. Must be used within <Text> components.
|
|
60770
60915
|
*/
|
|
@@ -60787,7 +60932,7 @@ function Newline(t0) {
|
|
|
60787
60932
|
return t3;
|
|
60788
60933
|
}
|
|
60789
60934
|
//#endregion
|
|
60790
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
60935
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/NoSelect.js
|
|
60791
60936
|
/**
|
|
60792
60937
|
* Marks its contents as non-selectable in fullscreen text selection.
|
|
60793
60938
|
* Cells inside this box are skipped by both the selection highlight and
|
|
@@ -60838,7 +60983,7 @@ function NoSelect(t0) {
|
|
|
60838
60983
|
return t2;
|
|
60839
60984
|
}
|
|
60840
60985
|
//#endregion
|
|
60841
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
60986
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/AlternateScreen.js
|
|
60842
60987
|
/**
|
|
60843
60988
|
* Run children in the terminal's alternate screen buffer, constrained to
|
|
60844
60989
|
* the viewport height. While mounted:
|
|
@@ -60913,7 +61058,7 @@ function AlternateScreen(t0) {
|
|
|
60913
61058
|
return t5;
|
|
60914
61059
|
}
|
|
60915
61060
|
//#endregion
|
|
60916
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61061
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/ScrollBox.js
|
|
60917
61062
|
/**
|
|
60918
61063
|
* A Box with `overflow: scroll` and an imperative scroll API.
|
|
60919
61064
|
*
|
|
@@ -61091,7 +61236,7 @@ function ScrollBox({ children, ref, stickyScroll, ...style }) {
|
|
|
61091
61236
|
});
|
|
61092
61237
|
}
|
|
61093
61238
|
//#endregion
|
|
61094
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61239
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-input.js
|
|
61095
61240
|
/**
|
|
61096
61241
|
* Keep an event listener stable while always dispatching to the latest render's
|
|
61097
61242
|
* callback. Keeping this hook local is important for packaged installs: a
|
|
@@ -61157,7 +61302,7 @@ const useInput = (inputHandler, options = {}) => {
|
|
|
61157
61302
|
}, [internal_eventEmitter, handleData]);
|
|
61158
61303
|
};
|
|
61159
61304
|
//#endregion
|
|
61160
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61305
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-selection.js
|
|
61161
61306
|
/**
|
|
61162
61307
|
* Access to text selection operations on the Ink instance (fullscreen only).
|
|
61163
61308
|
* Returns no-op functions when fullscreen mode is disabled.
|
|
@@ -61197,7 +61342,7 @@ function useSelection() {
|
|
|
61197
61342
|
}, [ink]);
|
|
61198
61343
|
}
|
|
61199
61344
|
//#endregion
|
|
61200
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61345
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-copy-on-select.js
|
|
61201
61346
|
/**
|
|
61202
61347
|
* Copy-on-select: when a drag finishes (or a double/triple click, or a
|
|
61203
61348
|
* shift+arrow extension, lands a selection), copy the selected text to the
|
|
@@ -61237,14 +61382,14 @@ function useCopyOnSelect(onCopied) {
|
|
|
61237
61382
|
]);
|
|
61238
61383
|
}
|
|
61239
61384
|
//#endregion
|
|
61240
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61385
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-app.js
|
|
61241
61386
|
/**
|
|
61242
61387
|
* React hook exposing the manual app-exit function from `AppContext`.
|
|
61243
61388
|
* @returns the `AppContext` value, whose `exit` function unmounts the app.
|
|
61244
61389
|
*/
|
|
61245
61390
|
const useApp = () => (0, import_react.useContext)(AppContext);
|
|
61246
61391
|
//#endregion
|
|
61247
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61392
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-viewport.js
|
|
61248
61393
|
/**
|
|
61249
61394
|
* Hook to detect if a component is within the terminal viewport.
|
|
61250
61395
|
*
|
|
@@ -61298,7 +61443,7 @@ function useTerminalViewport() {
|
|
|
61298
61443
|
return [setElement, entryRef.current];
|
|
61299
61444
|
}
|
|
61300
61445
|
//#endregion
|
|
61301
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61446
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-animation-frame.js
|
|
61302
61447
|
/**
|
|
61303
61448
|
* Hook for synchronized animations that pause when offscreen.
|
|
61304
61449
|
*
|
|
@@ -61347,7 +61492,7 @@ function useAnimationFrame(intervalMs = 16) {
|
|
|
61347
61492
|
return [viewportRef, time];
|
|
61348
61493
|
}
|
|
61349
61494
|
//#endregion
|
|
61350
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61495
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-size.js
|
|
61351
61496
|
/** Terminal dimensions from the Ink app shell (from Claude Code).
|
|
61352
61497
|
* @returns the current terminal dimensions.
|
|
61353
61498
|
*/
|
|
@@ -61357,7 +61502,7 @@ function useTerminalSize() {
|
|
|
61357
61502
|
return size;
|
|
61358
61503
|
}
|
|
61359
61504
|
//#endregion
|
|
61360
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61505
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useBlink.js
|
|
61361
61506
|
const BLINK_INTERVAL_MS = 600;
|
|
61362
61507
|
/**
|
|
61363
61508
|
* Hook for synchronized blinking animations that pause when offscreen
|
|
@@ -61374,7 +61519,7 @@ function useBlink(enabled, intervalMs = BLINK_INTERVAL_MS) {
|
|
|
61374
61519
|
return [ref, Math.floor(time / intervalMs) % 2 === 0];
|
|
61375
61520
|
}
|
|
61376
61521
|
//#endregion
|
|
61377
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61522
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/supports-hyperlinks.js
|
|
61378
61523
|
var import_supports_hyperlinks = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
61379
61524
|
const supportsColor = require_supports_color();
|
|
61380
61525
|
const hasFlag = require_has_flag();
|
|
@@ -61471,7 +61616,7 @@ function supportsHyperlinks(options) {
|
|
|
61471
61616
|
return false;
|
|
61472
61617
|
}
|
|
61473
61618
|
//#endregion
|
|
61474
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61619
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/components/Link.js
|
|
61475
61620
|
function Link(t0) {
|
|
61476
61621
|
const $ = (0, import_compiler_runtime.c)(5);
|
|
61477
61622
|
const { children, url, fallback } = t0;
|
|
@@ -61499,7 +61644,7 @@ function Link(t0) {
|
|
|
61499
61644
|
return t2;
|
|
61500
61645
|
}
|
|
61501
61646
|
//#endregion
|
|
61502
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61647
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/esc.js
|
|
61503
61648
|
/**
|
|
61504
61649
|
* ESC Sequence Parser
|
|
61505
61650
|
*
|
|
@@ -61555,7 +61700,7 @@ function parseEsc(chars) {
|
|
|
61555
61700
|
};
|
|
61556
61701
|
}
|
|
61557
61702
|
//#endregion
|
|
61558
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61703
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/types.js
|
|
61559
61704
|
/**
|
|
61560
61705
|
* ANSI Parser - Semantic Types
|
|
61561
61706
|
*
|
|
@@ -61583,7 +61728,7 @@ function defaultStyle() {
|
|
|
61583
61728
|
};
|
|
61584
61729
|
}
|
|
61585
61730
|
//#endregion
|
|
61586
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
61731
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/sgr.js
|
|
61587
61732
|
/**
|
|
61588
61733
|
* SGR (Select Graphic Rendition) Parser
|
|
61589
61734
|
*
|
|
@@ -61891,7 +62036,7 @@ function applySGR(paramStr, style) {
|
|
|
61891
62036
|
return s;
|
|
61892
62037
|
}
|
|
61893
62038
|
//#endregion
|
|
61894
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
62039
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/termio/parser.js
|
|
61895
62040
|
/**
|
|
61896
62041
|
* ANSI Parser - Semantic Action Generator
|
|
61897
62042
|
*
|
|
@@ -62268,7 +62413,7 @@ var Parser = class {
|
|
|
62268
62413
|
}
|
|
62269
62414
|
};
|
|
62270
62415
|
//#endregion
|
|
62271
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
62416
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/Ansi.js
|
|
62272
62417
|
/**
|
|
62273
62418
|
* Component that parses ANSI escape codes and renders them using Text components.
|
|
62274
62419
|
*
|
|
@@ -62519,7 +62664,7 @@ function StyledText(t0) {
|
|
|
62519
62664
|
return t1;
|
|
62520
62665
|
}
|
|
62521
62666
|
//#endregion
|
|
62522
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
62667
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ui.js
|
|
62523
62668
|
var ui_exports = /* @__PURE__ */ __exportAll({
|
|
62524
62669
|
AlternateScreen: () => AlternateScreen,
|
|
62525
62670
|
Ansi: () => Ansi,
|
|
@@ -62543,7 +62688,7 @@ var ui_exports = /* @__PURE__ */ __exportAll({
|
|
|
62543
62688
|
useTheme: () => useTheme
|
|
62544
62689
|
});
|
|
62545
62690
|
//#endregion
|
|
62546
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
62691
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PageMargin.js
|
|
62547
62692
|
/** 嵌套安全的 inset(若未来出现嵌套 PageMargin 会累加)。 */
|
|
62548
62693
|
const PageInsetContext = import_react.createContext({
|
|
62549
62694
|
x: 0,
|
|
@@ -62597,7 +62742,7 @@ function PageMargin({ children }) {
|
|
|
62597
62742
|
});
|
|
62598
62743
|
}
|
|
62599
62744
|
//#endregion
|
|
62600
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
62745
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/figures.js
|
|
62601
62746
|
/**
|
|
62602
62747
|
* UI glyph constants used across the TUI: prompt markers, status badges,
|
|
62603
62748
|
* direction arrows, media controls, reasoning-effort indicators, and
|
|
@@ -62624,7 +62769,7 @@ const THINKING_SPINNER_FRAMES = [
|
|
|
62624
62769
|
"⠏"
|
|
62625
62770
|
];
|
|
62626
62771
|
//#endregion
|
|
62627
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
62772
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/providerWizard.js
|
|
62628
62773
|
/**
|
|
62629
62774
|
* `/provider` wizard — interactively adds, edits, or deletes an LLM
|
|
62630
62775
|
* provider route at runtime.
|
|
@@ -63350,7 +63495,7 @@ function buildProfile(input) {
|
|
|
63350
63495
|
return profile;
|
|
63351
63496
|
}
|
|
63352
63497
|
//#endregion
|
|
63353
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
63498
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/modelConfigWizard.js
|
|
63354
63499
|
/** `/model-config`: platform catalogs and shared provider configuration. */
|
|
63355
63500
|
const CUSTOM_MODEL_PROTOCOLS = [
|
|
63356
63501
|
"openai-completions",
|
|
@@ -64232,7 +64377,7 @@ function parseCapacity(value) {
|
|
|
64232
64377
|
return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : void 0;
|
|
64233
64378
|
}
|
|
64234
64379
|
//#endregion
|
|
64235
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
64380
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-declared-cursor.js
|
|
64236
64381
|
/**
|
|
64237
64382
|
* Declares where the terminal cursor should be parked after each frame.
|
|
64238
64383
|
*
|
|
@@ -64281,7 +64426,7 @@ function useDeclaredCursor(options) {
|
|
|
64281
64426
|
return setNode;
|
|
64282
64427
|
}
|
|
64283
64428
|
//#endregion
|
|
64284
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
64429
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/measure-element.js
|
|
64285
64430
|
/**
|
|
64286
64431
|
* Measure the rendered dimensions of a Box element.
|
|
64287
64432
|
* @param node - the DOM element to measure.
|
|
@@ -64292,7 +64437,7 @@ const measureElement = (node) => ({
|
|
|
64292
64437
|
height: node.yogaNode?.getComputedHeight() ?? 0
|
|
64293
64438
|
});
|
|
64294
64439
|
//#endregion
|
|
64295
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
64440
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Divider.js
|
|
64296
64441
|
const MAX_APPLIED_MEASUREMENTS = 8;
|
|
64297
64442
|
/**
|
|
64298
64443
|
* A horizontal divider line, optionally with a title in the middle
|
|
@@ -66020,7 +66165,7 @@ f.parseInline;
|
|
|
66020
66165
|
O.parse;
|
|
66021
66166
|
T.lex;
|
|
66022
66167
|
//#endregion
|
|
66023
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
66168
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxTheme.js
|
|
66024
66169
|
/** highlight.js token classes -> theme syntax tokens. `default` catches
|
|
66025
66170
|
* every unmapped class so cli-highlight's own yellow never leaks through
|
|
66026
66171
|
* (issue #250, P2-6). */
|
|
@@ -66086,7 +66231,7 @@ function buildSyntaxTheme(theme) {
|
|
|
66086
66231
|
return out;
|
|
66087
66232
|
}
|
|
66088
66233
|
//#endregion
|
|
66089
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
66234
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/hyperlink.js
|
|
66090
66235
|
/** OSC 8 hyperlink start sequence: `ESC ] 8 ; ;`, followed by the URL. */
|
|
66091
66236
|
const OSC8_START = "\x1B]8;;";
|
|
66092
66237
|
/** Schemes a rendered hyperlink may point at. Anything else degrades to
|
|
@@ -66128,7 +66273,7 @@ function createHyperlink(url, content, options) {
|
|
|
66128
66273
|
return `${OSC8_START}${safeUrl}${(options?.style ?? ((text) => chalk.blue(text)))(displayText)}${OSC8_START}`;
|
|
66129
66274
|
}
|
|
66130
66275
|
//#endregion
|
|
66131
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
66276
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/fileTarget.js
|
|
66132
66277
|
/**
|
|
66133
66278
|
* Clickable file targets: turning path-like text in AI output into
|
|
66134
66279
|
* clickable targets, and resolving those targets back to absolute paths at
|
|
@@ -66270,7 +66415,7 @@ function linkifyFilePaths(text, wrap) {
|
|
|
66270
66415
|
});
|
|
66271
66416
|
}
|
|
66272
66417
|
//#endregion
|
|
66273
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
66418
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/markdown.js
|
|
66274
66419
|
/**
|
|
66275
66420
|
* Markdown-to-ANSI renderer over marked's token stream.
|
|
66276
66421
|
*
|
|
@@ -66585,7 +66730,7 @@ function padAligned(content, displayWidth, targetWidth, align) {
|
|
|
66585
66730
|
return content + " ".repeat(extra);
|
|
66586
66731
|
}
|
|
66587
66732
|
//#endregion
|
|
66588
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
66733
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/cliHighlight.js
|
|
66589
66734
|
let cliHighlightPromise;
|
|
66590
66735
|
async function loadCliHighlight() {
|
|
66591
66736
|
try {
|
|
@@ -66608,7 +66753,7 @@ function getCliHighlightPromise() {
|
|
|
66608
66753
|
return cliHighlightPromise;
|
|
66609
66754
|
}
|
|
66610
66755
|
//#endregion
|
|
66611
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
66756
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MarkdownTable.js
|
|
66612
66757
|
/** Accounts for parent indentation and terminal resize races (from Claude Code). */
|
|
66613
66758
|
const SAFETY_MARGIN = 4;
|
|
66614
66759
|
/** Minimum column width to prevent degenerate layouts */
|
|
@@ -66795,7 +66940,7 @@ function MarkdownTable({ token, highlight, forceWidth }) {
|
|
|
66795
66940
|
return (0, import_jsx_runtime.jsx)(Text, { children: tableLines.join("\n") });
|
|
66796
66941
|
}
|
|
66797
66942
|
//#endregion
|
|
66798
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
66943
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Markdown.js
|
|
66799
66944
|
const TOKEN_CACHE_CAPACITY = 200;
|
|
66800
66945
|
const TOKEN_CACHE_CHAR_BUDGET = 2e5;
|
|
66801
66946
|
const TOKEN_CACHE_MAX_SOURCE_LENGTH = 2e4;
|
|
@@ -66904,7 +67049,7 @@ function MarkdownImpl({ children, dimColor = false, cacheTokens = true }) {
|
|
|
66904
67049
|
*/
|
|
66905
67050
|
const Markdown = import_react.memo(MarkdownImpl, (prev, next) => prev.children === next.children && prev.dimColor === next.dimColor && prev.cacheTokens === next.cacheTokens);
|
|
66906
67051
|
//#endregion
|
|
66907
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
67052
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/PlanReviewPanel.js
|
|
66908
67053
|
/**
|
|
66909
67054
|
* The plan-review panel — Claude Code style exit-plan-mode decision card
|
|
66910
67055
|
* for the DSH user-interaction seam. plan-mode's `exit_plan_mode` tool asks
|
|
@@ -67226,7 +67371,7 @@ function PlanReviewPanel({ question, onAnswer, onCancel }) {
|
|
|
67226
67371
|
});
|
|
67227
67372
|
}
|
|
67228
67373
|
//#endregion
|
|
67229
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
67374
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/listWindow.js
|
|
67230
67375
|
/**
|
|
67231
67376
|
* 焦点居中的列表窗口:长列表只渲染焦点附近的一段,保证焦点行始终可见。
|
|
67232
67377
|
* 瞬态面板走 OverlayAbove 零高度浮层后,超高部分会被 overflow 裁掉且焦点
|
|
@@ -67278,7 +67423,7 @@ function listWindow(heights, focusIndex, maxRows, gap = 0) {
|
|
|
67278
67423
|
}
|
|
67279
67424
|
}
|
|
67280
67425
|
//#endregion
|
|
67281
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
67426
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/questions/AskUserQuestionPanel.js
|
|
67282
67427
|
/**
|
|
67283
67428
|
* The questionnaire panel — Claude Code style ask-user-question UI for the
|
|
67284
67429
|
* DSH user-interaction seam. One question per panel (progress header, header
|
|
@@ -67872,7 +68017,7 @@ function AskUserQuestionPanel({ question, position, total, answered, initialDraf
|
|
|
67872
68017
|
});
|
|
67873
68018
|
}
|
|
67874
68019
|
//#endregion
|
|
67875
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68020
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/approvals/ApprovalPanel.js
|
|
67876
68021
|
/**
|
|
67877
68022
|
* The approval panel — Claude Code style permission prompt for the DSH
|
|
67878
68023
|
* approval seam (`ctx.approval`). One ask per panel: a permission-colored
|
|
@@ -67997,7 +68142,7 @@ function ApprovalPanel({ approval, background = false, onDecide }) {
|
|
|
67997
68142
|
});
|
|
67998
68143
|
}
|
|
67999
68144
|
//#endregion
|
|
68000
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68145
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Pane.js
|
|
68001
68146
|
/**
|
|
68002
68147
|
* A pane — a region below the prompt bounded by a colored top line with a
|
|
68003
68148
|
* one-row gap above and horizontal padding, mirroring Claude Code's
|
|
@@ -68019,7 +68164,7 @@ function Pane({ children, color }) {
|
|
|
68019
68164
|
});
|
|
68020
68165
|
}
|
|
68021
68166
|
//#endregion
|
|
68022
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68167
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/ListItem.js
|
|
68023
68168
|
/**
|
|
68024
68169
|
* A list item for selection UIs, mirroring Claude Code's
|
|
68025
68170
|
* design-system/ListItem.tsx: `❯` pointer for the focused row, `✓`
|
|
@@ -68116,7 +68261,7 @@ function flattenDeep(node) {
|
|
|
68116
68261
|
return node;
|
|
68117
68262
|
}
|
|
68118
68263
|
//#endregion
|
|
68119
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68264
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/HintLine.js
|
|
68120
68265
|
/**
|
|
68121
68266
|
* Localized shortcut-hint line: renders a `t('hint-*')` string, with the
|
|
68122
68267
|
* `**primary shortcut**` segment (the main action's key, wrapped in `**` in
|
|
@@ -68133,7 +68278,7 @@ function HintLine({ text }) {
|
|
|
68133
68278
|
}, index) : part) });
|
|
68134
68279
|
}
|
|
68135
68280
|
//#endregion
|
|
68136
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68281
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ExtensionDialog.js
|
|
68137
68282
|
/**
|
|
68138
68283
|
* The managed plugin dialog (`ctx.tuiDialogs`) — one panel rendering the
|
|
68139
68284
|
* store's current snapshot in the chat chrome (the slot approval/question
|
|
@@ -68393,7 +68538,7 @@ function InputDialog({ dialog, onDecide, onCancel }) {
|
|
|
68393
68538
|
});
|
|
68394
68539
|
}
|
|
68395
68540
|
//#endregion
|
|
68396
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68541
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-search-highlight.js
|
|
68397
68542
|
/**
|
|
68398
68543
|
* Set the search highlight query on the Ink instance. Non-empty → all
|
|
68399
68544
|
* visible occurrences are inverted on the next frame (SGR 7, screen-buffer
|
|
@@ -68425,7 +68570,7 @@ function useSearchHighlight() {
|
|
|
68425
68570
|
}, [ink]);
|
|
68426
68571
|
}
|
|
68427
68572
|
//#endregion
|
|
68428
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68573
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/hooks/use-terminal-title.js
|
|
68429
68574
|
/**
|
|
68430
68575
|
* Declaratively set the terminal tab/window title.
|
|
68431
68576
|
*
|
|
@@ -68448,7 +68593,7 @@ function useTerminalTitle(title) {
|
|
|
68448
68593
|
}, [title, writeRaw]);
|
|
68449
68594
|
}
|
|
68450
68595
|
//#endregion
|
|
68451
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68596
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessions/format.js
|
|
68452
68597
|
/**
|
|
68453
68598
|
* Session browser formatting.
|
|
68454
68599
|
*
|
|
@@ -68697,7 +68842,7 @@ function projectName(cwd) {
|
|
|
68697
68842
|
return normalized.split("/").filter(Boolean).at(-1) ?? normalized;
|
|
68698
68843
|
}
|
|
68699
68844
|
//#endregion
|
|
68700
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
68845
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Tooltip.js
|
|
68701
68846
|
/**
|
|
68702
68847
|
* Tooltip hover system — the terminal equivalent of the HTML `title`
|
|
68703
68848
|
* attribute. Attach {@link useTooltip} props to any Box whose visible text
|
|
@@ -68905,7 +69050,7 @@ function wrapTooltipContent(text, width) {
|
|
|
68905
69050
|
return rows;
|
|
68906
69051
|
}
|
|
68907
69052
|
//#endregion
|
|
68908
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
69053
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/UserPromptMessage.js
|
|
68909
69054
|
/** User prompt row in the legacy CLI treatment: a full-width gray strip. */
|
|
68910
69055
|
function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
|
|
68911
69056
|
const { columns } = useTerminalSize();
|
|
@@ -68934,7 +69079,7 @@ function UserPromptMessage({ text, addMargin, isSelected = false, onClick }) {
|
|
|
68934
69079
|
});
|
|
68935
69080
|
}
|
|
68936
69081
|
//#endregion
|
|
68937
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
69082
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantTextMessage.js
|
|
68938
69083
|
/**
|
|
68939
69084
|
* Assistant text message: bullet + markdown body (mirroring Claude Code's default branch).
|
|
68940
69085
|
*
|
|
@@ -68967,7 +69112,7 @@ function AssistantTextMessage({ text, addMargin, isSelected = false, isExpanded
|
|
|
68967
69112
|
});
|
|
68968
69113
|
}
|
|
68969
69114
|
//#endregion
|
|
68970
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
69115
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/StreamingMarkdown.js
|
|
68971
69116
|
/**
|
|
68972
69117
|
* Renders markdown during streaming by splitting at the last top-level block
|
|
68973
69118
|
* boundary: everything before is stable (memoized, never re-parsed), only the
|
|
@@ -69157,7 +69302,7 @@ function StreamingMarkdown({ children, dimColor = false }) {
|
|
|
69157
69302
|
});
|
|
69158
69303
|
}
|
|
69159
69304
|
//#endregion
|
|
69160
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
69305
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/spinnerUtils.js
|
|
69161
69306
|
/**
|
|
69162
69307
|
* Spinner 动画的通用工具集:平台相关的帧字符选择、RGB 颜色插值、
|
|
69163
69308
|
* HSL 色相转 RGB,以及 `rgb(...)` 颜色字符串的解析与记忆化。
|
|
@@ -69237,7 +69382,7 @@ function parseRGB(colorStr) {
|
|
|
69237
69382
|
return parsed;
|
|
69238
69383
|
}
|
|
69239
69384
|
//#endregion
|
|
69240
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
69385
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/shimmer.js
|
|
69241
69386
|
/** Header blue-white ladder: brand → ice → pale → soft ice flash.
|
|
69242
69387
|
* FLASH stays visibly blue (never pure white) — the highlight reads as a
|
|
69243
69388
|
* mist-brightened crest, not a white strobe. */
|
|
@@ -69253,7 +69398,7 @@ const ICE = {
|
|
|
69253
69398
|
b: 255
|
|
69254
69399
|
};
|
|
69255
69400
|
//#endregion
|
|
69256
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
69401
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantThinkingMessage.js
|
|
69257
69402
|
/** Preview body rows — a FIXED row count (kimicode-style constant-height
|
|
69258
69403
|
* ticker). Ink's truncate slices the whole string across newlines as one
|
|
69259
69404
|
* logical line, so a single joined Text collapses to 1-2 rows whenever
|
|
@@ -69366,7 +69511,7 @@ function AssistantThinkingMessage({ thinking, textFull, addMargin, verbose, stre
|
|
|
69366
69511
|
});
|
|
69367
69512
|
}
|
|
69368
69513
|
//#endregion
|
|
69369
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
69514
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ToolUseLoader.js
|
|
69370
69515
|
const CATEGORY_BY_TOOL = {
|
|
69371
69516
|
bash: "exec",
|
|
69372
69517
|
powershell: "exec",
|
|
@@ -69947,7 +70092,7 @@ var ArrayDiff = class extends Diff {
|
|
|
69947
70092
|
};
|
|
69948
70093
|
new ArrayDiff();
|
|
69949
70094
|
//#endregion
|
|
69950
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
70095
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/cc/syntaxRuns.js
|
|
69951
70096
|
const ANSI16 = {
|
|
69952
70097
|
30: "rgb(0,0,0)",
|
|
69953
70098
|
31: "rgb(128,0,0)",
|
|
@@ -70032,7 +70177,7 @@ function syntaxThemeSignature(theme) {
|
|
|
70032
70177
|
return Object.values(SYNTAX_CLASS_TO_TOKEN).map((key) => palette[key] ?? "").join("|");
|
|
70033
70178
|
}
|
|
70034
70179
|
//#endregion
|
|
70035
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
70180
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/smoothReveal.js
|
|
70036
70181
|
/**
|
|
70037
70182
|
* Smooth streaming reveal — decouples "text the provider has delivered" from
|
|
70038
70183
|
* "text the screen is showing" (the oh-my-pi `display.smoothStreaming` idea,
|
|
@@ -70278,7 +70423,7 @@ function revealLinesOf(key, total, options) {
|
|
|
70278
70423
|
return Math.min(existing.revealed, total);
|
|
70279
70424
|
}
|
|
70280
70425
|
//#endregion
|
|
70281
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
70426
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SplitDiffView.js
|
|
70282
70427
|
/** Replace tabs so width math and alignment hold (pi convention). */
|
|
70283
70428
|
const expandTabs = (text) => text.replaceAll(" ", " ");
|
|
70284
70429
|
/**
|
|
@@ -70587,7 +70732,7 @@ function SplitDiffView({ diffs, width, maxRows, verbose, toolBackground = "none"
|
|
|
70587
70732
|
});
|
|
70588
70733
|
}
|
|
70589
70734
|
//#endregion
|
|
70590
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
70735
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SyntaxText.js
|
|
70591
70736
|
/** Async nested Text renderer. Lexes the complete payload before splitting. */
|
|
70592
70737
|
function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, dimColor }) {
|
|
70593
70738
|
const [highlighter, setHighlighter] = import_react.useState(null);
|
|
@@ -70631,7 +70776,7 @@ function SyntaxText({ text, language, sourceText = text, lineIndex = 0, color, d
|
|
|
70631
70776
|
}, index)) });
|
|
70632
70777
|
}
|
|
70633
70778
|
//#endregion
|
|
70634
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
70779
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/format.js
|
|
70635
70780
|
/**
|
|
70636
70781
|
* Trajectory formatting — durations, clocks, badges and heat.
|
|
70637
70782
|
*
|
|
@@ -70833,7 +70978,7 @@ function ledgerLayout(columns) {
|
|
|
70833
70978
|
};
|
|
70834
70979
|
}
|
|
70835
70980
|
//#endregion
|
|
70836
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
70981
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useRevealVersion.js
|
|
70837
70982
|
/**
|
|
70838
70983
|
* Reveal-frame wakeup as a React hook — bumps once per advancing ~30fps
|
|
70839
70984
|
* scheduler tick so consumers re-run their render-phase cursor reads
|
|
@@ -70863,7 +71008,7 @@ function useRevealVersion(enabled = true) {
|
|
|
70863
71008
|
return version;
|
|
70864
71009
|
}
|
|
70865
71010
|
//#endregion
|
|
70866
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
71011
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/AssistantToolUseMessage.js
|
|
70867
71012
|
/** Tool display names: DSH emits lowercase tool ids (`bash`); Claude Code
|
|
70868
71013
|
* shows capitalized names (`Bash`). Map the common ones, fall back to the
|
|
70869
71014
|
* id with its first letter uppercased. */
|
|
@@ -71399,7 +71544,7 @@ function AssistantToolUseMessage({ tool, addMargin, verbose, isSelected = false,
|
|
|
71399
71544
|
});
|
|
71400
71545
|
}
|
|
71401
71546
|
//#endregion
|
|
71402
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
71547
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/SubagentMessage.js
|
|
71403
71548
|
/** The waterfall window is a Kimi Code style constant-height region. */
|
|
71404
71549
|
const WATERFALL_ROWS = 3;
|
|
71405
71550
|
/** Card left padding + the `│ ` gutter prefix. */
|
|
@@ -71500,7 +71645,7 @@ function SubagentMessage({ subagent, addMargin, activityFrames, onClick }) {
|
|
|
71500
71645
|
dimColor: true,
|
|
71501
71646
|
children: "·"
|
|
71502
71647
|
}),
|
|
71503
|
-
(0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.model ?? subagent.provider ?? "default" }),
|
|
71648
|
+
(0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.modelName ?? subagent.model ?? subagent.provider ?? "default" }),
|
|
71504
71649
|
subagent.effort && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [(0, import_jsx_runtime.jsx)(ThemedText, {
|
|
71505
71650
|
dimColor: true,
|
|
71506
71651
|
children: "·"
|
|
@@ -71607,7 +71752,7 @@ function SubagentMessage({ subagent, addMargin, activityFrames, onClick }) {
|
|
|
71607
71752
|
});
|
|
71608
71753
|
}
|
|
71609
71754
|
//#endregion
|
|
71610
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
71755
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Chat/JobCard.js
|
|
71611
71756
|
/** Card left padding + the `│ ` gutter prefix. */
|
|
71612
71757
|
const WATERFALL_GUTTER = 4;
|
|
71613
71758
|
/** Static status marker — deliberately NOT the animated activity-indicator
|
|
@@ -71760,7 +71905,7 @@ function JobCard({ job, addMargin, onClick }) {
|
|
|
71760
71905
|
});
|
|
71761
71906
|
}
|
|
71762
71907
|
//#endregion
|
|
71763
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
71908
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/InterruptedByUser.js
|
|
71764
71909
|
/**
|
|
71765
71910
|
* The dim "interrupted" row shown when the user stops a turn, mirroring
|
|
71766
71911
|
* Claude Code's `InterruptedByUser.tsx`.
|
|
@@ -71775,7 +71920,7 @@ function InterruptedByUser() {
|
|
|
71775
71920
|
})] });
|
|
71776
71921
|
}
|
|
71777
71922
|
//#endregion
|
|
71778
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
71923
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/gitCommitStats.js
|
|
71779
71924
|
/**
|
|
71780
71925
|
* 当月 AI 代码生成占比统计(移植自 chatcode-cli 的同名服务)。
|
|
71781
71926
|
*
|
|
@@ -71943,7 +72088,7 @@ function computeAiRatioPercent(records) {
|
|
|
71943
72088
|
return clampPercent(aiAdoptedTotal / addedTotal * 100);
|
|
71944
72089
|
}
|
|
71945
72090
|
//#endregion
|
|
71946
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
72091
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useAiRatio.js
|
|
71947
72092
|
/**
|
|
71948
72093
|
* 「AI代码生成占比」数据源 Hook(移植自 chatcode-cli 的同名 Hook)。
|
|
71949
72094
|
*
|
|
@@ -72007,7 +72152,7 @@ function useAiRatio(enabled = true) {
|
|
|
72007
72152
|
};
|
|
72008
72153
|
}
|
|
72009
72154
|
//#endregion
|
|
72010
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
72155
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useNotification.js
|
|
72011
72156
|
/**
|
|
72012
72157
|
* 「通知」数据源 Hook(移植自 chatcode-cli 的 LogoV2/FooterInfo 通知行)。
|
|
72013
72158
|
*
|
|
@@ -72044,7 +72189,7 @@ function useNotification() {
|
|
|
72044
72189
|
return { message };
|
|
72045
72190
|
}
|
|
72046
72191
|
//#endregion
|
|
72047
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
72192
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/truncateToWidth.js
|
|
72048
72193
|
/**
|
|
72049
72194
|
* Slice a string to at most `maxWidth` terminal cells, walking by code
|
|
72050
72195
|
* point so CJK wide characters never split mid-glyph. Assumes no ANSI in
|
|
@@ -72062,7 +72207,7 @@ function truncateToWidth(text, maxWidth) {
|
|
|
72062
72207
|
return out;
|
|
72063
72208
|
}
|
|
72064
72209
|
//#endregion
|
|
72065
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
72210
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LogoV2.js
|
|
72066
72211
|
/** Main ChatCode CLI package version shown in the startup information panel. */
|
|
72067
72212
|
const VERSION = PRODUCT_VERSION;
|
|
72068
72213
|
const PRODUCT_LABEL = "chatcode-cli";
|
|
@@ -72333,7 +72478,7 @@ function LogoV2({ model, effort, cwd, whale = true, aiRatio, drift }) {
|
|
|
72333
72478
|
});
|
|
72334
72479
|
}
|
|
72335
72480
|
//#endregion
|
|
72336
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
72481
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/messages/MessageMetadata.js
|
|
72337
72482
|
/**
|
|
72338
72483
|
* Transcript-mode metadata row: `HH:MM · model`, right-aligned above the
|
|
72339
72484
|
* assistant text, mirroring Claude Code's MessageTimestamp + MessageModel,
|
|
@@ -72355,7 +72500,7 @@ function MessageMetadata({ timestamp, model }) {
|
|
|
72355
72500
|
});
|
|
72356
72501
|
}
|
|
72357
72502
|
//#endregion
|
|
72358
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
72503
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/narration.js
|
|
72359
72504
|
/**
|
|
72360
72505
|
* Strip the `⏵` self-narration line from assistant text. The
|
|
72361
72506
|
* dsh-working-activity narrate contract puts exactly one `⏵` line at the
|
|
@@ -72471,7 +72616,7 @@ function ellipsize(line, maxWidth) {
|
|
|
72471
72616
|
return `${out}…`;
|
|
72472
72617
|
}
|
|
72473
72618
|
//#endregion
|
|
72474
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
72619
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MessageList.js
|
|
72475
72620
|
/**
|
|
72476
72621
|
* Transcript rows rendered in the Claude Code visual language: user prompts
|
|
72477
72622
|
* on a grey bubble with a `❯` pointer, assistant text with a `●` bullet and
|
|
@@ -73284,7 +73429,7 @@ function LogoHeader({ model, effort, cwd, whale = true, skipIntro = false }) {
|
|
|
73284
73429
|
});
|
|
73285
73430
|
}
|
|
73286
73431
|
//#endregion
|
|
73287
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
73432
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TimelineRail.js
|
|
73288
73433
|
/** ▴ / ▾ (U+25B4 / U+25BE — the small triangles; CP437-safe on ConHost too). */
|
|
73289
73434
|
const CHEVRON_UP = " ▴";
|
|
73290
73435
|
const CHEVRON_DOWN = " ▾";
|
|
@@ -73478,7 +73623,7 @@ function TimelineRail({ handle, turns, activeId, upId, downId, terminalWidth, ho
|
|
|
73478
73623
|
}) });
|
|
73479
73624
|
}
|
|
73480
73625
|
//#endregion
|
|
73481
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
73626
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ScrollbarGutter.js
|
|
73482
73627
|
/** Thumb glyph across the 2-col gutter: solid, clearly positional —
|
|
73483
73628
|
* deliberately distinct from the timeline's ━━ active tick. */
|
|
73484
73629
|
const THUMB = "██";
|
|
@@ -73594,7 +73739,7 @@ function ScrollbarGutter({ handle, terminalWidth }) {
|
|
|
73594
73739
|
}) });
|
|
73595
73740
|
}
|
|
73596
73741
|
//#endregion
|
|
73597
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
73742
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/OverlayAbove.js
|
|
73598
73743
|
/**
|
|
73599
73744
|
* 瞬态面板的浮层容器:absolute 定位 + bottom:'100%' 把面板底边钉在锚点
|
|
73600
73745
|
* (父元素)顶边,向上覆盖转录尾部行,自身**不占布局高度**。
|
|
@@ -73627,7 +73772,7 @@ function OverlayAbove({ children, maxHeight }) {
|
|
|
73627
73772
|
});
|
|
73628
73773
|
}
|
|
73629
73774
|
//#endregion
|
|
73630
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
73775
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/motion.js
|
|
73631
73776
|
/**
|
|
73632
73777
|
* Trajectory motion — five verbs, one shared clock, one hard rule.
|
|
73633
73778
|
*
|
|
@@ -73752,7 +73897,7 @@ function alert(tick, startTick) {
|
|
|
73752
73897
|
return Math.floor(age / 2) % 2 === 0 ? 1 : 0;
|
|
73753
73898
|
}
|
|
73754
73899
|
//#endregion
|
|
73755
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
73900
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/effortIgnition.js
|
|
73756
73901
|
/** 三幕时间轴(ms):扫光全长、字样启动(波至中段)、字样渐亮、渐隐起止。边框扫光与输入行字样徽标共用。 */
|
|
73757
73902
|
const IGNITION_TIMELINE = {
|
|
73758
73903
|
sweepMs: 1e3,
|
|
@@ -73900,7 +74045,7 @@ function ignitionLineColors(options) {
|
|
|
73900
74045
|
return colors;
|
|
73901
74046
|
}
|
|
73902
74047
|
//#endregion
|
|
73903
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
74048
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortChargeGlyph.js
|
|
73904
74049
|
/**
|
|
73905
74050
|
* EffortChargeGlyph — 输入提示前缀 `❯ ` 的最高档强调与充能。
|
|
73906
74051
|
*
|
|
@@ -73956,7 +74101,7 @@ function EffortChargeGlyph({ effort, levels, working }) {
|
|
|
73956
74101
|
});
|
|
73957
74102
|
}
|
|
73958
74103
|
//#endregion
|
|
73959
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
74104
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortInputBorder.js
|
|
73960
74105
|
/**
|
|
73961
74106
|
* EffortInputBorder — 输入框层上的三幕点焰叠加(对齐 Codex 的完整
|
|
73962
74107
|
* 语义:光扫过、档位字样浮现、整体渐隐)。
|
|
@@ -74091,7 +74236,7 @@ function EffortInputBorder({ effort, levels, columns, onLight, idleColor, topRig
|
|
|
74091
74236
|
});
|
|
74092
74237
|
}
|
|
74093
74238
|
//#endregion
|
|
74094
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
74239
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortTierBadge.js
|
|
74095
74240
|
/**
|
|
74096
74241
|
* EffortTierBadge — 输入行尾的档位字样徽标:三幕点焰的第二幕载体
|
|
74097
74242
|
* (与 EffortInputBorder 的双框扫光同一时间轴、同一触发),切到最高
|
|
@@ -74174,7 +74319,7 @@ function EffortTierBadge({ effort, levels, onLight, columns, leadingColumns }) {
|
|
|
74174
74319
|
});
|
|
74175
74320
|
}
|
|
74176
74321
|
//#endregion
|
|
74177
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
74322
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/clipboard.js
|
|
74178
74323
|
/**
|
|
74179
74324
|
* Cross-platform clipboard access for Ctrl+V paste. The TUI runs in raw
|
|
74180
74325
|
* mode, so the terminal never performs its own paste for Ctrl+V — the key
|
|
@@ -74671,6 +74816,24 @@ function readClipboard() {
|
|
|
74671
74816
|
default: return readClipboardLinux();
|
|
74672
74817
|
}
|
|
74673
74818
|
}
|
|
74819
|
+
/** Extensions whose `@` reference the send pipeline attaches as an image. */
|
|
74820
|
+
const IMAGE_PATH = /\.(?:png|jpe?g|webp|gif)$/iu;
|
|
74821
|
+
/**
|
|
74822
|
+
* Whether a local path names an image the send pipeline can attach.
|
|
74823
|
+
* @param path - local file path.
|
|
74824
|
+
* @returns true for the image formats mention expansion turns into blocks.
|
|
74825
|
+
*/
|
|
74826
|
+
function isImagePath(path) {
|
|
74827
|
+
return IMAGE_PATH.test(path);
|
|
74828
|
+
}
|
|
74829
|
+
/**
|
|
74830
|
+
* Render one local image path as the `@` reference that attaches its bytes.
|
|
74831
|
+
* @param path - local image path.
|
|
74832
|
+
* @returns `@path`, or `@"path"` when the path contains whitespace.
|
|
74833
|
+
*/
|
|
74834
|
+
function formatImageReference(path) {
|
|
74835
|
+
return `@${/\s/.test(path) ? `"${path}"` : path}`;
|
|
74836
|
+
}
|
|
74674
74837
|
/**
|
|
74675
74838
|
* Render pasted clipboard content for insertion into the prompt. Image files
|
|
74676
74839
|
* become `@` references so the send pipeline can attach their bytes; ordinary
|
|
@@ -74680,15 +74843,71 @@ function readClipboard() {
|
|
|
74680
74843
|
* with line endings normalized.
|
|
74681
74844
|
*/
|
|
74682
74845
|
function formatClipboardInsert(content) {
|
|
74683
|
-
if (content.kind === "files") return content.paths.map((path) => {
|
|
74684
|
-
|
|
74685
|
-
return /\.(?:png|jpe?g|webp|gif)$/iu.test(path) ? `@${rendered}` : rendered;
|
|
74686
|
-
}).join(" ");
|
|
74687
|
-
if (content.kind === "image") return `@${/\s/.test(content.path) ? `"${content.path}"` : content.path}`;
|
|
74846
|
+
if (content.kind === "files") return content.paths.map((path) => isImagePath(path) ? formatImageReference(path) : /\s/.test(path) ? `"${path}"` : path).join(" ");
|
|
74847
|
+
if (content.kind === "image") return formatImageReference(content.path);
|
|
74688
74848
|
return content.text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
74689
74849
|
}
|
|
74690
74850
|
//#endregion
|
|
74691
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
74851
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/droppedFile.js
|
|
74852
|
+
/**
|
|
74853
|
+
* Terminal drag-and-drop normalization.
|
|
74854
|
+
*
|
|
74855
|
+
* A terminal has no drop event: dropping a file onto the window delivers the
|
|
74856
|
+
* dropped file's PATH as input text (Windows Terminal, macOS Terminal, iTerm2
|
|
74857
|
+
* and kitty all do this, differing only in quoting and escaping). The composer
|
|
74858
|
+
* therefore recognizes an incoming image path and turns it into the `@`
|
|
74859
|
+
* reference the send pipeline already understands, so a dropped picture
|
|
74860
|
+
* reaches the model as an image block instead of a stray literal path in the
|
|
74861
|
+
* draft.
|
|
74862
|
+
*/
|
|
74863
|
+
/** A dropped path is one short line; anything longer is prose, not a drop. */
|
|
74864
|
+
const MAX_DROPPED_PATH_CHARS = 4096;
|
|
74865
|
+
/** Strip one matching pair of surrounding quotes (some terminals quote drops). */
|
|
74866
|
+
function unquote(text) {
|
|
74867
|
+
if (text.length < 2) return text;
|
|
74868
|
+
const quote = text[0];
|
|
74869
|
+
if (quote !== "\"" && quote !== "'" || text[text.length - 1] !== quote) return text;
|
|
74870
|
+
return text.slice(1, -1);
|
|
74871
|
+
}
|
|
74872
|
+
/** Decode a `file://` URI some terminals deliver for a drop. */
|
|
74873
|
+
function decodeFileUrl(text) {
|
|
74874
|
+
if (!/^file:/iu.test(text)) return text;
|
|
74875
|
+
try {
|
|
74876
|
+
return fileURLToPath(text);
|
|
74877
|
+
} catch {
|
|
74878
|
+
return;
|
|
74879
|
+
}
|
|
74880
|
+
}
|
|
74881
|
+
/** Decode shell escapes from POSIX drops, including C:/ paths from Git Bash. */
|
|
74882
|
+
function unescapePath(text) {
|
|
74883
|
+
if (/^(?:[A-Za-z]:\\|\\\\)/u.test(text)) return text;
|
|
74884
|
+
return text.replace(/\\([\s\\'"()[\]{}&;!#$`*?<>|~])/gu, "$1");
|
|
74885
|
+
}
|
|
74886
|
+
/**
|
|
74887
|
+
* The `@` reference for an input chunk that is exactly one existing image
|
|
74888
|
+
* file path, as a terminal delivers it for a drag-and-drop.
|
|
74889
|
+
* @param raw - the text one input event carried.
|
|
74890
|
+
* @param baseDir - directory a relative path resolves against (the session
|
|
74891
|
+
* cwd), matching how mention expansion resolves the reference later.
|
|
74892
|
+
* @returns the reference to insert, or undefined for prose, a non-image,
|
|
74893
|
+
* a non-local URI or a missing file.
|
|
74894
|
+
*/
|
|
74895
|
+
function droppedImageMention(raw, baseDir) {
|
|
74896
|
+
const trimmed = raw.trim();
|
|
74897
|
+
if (trimmed === "" || trimmed.length > MAX_DROPPED_PATH_CHARS) return void 0;
|
|
74898
|
+
if (trimmed.includes("\n") || trimmed.startsWith("@")) return void 0;
|
|
74899
|
+
const path = decodeFileUrl(unescapePath(unquote(trimmed)));
|
|
74900
|
+
if (path === void 0 || !isImagePath(path)) return void 0;
|
|
74901
|
+
const candidate = baseDir === void 0 || isAbsolute(path) ? path : resolve(baseDir, path);
|
|
74902
|
+
try {
|
|
74903
|
+
if (!statSync(candidate).isFile()) return void 0;
|
|
74904
|
+
} catch {
|
|
74905
|
+
return;
|
|
74906
|
+
}
|
|
74907
|
+
return formatImageReference(path);
|
|
74908
|
+
}
|
|
74909
|
+
//#endregion
|
|
74910
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/externalEditor.js
|
|
74692
74911
|
/**
|
|
74693
74912
|
* External editor round-trip for the prompt input (issue #123): Ctrl+G dumps
|
|
74694
74913
|
* the current draft into a temp file, hands the terminal to `$VISUAL` /
|
|
@@ -74966,7 +75185,7 @@ async function editInExternalEditor(draft) {
|
|
|
74966
75185
|
}
|
|
74967
75186
|
}
|
|
74968
75187
|
//#endregion
|
|
74969
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
75188
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptEditor.js
|
|
74970
75189
|
let editorNode = null;
|
|
74971
75190
|
const listeners = /* @__PURE__ */ new Set();
|
|
74972
75191
|
/** Publish (or withdraw, with null) the fullscreen editor subtree. */
|
|
@@ -74984,17 +75203,25 @@ function subscribe(callback) {
|
|
|
74984
75203
|
function snapshot() {
|
|
74985
75204
|
return editorNode;
|
|
74986
75205
|
}
|
|
75206
|
+
/** Declare the editor cursor in the same commit that mounts its value box. */
|
|
75207
|
+
function EditorValueBox({ cursor, ...props }) {
|
|
75208
|
+
const ref = useDeclaredCursor(cursor);
|
|
75209
|
+
return (0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
75210
|
+
...props,
|
|
75211
|
+
ref
|
|
75212
|
+
});
|
|
75213
|
+
}
|
|
74987
75214
|
/**
|
|
74988
75215
|
* The fullscreen sink, mounted once at the very end of Chat's root Box.
|
|
74989
75216
|
* The absolute cover is `opaque` so its padding/blank cells never bleed
|
|
74990
75217
|
* the covered transcript through, and it swallows stray clicks so the
|
|
74991
75218
|
* conversation underneath cannot react to a click meant for the editor.
|
|
74992
75219
|
*/
|
|
74993
|
-
function PromptEditorLayer() {
|
|
75220
|
+
function PromptEditorLayer({ fullscreen = true }) {
|
|
74994
75221
|
const node = import_react.useSyncExternalStore(subscribe, snapshot);
|
|
74995
|
-
if (node === null) return null;
|
|
74996
75222
|
const inset = usePageInset();
|
|
74997
75223
|
const size = useTerminalSize();
|
|
75224
|
+
if (node === null) return null;
|
|
74998
75225
|
return (0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
74999
75226
|
position: "absolute",
|
|
75000
75227
|
top: -inset.y,
|
|
@@ -75008,7 +75235,7 @@ function PromptEditorLayer() {
|
|
|
75008
75235
|
onClick: (event) => {
|
|
75009
75236
|
event.stopImmediatePropagation();
|
|
75010
75237
|
},
|
|
75011
|
-
children: node
|
|
75238
|
+
children: fullscreen ? node : (0, import_jsx_runtime.jsx)(AlternateScreen, { children: node })
|
|
75012
75239
|
});
|
|
75013
75240
|
}
|
|
75014
75241
|
/**
|
|
@@ -75042,7 +75269,7 @@ function EditorButton({ label, hint, onClick, primary, accent }) {
|
|
|
75042
75269
|
});
|
|
75043
75270
|
}
|
|
75044
75271
|
//#endregion
|
|
75045
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
75272
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/history.js
|
|
75046
75273
|
const HISTORY_DIR = DATA_DIR;
|
|
75047
75274
|
const HISTORY_FILE = join(HISTORY_DIR, "history.jsonl");
|
|
75048
75275
|
const HISTORY_LOCK = `${HISTORY_FILE}.lock`;
|
|
@@ -75176,7 +75403,7 @@ function historyEntryId(entry, index = 0) {
|
|
|
75176
75403
|
return createHash("sha1").update(`${entry.text}\0${entry.ts}\0${index}`).digest("hex").slice(0, 12);
|
|
75177
75404
|
}
|
|
75178
75405
|
//#endregion
|
|
75179
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
75406
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SuggestionCard.js
|
|
75180
75407
|
/**
|
|
75181
75408
|
* `/` 命令菜单与 `@` 文件菜单共用的圆角卡片外壳(与输入框 EffortInputBorder
|
|
75182
75409
|
* 同款 ╭╮╰╯ 视觉语言):
|
|
@@ -75308,7 +75535,7 @@ function splitQueryMatch(name, query) {
|
|
|
75308
75535
|
return startsWith(0) ?? (lastSpace >= 0 ? startsWith(lastSpace + 1) : null) ?? startsWith(name.lastIndexOf("/") + 1);
|
|
75309
75536
|
}
|
|
75310
75537
|
//#endregion
|
|
75311
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
75538
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/CommandSuggestions.js
|
|
75312
75539
|
/**
|
|
75313
75540
|
* The slash-command suggestion overlay, mirroring Claude Code's
|
|
75314
75541
|
* `PromptInputFooterSuggestions.tsx` (command layout only) wrapped in the
|
|
@@ -75388,7 +75615,7 @@ function CommandSuggestions({ commands, selectedIndex, columns, query = "", acce
|
|
|
75388
75615
|
});
|
|
75389
75616
|
}
|
|
75390
75617
|
//#endregion
|
|
75391
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
75618
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/FileSuggestions.js
|
|
75392
75619
|
/**
|
|
75393
75620
|
* The `@` file-completion overlay in CC's suggestion style, wrapped in the
|
|
75394
75621
|
* shared rounded `SuggestionCard` (与 `/` 命令菜单同一视觉语言):
|
|
@@ -75460,10 +75687,9 @@ function FileSuggestionRow({ file, isSelected, query, usable, descriptionWidth }
|
|
|
75460
75687
|
})
|
|
75461
75688
|
});
|
|
75462
75689
|
}
|
|
75463
|
-
function FileSuggestions({ files, selectedIndex, columns, query = "", loading, accent, onPick, onWheelStep }) {
|
|
75690
|
+
function FileSuggestions({ files, selectedIndex, columns, query = "", maxVisible = 6, loading, accent, onPick, onWheelStep }) {
|
|
75464
75691
|
if (files.length === 0 && !loading) return null;
|
|
75465
75692
|
const usable = cardContentWidth(columns);
|
|
75466
|
-
const maxVisible = 6;
|
|
75467
75693
|
const safeIndex = Math.min(Math.max(0, selectedIndex), files.length - 1);
|
|
75468
75694
|
const startIndex = Math.max(0, Math.min(safeIndex - Math.floor(maxVisible / 2), Math.max(0, files.length - maxVisible)));
|
|
75469
75695
|
const visible = files.slice(startIndex, startIndex + maxVisible);
|
|
@@ -75485,7 +75711,7 @@ function FileSuggestions({ files, selectedIndex, columns, query = "", loading, a
|
|
|
75485
75711
|
});
|
|
75486
75712
|
}
|
|
75487
75713
|
//#endregion
|
|
75488
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
75714
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HelpMenu.js
|
|
75489
75715
|
/**
|
|
75490
75716
|
* The `?` help menu, mirroring Claude Code's `PromptInputHelpMenu.tsx`
|
|
75491
75717
|
* (three-column shortcut layout, trimmed to the keys dsh-tui actually binds).
|
|
@@ -75676,7 +75902,7 @@ function HelpCommandRow({ command, onPick }) {
|
|
|
75676
75902
|
});
|
|
75677
75903
|
}
|
|
75678
75904
|
//#endregion
|
|
75679
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
75905
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PromptInput.js
|
|
75680
75906
|
const HISTORY_LIMIT = 50;
|
|
75681
75907
|
/**
|
|
75682
75908
|
* Paste fold (CC-style collapse with a visible preview, no black box):
|
|
@@ -76147,7 +76373,7 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76147
76373
|
import_react.useEffect(() => {
|
|
76148
76374
|
fileEscRef.current = -1;
|
|
76149
76375
|
}, [value]);
|
|
76150
|
-
const fileOverlayOpen = (fileScanning || fileMatches.length > 0) && !
|
|
76376
|
+
const fileOverlayOpen = (fileScanning || fileMatches.length > 0) && !helpOpen && !selectionActive && fileEscRef.current !== mention?.start;
|
|
76151
76377
|
/** Fold-block state + a synchronous mirror (setInput reads the ref).
|
|
76152
76378
|
* Creating a block also drags a caret that sits inside it out to the
|
|
76153
76379
|
* block's end (the block is atomic; typing continues after it). */
|
|
@@ -76379,9 +76605,13 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76379
76605
|
* - otherwise → submit directly (or run a unique command).
|
|
76380
76606
|
* Reads valueRef so a key batch (typing + Enter in one stdin read)
|
|
76381
76607
|
* operates on the text the preceding keys produced.
|
|
76608
|
+
* @param completionOwnsReturn - false for the fullscreen editor's explicit
|
|
76609
|
+
* send (Ctrl+Enter / Send), which must never be swallowed by an open
|
|
76610
|
+
* completion card: there Enter is a newline, so that send is the only way
|
|
76611
|
+
* out and it may not turn into an accept.
|
|
76382
76612
|
*/
|
|
76383
|
-
const handleEnter = () => {
|
|
76384
|
-
if (fileOverlayOpen && fileScanning) return;
|
|
76613
|
+
const handleEnter = (completionOwnsReturn = true) => {
|
|
76614
|
+
if (completionOwnsReturn && fileOverlayOpen && fileScanning) return;
|
|
76385
76615
|
const now = Date.now();
|
|
76386
76616
|
if (now - lastEnterAtRef.current < 80) return;
|
|
76387
76617
|
lastEnterAtRef.current = now;
|
|
@@ -76393,7 +76623,7 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76393
76623
|
return;
|
|
76394
76624
|
}
|
|
76395
76625
|
}
|
|
76396
|
-
if (fileOverlayOpen) {
|
|
76626
|
+
if (completionOwnsReturn && fileOverlayOpen) {
|
|
76397
76627
|
const file = fileMatches[fileSelected];
|
|
76398
76628
|
if (file) {
|
|
76399
76629
|
acceptFile(file);
|
|
@@ -76436,9 +76666,10 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76436
76666
|
lastClickRowRef.current = -1;
|
|
76437
76667
|
};
|
|
76438
76668
|
/** The editor's explicit send (Ctrl+Enter / Send button): the Enter main
|
|
76439
|
-
* path, then collapse — an empty draft just collapses.
|
|
76669
|
+
* path, then collapse — an empty draft just collapses. An open `@` card
|
|
76670
|
+
* does not own this key: it is the only send the fullscreen editor has. */
|
|
76440
76671
|
const submitFromEditor = () => {
|
|
76441
|
-
handleEnter();
|
|
76672
|
+
handleEnter(false);
|
|
76442
76673
|
collapseEditor();
|
|
76443
76674
|
};
|
|
76444
76675
|
/** Clipboard reads are asynchronous; insert against the latest render so
|
|
@@ -76469,7 +76700,7 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76469
76700
|
};
|
|
76470
76701
|
useInput((input, key, event) => {
|
|
76471
76702
|
if (selectionActive) return;
|
|
76472
|
-
if (fileOverlayOpen && fileScanning && (key.upArrow || key.downArrow || key.tab || key.return || key.wheelUp || key.wheelDown)) {
|
|
76703
|
+
if (fileOverlayOpen && fileScanning && (key.upArrow || key.downArrow || key.tab || key.return && !isMod(key) || key.wheelUp || key.wheelDown)) {
|
|
76473
76704
|
event.stopImmediatePropagation();
|
|
76474
76705
|
return;
|
|
76475
76706
|
}
|
|
@@ -76500,6 +76731,12 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76500
76731
|
setFileSelected(0);
|
|
76501
76732
|
return;
|
|
76502
76733
|
}
|
|
76734
|
+
if (key.escape && fileOverlayOpen) {
|
|
76735
|
+
event?.stopImmediatePropagation();
|
|
76736
|
+
fileEscRef.current = mention?.start ?? -1;
|
|
76737
|
+
setFileSelected(0);
|
|
76738
|
+
return;
|
|
76739
|
+
}
|
|
76503
76740
|
if (key.escape && expandedRef.current) {
|
|
76504
76741
|
event?.stopImmediatePropagation();
|
|
76505
76742
|
collapseEditor();
|
|
@@ -76544,6 +76781,14 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76544
76781
|
setFileSelected(0);
|
|
76545
76782
|
return at;
|
|
76546
76783
|
};
|
|
76784
|
+
if (input.length > 3 && !key.ctrl && !key.meta && !key.super) {
|
|
76785
|
+
const reference = droppedImageMention(input, channel.cwd);
|
|
76786
|
+
if (reference !== void 0) {
|
|
76787
|
+
const at = selection?.start ?? cursor;
|
|
76788
|
+
insertAtCaret(`${at > 0 && !/\s/u.test(value[at - 1]) ? " " : ""}${reference} `);
|
|
76789
|
+
return;
|
|
76790
|
+
}
|
|
76791
|
+
}
|
|
76547
76792
|
if (event?.isPasted && input.length > 0) {
|
|
76548
76793
|
const text = sanitizeEditableText(input.replace(/\r\n/g, "\n").replace(/\r/g, "\n"));
|
|
76549
76794
|
const at = insertAtCaret(text);
|
|
@@ -76660,6 +76905,13 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76660
76905
|
return;
|
|
76661
76906
|
}
|
|
76662
76907
|
if (key.return && expandedRef.current) {
|
|
76908
|
+
if (fileOverlayOpen) {
|
|
76909
|
+
const file = fileMatches[fileSelected];
|
|
76910
|
+
if (file) {
|
|
76911
|
+
acceptFile(file);
|
|
76912
|
+
return;
|
|
76913
|
+
}
|
|
76914
|
+
}
|
|
76663
76915
|
insertAtCaret("\n");
|
|
76664
76916
|
return;
|
|
76665
76917
|
}
|
|
@@ -76672,6 +76924,13 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
76672
76924
|
return;
|
|
76673
76925
|
}
|
|
76674
76926
|
if (expandedRef.current && key.tab) {
|
|
76927
|
+
if (!key.shift && fileOverlayOpen) {
|
|
76928
|
+
const file = fileMatches[fileSelected];
|
|
76929
|
+
if (file) {
|
|
76930
|
+
acceptFile(file);
|
|
76931
|
+
return;
|
|
76932
|
+
}
|
|
76933
|
+
}
|
|
76675
76934
|
if (!key.shift) insertAtCaret(" ");
|
|
76676
76935
|
return;
|
|
76677
76936
|
}
|
|
@@ -77180,7 +77439,9 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77180
77439
|
chars: foldText.length
|
|
77181
77440
|
}) : "";
|
|
77182
77441
|
const peekOpen = block !== null && hovered && !selectionActive;
|
|
77183
|
-
const
|
|
77442
|
+
const editorFileRows = Math.max(1, Math.min(6, terminalRows - EDITOR_CHROME_ROWS - 4));
|
|
77443
|
+
const editorFileCardRows = fileOverlayOpen ? Math.min(editorFileRows, fileMatches.length) + 3 : 0;
|
|
77444
|
+
const editorMaxRows = Math.max(1, terminalRows - EDITOR_CHROME_ROWS - editorFileCardRows);
|
|
77184
77445
|
if (expanded && caretVisualLine !== prevCaretLineRef.current) {
|
|
77185
77446
|
editorFreeScrollRef.current = false;
|
|
77186
77447
|
prevCaretLineRef.current = caretVisualLine;
|
|
@@ -77368,10 +77629,14 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77368
77629
|
prevContentRowsRef.current = contentRows;
|
|
77369
77630
|
}, [contentRows]);
|
|
77370
77631
|
const lastNotification = channel.notifications[channel.notifications.length - 1];
|
|
77371
|
-
const
|
|
77632
|
+
const cursorPosition = {
|
|
77372
77633
|
line: caretVisualLine - windowStart,
|
|
77373
77634
|
column: Math.min(caretVisualCol + (expanded ? editorGutterCols + 1 : caretVisualLine === 0 && prefixCols > 0 ? prefixCols : 0), expanded ? editorGutterCols + 1 + inputWidth : inputWidth),
|
|
77374
77635
|
active: !selectionActive
|
|
77636
|
+
};
|
|
77637
|
+
const valueBoxRef = useDeclaredCursor({
|
|
77638
|
+
...cursorPosition,
|
|
77639
|
+
active: !selectionActive && !expanded
|
|
77375
77640
|
});
|
|
77376
77641
|
/**
|
|
77377
77642
|
* Map a pointer position relative to the value box to a UTF-16 offset
|
|
@@ -77446,8 +77711,7 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77446
77711
|
setCursor(offset);
|
|
77447
77712
|
return;
|
|
77448
77713
|
}
|
|
77449
|
-
|
|
77450
|
-
setCursor(offset);
|
|
77714
|
+
setInput(value, offset);
|
|
77451
77715
|
return;
|
|
77452
77716
|
}
|
|
77453
77717
|
if (clamped === 0 && prefixCols > 0 && localCol < prefixCols) {
|
|
@@ -77475,8 +77739,7 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77475
77739
|
setCursor(offset);
|
|
77476
77740
|
return;
|
|
77477
77741
|
}
|
|
77478
|
-
|
|
77479
|
-
setCursor(offset);
|
|
77742
|
+
setInput(value, offset);
|
|
77480
77743
|
};
|
|
77481
77744
|
/**
|
|
77482
77745
|
* Drag selection (component-level drag protocol): the press origin is
|
|
@@ -77563,8 +77826,8 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77563
77826
|
})
|
|
77564
77827
|
]
|
|
77565
77828
|
}),
|
|
77566
|
-
(0, import_jsx_runtime.jsx)(
|
|
77567
|
-
|
|
77829
|
+
(0, import_jsx_runtime.jsx)(EditorValueBox, {
|
|
77830
|
+
cursor: cursorPosition,
|
|
77568
77831
|
flexDirection: "column",
|
|
77569
77832
|
flexGrow: 1,
|
|
77570
77833
|
flexShrink: 1,
|
|
@@ -77590,6 +77853,29 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77590
77853
|
},
|
|
77591
77854
|
children: editorRows
|
|
77592
77855
|
}),
|
|
77856
|
+
fileOverlayOpen && (0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
77857
|
+
flexShrink: 0,
|
|
77858
|
+
paddingLeft: 1,
|
|
77859
|
+
paddingRight: 1,
|
|
77860
|
+
children: (0, import_jsx_runtime.jsx)(FileSuggestions, {
|
|
77861
|
+
files: fileMatches,
|
|
77862
|
+
selectedIndex: fileSelected,
|
|
77863
|
+
loading: fileScanning,
|
|
77864
|
+
columns: Math.max(20, columns - 4),
|
|
77865
|
+
query: mention?.query ?? "",
|
|
77866
|
+
maxVisible: editorFileRows,
|
|
77867
|
+
accent: promptAccent,
|
|
77868
|
+
onPick: (index) => {
|
|
77869
|
+
if (fileScanning) return;
|
|
77870
|
+
const file = fileMatches[index];
|
|
77871
|
+
if (file) acceptFile(file);
|
|
77872
|
+
},
|
|
77873
|
+
onWheelStep: (step) => {
|
|
77874
|
+
if (fileScanning) return;
|
|
77875
|
+
setFileSelected((i) => Math.max(0, Math.min(fileMatches.length - 1, i + step)));
|
|
77876
|
+
}
|
|
77877
|
+
})
|
|
77878
|
+
}),
|
|
77593
77879
|
(0, import_jsx_runtime.jsxs)(ThemedBox, {
|
|
77594
77880
|
flexDirection: "row",
|
|
77595
77881
|
flexShrink: 0,
|
|
@@ -77601,17 +77887,25 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77601
77887
|
color: vimInsert ? "success" : "warning",
|
|
77602
77888
|
children: [vimInsert ? "INSERT" : "NORMAL", " "]
|
|
77603
77889
|
}),
|
|
77604
|
-
(0, import_jsx_runtime.jsx)(
|
|
77605
|
-
|
|
77606
|
-
children:
|
|
77607
|
-
|
|
77608
|
-
|
|
77890
|
+
(0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
77891
|
+
flexShrink: 0,
|
|
77892
|
+
children: (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
77893
|
+
dimColor: true,
|
|
77894
|
+
children: t("input-expand-editor-position", {
|
|
77895
|
+
line: cursorLine(value, cursor) + 1,
|
|
77896
|
+
col: cursorColumn(value, cursor) + 1
|
|
77897
|
+
})
|
|
77609
77898
|
})
|
|
77610
77899
|
}),
|
|
77611
77900
|
(0, import_jsx_runtime.jsx)(ThemedBox, { flexGrow: 1 }),
|
|
77612
|
-
(0, import_jsx_runtime.jsx)(
|
|
77613
|
-
|
|
77614
|
-
|
|
77901
|
+
(0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
77902
|
+
flexShrink: 1,
|
|
77903
|
+
minWidth: 0,
|
|
77904
|
+
children: (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
77905
|
+
dimColor: true,
|
|
77906
|
+
wrap: "truncate-end",
|
|
77907
|
+
children: `${t("input-expand-editor-hint-send")} · ${t("input-expand-editor-hint-collapse")}`
|
|
77908
|
+
})
|
|
77615
77909
|
})
|
|
77616
77910
|
]
|
|
77617
77911
|
}),
|
|
@@ -77635,15 +77929,20 @@ function PromptInput({ channel, helpOpen, onToggleHelp, onRunCommand, selectionA
|
|
|
77635
77929
|
onClick: collapseEditor
|
|
77636
77930
|
}),
|
|
77637
77931
|
(0, import_jsx_runtime.jsx)(ThemedBox, { flexGrow: 1 }),
|
|
77638
|
-
(0, import_jsx_runtime.jsx)(
|
|
77639
|
-
|
|
77640
|
-
|
|
77932
|
+
(0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
77933
|
+
flexShrink: 1,
|
|
77934
|
+
minWidth: 0,
|
|
77935
|
+
children: (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
77936
|
+
dimColor: true,
|
|
77937
|
+
wrap: "truncate-end",
|
|
77938
|
+
children: t("input-expand-editor-scroll")
|
|
77939
|
+
})
|
|
77641
77940
|
})
|
|
77642
77941
|
]
|
|
77643
77942
|
})
|
|
77644
77943
|
]
|
|
77645
77944
|
}) : null;
|
|
77646
|
-
import_react.
|
|
77945
|
+
import_react.useLayoutEffect(() => {
|
|
77647
77946
|
setPromptEditorNode(editorNode);
|
|
77648
77947
|
});
|
|
77649
77948
|
import_react.useEffect(() => {
|
|
@@ -78023,7 +78322,7 @@ function wordSelectionAt(text, offset, lo, hi) {
|
|
|
78023
78322
|
};
|
|
78024
78323
|
}
|
|
78025
78324
|
//#endregion
|
|
78026
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
78325
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/GoalTodoPanel.js
|
|
78027
78326
|
/** Maximum todo rows shown before the overflow line. */
|
|
78028
78327
|
const MAX_TODOS = 8;
|
|
78029
78328
|
const PHASE_LABEL = {
|
|
@@ -78105,13 +78404,12 @@ function BranchPrefix({ last }) {
|
|
|
78105
78404
|
/**
|
|
78106
78405
|
* Live goal + todo panel above the prompt input. Data rides on the channel:
|
|
78107
78406
|
* `channel.goal` is folded from `goal/change` context events and
|
|
78108
|
-
* `channel.todos` from
|
|
78109
|
-
* update re-renders this panel in real time (no polling).
|
|
78407
|
+
* `channel.todos` from the current turn's recorded progress, so every
|
|
78408
|
+
* acknowledged update re-renders this panel in real time (no polling).
|
|
78409
|
+
* Completed rows remain checked until the next turn starts. Renders nothing
|
|
78110
78410
|
* while both slots are empty.
|
|
78111
78411
|
*
|
|
78112
|
-
*
|
|
78113
|
-
* the agent goes idle (the header's `✓ done/total` count keeps the
|
|
78114
|
-
* summary), and `collapsed` folds the whole section to that single header
|
|
78412
|
+
* `collapsed` folds the whole todo section to its summary header
|
|
78115
78413
|
* line any time — including mid-turn, where the line still previews the
|
|
78116
78414
|
* in-progress task. `onToggle` is the click affordance for the header row;
|
|
78117
78415
|
* the ctrl/cmd+q hotkey in Chat drives the same state.
|
|
@@ -78124,7 +78422,7 @@ function GoalTodoPanel({ channel, collapsed = false, onToggle }) {
|
|
|
78124
78422
|
const goal = channel.goal;
|
|
78125
78423
|
const allTodos = channel.todos ?? [];
|
|
78126
78424
|
const doneCount = allTodos.filter((todo) => todo.status === "completed").length;
|
|
78127
|
-
const todos =
|
|
78425
|
+
const todos = allTodos;
|
|
78128
78426
|
const startRef = import_react.useRef(void 0);
|
|
78129
78427
|
if (goal !== void 0 && startRef.current?.id !== goal.id) startRef.current = {
|
|
78130
78428
|
id: goal.id,
|
|
@@ -78138,8 +78436,7 @@ function GoalTodoPanel({ channel, collapsed = false, onToggle }) {
|
|
|
78138
78436
|
return () => clearInterval(timer);
|
|
78139
78437
|
}, [goal]);
|
|
78140
78438
|
const elapsed = goal !== void 0 && startRef.current !== void 0 ? formatDuration$2(now - startRef.current.at) : void 0;
|
|
78141
|
-
const
|
|
78142
|
-
const showTodoSection = allTodos.length > 0 && (channel.working || anyUnfinished || goal !== void 0);
|
|
78439
|
+
const showTodoSection = allTodos.length > 0;
|
|
78143
78440
|
if (goal === void 0 && !showTodoSection) return null;
|
|
78144
78441
|
const visible = todos.slice(0, MAX_TODOS);
|
|
78145
78442
|
const hidden = todos.length - visible.length;
|
|
@@ -78269,7 +78566,7 @@ function GoalTodoPanel({ channel, collapsed = false, onToggle }) {
|
|
|
78269
78566
|
});
|
|
78270
78567
|
}
|
|
78271
78568
|
//#endregion
|
|
78272
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
78569
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/AutoRecapRow.js
|
|
78273
78570
|
/**
|
|
78274
78571
|
* Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
|
|
78275
78572
|
* at the bottom of the transcript after an automatic summary on session
|
|
@@ -78349,7 +78646,7 @@ function summarizeLoadedContext(context) {
|
|
|
78349
78646
|
return parts.join(" · ");
|
|
78350
78647
|
}
|
|
78351
78648
|
//#endregion
|
|
78352
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
78649
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LoadedContextPanel.js
|
|
78353
78650
|
/** One named entry (section or dynamic context) with its full text. */
|
|
78354
78651
|
function Entry({ entry }) {
|
|
78355
78652
|
return (0, import_jsx_runtime.jsxs)(ThemedBox, {
|
|
@@ -78486,7 +78783,7 @@ function LoadedContextPanel({ context, open, onToggle }) {
|
|
|
78486
78783
|
});
|
|
78487
78784
|
}
|
|
78488
78785
|
//#endregion
|
|
78489
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
78786
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/MoonPhaseSpinner.js
|
|
78490
78787
|
/**
|
|
78491
78788
|
* Terminal-safe construction cycle derived from the supplied China Unicom
|
|
78492
78789
|
* knot mark. Every frame is one display cell, unlike emoji on mixed terminals.
|
|
@@ -78518,7 +78815,7 @@ function UnicomKnotSpinner({ time }) {
|
|
|
78518
78815
|
});
|
|
78519
78816
|
}
|
|
78520
78817
|
//#endregion
|
|
78521
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
78818
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityLine.js
|
|
78522
78819
|
/**
|
|
78523
78820
|
* Context-pressure percentage (0–100) from the last usage snapshot, or
|
|
78524
78821
|
* undefined when unknown — shared by the spinner-line and status-line
|
|
@@ -78590,7 +78887,7 @@ function ActivityLine({ activity, activityFrames, warnPct, warnDanger, suffix })
|
|
|
78590
78887
|
});
|
|
78591
78888
|
}
|
|
78592
78889
|
//#endregion
|
|
78593
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
78890
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/guards.js
|
|
78594
78891
|
/**
|
|
78595
78892
|
* Structural guards for the session events the trajectory projection reads.
|
|
78596
78893
|
*
|
|
@@ -78814,7 +79111,7 @@ function readTodos(data) {
|
|
|
78814
79111
|
};
|
|
78815
79112
|
}
|
|
78816
79113
|
//#endregion
|
|
78817
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
79114
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/types.js
|
|
78818
79115
|
/**
|
|
78819
79116
|
* Trajectory projection — the data contract shared by the adapter-side fold
|
|
78820
79117
|
* and the UI-side scene (issue #80 evolution).
|
|
@@ -78881,7 +79178,7 @@ function previewText(raw, limit) {
|
|
|
78881
79178
|
return `${flat.slice(0, limit)}…`;
|
|
78882
79179
|
}
|
|
78883
79180
|
//#endregion
|
|
78884
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
79181
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/projection.js
|
|
78885
79182
|
/**
|
|
78886
79183
|
* Trajectory projection — folding the session event log into ledger nodes.
|
|
78887
79184
|
*
|
|
@@ -79460,7 +79757,7 @@ function extendTrajectory(previous, events) {
|
|
|
79460
79757
|
};
|
|
79461
79758
|
}
|
|
79462
79759
|
//#endregion
|
|
79463
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
79760
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/aggregate.js
|
|
79464
79761
|
/**
|
|
79465
79762
|
* Trajectory aggregate — the hotspot view's data and the session totals.
|
|
79466
79763
|
*
|
|
@@ -79681,7 +79978,7 @@ function modelTiming(timing) {
|
|
|
79681
79978
|
};
|
|
79682
79979
|
}
|
|
79683
79980
|
//#endregion
|
|
79684
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
79981
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/inspect.js
|
|
79685
79982
|
/**
|
|
79686
79983
|
* Inspector detail — full content, resolved on demand.
|
|
79687
79984
|
*
|
|
@@ -79841,7 +80138,7 @@ function inspectNode(node, events) {
|
|
|
79841
80138
|
};
|
|
79842
80139
|
}
|
|
79843
80140
|
//#endregion
|
|
79844
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80141
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/trajectory/wave.js
|
|
79845
80142
|
/**
|
|
79846
80143
|
* Wave band projection — the whole session compressed onto one row of glyphs.
|
|
79847
80144
|
*
|
|
@@ -80014,7 +80311,7 @@ function columnOfIndex(band, ledgerIndex) {
|
|
|
80014
80311
|
return 0;
|
|
80015
80312
|
}
|
|
80016
80313
|
//#endregion
|
|
80017
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80314
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/MiniWake.js
|
|
80018
80315
|
/**
|
|
80019
80316
|
* The mini wake — the whole session as a dozen glyphs in the status line.
|
|
80020
80317
|
*
|
|
@@ -80117,7 +80414,7 @@ function toHex$1(colour) {
|
|
|
80117
80414
|
return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
|
|
80118
80415
|
}
|
|
80119
80416
|
//#endregion
|
|
80120
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80417
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusMetrics.js
|
|
80121
80418
|
/**
|
|
80122
80419
|
* Status-line metric renderers, ported from two pi extensions:
|
|
80123
80420
|
* - `pi-nano-context`: segmented context progress bar (morandi pastel
|
|
@@ -80393,7 +80690,7 @@ function tpsStats(samples, nowMs) {
|
|
|
80393
80690
|
};
|
|
80394
80691
|
}
|
|
80395
80692
|
//#endregion
|
|
80396
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80693
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ContextBarView.js
|
|
80397
80694
|
/** Free-segment colors, mirroring StatusMetrics' dark-theme defaults. */
|
|
80398
80695
|
const FREE_FILL = "#E8E8E8";
|
|
80399
80696
|
const FREE_TEXT = "#4A4A4A";
|
|
@@ -80460,7 +80757,7 @@ function ContextBarView({ segments, usedTokens, contextWindow, width, colors, on
|
|
|
80460
80757
|
});
|
|
80461
80758
|
}
|
|
80462
80759
|
//#endregion
|
|
80463
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80760
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/chatCodeTokenTrend.js
|
|
80464
80761
|
/**
|
|
80465
80762
|
* ChatCode 今日总 Token 消耗量查询(移植自 chatcode-cli 的 chatCodeTokenTrend)。
|
|
80466
80763
|
*
|
|
@@ -80535,7 +80832,7 @@ async function fetchTodayTotalTokens(post, signal) {
|
|
|
80535
80832
|
}
|
|
80536
80833
|
}
|
|
80537
80834
|
//#endregion
|
|
80538
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80835
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useTodayTotalTokens.js
|
|
80539
80836
|
/**
|
|
80540
80837
|
* 「今日总Token消耗」数据源 Hook(移植自 chatcode-cli 的 useTokenDashboard)。
|
|
80541
80838
|
*
|
|
@@ -80567,7 +80864,7 @@ function useTodayTotalTokens(enabled = true) {
|
|
|
80567
80864
|
return { totalTokens };
|
|
80568
80865
|
}
|
|
80569
80866
|
//#endregion
|
|
80570
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80867
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TokenDashboard.js
|
|
80571
80868
|
const BAR_WIDTH = 14;
|
|
80572
80869
|
/** Yuanjing-compatible percentage label centered inside a fixed-width bar. */
|
|
80573
80870
|
function LabeledBar({ ratio, percent }) {
|
|
@@ -80651,7 +80948,7 @@ function TokenDashboard({ todayTokens, usedTokens, contextWindow, compact = fals
|
|
|
80651
80948
|
});
|
|
80652
80949
|
}
|
|
80653
80950
|
//#endregion
|
|
80654
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
80951
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/StatusLine.js
|
|
80655
80952
|
/** Stable fallback for stubbed channels: verify/repro harnesses render the
|
|
80656
80953
|
* real Chat with partial channel literals that predate the jobs field. */
|
|
80657
80954
|
const NO_BACKGROUND_JOBS = [];
|
|
@@ -81509,7 +81806,7 @@ const fallbackSymbols = {
|
|
|
81509
81806
|
const figures = isUnicodeSupported() ? mainSymbols : fallbackSymbols;
|
|
81510
81807
|
Object.entries(specialMainSymbols);
|
|
81511
81808
|
//#endregion
|
|
81512
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
81809
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/Byline.js
|
|
81513
81810
|
/**
|
|
81514
81811
|
* Joins children with a middot separator (" · ") for inline metadata display
|
|
81515
81812
|
* (in the Claude Code visual language). Automatically filters out
|
|
@@ -81525,7 +81822,7 @@ function Byline({ children }) {
|
|
|
81525
81822
|
}), child] }, (0, import_react.isValidElement)(child) ? child.key ?? index : index)) });
|
|
81526
81823
|
}
|
|
81527
81824
|
//#endregion
|
|
81528
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
81825
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/GlimmerMessage.js
|
|
81529
81826
|
const ERROR_RED$1 = {
|
|
81530
81827
|
r: 171,
|
|
81531
81828
|
g: 43,
|
|
@@ -81615,7 +81912,7 @@ function GlimmerMessage({ message, mode, messageColor, glimmerIndex, flashOpacit
|
|
|
81615
81912
|
})] });
|
|
81616
81913
|
}
|
|
81617
81914
|
//#endregion
|
|
81618
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
81915
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerGlyph.js
|
|
81619
81916
|
const DEFAULT_CHARACTERS = getDefaultCharacters();
|
|
81620
81917
|
const SPINNER_FRAMES$1 = [...DEFAULT_CHARACTERS, ...[...DEFAULT_CHARACTERS].reverse()];
|
|
81621
81918
|
const REDUCED_MOTION_DOT = "●";
|
|
@@ -81676,7 +81973,7 @@ function SpinnerGlyph({ frame, messageColor, stalledIntensity = 0, reducedMotion
|
|
|
81676
81973
|
});
|
|
81677
81974
|
}
|
|
81678
81975
|
//#endregion
|
|
81679
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
81976
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/useStalledAnimation.js
|
|
81680
81977
|
/**
|
|
81681
81978
|
* Tracks the transition to red when tokens stop flowing (mirroring Claude Code's `Spinner/useStalledAnimation.ts`). Driven by the parent's animation
|
|
81682
81979
|
* clock time instead of independent intervals, so it slows down when the
|
|
@@ -81733,7 +82030,7 @@ function useStalledAnimation(time, currentResponseLength, hasActiveTools = false
|
|
|
81733
82030
|
};
|
|
81734
82031
|
}
|
|
81735
82032
|
//#endregion
|
|
81736
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82033
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Spinner/SpinnerAnimationRow.js
|
|
81737
82034
|
const SEP_WIDTH = stringWidth$1(" · ");
|
|
81738
82035
|
const THINKING_BARE_WIDTH = stringWidth$1("thinking");
|
|
81739
82036
|
const SHOW_TOKENS_AFTER_MS = 3e4;
|
|
@@ -81900,7 +82197,7 @@ function SpinnerModeGlyph({ mode }) {
|
|
|
81900
82197
|
}
|
|
81901
82198
|
}
|
|
81902
82199
|
//#endregion
|
|
81903
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82200
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkingSpinner.js
|
|
81904
82201
|
/**
|
|
81905
82202
|
* The working spinner block shown between the transcript and the prompt
|
|
81906
82203
|
* input while a turn is in flight. Mirrors Claude Code's `Spinner.tsx`
|
|
@@ -81970,7 +82267,7 @@ function useThinkingStatus(isThinking) {
|
|
|
81970
82267
|
return thinkingStatus;
|
|
81971
82268
|
}
|
|
81972
82269
|
//#endregion
|
|
81973
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82270
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ModelPicker.js
|
|
81974
82271
|
/**
|
|
81975
82272
|
* Model picker in the CC ModelPicker style: a permission-colored Pane with
|
|
81976
82273
|
* the rows as Select entries (❯ focus pointer, ✓ on the active row,
|
|
@@ -82030,7 +82327,7 @@ function ModelPicker(props) {
|
|
|
82030
82327
|
});
|
|
82031
82328
|
}
|
|
82032
82329
|
//#endregion
|
|
82033
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82330
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PluginSceneBoundary.js
|
|
82034
82331
|
/**
|
|
82035
82332
|
* Error boundary for plugin scenes (dsh-tui-scenes). A scene component is
|
|
82036
82333
|
* third-party code rendered inside Chat's tree: without a boundary a render
|
|
@@ -82056,7 +82353,7 @@ var PluginSceneBoundary = class extends import_react.Component {
|
|
|
82056
82353
|
}
|
|
82057
82354
|
};
|
|
82058
82355
|
//#endregion
|
|
82059
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82356
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/design-system/LoadingState.js
|
|
82060
82357
|
const SPINNER_FRAMES = [...getDefaultCharacters(), ...[...getDefaultCharacters()].reverse()];
|
|
82061
82358
|
/**
|
|
82062
82359
|
* A spinner with a loading message for async operations, mirroring Claude Code's design-system/LoadingState.tsx (using the small animated glyph).
|
|
@@ -82087,7 +82384,7 @@ function LoadingState({ message, bold = false, dimColor = false, subtitle }) {
|
|
|
82087
82384
|
});
|
|
82088
82385
|
}
|
|
82089
82386
|
//#endregion
|
|
82090
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82387
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SkillsPicker.js
|
|
82091
82388
|
/** 来源桶 → 本地化标签(未知桶原样显示,SkillSource 对自定义桶开放)。 */
|
|
82092
82389
|
function sourceLabel(source) {
|
|
82093
82390
|
switch (source) {
|
|
@@ -82165,7 +82462,7 @@ function SkillsPickerLoading() {
|
|
|
82165
82462
|
});
|
|
82166
82463
|
}
|
|
82167
82464
|
//#endregion
|
|
82168
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82465
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SearchBox.js
|
|
82169
82466
|
/**
|
|
82170
82467
|
* Window a single-line query around the caret so the visible slice fits
|
|
82171
82468
|
* `avail` display cells (CJK display width, code-point safe — `[...s]`
|
|
@@ -82303,7 +82600,7 @@ function SearchBox({ query, placeholder = "Search…", isFocused, isTerminalFocu
|
|
|
82303
82600
|
});
|
|
82304
82601
|
}
|
|
82305
82602
|
//#endregion
|
|
82306
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82603
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionListRow.js
|
|
82307
82604
|
/**
|
|
82308
82605
|
* One session in the browser's list: a title line and a metadata line.
|
|
82309
82606
|
*
|
|
@@ -82384,7 +82681,7 @@ function SessionListRow({ session, width, depth, focused, pinned, now, onClick,
|
|
|
82384
82681
|
});
|
|
82385
82682
|
}
|
|
82386
82683
|
//#endregion
|
|
82387
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82684
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/SessionPreview.js
|
|
82388
82685
|
/** Role marker and colour for a preview entry. */
|
|
82389
82686
|
const ROLE = {
|
|
82390
82687
|
user: {
|
|
@@ -82475,7 +82772,7 @@ function SessionPreview({ session, entries, loading, width, height, home, now })
|
|
|
82475
82772
|
});
|
|
82476
82773
|
}
|
|
82477
82774
|
//#endregion
|
|
82478
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82775
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/sessions/WorkspaceListRow.js
|
|
82479
82776
|
/** One two-line working-directory choice in the /resume browser. */
|
|
82480
82777
|
function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width, focused, selected, home, now, onClick }) {
|
|
82481
82778
|
const [hovered, setHovered] = (0, import_react.useState)(false);
|
|
@@ -82520,7 +82817,7 @@ function WorkspaceListRow({ workspace, all, totalProjects, totalSessions, width,
|
|
|
82520
82817
|
});
|
|
82521
82818
|
}
|
|
82522
82819
|
//#endregion
|
|
82523
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82820
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/sessionPins.js
|
|
82524
82821
|
/**
|
|
82525
82822
|
* Pinned sessions for the `/resume` browser, kept at
|
|
82526
82823
|
* `~/.chatcode-cli/tui/session-pins.json` (a JSON array of session ids) so the pins
|
|
@@ -82669,7 +82966,7 @@ function setSessionPinned(id, pinned, dir = DATA_DIR) {
|
|
|
82669
82966
|
}
|
|
82670
82967
|
}
|
|
82671
82968
|
//#endregion
|
|
82672
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
82969
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionBrowser.js
|
|
82673
82970
|
/**
|
|
82674
82971
|
* Rows the layout cannot do without: the header, the four-row scope/search
|
|
82675
82972
|
* card, the notice slot, and the hints. Everything else yields before these.
|
|
@@ -82781,8 +83078,10 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
82781
83078
|
const topRef = import_react.useRef(0);
|
|
82782
83079
|
const workspaceTopRef = import_react.useRef(0);
|
|
82783
83080
|
const [mode, setMode] = import_react.useState("list");
|
|
83081
|
+
const [deleteScope, setDeleteScope] = import_react.useState([]);
|
|
83082
|
+
const [deleteArmed, setDeleteArmed] = import_react.useState(false);
|
|
82784
83083
|
const archivedOnly = filters.archivedOnly === true;
|
|
82785
|
-
const menuActions = archivedOnly ? ["open"] : MENU_ACTIONS;
|
|
83084
|
+
const menuActions = archivedOnly ? ["open", "delete"] : MENU_ACTIONS;
|
|
82786
83085
|
const [renameText, setRenameText] = import_react.useState("");
|
|
82787
83086
|
/** Hover state for the confirm rows (only one is ever mounted). */
|
|
82788
83087
|
const [confirmHovered, setConfirmHovered] = import_react.useState(false);
|
|
@@ -83113,7 +83412,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83113
83412
|
const soloPreview = previewOpen && canPreview && sessionAreaVisible && !splitPreview;
|
|
83114
83413
|
const previewWidth = splitPreview ? Math.min(56, Math.floor(sessionAreaWidth * .42)) : sessionAreaWidth;
|
|
83115
83414
|
const listWidth = Math.max(20, sessionAreaWidth - (splitPreview ? previewWidth : 0));
|
|
83116
|
-
const extraLines = mode === "list" ? 0 : 1;
|
|
83415
|
+
const extraLines = mode === "list" ? 0 : archivedOnly && mode === "confirm-delete" ? 2 : 1;
|
|
83117
83416
|
const ruleBudget = Math.max(0, Math.min(RULE_PRIORITY$1.length, rows - mandatoryLines - extraLines - WORKSPACE_ROW_HEIGHT));
|
|
83118
83417
|
const rules = new Set(RULE_PRIORITY$1.slice(0, ruleBudget));
|
|
83119
83418
|
const listHeight = Math.max(0, rows - mandatoryLines - extraLines - rules.size);
|
|
@@ -83199,12 +83498,22 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83199
83498
|
if (workspaceState === void 0) apply();
|
|
83200
83499
|
else runAction(apply);
|
|
83201
83500
|
};
|
|
83202
|
-
const runDelete = (target) => {
|
|
83203
|
-
|
|
83204
|
-
|
|
83205
|
-
|
|
83206
|
-
|
|
83207
|
-
|
|
83501
|
+
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 }));
|
|
83502
|
+
const requestDelete = (target) => {
|
|
83503
|
+
if (!archivedOnly) {
|
|
83504
|
+
setMode("confirm-delete");
|
|
83505
|
+
return;
|
|
83506
|
+
}
|
|
83507
|
+
runAction(async () => {
|
|
83508
|
+
try {
|
|
83509
|
+
if (channel.sessionDeletionScope === void 0) throw new Error(t("resume-delete-unavailable"));
|
|
83510
|
+
setDeleteScope(await channel.sessionDeletionScope(target.id));
|
|
83511
|
+
setDeleteArmed(false);
|
|
83512
|
+
setMode("confirm-delete");
|
|
83513
|
+
} catch (error) {
|
|
83514
|
+
report(message$2(error), "error");
|
|
83515
|
+
}
|
|
83516
|
+
});
|
|
83208
83517
|
};
|
|
83209
83518
|
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 }));
|
|
83210
83519
|
const openOrRestore = (target) => {
|
|
@@ -83252,8 +83561,9 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83252
83561
|
if (mode === "confirm-delete") {
|
|
83253
83562
|
if (isPlainReturn(key)) {
|
|
83254
83563
|
setMode("list");
|
|
83255
|
-
if (focused !== void 0) runDelete(focused);
|
|
83256
|
-
} else if (key.
|
|
83564
|
+
if (focused !== void 0 && (!archivedOnly || deleteArmed)) runDelete(focused);
|
|
83565
|
+
} else if (archivedOnly && (key.tab || key.leftArrow || key.rightArrow)) setDeleteArmed((value) => !value);
|
|
83566
|
+
else if (key.escape) setMode("list");
|
|
83257
83567
|
return;
|
|
83258
83568
|
}
|
|
83259
83569
|
if (mode === "confirm-clean") {
|
|
@@ -83333,7 +83643,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83333
83643
|
} else if (isMod(key) && input === "p" && !archivedOnly) {
|
|
83334
83644
|
const target = sessionAt(view.rows, focusRef.current);
|
|
83335
83645
|
if (target !== void 0) togglePin(target);
|
|
83336
|
-
} else if (isMod(key) && input === "d" &&
|
|
83646
|
+
} else if (isMod(key) && input === "d" && focused !== void 0) requestDelete(focused);
|
|
83337
83647
|
else if (isMod(key) && input === "x" && !archivedOnly && view.emptyCount > 0) setMode("confirm-clean");
|
|
83338
83648
|
else if (key.backspace || key.delete) applyFilters((current) => ({ query: current.query.slice(0, -1) }));
|
|
83339
83649
|
else if (!isMod(key) && !key.meta && !key.super && input && !key.return) {
|
|
@@ -83350,20 +83660,20 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83350
83660
|
if (view.hiddenSubagents > 0) counts.push(t("session-count-subagents", { n: view.hiddenSubagents }));
|
|
83351
83661
|
if (view.emptyCount > 0) counts.push(t("session-count-empty", { n: view.emptyCount }));
|
|
83352
83662
|
}
|
|
83353
|
-
const header = spreadRow(` ↻ ${t(archivedOnly ? "resume-archived-title" : "resume-title")} · ${modLabel}
|
|
83663
|
+
const header = spreadRow(` ↻ ${t(archivedOnly ? "resume-archived-title" : "resume-title")} · ${modLabel}e ${t("resume-toggle-archived")}`, counts.join(" · "), Math.max(0, columns - 1));
|
|
83354
83664
|
const scope = filters.allProjects ? t("session-scope-all") : selectedWorkspace?.label ?? formatProject(selectedWorkspace?.cwd ?? channel.cwd, home);
|
|
83355
83665
|
const inputBudget = Math.max(0, columns - (compactChrome ? 1 : 4));
|
|
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);
|
|
83666
|
+
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 }).replace(/\*\*/gu, "") : level === "workspaces" ? t("session-workspace-project-count", { n: workspaceGroups.length }) : t("session-workspace-switch"), inputBudget);
|
|
83357
83667
|
const activeQuery = level === "workspaces" ? workspaceQuery : filters.query;
|
|
83358
83668
|
const searchPlaceholder = level === "workspaces" ? t("session-workspace-search-placeholder") : t("session-search-placeholder", { scope });
|
|
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([
|
|
83669
|
+
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([
|
|
83360
83670
|
t(archivedOnly ? "resume-hint-archived-list" : "session-hint-list-archive", {
|
|
83361
83671
|
mod: modLabel,
|
|
83362
83672
|
projects: filters.allProjects ? t("session-toggle-on") : t("session-toggle-off"),
|
|
83363
83673
|
runs: filters.showSubagents ? t("session-toggle-on") : t("session-toggle-off")
|
|
83364
83674
|
}),
|
|
83365
83675
|
t(archivedOnly ? "resume-hint-archived-list" : "session-hint-list-mid-archive", { mod: modLabel }),
|
|
83366
|
-
t("session-hint-list-short", { mod: modLabel })
|
|
83676
|
+
t(archivedOnly ? "resume-hint-archived-short" : "session-hint-list-short", { mod: modLabel })
|
|
83367
83677
|
], inputBudget);
|
|
83368
83678
|
return (0, import_jsx_runtime.jsxs)(ThemedBox, {
|
|
83369
83679
|
flexDirection: "column",
|
|
@@ -83550,9 +83860,9 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83550
83860
|
children: notice === void 0 ? " " : ` ${notice.tone === "error" ? "✗" : "✓"} ${truncateWidth$1(notice.text, Math.max(0, columns - 4))}`
|
|
83551
83861
|
})
|
|
83552
83862
|
}),
|
|
83553
|
-
mode === "confirm-delete" && focused !== void 0 && (0, import_jsx_runtime.
|
|
83863
|
+
mode === "confirm-delete" && focused !== void 0 && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [(0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
83554
83864
|
flexShrink: 0,
|
|
83555
|
-
onClick: () => {
|
|
83865
|
+
onClick: archivedOnly ? void 0 : () => {
|
|
83556
83866
|
setMode("list");
|
|
83557
83867
|
runDelete(focused);
|
|
83558
83868
|
},
|
|
@@ -83561,9 +83871,30 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83561
83871
|
backgroundColor: confirmHovered ? "userMessageBackgroundHover" : void 0,
|
|
83562
83872
|
children: (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
83563
83873
|
color: "error",
|
|
83564
|
-
children: ` ${truncateWidth$1(t("resume-
|
|
83874
|
+
children: ` ${truncateWidth$1(t(archivedOnly ? "resume-delete-confirm" : "resume-archive-confirm", {
|
|
83875
|
+
name: focused.title.text,
|
|
83876
|
+
n: deleteScope.length
|
|
83877
|
+
}), inputBudget)}`
|
|
83565
83878
|
})
|
|
83566
|
-
})
|
|
83879
|
+
}), archivedOnly && (0, import_jsx_runtime.jsxs)(ThemedBox, {
|
|
83880
|
+
flexShrink: 0,
|
|
83881
|
+
children: [(0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
83882
|
+
onClick: () => setMode("list"),
|
|
83883
|
+
children: (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
83884
|
+
color: !deleteArmed ? "remember" : void 0,
|
|
83885
|
+
children: ` ${!deleteArmed ? "❯ " : ""}${t("tree-menu-cancel")} `
|
|
83886
|
+
})
|
|
83887
|
+
}), (0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
83888
|
+
onClick: () => {
|
|
83889
|
+
setMode("list");
|
|
83890
|
+
runDelete(focused);
|
|
83891
|
+
},
|
|
83892
|
+
children: (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
83893
|
+
color: "error",
|
|
83894
|
+
children: ` ${deleteArmed ? "❯ " : ""}${t("resume-menu-delete")} `
|
|
83895
|
+
})
|
|
83896
|
+
})]
|
|
83897
|
+
})] }),
|
|
83567
83898
|
mode === "confirm-clean" && (0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
83568
83899
|
flexShrink: 0,
|
|
83569
83900
|
onClick: () => {
|
|
@@ -83627,7 +83958,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83627
83958
|
},
|
|
83628
83959
|
children: (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
83629
83960
|
color: action === "delete" ? "error" : void 0,
|
|
83630
|
-
children: ` ${index === menu.item ? "❯" : " "} ${t(action === "delete" ? "resume-menu-archive" : action === "open" && archivedOnly ? "resume-menu-restore" : menuLabelKey(action, effectivePins.has(menuTarget.id)))}`
|
|
83961
|
+
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)))}`
|
|
83631
83962
|
})
|
|
83632
83963
|
}, action))
|
|
83633
83964
|
})
|
|
@@ -83635,7 +83966,7 @@ function SessionBrowser({ channel, home, sameProject, onClose }) {
|
|
|
83635
83966
|
});
|
|
83636
83967
|
}
|
|
83637
83968
|
//#endregion
|
|
83638
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
83969
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/SessionTree.js
|
|
83639
83970
|
/** Local HH:MM (or MM/DD HH:MM when older than this year). */
|
|
83640
83971
|
function formatTime(at, now) {
|
|
83641
83972
|
const date = new Date(at);
|
|
@@ -84391,7 +84722,7 @@ function PreviewPane({ entry, meta, width, height, liveSessionId, now, compact }
|
|
|
84391
84722
|
});
|
|
84392
84723
|
}
|
|
84393
84724
|
//#endregion
|
|
84394
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
84725
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Settings.js
|
|
84395
84726
|
/** Pick the provider-owned translation for the active language. */
|
|
84396
84727
|
function pick(text, descriptions) {
|
|
84397
84728
|
return descriptions?.[getLang()] ?? text;
|
|
@@ -85216,7 +85547,7 @@ function Settings({ channel, onClose, initialGroup }) {
|
|
|
85216
85547
|
});
|
|
85217
85548
|
}
|
|
85218
85549
|
//#endregion
|
|
85219
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85550
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspacePicker.js
|
|
85220
85551
|
const WINDOW$1 = 8;
|
|
85221
85552
|
/** `/workspace` target picker contributed by local and optional providers. */
|
|
85222
85553
|
function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
|
|
@@ -85254,7 +85585,7 @@ function WorkspacePicker({ targets, focusIndex, currentCwd, onPick }) {
|
|
|
85254
85585
|
});
|
|
85255
85586
|
}
|
|
85256
85587
|
//#endregion
|
|
85257
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85588
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/Select.js
|
|
85258
85589
|
/**
|
|
85259
85590
|
* A single-choice select list in the CC CustomSelect style (ported visual:
|
|
85260
85591
|
* ListItem rows with ❯ focus pointer, ✓ selected checkmark, descriptions,
|
|
@@ -85281,7 +85612,7 @@ function Select({ options, focusIndex, selectedValue, visibleOptionCount = 5, on
|
|
|
85281
85612
|
});
|
|
85282
85613
|
}
|
|
85283
85614
|
//#endregion
|
|
85284
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85615
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceMenuPicker.js
|
|
85285
85616
|
/**
|
|
85286
85617
|
* Bare `/workspace` action menu: the built-in subcommands (resume / rename /
|
|
85287
85618
|
* open) plus any dynamically registered workspace extensions. Enter runs the
|
|
@@ -85322,7 +85653,7 @@ function WorkspaceMenuPicker({ options, focusIndex, onPick }) {
|
|
|
85322
85653
|
});
|
|
85323
85654
|
}
|
|
85324
85655
|
//#endregion
|
|
85325
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85656
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/WorkspaceFlowPicker.js
|
|
85326
85657
|
const WINDOW = 8;
|
|
85327
85658
|
/** Generic nested choice surface returned by a workspace provider command. */
|
|
85328
85659
|
function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input = null, onPick }) {
|
|
@@ -85380,7 +85711,7 @@ function WorkspaceFlowPicker({ title, choices, focusIndex, busy = false, input =
|
|
|
85380
85711
|
});
|
|
85381
85712
|
}
|
|
85382
85713
|
//#endregion
|
|
85383
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85714
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ActivityPicker.js
|
|
85384
85715
|
/**
|
|
85385
85716
|
* Working-activity indicator picker in the CC ModelPicker style (ported
|
|
85386
85717
|
* from the pi extension's `/activity` interactive select): a
|
|
@@ -85422,7 +85753,7 @@ function ActivityPicker({ focusIndex, currentPreset, onPick }) {
|
|
|
85422
85753
|
});
|
|
85423
85754
|
}
|
|
85424
85755
|
//#endregion
|
|
85425
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85756
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ColorPicker.js
|
|
85426
85757
|
/**
|
|
85427
85758
|
* Session accent color picker (bare `/color`): a permission-colored Pane
|
|
85428
85759
|
* listing the whole palette with a colored swatch per row, `❯` focus
|
|
@@ -85466,7 +85797,7 @@ function ColorPicker({ focusIndex, currentColor, onPick }) {
|
|
|
85466
85797
|
});
|
|
85467
85798
|
}
|
|
85468
85799
|
//#endregion
|
|
85469
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85800
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/EffortSlider.js
|
|
85470
85801
|
/**
|
|
85471
85802
|
* Reasoning-effort slider (`/effort`): a rheostat row of the live route's
|
|
85472
85803
|
* adapter-owned levels in adapter order, ←/→ moving focus (each move applies
|
|
@@ -85525,7 +85856,7 @@ function EffortSlider({ options, focusIndex, currentId, onPick }) {
|
|
|
85525
85856
|
});
|
|
85526
85857
|
}
|
|
85527
85858
|
//#endregion
|
|
85528
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85859
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PresetPicker.js
|
|
85529
85860
|
/**
|
|
85530
85861
|
* Agent-preset picker (issue #8) in the CC ModelPicker style — same chrome
|
|
85531
85862
|
* as the ActivityPicker: a permission-colored Pane listing every roster
|
|
@@ -85569,7 +85900,7 @@ function PresetPicker({ presets, focusIndex, currentPreset, onPick }) {
|
|
|
85569
85900
|
});
|
|
85570
85901
|
}
|
|
85571
85902
|
//#endregion
|
|
85572
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85903
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PermissionsPicker.js
|
|
85573
85904
|
/**
|
|
85574
85905
|
* `/permission` sandbox-preset picker. The command itself is registered by
|
|
85575
85906
|
* the harness side (dsh-sandbox-policy / dsh-base permission-presets row);
|
|
@@ -85616,7 +85947,7 @@ function PermissionsPicker({ options, focusIndex, currentValue, cwd, onPick }) {
|
|
|
85616
85947
|
});
|
|
85617
85948
|
}
|
|
85618
85949
|
//#endregion
|
|
85619
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85950
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/PlanPicker.js
|
|
85620
85951
|
/**
|
|
85621
85952
|
* `/plan` on/off picker. The command itself is registered by dsh-plan-mode
|
|
85622
85953
|
* on the harness side; bare `/plan` opens this picker (with the current
|
|
@@ -85661,7 +85992,7 @@ function PlanPicker({ focusIndex, currentOn, onPick }) {
|
|
|
85661
85992
|
});
|
|
85662
85993
|
}
|
|
85663
85994
|
//#endregion
|
|
85664
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
85995
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/LangPicker.js
|
|
85665
85996
|
/**
|
|
85666
85997
|
* `/lang` en/zh picker: bare `/lang` opens this picker (the current language
|
|
85667
85998
|
* marked) and Enter applies the choice through the same path as `/lang <id>`.
|
|
@@ -85700,7 +86031,7 @@ function LangPicker({ focusIndex, currentLang, onPick }) {
|
|
|
85700
86031
|
});
|
|
85701
86032
|
}
|
|
85702
86033
|
//#endregion
|
|
85703
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86034
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThemePicker.js
|
|
85704
86035
|
/** One double-block swatch character per preview key, in a row. */
|
|
85705
86036
|
const SWATCH = "██";
|
|
85706
86037
|
/** Theme keys previewed in the picker, chosen for visual contrast. */
|
|
@@ -85786,7 +86117,7 @@ function ThemePicker({ focusIndex, currentTheme, themeHost, onPick }) {
|
|
|
85786
86117
|
});
|
|
85787
86118
|
}
|
|
85788
86119
|
//#endregion
|
|
85789
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86120
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ThinkingToggle.js
|
|
85790
86121
|
/**
|
|
85791
86122
|
* The `/thinking` display dialog: a permission-colored Pane with a bold
|
|
85792
86123
|
* title, the Shown/Hidden select, and the Enter/Esc hint line.
|
|
@@ -85835,7 +86166,7 @@ function ThinkingToggle({ currentValue, focusIndex, onPick }) {
|
|
|
85835
86166
|
});
|
|
85836
86167
|
}
|
|
85837
86168
|
//#endregion
|
|
85838
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86169
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/HistorySearchDialog.js
|
|
85839
86170
|
/**
|
|
85840
86171
|
* The ctrl+r history search dialog, in the shape of Claude Code's
|
|
85841
86172
|
* HistorySearchDialog/FuzzyPicker: a permission-colored Pane with a bold
|
|
@@ -85898,7 +86229,7 @@ function formatRelativeAge(ts) {
|
|
|
85898
86229
|
return t("time-days-ago", { n: Math.floor(elapsed / 864e5) });
|
|
85899
86230
|
}
|
|
85900
86231
|
//#endregion
|
|
85901
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86232
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RewindPicker.js
|
|
85902
86233
|
/**
|
|
85903
86234
|
* Double-Esc rewind picker (CC's "Double-tap esc to rewind the code and/or
|
|
85904
86235
|
* conversation to a previous point in time"): lists the user's past messages
|
|
@@ -86035,7 +86366,7 @@ function preview(text) {
|
|
|
86035
86366
|
return flat.length <= 80 ? flat : `${flat.slice(0, 80)}…`;
|
|
86036
86367
|
}
|
|
86037
86368
|
//#endregion
|
|
86038
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86369
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/BtwPanel.js
|
|
86039
86370
|
/**
|
|
86040
86371
|
* /btw side-question panel (CC's btw.tsx, inline-pane form like the local
|
|
86041
86372
|
* pickers): title line with the question, a scrollable answer body (error /
|
|
@@ -86119,7 +86450,7 @@ function BtwPanel({ question, answer, error, streaming, onClose, onCopy }) {
|
|
|
86119
86450
|
});
|
|
86120
86451
|
}
|
|
86121
86452
|
//#endregion
|
|
86122
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86453
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ReleaseNotesPanel.js
|
|
86123
86454
|
function ReleaseNotesPanel({ release, onClose }) {
|
|
86124
86455
|
const scrollRef = import_react.useRef(null);
|
|
86125
86456
|
const { rows } = useTerminalSize();
|
|
@@ -86164,7 +86495,7 @@ function ReleaseNotesPanel({ release, onClose }) {
|
|
|
86164
86495
|
});
|
|
86165
86496
|
}
|
|
86166
86497
|
//#endregion
|
|
86167
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86498
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/RecapPanel.js
|
|
86168
86499
|
/**
|
|
86169
86500
|
* `/recap` panel (pi-recap semantics), in the picker/dialog visual
|
|
86170
86501
|
* language: a permission-colored Pane with a title bar (会话回顾), a
|
|
@@ -86285,7 +86616,7 @@ function RecapPanel({ summary, title, error, streaming, titleApplied, onClose, o
|
|
|
86285
86616
|
});
|
|
86286
86617
|
}
|
|
86287
86618
|
//#endregion
|
|
86288
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
86619
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/tips.js
|
|
86289
86620
|
/**
|
|
86290
86621
|
* 精简 Tips 池 —— 启动首屏轮换(LogoV2)与 `/tips` 命令面板共用。
|
|
86291
86622
|
*
|
|
@@ -86490,8 +86821,8 @@ const TIPS = [
|
|
|
86490
86821
|
{
|
|
86491
86822
|
id: "cmd-export",
|
|
86492
86823
|
group: "commands",
|
|
86493
|
-
zh: "/export
|
|
86494
|
-
en: "/export saves
|
|
86824
|
+
zh: "/export 导出可重新导入的 JSONL 会话;/export markdown 导出阅读版",
|
|
86825
|
+
en: "/export saves re-importable JSONL; /export markdown saves a readable copy"
|
|
86495
86826
|
},
|
|
86496
86827
|
{
|
|
86497
86828
|
id: "cmd-btw",
|
|
@@ -86999,7 +87330,7 @@ const TIPS = [
|
|
|
86999
87330
|
}
|
|
87000
87331
|
];
|
|
87001
87332
|
//#endregion
|
|
87002
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
87333
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/TipsPanel.js
|
|
87003
87334
|
const GROUP_ORDER = [
|
|
87004
87335
|
"keys",
|
|
87005
87336
|
"commands",
|
|
@@ -87078,7 +87409,7 @@ function TipsPanel({ onClose }) {
|
|
|
87078
87409
|
});
|
|
87079
87410
|
}
|
|
87080
87411
|
//#endregion
|
|
87081
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
87412
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentCard.js
|
|
87082
87413
|
function formatDuration$1(ms) {
|
|
87083
87414
|
const seconds = Math.floor(ms / 1e3);
|
|
87084
87415
|
return seconds < 60 ? `${seconds}s` : `${Math.floor(seconds / 60)}m${seconds % 60}s`;
|
|
@@ -87118,7 +87449,7 @@ function SubagentCard({ subagent, focused, onClick }) {
|
|
|
87118
87449
|
dimColor: true,
|
|
87119
87450
|
children: " · "
|
|
87120
87451
|
}),
|
|
87121
|
-
(0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.model ?? subagent.provider ?? "default" }),
|
|
87452
|
+
(0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.modelName ?? subagent.model ?? subagent.provider ?? "default" }),
|
|
87122
87453
|
(0, import_jsx_runtime.jsx)(ThemedText, {
|
|
87123
87454
|
dimColor: true,
|
|
87124
87455
|
children: ` · ${formatDuration$1(elapsed)} · ${total || "—"} tok · ${subagent.toolCalls.length} tools`
|
|
@@ -87133,7 +87464,7 @@ function SubagentCard({ subagent, focused, onClick }) {
|
|
|
87133
87464
|
});
|
|
87134
87465
|
}
|
|
87135
87466
|
//#endregion
|
|
87136
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
87467
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDashboard.js
|
|
87137
87468
|
/** 可点击 ✕ 退出按钮:整屏/浮层场景的鼠标退出通道(Esc 等价)。 */
|
|
87138
87469
|
function ExitButton({ onClick }) {
|
|
87139
87470
|
const [hovered, setHovered] = import_react.useState(false);
|
|
@@ -87281,7 +87612,7 @@ function SubagentDashboard({ subagents, onClose, onSelect }) {
|
|
|
87281
87612
|
});
|
|
87282
87613
|
}
|
|
87283
87614
|
//#endregion
|
|
87284
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
87615
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/JobsPanel.js
|
|
87285
87616
|
function statusInfo(status) {
|
|
87286
87617
|
const minimal = isMinimalMode();
|
|
87287
87618
|
switch (status) {
|
|
@@ -87569,7 +87900,7 @@ function JobsPanel({ jobs, onClose, onKill }) {
|
|
|
87569
87900
|
});
|
|
87570
87901
|
}
|
|
87571
87902
|
//#endregion
|
|
87572
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
87903
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/SubagentDetailScene.js
|
|
87573
87904
|
function formatDuration(ms) {
|
|
87574
87905
|
if (ms < 1e3) return `${ms}ms`;
|
|
87575
87906
|
if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
|
|
@@ -87638,7 +87969,7 @@ function StatGrid({ subagent, totalTokens, elapsed, statusLabel, statusColor })
|
|
|
87638
87969
|
}),
|
|
87639
87970
|
(0, import_jsx_runtime.jsx)(StatRow, {
|
|
87640
87971
|
label: t("subagent-model"),
|
|
87641
|
-
children: (0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.model ?? subagent.provider ?? "default" })
|
|
87972
|
+
children: (0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.modelName ?? subagent.model ?? subagent.provider ?? "default" })
|
|
87642
87973
|
}),
|
|
87643
87974
|
(0, import_jsx_runtime.jsx)(StatRow, {
|
|
87644
87975
|
label: t("subagent-duration"),
|
|
@@ -87805,7 +88136,7 @@ function SubagentDetailScene({ subagent, onBack, onInterrupt }) {
|
|
|
87805
88136
|
(0, import_jsx_runtime.jsx)(ExitButton, { onClick: onBack })
|
|
87806
88137
|
]
|
|
87807
88138
|
}),
|
|
87808
|
-
(0, import_jsx_runtime.jsxs)(ThemedText, { children: [(0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.model ?? subagent.provider ?? "default" }), (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
88139
|
+
(0, import_jsx_runtime.jsxs)(ThemedText, { children: [(0, import_jsx_runtime.jsx)(ThemedText, { children: subagent.modelName ?? subagent.model ?? subagent.provider ?? "default" }), (0, import_jsx_runtime.jsx)(ThemedText, {
|
|
87809
88140
|
dimColor: true,
|
|
87810
88141
|
children: ` · ${formatDuration(elapsed)} · ${totalTokens || "—"} tok · ${subagent.toolCalls.length} tools`
|
|
87811
88142
|
})] }),
|
|
@@ -88027,7 +88358,7 @@ function FileActionsPanel({ path, isDir, focusIndex, onPick }) {
|
|
|
88027
88358
|
});
|
|
88028
88359
|
}
|
|
88029
88360
|
//#endregion
|
|
88030
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88361
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/ProductivityPickers.js
|
|
88031
88362
|
function oneLine(text, max = 70) {
|
|
88032
88363
|
const compact = text.replace(/\s+/gu, " ").trim();
|
|
88033
88364
|
return compact.length > max ? `${compact.slice(0, max - 1)}…` : compact;
|
|
@@ -88119,7 +88450,7 @@ function DiffLoading() {
|
|
|
88119
88450
|
});
|
|
88120
88451
|
}
|
|
88121
88452
|
//#endregion
|
|
88122
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88453
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/productivityCommands.js
|
|
88123
88454
|
/** `/copy` argument is a one-based reply age; omission selects the latest. */
|
|
88124
88455
|
function parseCopyIndex(raw, count) {
|
|
88125
88456
|
const value = raw.trim();
|
|
@@ -88172,7 +88503,7 @@ function gitDiffLines(report, labels) {
|
|
|
88172
88503
|
];
|
|
88173
88504
|
}
|
|
88174
88505
|
//#endregion
|
|
88175
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88506
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/sessionOrganizationCommands.js
|
|
88176
88507
|
/** Compact duration suitable for a terminal report row. */
|
|
88177
88508
|
function formatStatsDuration(ms) {
|
|
88178
88509
|
if (ms < 1e3) return `${Math.round(ms)} ms`;
|
|
@@ -88218,7 +88549,7 @@ function parsePresetManagement(input) {
|
|
|
88218
88549
|
return { kind: "invalid" };
|
|
88219
88550
|
}
|
|
88220
88551
|
//#endregion
|
|
88221
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88552
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/workflowCommands.js
|
|
88222
88553
|
const ALIASES = {
|
|
88223
88554
|
map: "inspect",
|
|
88224
88555
|
fixit: "repair",
|
|
@@ -88273,7 +88604,7 @@ function buildWorkflowCommand(name, rawInput = "") {
|
|
|
88273
88604
|
};
|
|
88274
88605
|
}
|
|
88275
88606
|
//#endregion
|
|
88276
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88607
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/urlGuard.js
|
|
88277
88608
|
const EXTERNAL_SCHEME = /^https?:\/\//i;
|
|
88278
88609
|
/**
|
|
88279
88610
|
* Classify a clicked link target. Mirrors the previous handleOpenTarget
|
|
@@ -88298,7 +88629,7 @@ function classifyOpenTarget(url) {
|
|
|
88298
88629
|
return { kind: "rejected" };
|
|
88299
88630
|
}
|
|
88300
88631
|
//#endregion
|
|
88301
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88632
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/hooks/useExternalVersion.js
|
|
88302
88633
|
/**
|
|
88303
88634
|
* Subscribe to an external store's version counter at DEFAULT lane.
|
|
88304
88635
|
*
|
|
@@ -88347,7 +88678,7 @@ function useExternalVersion(subscribe, getVersion, enabled = true) {
|
|
|
88347
88678
|
return version;
|
|
88348
88679
|
}
|
|
88349
88680
|
//#endregion
|
|
88350
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88681
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/WaveBand.js
|
|
88351
88682
|
/**
|
|
88352
88683
|
* The wake — the whole session drawn as one row of glyphs.
|
|
88353
88684
|
*
|
|
@@ -88484,7 +88815,7 @@ function toHex(colour) {
|
|
|
88484
88815
|
return `#${hex(parsed.r)}${hex(parsed.g)}${hex(parsed.b)}`;
|
|
88485
88816
|
}
|
|
88486
88817
|
//#endregion
|
|
88487
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
88818
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Ledger.js
|
|
88488
88819
|
/**
|
|
88489
88820
|
* The ledger — one line per event, columns aligned across every row.
|
|
88490
88821
|
*
|
|
@@ -88730,7 +89061,7 @@ function Ledger({ rows, start, height, cursor, width, tick, arrivalTick, arrival
|
|
|
88730
89061
|
});
|
|
88731
89062
|
}
|
|
88732
89063
|
//#endregion
|
|
88733
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
89064
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/Inspector.js
|
|
88734
89065
|
/**
|
|
88735
89066
|
* The inspector — full detail for the focused row, in a fixed-height slot.
|
|
88736
89067
|
*
|
|
@@ -88836,7 +89167,7 @@ function Inspector({ node, detail, height, width, expanded, scroll }) {
|
|
|
88836
89167
|
});
|
|
88837
89168
|
}
|
|
88838
89169
|
//#endregion
|
|
88839
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
89170
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/components/trajectory/HotspotView.js
|
|
88840
89171
|
/**
|
|
88841
89172
|
* The hotspot view — the session ranked by cost instead of ordered by time.
|
|
88842
89173
|
*
|
|
@@ -88999,7 +89330,7 @@ function HotspotView({ agg, sort, width, height, cursor, tick, switchTick, onRow
|
|
|
88999
89330
|
});
|
|
89000
89331
|
}
|
|
89001
89332
|
//#endregion
|
|
89002
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
89333
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectory/query.js
|
|
89003
89334
|
/**
|
|
89004
89335
|
* Trajectory query — whole-session structured filtering.
|
|
89005
89336
|
*
|
|
@@ -89195,7 +89526,7 @@ function applyQuery(nodes, query) {
|
|
|
89195
89526
|
};
|
|
89196
89527
|
}
|
|
89197
89528
|
//#endregion
|
|
89198
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
89529
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/TrajectoryScene.js
|
|
89199
89530
|
/**
|
|
89200
89531
|
* The trajectory scene — the session's own screen.
|
|
89201
89532
|
*
|
|
@@ -89683,7 +90014,7 @@ function TrajectoryScene({ channel, build, onClose }) {
|
|
|
89683
90014
|
});
|
|
89684
90015
|
}
|
|
89685
90016
|
//#endregion
|
|
89686
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
90017
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/LoadedContextScene.js
|
|
89687
90018
|
/** Build the non-empty pages shown by the loaded-context inspector. */
|
|
89688
90019
|
function contextPages(context) {
|
|
89689
90020
|
const pages = [];
|
|
@@ -89867,7 +90198,7 @@ function LoadedContextScene({ context, onClose }) {
|
|
|
89867
90198
|
});
|
|
89868
90199
|
}
|
|
89869
90200
|
//#endregion
|
|
89870
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
90201
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/AgentView.js
|
|
89871
90202
|
/** Rows the layout cannot do without: header, model/cwd line, dispatch
|
|
89872
90203
|
* input, hints. */
|
|
89873
90204
|
const MANDATORY_LINES = 4;
|
|
@@ -90282,7 +90613,7 @@ function AgentView({ channel, home, approval, onApprove, returnSessionId, onClos
|
|
|
90282
90613
|
const failed = agentRows.filter((row) => row.status === "failed").length;
|
|
90283
90614
|
if (failed > 0) counts.push(t("agentview-count-failed", { n: failed }));
|
|
90284
90615
|
const header = spreadRow(` ${t("agentview-title")}`, counts.join(" · "), Math.max(0, columns - 1));
|
|
90285
|
-
const subtitle = `${channel.model} · ${formatProject(channel.cwd, home)}`;
|
|
90616
|
+
const subtitle = `${channel.modelName?.trim() || channel.model} · ${formatProject(channel.cwd, home)}`;
|
|
90286
90617
|
const inputBudget = Math.max(0, columns - 2);
|
|
90287
90618
|
const armedId = stopArmRef.current?.id;
|
|
90288
90619
|
const armedTarget = armedId === void 0 ? void 0 : agentRows.find((row) => row.id === armedId);
|
|
@@ -90476,7 +90807,7 @@ function AgentView({ channel, home, approval, onApprove, returnSessionId, onClos
|
|
|
90476
90807
|
});
|
|
90477
90808
|
}
|
|
90478
90809
|
//#endregion
|
|
90479
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
90810
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/trajectoryPrefs.js
|
|
90480
90811
|
/**
|
|
90481
90812
|
* Persisted "the user has seen the trajectory" flag, at
|
|
90482
90813
|
* `~/.chatcode-cli/tui/trajectory.json`.
|
|
@@ -90536,7 +90867,7 @@ function writeTrajectorySeen(dir = DATA_DIR) {
|
|
|
90536
90867
|
}
|
|
90537
90868
|
}
|
|
90538
90869
|
//#endregion
|
|
90539
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
90870
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/chatOverlay.js
|
|
90540
90871
|
const NO_OVERLAY = { kind: "none" };
|
|
90541
90872
|
/**
|
|
90542
90873
|
* One-step wrap-around cursor move — the single source of the wrapping rule
|
|
@@ -90646,7 +90977,7 @@ function dialogOverlayVisible(overlay, gates) {
|
|
|
90646
90977
|
}
|
|
90647
90978
|
}
|
|
90648
90979
|
//#endregion
|
|
90649
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
90980
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/screens/Chat.js
|
|
90650
90981
|
const LOGOUT_EXIT_DELAY_MS = 200;
|
|
90651
90982
|
/** Shared empty snapshot for hosts whose channel has no event log. */
|
|
90652
90983
|
const NO_EVENTS = [];
|
|
@@ -92414,8 +92745,14 @@ function Chat({ channel, questionStore, approvalStore, releaseNotes, extensionDi
|
|
|
92414
92745
|
channel.pushLocal("/plugins", channel.pluginsInfo(rawInput));
|
|
92415
92746
|
return true;
|
|
92416
92747
|
case "export": {
|
|
92417
|
-
const
|
|
92418
|
-
|
|
92748
|
+
const argument = rawInput.trim().toLowerCase();
|
|
92749
|
+
if (argument !== "" && argument !== "jsonl" && argument !== "markdown" && argument !== "md") {
|
|
92750
|
+
channel.notify(t("export-usage"), { color: "error" });
|
|
92751
|
+
return true;
|
|
92752
|
+
}
|
|
92753
|
+
const format = argument === "markdown" || argument === "md" ? "markdown" : "jsonl";
|
|
92754
|
+
const target = channel.exportSession(format);
|
|
92755
|
+
channel.notify(target === null ? t("export-failed") : t("export-saved", { target }) + (format === "jsonl" ? "\n" + t("export-import-hint", { target }) : ""), target === null ? {
|
|
92419
92756
|
color: "error",
|
|
92420
92757
|
timeoutMs: 8e3
|
|
92421
92758
|
} : { timeoutMs: 8e3 });
|
|
@@ -92780,9 +93117,17 @@ function Chat({ channel, questionStore, approvalStore, releaseNotes, extensionDi
|
|
|
92780
93117
|
default:
|
|
92781
93118
|
if (channel.commandList.find((command) => command.external && command.name === name)) {
|
|
92782
93119
|
setHelpOpen(false);
|
|
93120
|
+
const keepResult = name === "import" || name === "import-all";
|
|
93121
|
+
const commandLine = `/${name}${rawInput}`;
|
|
93122
|
+
if (keepResult) channel.pushLocal(commandLine, [t("import-running")]);
|
|
92783
93123
|
channel.runExternalCommand(name, rawInput).then((text) => {
|
|
92784
|
-
if (text !== void 0 && text !== "") channel.
|
|
93124
|
+
if (text !== void 0 && text !== "") if (keepResult) channel.pushLocal(commandLine, text.split("\n"));
|
|
93125
|
+
else channel.notify(text);
|
|
92785
93126
|
else if (text === void 0) channel.notify(t("command-not-found", { name }), { color: "error" });
|
|
93127
|
+
}).catch((error) => {
|
|
93128
|
+
const text = error instanceof Error ? error.message : String(error);
|
|
93129
|
+
if (keepResult) channel.pushLocal(commandLine, [text]);
|
|
93130
|
+
channel.notify(text, { color: "error" });
|
|
92786
93131
|
});
|
|
92787
93132
|
return true;
|
|
92788
93133
|
}
|
|
@@ -94286,7 +94631,7 @@ function Chat({ channel, questionStore, approvalStore, releaseNotes, extensionDi
|
|
|
94286
94631
|
invalidationKey: `${overlay.kind}:${dialogOverlayOpen}:${btw !== null}`,
|
|
94287
94632
|
subscribeInvalidation: subscribeTooltipInvalidation
|
|
94288
94633
|
}),
|
|
94289
|
-
(0, import_jsx_runtime.jsx)(PromptEditorLayer, {}),
|
|
94634
|
+
(0, import_jsx_runtime.jsx)(PromptEditorLayer, { fullscreen }),
|
|
94290
94635
|
overlay.kind === "update" && (0, import_jsx_runtime.jsx)(ThemedBox, {
|
|
94291
94636
|
position: "absolute",
|
|
94292
94637
|
top: 0,
|
|
@@ -94457,7 +94802,7 @@ function ModelPickerLoading() {
|
|
|
94457
94802
|
});
|
|
94458
94803
|
}
|
|
94459
94804
|
//#endregion
|
|
94460
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
94805
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/webLauncher.js
|
|
94461
94806
|
const MAIN_CLI_PACKAGE = "@chatcode/chatcode-cli";
|
|
94462
94807
|
function asError(value) {
|
|
94463
94808
|
return value instanceof Error ? value : new Error(String(value));
|
|
@@ -94613,7 +94958,7 @@ function launchWebFrontend(cwd, options = {}) {
|
|
|
94613
94958
|
}
|
|
94614
94959
|
}
|
|
94615
94960
|
//#endregion
|
|
94616
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
94961
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/inject-channel.js
|
|
94617
94962
|
/**
|
|
94618
94963
|
* External injection channel — lets an out-of-process editor integration
|
|
94619
94964
|
* (e.g. the `dsh.nvim` Neovim plugin) push text into the running TUI's
|
|
@@ -94808,7 +95153,7 @@ function openInjectChannel(sessionId, cwd, handlers, onError) {
|
|
|
94808
95153
|
};
|
|
94809
95154
|
}
|
|
94810
95155
|
//#endregion
|
|
94811
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
95156
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-auth.js
|
|
94812
95157
|
const CHATCODE_CLI_OAUTH_TOKEN = "CHATCODE_CLI_OAUTH_TOKEN";
|
|
94813
95158
|
const DEFAULT_SERVICE_WAIT_MS = 75e3;
|
|
94814
95159
|
function authService(ctx) {
|
|
@@ -94840,7 +95185,7 @@ function chatCodeAuthExpected(ctx) {
|
|
|
94840
95185
|
if (entry.disabled === true) return false;
|
|
94841
95186
|
const id = entry.options?.id;
|
|
94842
95187
|
const name = entry.options?.name;
|
|
94843
|
-
return id === "llm-chatcode-config" || name === "
|
|
95188
|
+
return id === "llm-chatcode-config" || name === "cco-llm-chatcode-config" || name?.endsWith("/cco-llm-chatcode-config") === true;
|
|
94844
95189
|
});
|
|
94845
95190
|
}
|
|
94846
95191
|
async function waitForAuthService(ctx, timeoutMs, pollMs) {
|
|
@@ -94982,7 +95327,7 @@ async function requireChatCodeStartupLogin(ctx, options) {
|
|
|
94982
95327
|
return "ready";
|
|
94983
95328
|
}
|
|
94984
95329
|
//#endregion
|
|
94985
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
95330
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/chatcode-api.js
|
|
94986
95331
|
/** Bind authenticated statistics requests to one TUI lifetime. */
|
|
94987
95332
|
function createChatCodeAuthorizedPost(ctx) {
|
|
94988
95333
|
const lifetime = new AbortController();
|
|
@@ -95021,7 +95366,7 @@ function createChatCodeAuthorizedPost(ctx) {
|
|
|
95021
95366
|
};
|
|
95022
95367
|
}
|
|
95023
95368
|
//#endregion
|
|
95024
|
-
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.
|
|
95369
|
+
//#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.22_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin.js
|
|
95025
95370
|
/**
|
|
95026
95371
|
* Interactive TUI front door for ChatCode CLI agents.
|
|
95027
95372
|
*
|