@deepseek-ai/dsh-web-app 0.1.2-rc.1 → 0.1.5-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/bundle/web-app/README.md
5
- README.md: c352ec937ecfa51f36eae1970067a62aed51b643
6
- README.zh.md: cc3b5e5660cd7fdb38f6d9084669491b1df27ee7
5
+ README.md: aea694942173a856861d00a69f15b451cc930976
6
+ README.zh.md: f1b402c985ec2c21afdd67f8cb5477196aafeb44
package/README.md CHANGED
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
9
9
 
10
10
  ## Summary
11
11
 
12
- Run `dsh --profile web` and the interface opens in your default browser, ready for interactive chat with the agent. You get the conversation view, model and settings management, and session history, backed by the same model access, tools, and safety defaults as every other surface. The command prints a tokenized startup URL; the browser exchanges that token for a signed session cookie and redirects to the clean root URL. You can change the port, suppress the browser handoff, and allow extra hosts from the command line; binding all network interfaces is intentionally not supported. Choose it for interactive work in the browser; `dsh-headless` is the one-shot command-line sibling.
12
+ Run `dsh --profile web` to open an interactive browser GUI with chat, model and settings management, and session history. It uses the same model access, tools, and safety defaults as other dsh surfaces. Startup prints an authenticated URL and normally opens it in the default browser; SSH sessions and `--no-open` leave the URL for manual opening. You can change the port and allow extra hosts, but cannot bind all network interfaces. Choose this package for interactive browser work; use `dsh-headless` for one-shot command-line tasks.
13
13
 
14
14
  ## Table of Contents
15
15
 
@@ -73,7 +73,7 @@ The bundle is one patch plus one runtime glue plugin. The storage stack and proj
73
73
 
74
74
  ### Patch semantics
75
75
 
76
- A patch replaces the targeted row's whole `config`, so each web row restates every key it owns: the persona, the `DSH_TOOLS_MODE` PTC mode opt-in, and the `session-query-sqlite` values on the base rows, then `insert` adds the web host rows, transport, and browser roster. The per-agent tool rows the base mounts process-wide are disabled here and the preset roster takes over; the reasoning for each host-plane versus preset-plane decision is inline in the patch.
76
+ A patch replaces the targeted row's whole `config`, so each web row restates every key it owns: the persona prefix and suffix templates, the `DSH_TOOLS_MODE` PTC mode opt-in, and the `session-query-sqlite` values on the base rows, then `insert` adds the web host rows, transport, and browser roster. The per-agent tool rows the base mounts process-wide are disabled here and the preset roster takes over; the reasoning for each host-plane versus preset-plane decision is inline in the patch.
77
77
 
78
78
  ### Readiness
79
79
 
@@ -124,7 +124,7 @@ Read these pages when you want to go deeper into the shared core, the browser re
124
124
 
125
125
  #### What the model sees
126
126
 
127
- When `surfaceContext` is true, the `harness:source` section identifies the on-disk Harness implementation without claiming it is the working directory, and the `app:web-surface` global section (first-party order −800) orients the model to the GUI: the canonical local URL, the "this page" referent, the update contract (the reload receiver is always on; no-refresh reloads additionally need the `pnpm run dev:web` watcher), and the instruction not to start replacement servers. `DSH_WEB_URL` additionally appears in the managed bash environment with its description, resolved per invocation from the live server. When it is false, neither section nor the variable is registered.
127
+ When `surfaceContext` is true, the `harness:source` section identifies the on-disk Harness implementation without claiming it is the working directory, and the `app:web-surface` global section (first-party order 10100, after reusable instructions) orients the model to the GUI: the canonical local URL, the "this page" referent, the update contract (the reload receiver is always on; no-refresh reloads additionally need the `pnpm run dev:web` watcher), and the instruction not to start replacement servers. `DSH_WEB_URL` additionally appears in the managed bash environment with its description, resolved per invocation from the live server. When it is false, neither section nor the variable is registered.
128
128
 
129
129
  #### Token effect
130
130
 
@@ -132,7 +132,7 @@ One source line and one prompt paragraph per session plus two managed-environmen
132
132
 
133
133
  #### KV Cache effect
134
134
 
