@chatcode/chatcode-cli 3.0.3 → 3.0.4-rc.2

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 (243) hide show
  1. package/README.i18n.yaml +10 -10
  2. package/README.md +16 -1
  3. package/README.zh.md +16 -1
  4. package/lib/bin.js +62 -11
  5. package/lib/{command-errors-CBJRI2gy.js → command-errors-CScdshCl.js} +12 -12
  6. package/lib/{command-trees-Dvq4C7a4.js → command-trees-Dc17MYfV.js} +2 -2
  7. package/lib/{component-identity-DPdJglJO.js → component-identity-DFJD_d-P.js} +3 -3
  8. package/lib/{dump-config-CauO75nE.js → dump-config-BcH-VYuv.js} +5 -5
  9. package/lib/dump-config-CyopmD85.js +2 -0
  10. package/lib/{dump-config-schema-CObLWWaW.js → dump-config-schema-DM0fb6Ns.js} +2 -2
  11. package/lib/{extension-events-Be9LWvHD.js → extension-events-qXmhzmHo.js} +20 -20
  12. package/lib/{frames-7PAg0Q9b.js → frames-B89znn_0.js} +4 -4
  13. package/lib/headless-compat.js +2 -2
  14. package/lib/{host-access-DeCjoRQP.js → host-access-B0CRAwsX.js} +1 -1
  15. package/lib/{keymap-CRUxM_qn.js → keymap-CIoVICBI.js} +17 -16
  16. package/lib/{plugin-CDFSDE_y.js → plugin-BKQsL2xn.js} +3264 -2301
  17. package/lib/{plugin-Cn-hyYY8.js → plugin-eJjD6r12.js} +1 -1
  18. package/lib/{profile-boot-SJGbpLgN.js → profile-boot-BNQry1NM.js} +97 -14
  19. package/lib/profile-boot.js +2 -2
  20. package/lib/{scenes-D6jV1EEi.js → scenes-BRf-zMpF.js} +3 -3
  21. package/lib/{settings-sections-DJQRNBo9.js → settings-sections-4gMhveN_.js} +7 -3
  22. package/lib/statusBarSettings-CnmdSHkO.js +382 -0
  23. package/lib/{themes-BCly4_y9.js → themes-Ce97Zsri.js} +13 -13
  24. package/lib/tui-compat-command-trees.js +1 -1
  25. package/lib/tui-compat-extensions.js +3 -3
  26. package/lib/tui-compat-plugin-host.js +5 -5
  27. package/lib/tui-compat-scenes.js +1 -1
  28. package/lib/tui-compat-settings-sections.js +1 -1
  29. package/lib/tui-compat-working-activity.js +4 -4
  30. package/lib/tui-compat-workspaces.js +1 -1
  31. package/lib/tui-compat.js +9 -26
  32. package/lib/types/args.d.ts +2 -0
  33. package/lib/types/permission-bypass.d.ts +16 -0
  34. package/lib/types/profile-boot.d.ts +12 -0
  35. package/lib/types/tui-compat.d.ts +4 -0
  36. package/lib/types/web-browser.d.ts +6 -0
  37. package/lib/types/web-instance.d.ts +42 -0
  38. package/lib/web-browser-Vcgfdsv_.js +46 -0
  39. package/lib/web-instance-B0jec7cq.js +2 -0
  40. package/lib/web-instance-DbP7IHPv.js +280 -0
  41. package/lib/{workspaces-Bb3kCAFb.js → workspaces-1xrm-e3V.js} +2 -2
  42. package/package.json +36 -33
  43. package/runtime/manifest.json +4 -2
  44. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +137 -11
  45. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/types/index.d.ts +27 -1
  46. package/runtime/node_modules/@deepseek-ai/dsh-agent-preset/skills/cordis-composition-reference/references/packages.md +2 -1
  47. package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/client.js +2 -0
  48. package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/types/client/remote-stream.js +4 -0
  49. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/client.js +152 -39
  50. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/index.js +4 -0
  51. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/remote-events.d.ts +3 -0
  52. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/remote-events.js +1 -0
  53. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/index.js +179 -35
  54. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.host.js +57 -30
  55. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.remote-client.js +31 -19
  56. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/agent.d.ts +9 -1
  57. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/agent.js +36 -6
  58. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/archived-session-gate.js +1 -1
  59. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/catalog.js +12 -2
  60. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/service.d.ts +1 -1
  61. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/commands.d.ts +2 -2
  62. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/commands.js +24 -8
  63. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/index.d.ts +4 -3
  64. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/index.js +31 -14
  65. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/list.d.ts +6 -0
  66. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/list.js +89 -4
  67. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/remote-events.d.ts +1 -1
  68. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/types.d.ts +27 -0
  69. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/index.js +28 -1
  70. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.host.js +39 -0
  71. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.d.ts +2 -0
  72. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.js +32 -0
  73. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.d.ts +8 -0
  74. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.js +19 -1
  75. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/client.js +30 -0
  76. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/index.js +111 -2
  77. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.host.js +104 -11
  78. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.remote-client.d.ts +5 -1
  79. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.remote-client.js +78 -11
  80. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/model.d.ts +14 -1
  81. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/model.js +17 -0
  82. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/service.d.ts +15 -0
  83. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/service.js +12 -0
  84. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/commands.d.ts +13 -1
  85. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/commands.js +44 -2
  86. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/feed.js +17 -0
  87. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/index.d.ts +13 -1
  88. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/index.js +22 -0
  89. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/types.d.ts +17 -0
  90. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +67 -19
  91. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/index.d.ts +1 -1
  92. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/profile-context.d.ts +11 -1
  93. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/worker/profile-resolution-bootstrap.js +22 -3
  94. package/runtime/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml +9 -3
  95. package/runtime/node_modules/@deepseek-ai/dsh-base/package.json +2 -1
  96. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/client.js +931 -7
  97. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/index.js +57 -19
  98. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/client/index.d.ts +5 -2
  99. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/config.d.ts +12 -0
  100. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/events.d.ts +4 -4
  101. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/index.d.ts +3 -8
  102. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/package.json +6 -2
  103. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +3 -2
  104. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/types/index.d.ts +2 -2
  105. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +10 -0
  106. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +1 -1
  107. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/present-open.d.ts +1 -1
  108. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
  109. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +68 -16
  110. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +3 -1
  111. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/locales.d.ts +6 -0
  112. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/CodeBlock.module.css +3 -5
  113. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/MarkdownText.module.css +23 -27
  114. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings/lib/types/client/contract/slots.d.ts +3 -1
  115. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
  116. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/types/index.d.ts +2 -2
  117. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +8 -7
  118. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/SettingsDocumentAction.d.ts +1 -1
  119. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/settings-document-store.d.ts +2 -1
  120. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +33 -12
  121. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/types/client/locales.d.ts +2 -0
  122. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
  123. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +3 -1
  124. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
  125. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +1925 -207
  126. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +13 -0
  127. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/contract/slots.d.ts +4 -0
  128. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +42 -0
  129. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/recent.d.ts +11 -0
  130. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/rows/RecentList.d.ts +15 -0
  131. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/rows/Rows.d.ts +6 -1
  132. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/DeleteSession.d.ts +24 -0
  133. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/stores.d.ts +2 -2
  134. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/tree.d.ts +15 -13
  135. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +3 -1
  136. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/index.js +16 -0
  137. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/typert.host.js +7 -3
  138. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/typert.remote-client.js +6 -2
  139. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/types/index.js +20 -0
  140. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/types/types.d.ts +5 -0
  141. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/index.js +35 -0
  142. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.d.ts +11 -0
  143. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.js +10 -0
  144. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.d.ts +28 -0
  145. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.js +36 -0
  146. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/package.json +42 -0
  147. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/index.js +102 -14
  148. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/types/index.d.ts +34 -4
  149. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/package.json +1 -0
  150. package/runtime/node_modules/@deepseek-ai/dsh-cordis-client-runner/lib/client.js +5 -2
  151. package/runtime/node_modules/@deepseek-ai/dsh-host-webserver/lib/index.js +2 -1
  152. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/index.js +21 -8
  153. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.d.ts +4 -6
  154. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.js +18 -7
  155. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/index.js +4 -0
  156. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/typert.host.js +5 -5
  157. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/typert.remote-client.js +5 -5
  158. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/types/index.js +5 -0
  159. package/runtime/node_modules/@deepseek-ai/dsh-session/lib/types/index.d.ts +21 -0
  160. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence/lib/index.js +12 -0
  161. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence/lib/types/index.d.ts +15 -0
  162. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/index.js +95 -2
  163. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/types/index.d.ts +3 -1
  164. package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/lib/index.js +25 -1
  165. package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/lib/types/index.d.ts +1 -0
  166. package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +2 -1
  167. package/runtime/node_modules/@deepseek-ai/dsh-session-query/lib/index.js +13 -0
  168. package/runtime/node_modules/@deepseek-ai/dsh-session-query/lib/types/observation.d.ts +5 -0
  169. package/runtime/node_modules/@deepseek-ai/dsh-session-query-sqlite/lib/index.js +26 -0
  170. package/runtime/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +2 -1
  171. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/index.js +5 -4
  172. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.d.ts +4 -3
  173. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.js +4 -3
  174. package/runtime/node_modules/@deepseek-ai/dsh-storage/lib/types/backend.d.ts +4 -0
  175. package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/index.js +65 -1
  176. package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/types/domain.d.ts +17 -2
  177. package/runtime/node_modules/@deepseek-ai/dsh-storage-json/lib/index.js +25 -0
  178. package/runtime/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -0
  179. package/runtime/node_modules/@deepseek-ai/dsh-subagent/lib/types/control.d.ts +1 -1
  180. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/index.js +5522 -0
  181. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/command-args.d.ts +17 -0
  182. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/cicd.d.ts +8 -0
  183. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/tianti.d.ts +7 -0
  184. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti-deliver/tianti-deliver.d.ts +8 -0
  185. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/config.d.ts +27 -0
  186. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/index.d.ts +13 -0
  187. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/memory-config.d.ts +10 -0
  188. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/runtime.d.ts +105 -0
  189. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/aliases.d.ts +11 -0
  190. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/auth.d.ts +20 -0
  191. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/client.d.ts +206 -0
  192. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/config.d.ts +22 -0
  193. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/index.d.ts +6 -0
  194. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/log.d.ts +16 -0
  195. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/types.d.ts +136 -0
  196. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/codebase.d.ts +19 -0
  197. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/dynamicWorkflow.d.ts +10 -0
  198. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/engine.d.ts +8 -0
  199. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executor.d.ts +11 -0
  200. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executors.d.ts +15 -0
  201. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/index.d.ts +23 -0
  202. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/memorySuggestions.d.ts +12 -0
  203. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/openspec.d.ts +31 -0
  204. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/recommend.d.ts +8 -0
  205. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/render.d.ts +8 -0
  206. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/requirementContext.d.ts +12 -0
  207. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/scenarioUpgrade.d.ts +24 -0
  208. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/state.d.ts +16 -0
  209. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/store.d.ts +33 -0
  210. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/templates.d.ts +8 -0
  211. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/types.d.ts +385 -0
  212. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/writeReviewSync.d.ts +6 -0
  213. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/index.d.ts +29 -0
  214. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/store.d.ts +20 -0
  215. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/types.d.ts +49 -0
  216. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/tools.d.ts +12 -0
  217. package/runtime/node_modules/@deepseek-ai/dsh-tianti/package.json +57 -0
  218. package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +157 -22
  219. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-D5kpKf--.css +1 -0
  220. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js +133 -0
  221. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js.map +1 -0
  222. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-apple-touch-icon.png +0 -0
  223. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-icon-32.png +0 -0
  224. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-mask-icon.svg +1 -0
  225. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon-dark.svg +1 -3
  226. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.ico +0 -0
  227. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.svg +1 -3
  228. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +8 -4
  229. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/preview.html +8 -4
  230. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/package.json +2 -1
  231. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/index.js +325 -37
  232. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/invariant.js +6 -1
  233. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.d.ts +6 -0
  234. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.js +23 -17
  235. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.d.ts +41 -0
  236. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.js +314 -23
  237. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/spec.d.ts +4 -0
  238. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/spec.js +4 -0
  239. package/lib/dump-config-CijLv_kn.js +0 -2
  240. package/lib/tuiDisplayPrefs-Dm_fULiR.js +0 -204
  241. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-DUvMhLle.css +0 -1
  242. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js +0 -127
  243. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js.map +0 -1
