@chatcode/chatcode-cli 3.0.4-rc.4 → 3.0.4-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.i18n.yaml +4 -4
  2. package/README.md +4 -2
  3. package/README.zh.md +4 -2
  4. package/lib/bin.js +3 -3
  5. package/lib/{command-errors-BJ_ZWzUU.js → command-errors-Ca64Lgba.js} +12 -12
  6. package/lib/{command-trees-C9b7-bci.js → command-trees-CVc4Xu_z.js} +2 -2
  7. package/lib/{component-identity-Jb1DYjke.js → component-identity-6aEut5Yt.js} +3 -3
  8. package/lib/dump-config-CDixiJNt.js +2 -0
  9. package/lib/{dump-config-BcH-VYuv.js → dump-config-ZzrfvtnX.js} +10 -6
  10. package/lib/{dump-config-schema-DM0fb6Ns.js → dump-config-schema-BlO-eZ-J.js} +2 -2
  11. package/lib/{extension-events-DKX4LXOd.js → extension-events-C7MUpqVE.js} +20 -20
  12. package/lib/headless-compat.js +31 -31
  13. package/lib/{host-access-CMg6rsWt.js → host-access-CLbyAGT5.js} +1 -1
  14. package/lib/{keymap-CrC4pSNH.js → keymap-82JwLLHe.js} +2 -2
  15. package/lib/{plugin-eJjD6r12.js → plugin-BZdazFXS.js} +1 -1
  16. package/lib/{plugin-CmyMCGfb.js → plugin-BlQlWIR5.js} +425 -451
  17. package/lib/{profile-boot-BNQry1NM.js → profile-boot-B0aEEQIR.js} +40 -11
  18. package/lib/profile-boot.js +2 -2
  19. package/lib/{scenes-Cil9RnwU.js → scenes-BNS0ZFyQ.js} +3 -3
  20. package/lib/{settings-sections-jVCqXwdH.js → settings-sections-CXH24cu5.js} +3 -3
  21. package/lib/{statusBarSettings-DNoBH3Cq.js → statusBarSettings-BAMzn8fX.js} +6 -6
  22. package/lib/{themes-BdgeY3It.js → themes-DXUIvP7m.js} +12 -12
  23. package/lib/tui-compat-command-trees.js +1 -1
  24. package/lib/tui-compat-extensions.js +3 -3
  25. package/lib/tui-compat-plugin-host.js +5 -5
  26. package/lib/tui-compat-scenes.js +1 -1
  27. package/lib/tui-compat-settings-sections.js +1 -1
  28. package/lib/tui-compat-working-activity.js +17 -17
  29. package/lib/tui-compat-workspaces.js +1 -1
  30. package/lib/tui-compat.js +39 -39
  31. package/lib/types/dump-config.d.ts +3 -3
  32. package/lib/types/profile-boot.d.ts +13 -3
  33. package/lib/{workspaces-DOatJRYr.js → workspaces-CUJXNU5W.js} +2 -2
  34. package/package.json +25 -25
  35. package/runtime/manifest.json +1 -1
  36. package/runtime/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js +1 -1
  37. package/runtime/node_modules/@deepseek-ai/cordis-plugin-loader/src/config/entry.ts +1 -1
  38. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +5 -1
  39. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/profile-context.d.ts +2 -0
  40. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
  41. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
  42. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +3 -1
  43. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +17 -159
  44. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +1 -2
  45. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/index.js +5 -1
  46. package/runtime/node_modules/@deepseek-ai/dsh-subagent/lib/types/control.d.ts +1 -1
  47. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/{index-Dz_cDcce.js → index-D-8yUukj.js} +24 -24
  48. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/{index-Dz_cDcce.js.map → index-D-8yUukj.js.map} +1 -1
  49. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +1 -1
  50. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/preview.html +1 -1
  51. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/index.js +40 -29
  52. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.d.ts +2 -2
  53. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.js +53 -28
  54. package/lib/dump-config-CyopmD85.js +0 -2
package/README.i18n.yaml CHANGED
@@ -12,11 +12,11 @@
12
12
  en: 57439d3d02b1c963
13
13
  zh: 5f86d52b4790a834
14
14
  /chatcode-chatcode-cli/profiles:
15
- en: 36405fc361505950
16
- zh: f6d1a6c77032276d
15
+ en: f2b855f935bb43d3
16
+ zh: 58cbf85ca552847c
17
17
  /chatcode-chatcode-cli/optional-overlays:
18
18
  en: 3a40ddc44e55f79c
19
19
  zh: 8d3949132e1ef93c
20
20
  /chatcode-chatcode-cli/development:
21
- en: 8342d41b1add62e9
22
- zh: 1104c5e8b258224d
21
+ en: a7c062a01d9dad87
22
+ zh: dbc20c96c2b13d35
package/README.md CHANGED
@@ -62,7 +62,9 @@ A profile directory holds a `package.json` (out-of-tree plugin dependencies plus
62
62
  Installation and profile startup enforce declared DSH peer ranges against the same runtime version shown by `dsh --version`. Incompatible plugins require an explicitly acknowledged exact-version exemption. The [plugin manager's compatibility reference](../../packages/boot/plugin-manager/README.md#version-compatibility-and-exemptions) documents `version-exemptions`, `allow-version`, `revoke-version`, persistence, and risks.
63
63
 
64
64
  The tree composes over an empty root:
65
+
65
66
  - each bundle's patch in `dsh.profile.bundles` order
67
+ - then launcher-owned product defaults, including the Web sidebar mount
66
68
  - then the profile's `cordis.patch.yml`, then the home-level `$CHATCODE_CLI_HOME/cordis.patch.yml`
67
69
  - then `--patch` overlays
68
70
 
@@ -80,7 +82,7 @@ The legacy-data startup reminder checks only the top-level entries of the old ho
80
82
 
81
83
  Set `CHATCODE_CLI_STARTUP_TRACE=1` to print phase and plugin activation durations to stderr for either `cco` or `cco web`. A `begin` line without a matching duration identifies unfinished work. Tracing is off by default and records labels and elapsed times, not environment values or plugin configuration.
82
84
 
83
- Product and command-line overlays that resolve to the same physical file are applied once, retaining the first path and its relative-resource base. Distinct overlays retain their order and override precedence. Source launches ignore embedded-runtime staging left by packaging and resolve the live workspace packages.
85
+ Product defaults and command-line overlays that resolve to the same physical file are applied once at the default layer, retaining the first path and its relative-resource base. Distinct command-line overlays retain their order and override precedence. Sidebar settings save into the profile patch above the product mount and survive restart; restoring defaults removes that override. Source launches ignore embedded-runtime staging left by packaging and resolve the live workspace packages.
84
86
 
85
87
  The [CLI behavior reference](reference/README.md) owns exact layer precedence, flags, shutdown behavior, deployment defaults, and source execution. The [startup and reload failure table](../../packages/boot/app-boot/README.md#startup-and-reload-failures) compares optional and required plugin failures with configuration HMR.
86
88
 
@@ -94,7 +96,7 @@ Production runs require built package and frontend artifacts. From the repositor
94
96
 
95
97
  Run `pnpm exec vitest run apps/cli/tests/chatcode-rate-limit.spec.ts apps/cli/tests/permission-bypass.spec.ts` from the repository root to check retry and launch-permission behavior. The retry tests mount the installed `dsh-llm-chatcode-config` plugin through its public package entry and use fixture responses for catalog and model HTTP requests.
96
98
 
97
- The TUI bridge validates its declared live fields with the launcher's schema runtime, including volatile metadata emitted by older TUI schema versions. This keeps settings editable without replacing the running session.
99
+ The TUI bridge validates its declared live fields with the launcher's schema runtime, including volatile metadata emitted by older TUI schema versions. This keeps settings editable without replacing the running session. The launcher also normalizes the pinned sidebar's legacy schema before activation, preserving its package identity and browser module while live edits update running values.
98
100
 
99
101
  The published CLI directly pins every Harness runtime package referenced by the base/Web bundles and every required peer of its bundled ChatCode plugins. Keep those entries on the same Harness release when publishing: npm's global installer does not preserve pnpm workspace peer unification, and otherwise may hoist an older ABI beside the current runtime.
100
102
 
package/README.zh.md CHANGED
@@ -62,7 +62,9 @@ profile 目录包含一个 `package.json`,其中记录树外插件依赖,以
62
62
  安装和 profile 启动会按声明的 DSH peer 范围,检查与 `dsh --version` 显示值相同的运行时版本。不兼容插件需要用户明确确认精确版本豁免。[插件管理器的兼容性参考](../../packages/boot/plugin-manager/README.zh.md#version-compatibility-and-exemptions)说明 `version-exemptions`、`allow-version`、`revoke-version`、持久化规则与风险。
63
63
 
64
64
  配置树以空根为起点,依次叠加以下配置层:
65
+
65
66
  - `dsh.profile.bundles` 中各组合包的 patch
67
+ - 然后是启动器持有的产品默认配置,包括 Web 侧边栏挂载
66
68
  - profile 自身的 `cordis.patch.yml`,然后是 home 级的 `$CHATCODE_CLI_HOME/cordis.patch.yml`
67
69
  - `--patch` 指定的覆盖层
68
70
 
@@ -80,7 +82,7 @@ TUI 等待共用默认模型服务就绪后才创建首个会话。ChatCode 模
80
82
 
81
83
  设置 `CHATCODE_CLI_STARTUP_TRACE=1`,即可在运行 `cco` 或 `cco web` 时向 stderr 输出启动阶段与插件激活耗时。只有 `begin` 而没有对应耗时的条目表示尚未完成的工作。默认不启用诊断;日志只记录标签与耗时,不记录环境变量值或插件配置。
82
84
 
83
- 产品覆盖层与命令行覆盖层如果解析到同一个物理文件,只应用一次,并保留首个路径及其相对资源解析基准。不同文件的覆盖层保留原有顺序与覆盖优先级。源码启动忽略打包留下的内嵌运行时暂存文件,解析当前工作区中的包。
85
+ 产品默认配置与命令行覆盖层如果解析到同一个物理文件,只在默认配置层应用一次,并保留首个路径及其相对资源解析基准。其他命令行覆盖层保留原有顺序与覆盖优先级。侧边栏设置写入优先于产品挂载的 profile patch,并在重启后保留;恢复默认值会移除该覆盖项。源码启动忽略打包留下的内嵌运行时暂存文件,解析当前工作区中的包。
84
86
 
85
87
  层的确切优先级、flag、关闭行为、部署默认值和源码执行方式,以 [CLI 行为参考](reference/README.zh.md)为准。[启动与重载失败表](../../packages/boot/app-boot/README.zh.md#startup-and-reload-failures)对比 optional、required 插件启动失败与配置 HMR 的行为。
86
88
 
@@ -94,7 +96,7 @@ TUI 等待共用默认模型服务就绪后才创建首个会话。ChatCode 模
94
96
 
95
97
  在仓库根目录运行 `pnpm exec vitest run apps/cli/tests/chatcode-rate-limit.spec.ts apps/cli/tests/permission-bypass.spec.ts`,检查重试与启动权限行为。重试测试通过公开包入口挂载已安装的 `dsh-llm-chatcode-config` 插件,并为目录与模型 HTTP 请求提供 fixture 响应。
96
98
 
97
- TUI 适配层使用启动器自身的 schema 运行时校验其声明的动态配置字段,包括旧版 TUI schema 输出的 volatile 元数据,从而保持设置可编辑且不替换正在运行的会话。
99
+ TUI 适配层使用启动器自身的 schema 运行时校验其声明的动态配置字段,包括旧版 TUI schema 输出的 volatile 元数据,从而保持设置可编辑且不替换正在运行的会话。启动器也在激活前规范化固定版本侧边栏的旧 schema,保留其包标识与浏览器模块,使实时编辑更新运行中的值。
98
100
 
99
101
  发布版 CLI 会直接固定 base/Web 组合包实际引用的所有 Harness 运行时包,以及随附 ChatCode 插件的全部必需 peer。发布时必须让这些依赖保持在同一个 Harness 版本:npm 全局安装不会保留 pnpm workspace 对 peer 的统一解析,否则可能把旧 ABI 提升到顶层并与当前运行时混用。
100
102
 
package/lib/bin.js CHANGED
@@ -327,17 +327,17 @@ async function runCli() {
327
327
  break;
328
328
  }
329
329
  case "plugin": {
330
- const { runPlugin } = await import("./plugin-eJjD6r12.js");
330
+ const { runPlugin } = await import("./plugin-BZdazFXS.js");
331
331
  process.exit(await runPlugin(invocation.profile, invocation.args));
332
332
  break;
333
333
  }
334
334
  case "dump-config": {
335
- const { runDumpConfig } = await import("./dump-config-CyopmD85.js");
335
+ const { runDumpConfig } = await import("./dump-config-CDixiJNt.js");
336
336
  runDumpConfig(invocation.profile, invocation.defaultOnly, invocation.patches, invocation.fromDefaultProfile);
337
337
  break;
338
338
  }
339
339
  case "dump-config-schema": {
340
- const { runDumpConfigSchema } = await import("./dump-config-schema-DM0fb6Ns.js");
340
+ const { runDumpConfigSchema } = await import("./dump-config-schema-BlO-eZ-J.js");
341
341
  await runDumpConfigSchema(invocation.profile, invocation.patches, invocation.fromDefaultProfile);
342
342
  break;
343
343
  }
@@ -1,12 +1,12 @@
1
- import { a as compositionRoot, i as bindCallerEffect, o as concreteService, r as assertCallerContext, t as activationContext } from "./host-access-CMg6rsWt.js";
2
- import { a as declaresPermission, d as normalizePermissionScope, i as declaresObserverScope, m as scopeCovers, n as componentIdentityOf, o as requireComponentIdentity, p as rawScopeCovers, s as requiresContract, u as INTERCEPT_PERMISSIONS } from "./component-identity-Jb1DYjke.js";
3
- import { B as createAdmissionCatalog, G as validateSetInput, H as validateDeleteOutput, K as validateSetOutput, L as TUI_DECISION_EVENT_NAMES, M as loadSpecData, N as registryEntries, P as verifyContractProfiles, S as DATA_DIR, U as validateGetInput, V as validateDeleteInput, W as validateGetOutput, X as defineProtocolDeclaration, Y as projectManifest, j as digestFile, p as cleanScalarText, q as validateMessageEvent, x as readGrantStore } from "./extension-events-DKX4LXOd.js";
1
+ import { a as compositionRoot, i as bindCallerEffect, o as concreteService, r as assertCallerContext, t as activationContext } from "./host-access-CLbyAGT5.js";
2
+ import { a as declaresPermission, d as normalizePermissionScope, i as declaresObserverScope, m as scopeCovers, n as componentIdentityOf, o as requireComponentIdentity, p as rawScopeCovers, s as requiresContract, u as INTERCEPT_PERMISSIONS } from "./component-identity-6aEut5Yt.js";
3
+ import { B as createAdmissionCatalog, G as validateSetInput, H as validateDeleteOutput, K as validateSetOutput, L as TUI_DECISION_EVENT_NAMES, M as loadSpecData, N as registryEntries, P as verifyContractProfiles, S as DATA_DIR, U as validateGetInput, V as validateDeleteInput, W as validateGetOutput, X as defineProtocolDeclaration, Y as projectManifest, j as digestFile, p as cleanScalarText, q as validateMessageEvent, x as readGrantStore } from "./extension-events-C7MUpqVE.js";
4
4
  import { appendFileSync, mkdirSync, readFileSync } from "node:fs";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { dirname, join } from "node:path";
7
7
  import { Service } from "@deepseek-ai/cordis";
8
8
  import { withFileLock, writeFileAtomic } from "@deepseek-ai/dsh-atomic-write";
9
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/validate.js
9
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/validate.js
10
10
  /** Semantic validation layered on the official manifest parser/projection. */
11
11
  const coordinateKey$1 = (coordinate) => `${coordinate.apiVersion}#${coordinate.kind}`;
12
12
  const groupOf = (apiVersion) => apiVersion.split("/")[0] ?? "";
@@ -124,7 +124,7 @@ function validateHost(index, host) {
124
124
  }
125
125
  }
126
126
  //#endregion
127
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/negotiate.js
127
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/negotiate.js
128
128
  /** Five-state admission decision using dsh-std projection and ProtocolCatalog. */
129
129
  const coordinateKey = (ref) => `${ref.apiVersion}#${ref.kind}`;
130
130
  function negotiate(index, manifest, host, grants = []) {
@@ -197,7 +197,7 @@ function negotiate(index, manifest, host, grants = []) {
197
197
  } : { decision: "compatible" };
198
198
  }
199
199
  //#endregion
200
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/schema-check.js
200
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/schema-check.js
201
201
  /**
202
202
  * 零依赖 JSON Schema 校验器——上游 `conformance/tests/run.js` 的 check()
203
203
  * 的保真 TS 移植。刻意只实现 vendored schemas 用到的子集:本地 $ref、
@@ -301,7 +301,7 @@ function check(value, schema, rootSchema = schema, where = "$") {
301
301
  }
302
302
  }
303
303
  //#endregion
304
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/host-descriptor.js
304
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/host-descriptor.js
305
305
  /** Build the current ChatCode CLI TUI Host Descriptor from the pinned admission profile. */
306
306
  const HOST_SUPPORTED_CONTRACTS = Object.freeze([
307
307
  {
@@ -453,7 +453,7 @@ function buildHostDescriptor(options) {
453
453
  });
454
454
  }
455
455
  //#endregion
456
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/effect-ledger.js
456
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/effect-ledger.js
457
457
  /**
458
458
  * Effect ledger (C-060): an append-only JSONL journal of plugin-visible
459
459
  * effects at `~/.chatcode-cli/tui/effect-ledger.jsonl`, mounted by the
@@ -645,7 +645,7 @@ function resumeSequence(file) {
645
645
  return max + 1;
646
646
  }
647
647
  //#endregion
648
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin-storage.js
648
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/plugin-storage.js
649
649
  /**
650
650
  * storage.local contract surface (C-040, `storage.dsh/v1alpha1#LocalStorage`):
651
651
  * per-plugin private persistence, mounted by the dsh-tui-plugin-host row as
@@ -986,7 +986,7 @@ var TuiPluginStorageRuntime = class extends Service {
986
986
  }
987
987
  };
988
988
  //#endregion
989
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/message-observer.js
989
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/message-observer.js
990
990
  /**
991
991
  * messages.observe contract surface (C-042,
992
992
  * `messages.dsh/v1alpha1#MessageObserver`): the host event broker, mounted
@@ -1494,7 +1494,7 @@ function observerStateFor(runtime) {
1494
1494
  return state;
1495
1495
  }
1496
1496
  //#endregion
1497
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/command-attribution.js
1497
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/command-attribution.js
1498
1498
  /**
1499
1499
  * Command ownership attribution — the data source for the C-041 invoke
1500
1500
  * checkpoint's per-owner grant decision.
@@ -1572,7 +1572,7 @@ function commandOwner(ctx, definition) {
1572
1572
  return ownerMaps.get(key)?.get(handler);
1573
1573
  }
1574
1574
  //#endregion
1575
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/command-errors.js
1575
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/command-errors.js
1576
1576
  /**
1577
1577
  * commands contract error-code alignment (C-041,
1578
1578
  * `commands.dsh/v1alpha1#Command`): the official `dsh-commands` runtime
@@ -1,6 +1,6 @@
1
- import { a as compositionRoot, i as bindCallerEffect, n as activationFiber, o as concreteService, s as requirePluginCaller } from "./host-access-CMg6rsWt.js";
1
+ import { a as compositionRoot, i as bindCallerEffect, n as activationFiber, o as concreteService, s as requirePluginCaller } from "./host-access-CLbyAGT5.js";
2
2
  import { Service } from "@deepseek-ai/cordis";
3
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/command-trees.js
3
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/command-trees.js
4
4
  /** Provider-neutral subcommand completion registry for terminal front doors. */
5
5
  const name = "dsh-tui-command-trees";
6
6
  /** Small host-only registry; command execution remains owned by dsh-commands. */
@@ -1,6 +1,6 @@
1
- import { i as bindCallerEffect, n as activationFiber } from "./host-access-CMg6rsWt.js";
1
+ import { i as bindCallerEffect, n as activationFiber } from "./host-access-CLbyAGT5.js";
2
2
  import { randomUUID } from "node:crypto";
3
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/permission-scope.js
3
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/permission-scope.js
4
4
  /** Permission scope normalization shared by admission and runtime checks. */
5
5
  const STORAGE_PERMISSIONS = new Set(["storage.local.read", "storage.local.write"]);
6
6
  const INTERCEPT_PERMISSIONS = new Set([
@@ -76,7 +76,7 @@ function rawScopeCovers(permission, declared, actual, componentId) {
76
76
  return normalizedDeclared !== void 0 && normalizedActual !== void 0 && permissionScopeCovers(permission, normalizedDeclared, normalizedActual);
77
77
  }
78
78
  //#endregion
79
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/component-identity.js
79
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/component-identity.js
80
80
  /** Verified Component identity bound to one Cordis activation owner. */
81
81
  var ComponentIdentityError = class extends Error {
82
82
  code;
@@ -0,0 +1,2 @@
1
+ import { n as runDumpConfig } from "./dump-config-ZzrfvtnX.js";
2
+ export { runDumpConfig };
@@ -1,4 +1,4 @@
1
- import { a as chatCodeProfilePatchFiles, f as prepareProfile, g as uniqueProfilePatchFiles, i as PROFILE_ROOT_FILENAME, s as homePatchPath } from "./profile-boot-BNQry1NM.js";
1
+ import { c as homePatchPath, i as PROFILE_ROOT_FILENAME, o as chatCodeProfilePatchLayers, p as prepareProfile } from "./profile-boot-B0aEEQIR.js";
2
2
  import { existsSync } from "node:fs";
3
3
  import { loadOptionalPatches, loadOverlayPatches, renderConfigDump, resolveHomePatchConfigs } from "@deepseek-ai/dsh-app-boot";
4
4
  import { join } from "node:path";
@@ -7,7 +7,7 @@ import { join } from "node:path";
7
7
  * Config-dump entry for `dsh --profile <name> --dump-config`: compose the
8
8
  * profile's patch layers through the include plugin's patch algorithm without
9
9
  * booting or evaluating `!!js`, with one source layer per bundle, the
10
- * profile and home patch files, ChatCode product overlays, and each `--patch`
10
+ * ChatCode product defaults, profile and home patch files, and each `--patch`
11
11
  * overlay.
12
12
  * @module @deepseek-ai/dsh/dump-config
13
13
  */
@@ -28,8 +28,8 @@ function runDumpConfig(profile, defaultOnly, patches, fromDefaultProfile) {
28
28
  process.stdout.write(renderConfigDump(NAME, join(loaded.dir, PROFILE_ROOT_FILENAME), layers));
29
29
  }
30
30
  /**
31
- * Read dump layers in bundle, profile, home, then argv order without composing them.
32
- * @param profileName - the profile name used to select ChatCode product overlays.
31
+ * Read dump layers in bundle, product defaults, profile, home, then argv order without composing them.
32
+ * @param profileName - the profile name used to select ChatCode product defaults.
33
33
  * @param loaded - prepared profile and parsed bundle and profile patches.
34
34
  * @param defaultOnly - omit profile, home, and argv layers without reading their files.
35
35
  * @param patches - overlay paths relative to the invoking directory, in argv order.
@@ -41,6 +41,11 @@ function collectConfigDumpLayers(profileName, loaded, defaultOnly, patches) {
41
41
  patches: layer.patches
42
42
  }));
43
43
  if (!defaultOnly) {
44
+ const files = chatCodeProfilePatchLayers(profileName, patches);
45
+ for (const absolute of files.defaults) layers.push({
46
+ label: absolute,
47
+ patches: loadOverlayPatches(NAME, absolute)
48
+ });
44
49
  if (existsSync(loaded.patchPath)) layers.push({
45
50
  label: loaded.patchPath,
46
51
  patches: loaded.patches
@@ -51,8 +56,7 @@ function collectConfigDumpLayers(profileName, loaded, defaultOnly, patches) {
51
56
  label: homePatchFile,
52
57
  patches: resolveHomePatchConfigs(NAME, layers.flatMap((layer) => layer.patches), homePatches)
53
58
  });
54
- const productPatches = chatCodeProfilePatchFiles(profileName);
55
- for (const absolute of uniqueProfilePatchFiles([...productPatches, ...patches])) layers.push({
59
+ for (const absolute of files.overlays) layers.push({
56
60
  label: absolute,
57
61
  patches: loadOverlayPatches(NAME, absolute)
58
62
  });
@@ -1,5 +1,5 @@
1
- import { f as prepareProfile, r as INSTALL_ANCHOR } from "./profile-boot-BNQry1NM.js";
2
- import { t as collectConfigDumpLayers } from "./dump-config-BcH-VYuv.js";
1
+ import { p as prepareProfile, r as INSTALL_ANCHOR } from "./profile-boot-B0aEEQIR.js";
2
+ import { t as collectConfigDumpLayers } from "./dump-config-ZzrfvtnX.js";
3
3
  import { generateConfigSchema } from "@deepseek-ai/dsh-app-boot";
4
4
  //#region lib/types/dump-config-schema.js
5
5
  /**
@@ -1,12 +1,12 @@
1
1
  import { i as __toESM, t as __commonJSMin } from "./rolldown-runtime-2rV9d50f.js";
2
- import { a as compositionRoot, i as bindCallerEffect } from "./host-access-CMg6rsWt.js";
3
- import { c as requiresDecisionEvents, d as normalizePermissionScope, f as permissionScopeCovers, l as INTERCEPT_EVENT_SCOPE_BY_PERMISSION, n as componentIdentityOf } from "./component-identity-Jb1DYjke.js";
2
+ import { a as compositionRoot, i as bindCallerEffect } from "./host-access-CLbyAGT5.js";
3
+ import { c as requiresDecisionEvents, d as normalizePermissionScope, f as permissionScopeCovers, l as INTERCEPT_EVENT_SCOPE_BY_PERMISSION, n as componentIdentityOf } from "./component-identity-6aEut5Yt.js";
4
4
  import { existsSync, readFileSync } from "node:fs";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { homedir } from "node:os";
7
7
  import { dirname, join, resolve } from "node:path";
8
8
  import { createHash } from "node:crypto";
9
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/core/lib/index.js
9
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/core/lib/index.js
10
10
  function protocolKey(reference) {
11
11
  return `${reference.apiVersion}\0${reference.kind}`;
12
12
  }
@@ -408,7 +408,7 @@ function comparePrerelease(left, right) {
408
408
  return 0;
409
409
  }
410
410
  //#endregion
411
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/manifest/lib/index.js
411
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/manifest/lib/index.js
412
412
  const COMPONENT_API_VERSION = "manifest.dsh/internal/v1alpha1";
413
413
  const COMMUNITY_PERMISSION_API_VERSION = "community.dsh/v1alpha1";
414
414
  const COMMUNITY_PERMISSION_KIND = "Permission";
@@ -1012,7 +1012,7 @@ function canonical(value) {
1012
1012
  return JSON.stringify(value) ?? "null";
1013
1013
  }
1014
1014
  //#endregion
1015
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js
1015
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js
1016
1016
  /** Reusable RPC-shaped protocol definition. Domain packages opt into these semantics explicitly. */
1017
1017
  function defineCapabilityProtocol(options) {
1018
1018
  const definition = {
@@ -1068,7 +1068,7 @@ function isConnectionPolicy(value) {
1068
1068
  return typeof value === "object" && value !== null && typeof value.endpointByParticipant === "object" && value.endpointByParticipant !== null;
1069
1069
  }
1070
1070
  //#endregion
1071
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/presentation/lib/callback.js
1071
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/presentation/lib/callback.js
1072
1072
  const EXTERNAL_REDIRECT_KIND = "ExternalRedirect";
1073
1073
  const emptySpec$3 = (value) => {
1074
1074
  if (value !== void 0) throw new TypeError("ExternalRedirect does not accept spec in v1alpha1");
@@ -1084,7 +1084,7 @@ Object.freeze({
1084
1084
  kind: EXTERNAL_REDIRECT_KIND
1085
1085
  });
1086
1086
  //#endregion
1087
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/presentation/lib/index.js
1087
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/presentation/lib/index.js
1088
1088
  const API_VERSION$3 = "presentation.dsh/v1alpha1";
1089
1089
  const OPEN_EXTERNAL_KIND = "OpenExternal";
1090
1090
  const COPY_TEXT_KIND = "CopyText";
@@ -1261,7 +1261,7 @@ function deepFreeze(value) {
1261
1261
  return value;
1262
1262
  }
1263
1263
  //#endregion
1264
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/command/lib/index.js
1264
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/command/lib/index.js
1265
1265
  const API_VERSION$2 = "commands.dsh/v1alpha1";
1266
1266
  const KIND$2 = "Command";
1267
1267
  const RUNTIME_KIND = "CommandRuntime";
@@ -1455,7 +1455,7 @@ function exact(value, allowed, label) {
1455
1455
  if (unknown.length > 0) throw new TypeError(`${label} contains unknown field ${JSON.stringify(unknown[0])}`);
1456
1456
  }
1457
1457
  //#endregion
1458
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/messages/lib/index.js
1458
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/messages/lib/index.js
1459
1459
  const API_VERSION$1 = "messages.dsh/v1alpha1";
1460
1460
  const KIND$1 = "MessageObserver";
1461
1461
  const EVENT_TYPE = "messages.observe";
@@ -1588,7 +1588,7 @@ function record(value) {
1588
1588
  return typeof value === "object" && value !== null && !Array.isArray(value);
1589
1589
  }
1590
1590
  //#endregion
1591
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/storage/lib/index.js
1591
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/node_modules/@dsh-std/storage/lib/index.js
1592
1592
  const API_VERSION = "storage.dsh/v1alpha1";
1593
1593
  const KIND = "LocalStorage";
1594
1594
  const protocol = Object.freeze({
@@ -1687,7 +1687,7 @@ function key(value, label) {
1687
1687
  if (typeof value !== "string" || value.length === 0) throw new TypeError(`${label} must be a non-empty string`);
1688
1688
  }
1689
1689
  //#endregion
1690
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/dsh-ecosystem-spec/protocols/tui-channel.js
1690
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/dsh-ecosystem-spec/protocols/tui-channel.js
1691
1691
  const TUI_CHANNEL = Object.freeze({
1692
1692
  apiVersion: "tui.dsh/v1alpha1",
1693
1693
  kind: "Channel"
@@ -1759,7 +1759,7 @@ function nonEmpty(value, label) {
1759
1759
  if (typeof value !== "string" || value.trim() === "") throw new TypeError(`${label} must be a non-empty string`);
1760
1760
  }
1761
1761
  //#endregion
1762
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/tui-extension.js
1762
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/tui-extension.js
1763
1763
  /** ChatCode CLI TUI private protocol registration on the shared dsh-std catalog. */
1764
1764
  const TUI_EXTENSION_API_VERSION = "tui.dsh/v1alpha1";
1765
1765
  const DECISION_EVENTS_COORDINATE = Object.freeze({
@@ -1828,7 +1828,7 @@ function createAdmissionCatalog() {
1828
1828
  };
1829
1829
  }
1830
1830
  //#endregion
1831
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/registry.js
1831
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/plugin-spec/registry.js
1832
1832
  /** Load and verify the pinned ChatCode CLI TUI admission profile. */
1833
1833
  const REGISTRY_FILE = join("registry", "registry-0.15.json");
1834
1834
  const EXPECTED_PROFILE_VERSION = "tui-admission/0.15";
@@ -2043,7 +2043,7 @@ function verifyContractProfiles(data) {
2043
2043
  return failures;
2044
2044
  }
2045
2045
  //#endregion
2046
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/paths.js
2046
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/paths.js
2047
2047
  const CHATCODE_CLI_HOME_ENV = "CHATCODE_CLI_HOME";
2048
2048
  const LEGACY_DSH_HOME_ENV = "DSH_HOME";
2049
2049
  const CHATCODE_CLI_TUI_ENV_PREFIX = "CHATCODE_CLI_TUI_";
@@ -2145,7 +2145,7 @@ function detectLegacyEnv(env = process.env) {
2145
2145
  return Object.keys(RENAMED_ENV).filter((name) => env[name] !== void 0);
2146
2146
  }
2147
2147
  //#endregion
2148
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/grants.js
2148
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/grants.js
2149
2149
  /** Live, scoped plugin grant evaluation. */
2150
2150
  const EXTENSION_GRANTS_FILE = "extension-grants.json";
2151
2151
  function parseRule(value) {
@@ -3020,7 +3020,7 @@ function stripAnsi(string) {
3020
3020
  return string.replace(regex, "");
3021
3021
  }
3022
3022
  //#endregion
3023
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/intl.js
3023
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/intl.js
3024
3024
  let graphemeSegmenter;
3025
3025
  /**
3026
3026
  * Memoized `Intl.Segmenter` with grapheme granularity, used by the ported Ink
@@ -3031,7 +3031,7 @@ function getGraphemeSegmenter() {
3031
3031
  return graphemeSegmenter ??= new Intl.Segmenter("en", { granularity: "grapheme" });
3032
3032
  }
3033
3033
  //#endregion
3034
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/stringWidth.js
3034
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/ink/stringWidth.js
3035
3035
  const EMOJI_REGEX = (0, import_emoji_regex.default)();
3036
3036
  /**
3037
3037
  * Fallback JavaScript implementation of stringWidth when Bun.stringWidth is not available.
@@ -3253,7 +3253,7 @@ const BUN_STRING_WIDTH_OPTS = { ambiguousIsNarrow: true };
3253
3253
  */
3254
3254
  const stringWidth = bunStringWidth ? (str) => bunStringWidth(str, BUN_STRING_WIDTH_OPTS) : stringWidthJavaScript;
3255
3255
  //#endregion
3256
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sanitize.js
3256
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/sanitize.js
3257
3257
  /**
3258
3258
  * The render-path sanitization contract for plugin-supplied text — the
3259
3259
  * single implementation behind every managed-UI seam (dialogs, status line,
@@ -3312,7 +3312,7 @@ function flattenInline(value) {
3312
3312
  return value.replace(/[\x00-\x1f\x7f-\x9f]/g, " ");
3313
3313
  }
3314
3314
  //#endregion
3315
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/decision-guard.js
3315
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/decision-guard.js
3316
3316
  /**
3317
3317
  * RFC 0005 D-7 enforcement: subscribing to an intercept-class (decision)
3318
3318
  * event requires an explicit host-side grant — default deny.
@@ -3564,7 +3564,7 @@ function installDecisionGuard(ctx, grants) {
3564
3564
  });
3565
3565
  }
3566
3566
  //#endregion
3567
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/extension-events.js
3567
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/extension-events.js
3568
3568
  /**
3569
3569
  * Decision-point events the TUI fires on the cordis bus so plugins can
3570
3570
  * intercept, cancel, or customize interactive flows — the `session_before_*`
@@ -1,7 +1,7 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { readFile } from "node:fs/promises";
3
+ import Schema from "@deepseek-ai/schemastery";
3
4
  import { brandString } from "@deepseek-ai/dsh-brand";
4
- import z from "@deepseek-ai/schemastery";
5
5
  import * as upstreamRunner from "@deepseek-ai/dsh-headless";
6
6
  import { installModelSelection } from "@deepseek-ai/dsh-agent";
7
7
  import { ReasoningEffortId, createUserMessage } from "@deepseek-ai/dsh-llm";
@@ -47,36 +47,36 @@ const internals = {
47
47
  * @module @chatcode/chatcode-cli-test/headless-compat/options
48
48
  */
49
49
  /** Runtime schema for profile overlays that configure the legacy print row directly. */
50
- const LegacyPrintOptionsSchema = z.object({
51
- print: z.boolean(),
52
- stdin: z.boolean(),
53
- outputFormat: z.union([
50
+ const LegacyPrintOptionsSchema = Schema.object({
51
+ print: Schema.boolean(),
52
+ stdin: Schema.boolean(),
53
+ outputFormat: Schema.union([
54
54
  "text",
55
55
  "json",
56
56
  "stream-json"
57
57
  ]),
58
- inputFormat: z.union(["text", "stream-json"]),
59
- verbose: z.boolean(),
60
- replayUserMessages: z.boolean(),
61
- includePartialMessages: z.boolean(),
62
- model: z.string(),
63
- effort: z.string(),
64
- allowedTools: z.array(z.string()).default(void 0),
65
- availableTools: z.array(z.string()).default(void 0),
66
- disallowedTools: z.array(z.string()).default(void 0),
67
- systemPrompt: z.string(),
68
- systemPromptFile: z.string(),
69
- appendSystemPrompt: z.string(),
70
- appendSystemPromptFile: z.string(),
71
- permissionMode: z.string(),
72
- dangerouslySkipPermissions: z.boolean(),
73
- continueSession: z.boolean(),
74
- resume: z.string(),
75
- forkSession: z.boolean(),
76
- sessionPersistence: z.boolean(),
77
- maxTurns: z.number(),
78
- maxBudgetUsd: z.number(),
79
- jsonSchema: z.string()
58
+ inputFormat: Schema.union(["text", "stream-json"]),
59
+ verbose: Schema.boolean(),
60
+ replayUserMessages: Schema.boolean(),
61
+ includePartialMessages: Schema.boolean(),
62
+ model: Schema.string(),
63
+ effort: Schema.string(),
64
+ allowedTools: Schema.array(Schema.string()).default(void 0),
65
+ availableTools: Schema.array(Schema.string()).default(void 0),
66
+ disallowedTools: Schema.array(Schema.string()).default(void 0),
67
+ systemPrompt: Schema.string(),
68
+ systemPromptFile: Schema.string(),
69
+ appendSystemPrompt: Schema.string(),
70
+ appendSystemPromptFile: Schema.string(),
71
+ permissionMode: Schema.string(),
72
+ dangerouslySkipPermissions: Schema.boolean(),
73
+ continueSession: Schema.boolean(),
74
+ resume: Schema.string(),
75
+ forkSession: Schema.boolean(),
76
+ sessionPersistence: Schema.boolean(),
77
+ maxTurns: Schema.number(),
78
+ maxBudgetUsd: Schema.number(),
79
+ jsonSchema: Schema.string()
80
80
  });
81
81
  //#endregion
82
82
  //#region lib/types/headless-compat-protocol.js
@@ -744,10 +744,10 @@ const inject = [
744
744
  "agents",
745
745
  "sessions"
746
746
  ];
747
- const Config = z.object({
748
- task: z.string(),
749
- sessionId: z.string(),
750
- json: z.boolean(),
747
+ const Config = Schema.object({
748
+ task: Schema.string(),
749
+ sessionId: Schema.string(),
750
+ json: Schema.boolean(),
751
751
  legacy: LegacyPrintOptionsSchema.default(void 0)
752
752
  });
753
753
  /** Aggregate the last assistant text and turn outcome in one owned interval. */
@@ -1,6 +1,6 @@
1
1
  import { Context, Fiber } from "@deepseek-ai/cordis";
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/host-access.js
3
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/dsh-adapter/host-access.js
4
4
  /**
5
5
  * Recover the concrete Cordis service for host-only adapters.
6
6
  *
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/modifiers.js
1
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/modifiers.js
2
2
  /**
3
3
  * Cross-platform modifier-key helpers. Windows/Linux muscle memory uses
4
4
  * Ctrl+<key>; on macOS the same action maps to Cmd+<key>. Terminals deliver
@@ -39,7 +39,7 @@ function isPlainReturnInput(input, key) {
39
39
  return /^[\r\n]+$/u.test(input) && !key.ctrl && !key.meta && !key.shift && !key.super;
40
40
  }
41
41
  //#endregion
42
- //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.20_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/keymap.js
42
+ //#region ../../node_modules/.pnpm/@chatcode+cco-tui@0.10.0-rc.21_08ea48c8555976e562c6368d51cb542b/node_modules/@chatcode/cco-tui/lib/types/utils/keymap.js
43
43
  /**
44
44
  * Built-in keyboard-shortcut keymap: the shared combo grammar, the action
45
45
  * registry, and the live override cache behind `/settings` customization.
@@ -1,4 +1,4 @@
1
- import { r as INSTALL_ANCHOR, t as CHATCODE_PROFILE_TEMPLATES } from "./profile-boot-BNQry1NM.js";
1
+ import { r as INSTALL_ANCHOR, t as CHATCODE_PROFILE_TEMPLATES } from "./profile-boot-B0aEEQIR.js";
2
2
  import { existsSync } from "node:fs";
3
3
  import { DEFAULT_PROFILE_BUNDLES, initProfile, readProfileCompatibility, resolveProfileDir } from "@deepseek-ai/dsh-app-boot";
4
4
  import { join } from "node:path";