135
- The prompt section sits near the system prompt's head and is stable for the life of the process (the port is a boot fact), so it does not invalidate the cache across turns.
135
+ Source and Web sections follow first-party reusable instructions. Different checkout paths or local ports leave that preceding prefix unchanged when tools and configuration match; provider cache reuse is not guaranteed.
136
136
 
137
137
  ## Known Limitations and Deferred Work
138
138
 
package/README.zh.md CHANGED
@@ -9,7 +9,7 @@ kind: "package-bundle"
9
9
 
10
10
  ## 概述
11
11
 
12
- 运行 `dsh --profile web`,界面会在你的默认浏览器中打开,即可与 agent(智能体)交互式聊天。你会获得会话视图、模型与设置管理以及会话历史,背后与其他表层相同的模型访问、工具与安全默认值。该命令会打印带 token 的启动 URL;浏览器用该 token 换取签名会话 cookie,再重定向到干净的根 URL。你可以从命令行更改端口、关闭浏览器交接并允许额外主机;有意不支持绑定所有网络接口。需要浏览器中的交互式工作时选择它;`dsh-headless` 是一次性的命令行兄弟表层。
12
+ 运行 `dsh --profile web`,打开提供聊天、模型与设置管理以及会话历史的交互式浏览器 GUI。它使用与其他 dsh 表层相同的模型访问、工具与安全默认值。启动时会打印经过认证的 URL,通常还会在默认浏览器中打开;SSH 会话和 `--no-open` 会保留该 URL,供你手动打开。你可以更改端口并允许额外主机,但不能绑定所有网络接口。需要在浏览器中交互式工作时选择本包;一次性的命令行任务应使用 `dsh-headless`。
13
13
 
14
14
  ## 目录
15
15
 
@@ -73,7 +73,7 @@ dsh --profile web --no-open --port 8080
73
73
 
74
74
  ### patch 语义
75
75
 
76
- patch 会替换目标行的整个 `config`,因此每个 Web 行都重述自己拥有的每个键:基础行上的 persona、`DSH_TOOLS_MODE` PTC mode 开关与 `session-query-sqlite` 值,随后 `insert` 添加 Web 宿主行、传输层与浏览器名录。base 以进程级挂载的按 agent 工具行在这里被禁用,由 preset 名录接管;每项宿主层与 preset 层归属决策的理由以行内注释写在 patch 里。
76
+ patch 会替换目标行的整个 `config`,因此每个 Web 行都重述自己拥有的每个键:基础行上的 persona 前缀与后缀模板、`DSH_TOOLS_MODE` PTC mode 开关与 `session-query-sqlite` 值,随后 `insert` 添加 Web 宿主行、传输层与浏览器名录。base 以进程级挂载的按 agent 工具行在这里被禁用,由 preset 名录接管;每项宿主层与 preset 层归属决策的理由以行内注释写在 patch 里。
77
77
 
78
78
  ### 就绪宣告
79
79
 
@@ -124,7 +124,7 @@ URL 行与浏览器交接都是就绪信号:监督方一观察到该行就发
124
124
 
125
125
  #### 模型看到什么
126
126
 
127
- 当 `surfaceContext` 为 true 时,`harness:source` 段落标明磁盘上的 Harness 实现,但不会声称它就是工作目录;全局段落 `app:web-surface`(first-party 顺序 −800)则向模型说明 GUI:规范的本地 URL、「this page」指代什么、更新约定(重载接收端始终开启;无刷新重载还需要 `pnpm run dev:web` watcher),以及不要启动替代服务器的指令。`DSH_WEB_URL` 还会连同描述出现在受管 bash 环境中,每次调用时从运行中的服务器解析。当它为 false 时,这两个段落和该变量都不会注册。
127
+ 当 `surfaceContext` 为 true 时,`harness:source` 段落标明磁盘上的 Harness 实现,但不会声称它就是工作目录;全局段落 `app:web-surface`(first-party 顺序 10100,位于可复用指令之后)则向模型说明 GUI:规范的本地 URL、「this page」指代什么、更新约定(重载接收端始终开启;无刷新重载还需要 `pnpm run dev:web` watcher),以及不要启动替代服务器的指令。`DSH_WEB_URL` 还会连同描述出现在受管 bash 环境中,每次调用时从运行中的服务器解析。当它为 false 时,这两个段落和该变量都不会注册。
128
128
 
129
129
  #### Token 影响
130
130
 