@@ -44,6 +44,23 @@ export class WorkspaceFeed {
44
44
  this.archived = ctx.workspaceRegistry.archivedSessionIds.map(String);
45
45
  this.pinned = ctx.workspaceRegistry.pinnedSessionIds.map(String);
46
46
  ctx.on('domain/changed', (change) => { this.changed(change); });
47
+ ctx.on('workspace/refreshed', () => {
48
+ const baseline = this.baseline();
49
+ const ids = new Set(baseline.items.map(item => String(item.workspaceId)));
50
+ for (const id of this.knownIds) {
51
+ if (!ids.has(id))
52
+ this.publish({ type: 'remove', workspaceId: WorkspaceId(id) });
53
+ }
54
+ this.knownIds = ids;
55
+ for (const workspace of baseline.items)
56
+ this.publish({ type: 'upsert', workspace });
57
+ this.order = baseline.items.map(item => String(item.workspaceId));
58
+ this.archived = baseline.archivedSessionIds.map(String);
59
+ this.pinned = baseline.pinnedSessionIds.map(String);
60
+ this.publish({ type: 'order', workspaceIds: baseline.items.map(item => item.workspaceId) });
61
+ this.publish({ type: 'archived', archivedSessionIds: baseline.archivedSessionIds });
62
+ this.publish({ type: 'pinned', pinnedSessionIds: baseline.pinnedSessionIds });
63
+ });
47
64
  ctx.effect(() => () => {
48
65
  for (const follower of this.followers)
49
66
  follower.close();
@@ -2,7 +2,7 @@
2
2
  import { Context } from '@deepseek-ai/cordis';
3
3
  import z from '@deepseek-ai/schemastery';
4
4
  import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
5
- import type { WorkspaceArchiveSessionRequest, WorkspaceArchiveValue, WorkspaceCreateRequest, WorkspaceCreateValue, WorkspaceDeleteRequest, WorkspaceDeleteValue, WorkspaceFollowFrame, WorkspaceInsertBeforeRequest, WorkspaceInsertSessionBeforeRequest, WorkspaceOrderValue, WorkspacePinSessionRequest, WorkspacePinValue, WorkspaceRenameRequest, WorkspaceUnarchiveSessionRequest, WorkspaceUnpinSessionRequest, WorkspaceValue } from './types.ts';
5
+ import type { WorkspaceArchiveSessionRequest, WorkspaceArchiveValue, WorkspaceCreateRequest, WorkspaceCreateValue, WorkspaceDeleteRequest, WorkspaceDeleteValue, WorkspaceFollowFrame, WorkspaceInsertBeforeRequest, WorkspaceInsertSessionBeforeRequest, WorkspaceOrderValue, WorkspacePinSessionRequest, WorkspacePinValue, WorkspaceRenameRequest, WorkspaceUnarchiveSessionRequest, WorkspaceSessionDeletionPreviewRequest, WorkspaceSessionDeletionRequest, WorkspaceSessionDeletionValue, WorkspaceUnpinSessionRequest, WorkspaceValue } from './types.ts';
6
6
  export type * from './types.ts';
7
7
  export { DirectoryPickerController } from './directory-picker.ts';
8
8
  /** First-use directory policy for the Host account. */
@@ -85,6 +85,18 @@ export declare class WorkspaceController extends TypertRemoteService {
85
85
  * @returns the complete resulting archive set.
86
86
  */
87
87
  unarchiveSession(request: WorkspaceUnarchiveSessionRequest): Promise<WorkspaceArchiveValue>;
88
+ /**
89
+ * Preview the archived root and owned subagent Sessions covered by deletion.
90
+ * @param request - archived root to preview.
91
+ * @returns complete deletion scope for confirmation.
92
+ */
93
+ sessionDeletionScope(request: WorkspaceSessionDeletionPreviewRequest): Promise<WorkspaceSessionDeletionValue>;
94
+ /**
95
+ * Permanently remove an archived Session and its confirmed owned subagents.
96
+ * @param request - archived root and confirmed scope.
97
+ * @returns identities permanently removed.
98
+ */
99
+ deleteSession(request: WorkspaceSessionDeletionRequest): Promise<WorkspaceSessionDeletionValue>;
88
100
  /**
89
101
  * Surface one known unarchived Session ahead of unpinned Sessions.
90
102
  * @param request - Session identity to pin.
@@ -52,6 +52,8 @@ let WorkspaceController = (() => {
52
52
  let _insertSessionBefore_decorators;
53
53
  let _archiveSession_decorators;
54
54
  let _unarchiveSession_decorators;
55
+ let _sessionDeletionScope_decorators;
56
+ let _deleteSession_decorators;
55
57
  let _pinSession_decorators;
56
58
  let _unpinSession_decorators;
57
59
  let _follow_decorators;
@@ -66,6 +68,8 @@ let WorkspaceController = (() => {
66
68
  _insertSessionBefore_decorators = [Remote('insertSessionBefore')];
67
69
  _archiveSession_decorators = [Remote('archiveSession')];
68
70
  _unarchiveSession_decorators = [Remote('unarchiveSession')];
71
+ _sessionDeletionScope_decorators = [Remote('sessionDeletionScope')];
72
+ _deleteSession_decorators = [Remote('deleteSession')];
69
73
  _pinSession_decorators = [Remote('pinSession')];
70
74
  _unpinSession_decorators = [Remote('unpinSession')];
71
75
  _follow_decorators = [Remote({ mode: 'stream' })];
@@ -77,6 +81,8 @@ let WorkspaceController = (() => {
77
81
  __esDecorate(this, null, _insertSessionBefore_decorators, { kind: "method", name: "insertSessionBefore", static: false, private: false, access: { has: obj => "insertSessionBefore" in obj, get: obj => obj.insertSessionBefore }, metadata: _metadata }, null, _instanceExtraInitializers);
78
82
  __esDecorate(this, null, _archiveSession_decorators, { kind: "method", name: "archiveSession", static: false, private: false, access: { has: obj => "archiveSession" in obj, get: obj => obj.archiveSession }, metadata: _metadata }, null, _instanceExtraInitializers);
79
83
  __esDecorate(this, null, _unarchiveSession_decorators, { kind: "method", name: "unarchiveSession", static: false, private: false, access: { has: obj => "unarchiveSession" in obj, get: obj => obj.unarchiveSession }, metadata: _metadata }, null, _instanceExtraInitializers);
84
+ __esDecorate(this, null, _sessionDeletionScope_decorators, { kind: "method", name: "sessionDeletionScope", static: false, private: false, access: { has: obj => "sessionDeletionScope" in obj, get: obj => obj.sessionDeletionScope }, metadata: _metadata }, null, _instanceExtraInitializers);
85
+ __esDecorate(this, null, _deleteSession_decorators, { kind: "method", name: "deleteSession", static: false, private: false, access: { has: obj => "deleteSession" in obj, get: obj => obj.deleteSession }, metadata: _metadata }, null, _instanceExtraInitializers);
80
86
  __esDecorate(this, null, _pinSession_decorators, { kind: "method", name: "pinSession", static: false, private: false, access: { has: obj => "pinSession" in obj, get: obj => obj.pinSession }, metadata: _metadata }, null, _instanceExtraInitializers);
81
87
  __esDecorate(this, null, _unpinSession_decorators, { kind: "method", name: "unpinSession", static: false, private: false, access: { has: obj => "unpinSession" in obj, get: obj => obj.unpinSession }, metadata: _metadata }, null, _instanceExtraInitializers);
82
88
  __esDecorate(this, null, _follow_decorators, { kind: "method", name: "follow", static: false, private: false, access: { has: obj => "follow" in obj, get: obj => obj.follow }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -178,6 +184,22 @@ let WorkspaceController = (() => {
178
184
  unarchiveSession(request) {
179
185
  return this.commands.unarchiveSession(request);
180
186
  }
187
+ /**
188
+ * Preview the archived root and owned subagent Sessions covered by deletion.
189
+ * @param request - archived root to preview.
190
+ * @returns complete deletion scope for confirmation.
191
+ */
192
+ sessionDeletionScope(request) {
193
+ return this.commands.sessionDeletionScope(request);
194
+ }
195
+ /**
196
+ * Permanently remove an archived Session and its confirmed owned subagents.
197
+ * @param request - archived root and confirmed scope.
198
+ * @returns identities permanently removed.
199
+ */
200
+ deleteSession(request) {
201
+ return this.commands.deleteSession(request);
202
+ }
181
203
  /**
182
204
  * Surface one known unarchived Session ahead of unpinned Sessions.
183
205
  * @param request - Session identity to pin.
@@ -42,6 +42,11 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
42
42
  readonly sessionId: SessionId;
43
43
  readonly activity: readonly SessionActivity[];
44
44
  };
45
+ /** Permanent deletion was refused before storage mutation. */
46
+ 'workspace/session-delete-refused': {
47
+ readonly sessionId: SessionId;
48
+ readonly reason: 'not-archived' | 'in-use' | 'deleted' | 'scope-changed';
49
+ };
45
50
  /** The Session or its anchor is not in the Workspace's manual order. */
46
51
  'workspace/move-invalid': {
47
52
  readonly workspaceId: WorkspaceId;
@@ -123,6 +128,18 @@ export interface WorkspaceArchiveSessionRequest {
123
128
  export interface WorkspaceUnarchiveSessionRequest {
124
129
  readonly sessionId: SessionId;
125
130
  }
131
+ /** Archived root whose deletion scope is requested. */
132
+ export interface WorkspaceSessionDeletionPreviewRequest {
133
+ readonly sessionId: SessionId;
134
+ }
135
+ /** Archived root and the exact scope confirmed by the user. */
136
+ export interface WorkspaceSessionDeletionRequest extends WorkspaceSessionDeletionPreviewRequest {
137
+ readonly expectedSessionIds: readonly SessionId[];
138
+ }
139
+ /** Root and owned subagent identities; independent forks are excluded. */
140
+ export interface WorkspaceSessionDeletionValue {
141
+ readonly sessionIds: readonly SessionId[];
142
+ }
126
143
  /** Complete archived Session set after a mutation. */
127
144
  export interface WorkspaceArchiveValue {
128
145
  readonly archivedSessionIds: readonly SessionId[];
@@ -540,13 +540,15 @@ const PROFILE_TEMPLATES = {
540
540
  web: { bundles: [
541
541
  "@deepseek-ai/dsh-base",
542
542
  "@deepseek-ai/dsh-web-app",
543
- "dshmarket"
543
+ "dshmarket",
544
+ "dsh-computer-use"
544
545
  ] },
545
546
  cli: { bundles: [
546
547
  "@deepseek-ai/dsh-base",
547
548
  "@deepseek-harness-tui/dsh-tui",
548
549
  "dsh-llm-chatcode-config",
549
- "dshmarket"
550
+ "dshmarket",
551
+ "dsh-computer-use"
550
552
  ] },
551
553
  headless: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-headless"] },
552
554
  sdk: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-sdk-app"] },
@@ -554,16 +556,26 @@ const PROFILE_TEMPLATES = {
554
556
  };
555
557
  /** Installation-owned bundle tuples normalized to the shipped template. */
556
558
  const INSTALLATION_OWNED_PROFILE_TUPLES = {
557
- cli: [
559
+ web: [[
560
+ "@deepseek-ai/dsh-base",
561
+ "@deepseek-ai/dsh-web-app",
562
+ "dshmarket"
563
+ ]],
564
+ cli: [[
558
565
  "@deepseek-ai/dsh-base",
559
566
  "@deepseek-harness-tui/dsh-tui",
560
567
  "dsh-llm-chatcode-config"
561
- ],
562
- headless: [
568
+ ], [
569
+ "@deepseek-ai/dsh-base",
570
+ "@deepseek-harness-tui/dsh-tui",
571
+ "dsh-llm-chatcode-config",
572
+ "dshmarket"
573
+ ]],
574
+ headless: [[
563
575
  "@deepseek-ai/dsh-base",
564
576
  "@deepseek-ai/dsh-web-app",
565
577
  "@deepseek-ai/dsh-headless"
566
- ]
578
+ ]]
567
579
  };
568
580
  /** The bundle list a `dsh plugin` init uses for a name with no shipped template. */
569
581
  const DEFAULT_PROFILE_BUNDLES = ["@deepseek-ai/dsh-base"];
@@ -882,7 +894,7 @@ function normalizeShippedProfile(name, dir, manifest) {
882
894
  const template = PROFILE_TEMPLATES[name];
883
895
  const bundles = manifest.dsh?.profile?.bundles;
884
896
  if (template === void 0 || bundles === void 0) return manifest;
885
- if (!(installationOwned !== void 0 && sameBundles(bundles, installationOwned))) return manifest;
897
+ if (!(installationOwned?.some((tuple) => sameBundles(bundles, tuple)) ?? false)) return manifest;
886
898
  const normalized = {
887
899
  ...manifest,
888
900
  dsh: {
@@ -1024,6 +1036,43 @@ function composeEntries(layers, warn = () => {}) {
1024
1036
  //#region lib/types/profile-context.js
1025
1037
  /** Launcher-owned profile locations and composition inputs. */
1026
1038
  const TELEMETRY_ROW_ID = "session-telemetry-otel";
1039
+ function findEntry(rows, id) {
1040
+ for (const row of rows) {
1041
+ if (row.id === id) return row;
1042
+ if (row.group && Array.isArray(row.config)) {
1043
+ const nested = findEntry(row.config, id);
1044
+ if (nested !== void 0) return nested;
1045
+ }
1046
+ }
1047
+ }
1048
+ function configObject(value) {
1049
+ return value !== null && typeof value === "object" && !Array.isArray(value);
1050
+ }
1051
+ /** Resolve shared home field overrides without replacing inherited deployment fields.
1052
+ * @param binName Diagnostic prefix for malformed configuration.
1053
+ * @param inherited Bundle and profile patches beneath the home layer.
1054
+ * @param homePatches Parsed home layer, including optional mergeConfig markers.
1055
+ * @returns Detached home patches ready for Loader composition or configuration dumps.
1056
+ */
1057
+ function resolveHomePatchConfigs(binName, inherited, homePatches) {
1058
+ const patches = structuredClone([...inherited]);
1059
+ for (const patch of structuredClone(homePatches)) {
1060
+ if (patch.mergeConfig === true) {
1061
+ if (typeof patch.id !== "string" || patch.insert !== void 0 || !configObject(patch.config)) throw new TypeError(`${binName}: mergeConfig requires an id-targeted object config in the home patch`);
1062
+ const target = findEntry(composeEntries([patches]), patch.id);
1063
+ if (target !== void 0 && (!patch.name || patch.name === target.name)) {
1064
+ if (target.config !== void 0 && !configObject(target.config)) throw new TypeError(`${binName}: cannot merge non-object config for ${patch.id}`);
1065
+ patch.config = {
1066
+ ...target.config,
1067
+ ...patch.config
1068
+ };
1069
+ }
1070
+ Reflect.deleteProperty(patch, "mergeConfig");
1071
+ }
1072
+ patches.push(patch);
1073
+ }
1074
+ return patches.slice(inherited.length);
1075
+ }
1027
1076
  /**
1028
1077
  * Resolve the telemetry opt-out switch into its boot patch. ANY non-empty
1029
1078
  * value (including `'0'`/`'false'`) disables: a privacy switch prefers
@@ -1046,22 +1095,20 @@ function resolveTelemetryPatch(disabledEnv, hasRow) {
1046
1095
  * @param binName Diagnostic prefix for malformed or missing configuration.
1047
1096
  * @param context Data supplied by the profile launcher.
1048
1097
  * @param initialProfile Already loaded startup profile; omitted reads the current files.
1098
+ * @param homePatches Candidate home layer for an edit; omitted reads the home patch.
1049
1099
  * @returns Detached ordered patches; this function does not update the Loader.
1050
1100
  */
1051
- function readProfilePatches(binName, context, initialProfile) {
1101
+ function readProfilePatches(binName, context, initialProfile, homePatches) {
1052
1102
  const profile = initialProfile ?? loadProfileDirectory(binName, context.dir, context.installAnchor, {
1053
1103
  ...context.trustedVersionExemptions === void 0 ? {} : { trustedVersionExemptions: context.trustedVersionExemptions },
1054
1104
  userLayer: false
1055
1105
  });
1056
- const patches = structuredClone([
1057
- ...profile.layers.flatMap((layer) => layer.patches),
1058
- ...initialProfile?.patches ?? loadOptionalPatches(binName, context.patchPath) ?? [],
1059
- ...loadOptionalPatches(binName, join(context.home, "cordis.patch.yml")) ?? [],
1060
- ...context.overlays
1061
- ]);
1106
+ const patches = structuredClone([...profile.layers.flatMap((layer) => layer.patches), ...initialProfile?.patches ?? loadOptionalPatches(binName, context.patchPath) ?? []]);
1107
+ patches.push(...resolveHomePatchConfigs(binName, patches, homePatches ?? loadOptionalPatches(binName, join(context.home, "cordis.patch.yml")) ?? []));
1108
+ patches.push(...structuredClone(context.overlays));
1062
1109
  const telemetryPatch = resolveTelemetryPatch(context.telemetryDisabledEnv, composeEntries([patches]).some((row) => row.id === TELEMETRY_ROW_ID));
1063
1110
  if (telemetryPatch !== void 0) patches.push(telemetryPatch);
1064
- return patches;
1111
+ return context.transformPatches?.(patches) ?? patches;
1065
1112
  }
1066
1113
  //#endregion
1067
1114
  //#region lib/types/profile-plugins.js
@@ -1203,7 +1250,7 @@ function barePackageName(request) {
1203
1250
  }
1204
1251
  function canonicalPath(path) {
1205
1252
  try {
1206
- return realpathSync(path);
1253
+ return realModuleDirectory(path);
1207
1254
  } catch {
1208
1255
  return resolve(path);
1209
1256
  }
@@ -1214,14 +1261,15 @@ function prefixes(path) {
1214
1261
  return canonical === configured ? [configured] : [configured, canonical];
1215
1262
  }
1216
1263
  function compileResolution(resolution) {
1264
+ const linkedPaths = resolution.linkedRoots.flatMap((root) => prefixes(root.realPath));
1217
1265
  return {
1218
1266
  entries: new Map(resolution.entries.map((entry) => [entry.name, entry])),
1219
1267
  profilesDir: resolution.profilesDir,
1220
1268
  profileDir: resolution.profileDir,
1221
1269
  profilePaths: prefixes(resolution.profilesDir),
1222
1270
  profile: resolution.profileDir === void 0 ? [] : prefixes(resolution.profileDir),
1223
- installationPaths: [...new Set(resolution.entries.filter((entry) => entry.scope === "installation").flatMap((entry) => prefixes(entry.packageDir)))],
1224
- linkedPaths: resolution.linkedRoots.flatMap((root) => prefixes(root.realPath)),
1271
+ installationPaths: linkedPaths.length === 0 ? [] : [...new Set(resolution.entries.filter((entry) => entry.scope === "installation").flatMap((entry) => prefixes(entry.packageDir)))],
1272
+ linkedPaths,
1225
1273
  localPackageNames: new Set(resolution.localPackageNames),
1226
1274
  esmRoutes: /* @__PURE__ */ new Map(),
1227
1275
  cjsRoutes: /* @__PURE__ */ new Map()
@@ -4168,4 +4216,4 @@ function addHarnessSourceSection(ctx, sourceRoot) {
4168
4216
  });
4169
4217
  }
4170
4218
  //#endregion
4171
- export { DEFAULT_PROFILE_BUNDLES, FAIL_LOUD_RELEASE_TIMEOUT_MS, HARNESS_SOURCE_SECTION, LOADER_EXPRESSION_SCHEMA, OPTIONAL_BUNDLES, PROFILES_DIR, PROFILE_COMPATIBILITY_FILENAME, PROFILE_PATCH_FILENAME, PROFILE_TEMPLATES, PluginPackages, StartupError, addHarnessSourceSection, auditStartupEntries, boot, bundlePatchFiles, bundlePatchPaths, composeEntries, createConfigProjector, createRuntimeResolution, evaluatePluginCompatibility, generateConfigSchema, getDshRuntimeVersion, initProfile, installFailLoud, isNativeConfigSchema, loadEnv, loadLayeredEnv, loadOptionalPatches, loadOverlayPatches, loadProfile, loadProfileDirectory, mergeVersionExemptions, mountRootInclude, pluginCompatibilityWarning, prepareProfileEntries, prepareProfilePatches, readPluginMeta, readProfileCompatibility, readProfileManifest, readProfilePatches, readProfilePlugins, readProfileVersionExemptions, reconcileProfilePatches, reconcileProfilePlugins, removeLinkProjections, renderConfigDump, reportSkippedBundles, resolveBundleDir, resolveConfigPath, resolveProfileDir, resolveTelemetryPatch, sanitizeProfile, setProfileVersionExemption, writeProfileBundles, writeProfileManifest };
4219
+ export { DEFAULT_PROFILE_BUNDLES, FAIL_LOUD_RELEASE_TIMEOUT_MS, HARNESS_SOURCE_SECTION, LOADER_EXPRESSION_SCHEMA, OPTIONAL_BUNDLES, PROFILES_DIR, PROFILE_COMPATIBILITY_FILENAME, PROFILE_PATCH_FILENAME, PROFILE_TEMPLATES, PluginPackages, StartupError, addHarnessSourceSection, auditStartupEntries, boot, bundlePatchFiles, bundlePatchPaths, composeEntries, createConfigProjector, createRuntimeResolution, evaluatePluginCompatibility, generateConfigSchema, getDshRuntimeVersion, initProfile, installFailLoud, isNativeConfigSchema, loadEnv, loadLayeredEnv, loadOptionalPatches, loadOverlayPatches, loadProfile, loadProfileDirectory, mergeVersionExemptions, mountRootInclude, pluginCompatibilityWarning, prepareProfileEntries, prepareProfilePatches, readPluginMeta, readProfileCompatibility, readProfileManifest, readProfilePatches, readProfilePlugins, readProfileVersionExemptions, reconcileProfilePatches, reconcileProfilePlugins, removeLinkProjections, renderConfigDump, reportSkippedBundles, resolveBundleDir, resolveConfigPath, resolveHomePatchConfigs, resolveProfileDir, resolveTelemetryPatch, sanitizeProfile, setProfileVersionExemption, writeProfileBundles, writeProfileManifest };
@@ -10,7 +10,7 @@ import { type Entry } from '@deepseek-ai/cordis-plugin-loader';
10
10
  import { type PatchOptions } from '@deepseek-ai/cordis-plugin-include';
11
11
  import { dshHomePath } from '@deepseek-ai/dsh-home-paths';
12
12
  import { type LaunchEnvironmentSnapshot } from '@deepseek-ai/dsh-launch-environment';
13
- export { readProfilePatches, resolveTelemetryPatch, type ProfileContext, type ProfilePnpmInvocation } from './profile-context.ts';
13
+ export { readProfilePatches, resolveHomePatchConfigs, resolveTelemetryPatch, type ProfileContext, type ProfilePnpmInvocation, } from './profile-context.ts';
14
14
  export { sanitizeProfile } from './profile-sanitize.ts';
15
15
  export { getDshRuntimeVersion, evaluatePluginCompatibility, pluginCompatibilityWarning, type PluginCompatibility } from './plugin-compatibility.ts';
16
16
  export { PROFILE_COMPATIBILITY_FILENAME, readProfileCompatibility, readProfileVersionExemptions, mergeVersionExemptions, setProfileVersionExemption, type ProfileCompatibility, } from './profile-compatibility.ts';
@@ -20,6 +20,8 @@ export interface ProfileContext {
20
20
  readonly startedBundles: readonly string[];
21
21
  /** Parsed command-line overlays, applied above profile and home patches. */
22
22
  readonly overlays: readonly PatchOptions[];
23
+ /** Launcher package aliases applied identically at startup and on every reload. */
24
+ readonly transformPatches?: (patches: PatchOptions[]) => PatchOptions[];
23
25
  /** Distributor-reviewed exact plugin/runtime pairs, additive to user-owned profile exemptions. */
24
26
  readonly trustedVersionExemptions?: Readonly<Record<string, readonly string[]>>;
25
27
  /** Launch-time CHATCODE_CLI_TELEMETRY_DISABLED value; any non-empty value opts out. */
@@ -31,6 +33,13 @@ declare module '@deepseek-ai/cordis' {
31
33
  profileContext: ProfileContext;
32
34
  }
33
35
  }
36
+ /** Resolve shared home field overrides without replacing inherited deployment fields.
37
+ * @param binName Diagnostic prefix for malformed configuration.
38
+ * @param inherited Bundle and profile patches beneath the home layer.
39
+ * @param homePatches Parsed home layer, including optional mergeConfig markers.
40
+ * @returns Detached home patches ready for Loader composition or configuration dumps.
41
+ */
42
+ export declare function resolveHomePatchConfigs(binName: string, inherited: readonly PatchOptions[], homePatches: readonly PatchOptions[]): PatchOptions[];
34
43
  /**
35
44
  * Resolve the telemetry opt-out switch into its boot patch. ANY non-empty
36
45
  * value (including `'0'`/`'false'`) disables: a privacy switch prefers
@@ -47,7 +56,8 @@ export declare function resolveTelemetryPatch(disabledEnv: string | undefined, h
47
56
  * @param binName Diagnostic prefix for malformed or missing configuration.
48
57
  * @param context Data supplied by the profile launcher.
49
58
  * @param initialProfile Already loaded startup profile; omitted reads the current files.
59
+ * @param homePatches Candidate home layer for an edit; omitted reads the home patch.
50
60
  * @returns Detached ordered patches; this function does not update the Loader.
51
61
  */
52
- export declare function readProfilePatches(binName: string, context: ProfileContext, initialProfile?: Profile): PatchOptions[];
62
+ export declare function readProfilePatches(binName: string, context: ProfileContext, initialProfile?: Profile, homePatches?: readonly PatchOptions[]): PatchOptions[];
53
63
  //# sourceMappingURL=profile-context.d.ts.map
@@ -41,6 +41,24 @@ function f(e, r, t) {
41
41
  if (e.imports) return n(e.name, e.imports, r, t);
42
42
  }
43
43
  //#endregion
44
+ //#region lib/types/profile-resolution/legacy-links.js
45
+ /** Package directory canonicalization through the active runtime carrier's filesystem. */
46
+ /**
47
+ * Return whether the process reads application modules from pkg's virtual filesystem.
48
+ * @returns whether pkg owns the module filesystem.
49
+ */
50
+ function isPackagedExecutable() {
51
+ return process.pkg !== void 0;
52
+ }
53
+ /**
54
+ * Resolve a directory through the active carrier's filesystem implementation.
55
+ * @param path - directory path to canonicalize.
56
+ * @returns the canonical directory path.
57
+ */
58
+ function realModuleDirectory(path) {
59
+ return isPackagedExecutable() ? realpathSync(path) : realpathSync.native(path);
60
+ }
61
+ //#endregion
44
62
  //#region lib/types/profile-resolution/resolver.js
45
63
  /** In-memory profile package routing for Node's default ESM and CommonJS loaders. */
46
64
  const EMPTY_ATTRIBUTES = Object.freeze({});
@@ -59,7 +77,7 @@ function barePackageName(request) {
59
77
  }
60
78
  function canonicalPath(path) {
61
79
  try {
62
- return realpathSync(path);
80
+ return realModuleDirectory(path);
63
81
  } catch {
64
82
  return resolve(path);
65
83
  }
@@ -70,14 +88,15 @@ function prefixes(path) {
70
88
  return canonical === configured ? [configured] : [configured, canonical];
71
89
  }
72
90
  function compileResolution(resolution) {
91
+ const linkedPaths = resolution.linkedRoots.flatMap((root) => prefixes(root.realPath));
73
92
  return {
74
93
  entries: new Map(resolution.entries.map((entry) => [entry.name, entry])),
75
94
  profilesDir: resolution.profilesDir,
76
95
  profileDir: resolution.profileDir,
77
96
  profilePaths: prefixes(resolution.profilesDir),
78
97
  profile: resolution.profileDir === void 0 ? [] : prefixes(resolution.profileDir),
79
- installationPaths: [...new Set(resolution.entries.filter((entry) => entry.scope === "installation").flatMap((entry) => prefixes(entry.packageDir)))],
80
- linkedPaths: resolution.linkedRoots.flatMap((root) => prefixes(root.realPath)),
98
+ installationPaths: linkedPaths.length === 0 ? [] : [...new Set(resolution.entries.filter((entry) => entry.scope === "installation").flatMap((entry) => prefixes(entry.packageDir)))],
99
+ linkedPaths,
81
100
  localPackageNames: new Set(resolution.localPackageNames),
82
101
  esmRoutes: /* @__PURE__ */ new Map(),
83
102
  cjsRoutes: /* @__PURE__ */ new Map()
@@ -97,6 +97,8 @@
97
97
  - id: config-editor
98
98
  name: '@deepseek-ai/dsh-config-editor'
99
99
  disabled: !!js "!ctx.get('profileContext')"
100
+ config:
101
+ sharedEntries: [llm-pi-ai]
100
102
 
101
103
  - id: settings
102
104
  name: '@deepseek-ai/dsh-settings'
@@ -204,7 +206,7 @@
204
206
  - id: session-telemetry-otel
205
207
  name: '@deepseek-ai/dsh-session-telemetry-otel'
206
208
  config:
207
- mode: !!js process.env.DSH_TELEMETRY_MODE || 'FEEDBACK_ONLY'
209
+ mode: !!js process.env.CHATCODE_CLI_TELEMETRY_MODE || process.env.DSH_TELEMETRY_MODE || 'FEEDBACK_ONLY'
208
210
  shutdownTimeoutMillis: 3000
209
211
  exporter:
210
212
  url: !!js process.env.DSH_TELEMETRY_OTLP_URL ?? 'https://harness-telemetry.deepseeksvc.com/v1/logs'
@@ -228,7 +230,7 @@
228
230
  - id: sandbox-policy
229
231
  name: '@deepseek-ai/dsh-sandbox-policy'
230
232
  config:
231
- mode: !!js process.env.DSH_PERMISSION_MODE ?? 'workspace-write'
233
+ mode: !!js process.env.CHATCODE_CLI_PERMISSION_MODE || process.env.DSH_PERMISSION_MODE || 'workspace-write'
232
234
  workspaceRoot: !!js process.cwd()
233
235
 
234
236
  - id: bash-sandbox
@@ -244,7 +246,7 @@
244
246
  - id: approval
245
247
  name: '@deepseek-ai/dsh-user-approval'
246
248
  config:
247
- policy: !!js "(process.env.DSH_PERMISSION_MODE ?? 'workspace-write') === 'danger-full-access' ? 'never' : 'ask'"
249
+ policy: !!js "(process.env.CHATCODE_CLI_PERMISSION_MODE || process.env.DSH_PERMISSION_MODE || 'workspace-write') === 'danger-full-access' ? 'never' : 'ask'"
248
250
 
249
251
  - id: permission
250
252
  name: '@deepseek-ai/dsh-permission-presets'
@@ -340,6 +342,10 @@
340
342
  - id: compaction-basic
341
343
  name: '@deepseek-ai/dsh-compaction-basic'
342
344
 
345
+ # Shared ChatCode login is consumed only when a Tianti command or tool runs.
346
+ - id: tianti
347
+ name: '@deepseek-ai/dsh-tianti'
348
+
343
349
  # Human `/compact`: one useful reduction below the automatic threshold. Backend
344
350
  # independent, so it follows whichever compaction service this leaf mounts.
345
351
  - id: command-compact
@@ -124,7 +124,8 @@
124
124
  "@deepseek-ai/dsh-authorization": "workspace:*",
125
125
  "@deepseek-ai/dsh-deepseek-account-platform": "workspace:*",
126
126
  "@deepseek-ai/dsh-config-editor": "workspace:*",
127
- "@deepseek-ai/dsh-settings": "workspace:*"
127
+ "@deepseek-ai/dsh-settings": "workspace:*",
128
+ "@deepseek-ai/dsh-tianti": "workspace:*"
128
129
  },
129
130
  "peerDependencies": {
130
131
  "@deepseek-ai/cordis": "workspace:~"