@@ -132,7 +132,7 @@ URL 行与浏览器交接都是就绪信号:监督方一观察到该行就发
132
132
 
133
133
  #### KV Cache 影响
134
134
 
135
- 该提示词段落位于系统提示词靠前位置,且在进程整个生命周期内稳定(端口是启动期事实),因此不会使跨轮次缓存失效。
135
+ 源码与 Web 段落位于第一方可复用指令之后。工具与配置一致时,不同 checkout 路径或本地端口不会改变前置前缀;不保证提供方复用缓存。
136
136
 
137
137
  ## 已知限制与延期工作
138
138
 
package/cordis.patch.yml CHANGED
@@ -15,8 +15,9 @@
15
15
 
16
16
  - id: system-prompt
17
17
  config:
18
- persona: >-
19
- You are a coding agent powered by the {{model}} model. Your working directory is {{cwd}}.
18
+ personaSuffix: Your working directory is {{cwd}}.
19
+ personaPrefix: >-
20
+ You are a coding agent powered by the {{model}} model.
20
21
 
21
22
  # Full-text session search is opt-in (the base row's `openAt: never`). This
22
23
  # restatement keeps the Web values on one ephemeral in-memory index; a
@@ -58,6 +59,19 @@
58
59
  - id: session-log-download
59
60
  name: '@deepseek-ai/dsh-session-log-export'
60
61
 
62
+ # Session-header "Open In..." split button over the host application
63
+ # resolution (macOS/Windows/Linux; a host with no resolved application
64
+ # renders no button). Two halves: the host routes and the browser surface.
65
+ - id: open-in-app
66
+ name: '@deepseek-ai/dsh-host-open-in-app'
67
+ config:
68
+ probeTimeoutMs: 10000
69
+ iconTimeoutMs: 10000
70
+ launchWatchMs: 1000
71
+
72
+ - id: ui-open-in-app
73
+ name: '@deepseek-ai/dsh-client-ui-open-in-app'
74
+
61
75
  - id: workspace
62
76
  name: '@deepseek-ai/dsh-workspace'
63
77
 
@@ -91,6 +105,11 @@
91
105
  - id: session-controller
92
106
  name: '@deepseek-ai/dsh-api-session-controller'
93
107
 
108
+ # Workspace file service: bounded read, directory listing, and the
109
+ # agent-write change feed inside the session workspace root.
110
+ - id: workspace-files
111
+ name: '@deepseek-ai/dsh-api-workspace-files'
112
+
94
113
  # Configuration-surface reads and writes over Typert Remote. Each method
95
114
  # reports an actionable error when its settings-domain provider is absent.
96
115
  - id: settings-controller
@@ -168,6 +187,11 @@
168
187
  # its literals, for example: ['app.internal', ...ctx.webRuntime.trustedHosts].
169
188
  trustedHosts: !!js ctx.webRuntime.trustedHosts
170
189
 
190
+ # Raw Blob and ReadableStream uploads run independently of Connection's
191
+ # RPC and generation service.
192
+ - id: file-upload
193
+ name: '@deepseek-ai/dsh-client-file-upload'
194
+
171
195
  - id: api-remotes
172
196
  name: '@deepseek-ai/dsh-api-remotes'
173
197
 
@@ -189,9 +213,27 @@
189
213
  - id: ui-session
190
214
  name: '@deepseek-ai/dsh-client-ui-session'
191
215
 
216
+ # Unified resource model: protocol providers behind the useResource hook.
217
+ - id: resources
218
+ name: '@deepseek-ai/dsh-client-resources'
219
+
192
220
  - id: ui-sidebar
193
221
  name: '@deepseek-ai/dsh-client-ui-sidebar'
194
222
 
223
+ # The right Sidebar: one docking surface per session over ui-dockkit.
224
+ - id: ui-sidebar-right
225
+ name: '@deepseek-ai/dsh-client-ui-sidebar-right'
226
+
227
+
228
+ # The right Sidebar's first outside tab type: workspace text files, read
229
+ # through the bounded workspaceFiles endpoint.
230
+ - id: ui-sidebar-textpreview
231
+ name: '@deepseek-ai/dsh-client-ui-sidebar-textpreview'
232
+
233
+ # The right Sidebar's workspace file tree tab type.
234
+ - id: ui-sidebar-files
235
+ name: '@deepseek-ai/dsh-client-ui-sidebar-files'
236
+
195
237
  - id: ui-settings
196
238
  name: '@deepseek-ai/dsh-client-ui-settings'
197
239
 
@@ -347,9 +389,6 @@
347
389
  - id: tool-fs-search
348
390
  disabled: true
349
391
 
350
- - id: tool-str-replace-editor
351
- disabled: true
352
-
353
392
  # The `skill` REGISTRY stays in the host plane. It is host+per-scope layered
354
393
  # (the tools-registry shape): deployment-level providers — repository plugins,
355
394
  # a host skill-filesystem row — register into its global layer, while a preset's
package/lib/index.js CHANGED
@@ -6,7 +6,7 @@ import { fileURLToPath } from "node:url";
6
6
  import z from "@deepseek-ai/schemastery";
7
7
  import { addHarnessSourceSection } from "@deepseek-ai/dsh-app-boot";
8
8
  import * as FrontendStatic from "@deepseek-ai/dsh-host-frontend-static";
9
- import { launchEnvironmentOf } from "@deepseek-ai/dsh-launch-environment";
9
+ import { launchEnvironmentOf, launchedThroughSsh } from "@deepseek-ai/dsh-launch-environment";
10
10
  import { scrubbedParentEnv } from "@deepseek-ai/dsh-subprocess";
11
11
  //#region lib/types/index.js
12
12
  /**
@@ -41,14 +41,6 @@ const DSH_WEB_URL = "DSH_WEB_URL";
41
41
  const LOOPBACK_HOST = "127.0.0.1";
42
42
  /** The webserver schema's all-interfaces bind literal. */
43
43
  const ALL_INTERFACES_HOST = "0.0.0.0";
44
- /** Whether this process was launched through SSH, including a forwarded-port session. */
45
- function launchedThroughSsh(ctx) {
46
- const environment = launchEnvironmentOf(ctx);
47
- return ["SSH_CONNECTION", "SSH_TTY"].some((name) => {
48
- const value = environment.getFrom(name, ["process"])?.value;
49
- return value !== void 0 && value !== "";
50
- });
51
- }
52
44
  const BROWSER_OPENER_MODULE = import.meta.resolve("open");
53
45
  const BROWSER_OPENER_PROGRAM = `
54
46
  try {
@@ -179,7 +171,7 @@ const internals = {
179
171
  */
180
172
  function apply(ctx, config) {
181
173
  const runtime = resolveLanTrust(ctx.webServer.host, config.trustedHosts);
182
- const handoffBrowser = config.openBrowser && !launchedThroughSsh(ctx);
174
+ const handoffBrowser = config.openBrowser && !launchedThroughSsh(launchEnvironmentOf(ctx));
183
175
  ctx.provide(WEB_RUNTIME_SERVICE, runtime);
184
176
  ctx.plugin(FrontendStatic, { distIndex: internals.resolveDistIndex() });
185
177
  if (config.surfaceContext) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-web-app",
3
3
  "description": "The dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)",
4
- "version": "0.1.2-rc.1",
4
+ "version": "0.1.5-alpha.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -41,87 +41,95 @@
41
41
  "dependencies": {
42
42
  "commander": "^15.0.0",
43
43
  "open": "^11.0.0",
44
- "@deepseek-ai/dsh-tool-subagent": "^0.1.2-rc.1",
45
- "@deepseek-ai/dsh-agent-presets": "^0.1.2-rc.1",
46
- "@deepseek-ai/dsh-app-boot": "^0.1.2-rc.1",
47
- "@deepseek-ai/dsh-client-connection": "^0.1.2-rc.1",
48
- "@deepseek-ai/dsh-client-hmr": "^0.1.2-rc.1",
49
- "@deepseek-ai/dsh-api-remotes": "^0.1.2-rc.1",
50
- "@deepseek-ai/dsh-client-locale": "^0.1.2-rc.1",
51
- "@deepseek-ai/dsh-client-modules": "^0.1.2-rc.1",
52
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.2-rc.1",
53
- "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.2-rc.1",
54
- "@deepseek-ai/dsh-client-ui-approval": "^0.1.2-rc.1",
55
- "@deepseek-ai/dsh-client-ui-brand-official": "^0.1.2-rc.1",
56
- "@deepseek-ai/dsh-client-ui-commands": "^0.1.2-rc.1",
57
- "@deepseek-ai/dsh-client-ui-chat": "^0.1.2-rc.1",
58
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.2-rc.1",
59
- "@deepseek-ai/dsh-client-ui-cordis": "^0.1.2-rc.1",
60
- "@deepseek-ai/dsh-client-ui-deliverables": "^0.1.2-rc.1",
61
- "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.2-rc.1",
62
- "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.2-rc.1",
63
- "@deepseek-ai/dsh-client-ui-message-feedback": "^0.1.2-rc.1",
64
- "@deepseek-ai/dsh-client-ui-goal": "^0.1.2-rc.1",
65
- "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.2-rc.1",
66
- "@deepseek-ai/dsh-client-ui-layout": "^0.1.2-rc.1",
67
- "@deepseek-ai/dsh-client-ui-settings-models": "^0.1.2-rc.1",
68
- "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.1.2-rc.1",
69
- "@deepseek-ai/dsh-client-ui-permission-presets": "^0.1.2-rc.1",
70
- "@deepseek-ai/dsh-client-ui-plan": "^0.1.2-rc.1",
71
- "@deepseek-ai/dsh-client-ui-schedule": "^0.1.2-rc.1",
72
- "@deepseek-ai/dsh-client-ui-user-questions": "^0.1.2-rc.1",
73
- "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.2-rc.1",
74
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.2-rc.1",
75
- "@deepseek-ai/dsh-client-ui-settings-general": "^0.1.2-rc.1",
76
- "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.2-rc.1",
77
- "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.2-rc.1",
78
- "@deepseek-ai/dsh-client-ui-session": "^0.1.2-rc.1",
79
- "@deepseek-ai/dsh-client-ui-reference": "^0.1.2-rc.1",
80
- "@deepseek-ai/dsh-client-ui-subagent": "^0.1.2-rc.1",
81
- "@deepseek-ai/dsh-client-ui-jobs": "^0.1.2-rc.1",
82
- "@deepseek-ai/dsh-client-ui-theme": "^0.1.2-rc.1",
83
- "@deepseek-ai/dsh-client-ui-tool": "^0.1.2-rc.1",
84
- "@deepseek-ai/dsh-client-ui-skill": "^0.1.2-rc.1",
85
- "@deepseek-ai/dsh-client-ui-workflow-run": "^0.1.2-rc.1",
86
- "@deepseek-ai/dsh-client-ui-trajectory": "^0.1.2-rc.1",
87
- "@deepseek-ai/dsh-client-ui-workspace": "^0.1.2-rc.1",
88
- "@deepseek-ai/dsh-cmdline": "^0.1.2-rc.1",
89
- "@deepseek-ai/dsh-code-runtime-worker-thread": "^0.1.2-rc.1",
90
- "@deepseek-ai/dsh-cordis-client-runner": "^0.1.2-rc.1",
91
- "@deepseek-ai/dsh-cordis-host-runner": "^0.1.2-rc.1",
92
- "@deepseek-ai/dsh-web-frontend": "^0.1.2-rc.1",
93
- "@deepseek-ai/dsh-host-frontend-static": "^0.1.2-rc.1",
94
- "@deepseek-ai/dsh-host-directory-picker-auto": "^0.1.2-rc.1",
95
- "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.2-rc.1",
96
- "@deepseek-ai/dsh-host-directory-picker-native": "^0.1.2-rc.1",
97
- "@deepseek-ai/dsh-host-plugin-inventory": "^0.1.2-rc.1",
98
- "@deepseek-ai/dsh-host-webserver": "^0.1.2-rc.1",
99
- "@deepseek-ai/dsh-file-reference-local": "^0.1.2-rc.1",
100
- "@deepseek-ai/dsh-launch-environment": "^0.1.2-rc.1",
101
- "@deepseek-ai/dsh-client-ui-attachment": "^0.1.2-rc.1",
102
- "@deepseek-ai/dsh-message-feedback": "^0.1.2-rc.1",
103
- "@deepseek-ai/dsh-file-reference": "^0.1.2-rc.1",
104
- "@deepseek-ai/dsh-session-reference": "^0.1.2-rc.1",
105
- "@deepseek-ai/dsh-session-log-export": "^0.1.2-rc.1",
106
- "@deepseek-ai/dsh-session-stats": "^0.1.2-rc.1",
107
- "@deepseek-ai/dsh-session-turn-outline": "^0.1.2-rc.1",
108
- "@deepseek-ai/dsh-api-session-controller": "^0.1.2-rc.1",
109
- "@deepseek-ai/dsh-api-settings-controller": "^0.1.2-rc.1",
110
- "@deepseek-ai/dsh-subprocess": "^0.1.2-rc.1",
111
- "@deepseek-ai/dsh-workspace": "^0.1.2-rc.1",
44
+ "@deepseek-ai/dsh-agent-presets": "^0.1.5-alpha.1",
45
+ "@deepseek-ai/dsh-api-remotes": "^0.1.5-alpha.1",
46
+ "@deepseek-ai/dsh-api-workspace-controller": "^0.1.5-alpha.1",
47
+ "@deepseek-ai/dsh-api-workspace-files": "^0.1.5-alpha.1",
48
+ "@deepseek-ai/dsh-api-settings-controller": "^0.1.5-alpha.1",
49
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.5-alpha.1",
50
+ "@deepseek-ai/dsh-client-connection": "^0.1.5-alpha.1",
51
+ "@deepseek-ai/dsh-client-file-upload": "^0.1.5-alpha.1",
52
+ "@deepseek-ai/dsh-client-hmr": "^0.1.5-alpha.1",
53
+ "@deepseek-ai/dsh-client-modules": "^0.1.5-alpha.1",
54
+ "@deepseek-ai/dsh-client-locale": "^0.1.5-alpha.1",
55
+ "@deepseek-ai/dsh-client-resources": "^0.1.5-alpha.1",
56
+ "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.5-alpha.1",
57
+ "@deepseek-ai/dsh-client-ui-attachment": "^0.1.5-alpha.1",
58
+ "@deepseek-ai/dsh-client-ui-brand-official": "^0.1.5-alpha.1",
59
+ "@deepseek-ai/dsh-client-ui-chat": "^0.1.5-alpha.1",
60
+ "@deepseek-ai/dsh-client-ui-approval": "^0.1.5-alpha.1",
61
+ "@deepseek-ai/dsh-client-ui-commands": "^0.1.5-alpha.1",
62
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-alpha.1",
63
+ "@deepseek-ai/dsh-client-ui-cordis": "^0.1.5-alpha.1",
64
+ "@deepseek-ai/dsh-client-ui-deliverables": "^0.1.5-alpha.1",
65
+ "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.5-alpha.1",
66
+ "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.5-alpha.1",
67
+ "@deepseek-ai/dsh-client-ui-goal": "^0.1.5-alpha.1",
68
+ "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.5-alpha.1",
69
+ "@deepseek-ai/dsh-app-boot": "^0.1.5-alpha.1",
70
+ "@deepseek-ai/dsh-client-ui-layout": "^0.1.5-alpha.1",
71
+ "@deepseek-ai/dsh-client-ui-message-feedback": "^0.1.5-alpha.1",
72
+ "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.5-alpha.1",
73
+ "@deepseek-ai/dsh-client-ui-permission-presets": "^0.1.5-alpha.1",
74
+ "@deepseek-ai/dsh-client-ui-plan": "^0.1.5-alpha.1",
75
+ "@deepseek-ai/dsh-client-ui-reference": "^0.1.5-alpha.1",
76
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-alpha.1",
77
+ "@deepseek-ai/dsh-client-ui-schedule": "^0.1.5-alpha.1",
78
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.5-alpha.1",
79
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.5-alpha.1",
80
+ "@deepseek-ai/dsh-client-ui-settings-general": "^0.1.5-alpha.1",
81
+ "@deepseek-ai/dsh-client-ui-settings-models": "^0.1.5-alpha.1",
82
+ "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.1.5-alpha.1",
83
+ "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.5-alpha.1",
84
+ "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.5-alpha.1",
85
+ "@deepseek-ai/dsh-client-ui-sidebar-right": "^0.1.5-alpha.1",
86
+ "@deepseek-ai/dsh-client-ui-sidebar-textpreview": "^0.1.5-alpha.1",
87
+ "@deepseek-ai/dsh-client-ui-skill": "^0.1.5-alpha.1",
88
+ "@deepseek-ai/dsh-client-ui-subagent": "^0.1.5-alpha.1",
89
+ "@deepseek-ai/dsh-client-ui-sidebar-files": "^0.1.5-alpha.1",
90
+ "@deepseek-ai/dsh-client-ui-theme": "^0.1.5-alpha.1",
91
+ "@deepseek-ai/dsh-client-ui-tool": "^0.1.5-alpha.1",
92
+ "@deepseek-ai/dsh-client-ui-trajectory": "^0.1.5-alpha.1",
93
+ "@deepseek-ai/dsh-client-ui-user-questions": "^0.1.5-alpha.1",
94
+ "@deepseek-ai/dsh-client-ui-jobs": "^0.1.5-alpha.1",
95
+ "@deepseek-ai/dsh-cmdline": "^0.1.5-alpha.1",
96
+ "@deepseek-ai/dsh-client-ui-open-in-app": "^0.1.5-alpha.1",
97
+ "@deepseek-ai/dsh-cordis-host-runner": "^0.1.5-alpha.1",
98
+ "@deepseek-ai/dsh-cordis-client-runner": "^0.1.5-alpha.1",
99
+ "@deepseek-ai/dsh-file-reference": "^0.1.5-alpha.1",
100
+ "@deepseek-ai/dsh-client-ui-workspace": "^0.1.5-alpha.1",
101
+ "@deepseek-ai/dsh-file-reference-local": "^0.1.5-alpha.1",
102
+ "@deepseek-ai/dsh-client-ui-workflow-run": "^0.1.5-alpha.1",
103
+ "@deepseek-ai/dsh-host-directory-picker-auto": "^0.1.5-alpha.1",
104
+ "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.5-alpha.1",
105
+ "@deepseek-ai/dsh-host-directory-picker-native": "^0.1.5-alpha.1",
106
+ "@deepseek-ai/dsh-host-frontend-static": "^0.1.5-alpha.1",
107
+ "@deepseek-ai/dsh-host-webserver": "^0.1.5-alpha.1",
108
+ "@deepseek-ai/dsh-launch-environment": "^0.1.5-alpha.1",
109
+ "@deepseek-ai/dsh-message-feedback": "^0.1.5-alpha.1",
110
+ "@deepseek-ai/dsh-session-log-export": "^0.1.5-alpha.1",
111
+ "@deepseek-ai/dsh-session-reference": "^0.1.5-alpha.1",
112
+ "@deepseek-ai/dsh-host-plugin-inventory": "^0.1.5-alpha.1",
113
+ "@deepseek-ai/dsh-session-stats": "^0.1.5-alpha.1",
114
+ "@deepseek-ai/dsh-host-open-in-app": "^0.1.5-alpha.1",
115
+ "@deepseek-ai/dsh-subprocess": "^0.1.5-alpha.1",
116
+ "@deepseek-ai/dsh-tool-subagent": "^0.1.5-alpha.1",
117
+ "@deepseek-ai/dsh-code-runtime-worker-thread": "^0.1.5-alpha.1",
118
+ "@deepseek-ai/dsh-web-frontend": "^0.1.5-alpha.1",
119
+ "@deepseek-ai/dsh-workspace": "^0.1.5-alpha.1",
112
120
  "@deepseek-ai/schemastery": "^3.18.2",
113
- "@deepseek-ai/dsh-api-workspace-controller": "^0.1.2-rc.1"
121
+ "@deepseek-ai/dsh-session-turn-outline": "^0.1.5-alpha.1"
114
122
  },
115
123
  "peerDependencies": {
116
- "@deepseek-ai/dsh-shell-env": "^0.1.2-rc.1",
124
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
117
125
  "@deepseek-ai/cordis": "^4.0.2",
118
- "@deepseek-ai/dsh-system-prompt": "^0.1.2-rc.1",
119
- "@deepseek-ai/cordis-plugin-loader": "^1.0.3"
126
+ "@deepseek-ai/dsh-shell-env": "^0.1.5-alpha.1",
127
+ "@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1"
120
128
  },
121
129
  "devDependencies": {
130
+ "@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1",
122
131
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
123
- "@deepseek-ai/dsh-shell-env": "^0.1.2-rc.1",
124
- "@deepseek-ai/dsh-system-prompt": "^0.1.2-rc.1",
132
+ "@deepseek-ai/dsh-shell-env": "^0.1.5-alpha.1",
125
133
  "@deepseek-ai/cordis": "^4.0.2"
126
134
  }
127
135
  }