@deepseek-ai/dsh-web-app 0.0.1-rc.5 → 0.1.0-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.
package/LICENSE CHANGED
@@ -1,28 +1,21 @@
1
- BSD 3-Clause License
1
+ MIT License
2
2
 
3
- Copyright (c) 2026, DeepSeek
3
+ Copyright (c) 2026 DeepSeek
4
4
 
5
- Redistribution and use in source and binary forms, with or without
6
- modification, are permitted provided that the following conditions are met:
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
7
11
 
8
- 1. Redistributions of source code must retain the above copyright notice, this
9
- list of conditions and the following disclaimer.
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
10
14
 
11
- 2. Redistributions in binary form must reproduce the above copyright notice,
12
- this list of conditions and the following disclaimer in the documentation
13
- and/or other materials provided with the distribution.
14
-
15
- 3. Neither the name of the copyright holder nor the names of its
16
- contributors may be used to endorse or promote products derived from
17
- this software without specific prior written permission.
18
-
19
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
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: 3f7fbe7bbbeba2ee753ab2dfa8c945e798dd6a02
6
- README.zh.md: 357ca9946ed7fef1bf4c691c6666156bb293b5e0
5
+ README.md: 90d1566b5a7a25f6a827079c4a8ab776e05cc7a3
6
+ README.zh.md: b7156bcab66b53964bb2f0e1c87d9e9a806e3f75
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  English | [中文](README.zh.md)
4
4
 
5
- The dsh browser-surface bundle. [`cordis.patch.yml`](cordis.patch.yml) rides over [`dsh-base`](../base/README.md): it sets the coding persona, inserts the Web host rows (webserver, API gateway, workspace, projection cache, storage) and the browser plugin roster, the always-on client-plugin reload chain ([`dsh-client-hmr`](../../client/hmr/README.md), idle until a rebuild watcher rewrites client bundles), and mounts this package's `web-runtime` glue plugin (config `{printUrl, surfaceContext, trustedHosts}`). That plugin resolves the built frontend dist through `@deepseek-ai/dsh-web-frontend`'s exports, samples bind-dependent LAN trust once, provides it as `webRuntime` to the browser-trust fence and client roster, mounts the [`frontend-static`](../../host/frontend-static/README.md) fallback owner, registers the harness-source and web-surface prompt sections plus the bash-visible `DSH_WEB_URL` runtime variable when `surfaceContext` is true, and prints the `dsh web:` URL line when `printUrl` is true, after its Loader tree settles so a sibling failure cannot announce a dead app. This bundle also owns the app command line: the ordinary `web-startup` provider ([`src/startup.ts`](src/startup.ts)) injects `ctx.cmdlineArgs` ([`dsh-cmdline`](../../boot/cmdline/README.md)), parses `--host`, `--port`, repeatable `--trusted-host`, and the app's `--help`, then provides `webStartup`. Flag-configured rows inject that service and read it directly from lazy config, so nothing binds a port before argument resolution and `dsh --profile web --help` starts no server. [`dsh-headless`](../headless/README.md) is a sibling surface over the same base and does not mount this bundle.
5
+ The dsh browser-surface bundle. [`cordis.patch.yml`](cordis.patch.yml) rides over [`dsh-base`](../base/README.md): it sets the coding persona, inserts the Web host rows (webserver, API gateway, workspace, projection cache, storage) and the browser plugin roster, the always-on client-plugin reload chain ([`dsh-client-hmr`](../../client/hmr/README.md), idle until a rebuild watcher rewrites client bundles), and mounts this package's `web-runtime` glue plugin (config `{printUrl, surfaceContext, trustedHosts}`). That plugin resolves the built frontend dist through `@deepseek-ai/dsh-web-frontend`'s exports, samples bind-dependent LAN trust once, provides it as `webRuntime` to the browser-trust fence and client roster, mounts the [`frontend-static`](../../host/frontend-static/README.md) fallback owner, registers the harness-source and web-surface prompt sections plus the bash-visible `DSH_WEB_URL` runtime variable when `surfaceContext` is true, and prints the `dsh web:` URL line when `printUrl` is true, after its Loader tree settles so a sibling failure cannot announce a dead app. This bundle also owns the app command line: the ordinary `web-startup` provider ([`src/startup.ts`](src/startup.ts)) injects `ctx.cmdlineArgs` ([`dsh-cmdline`](../../boot/cmdline/README.md)), parses `--host`, `--port`, repeatable `--trusted-host`, and the app's `--help`, then provides `webStartup`. It rejects `--host 0.0.0.0` before publishing that service because the CLI intentionally does not support all-interfaces binding yet. Flag-configured rows inject the service and read it directly from lazy config, so nothing binds a port before argument resolution and `dsh --profile web --help` starts no server. [`dsh-headless`](../headless/README.md) is a sibling surface over the same base and does not mount this bundle.
6
6
 
7
7
  ## Model Experience
8
8
 
package/README.zh.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](README.md) | 中文
4
4
 
5
- dsh 浏览器表层组合包。[`cordis.patch.yml`](cordis.patch.yml) 叠加在 [`dsh-base`](../base/README.md) 之上:设置 coding persona,插入 Web 宿主行(webserver、API 网关、workspace、投影缓存、存储)、浏览器插件名录与始终挂载的客户端插件重载链([`dsh-client-hmr`](../../client/hmr/README.md),在重建 watcher 改写客户端 bundle 之前保持空闲),并挂载本包的 `web-runtime` 粘合插件(配置为 `{printUrl, surfaceContext, trustedHosts}`)。该插件通过 `@deepseek-ai/dsh-web-frontend` 的 exports 解析已构建的前端 dist,只采样一次依赖 bind 的 LAN 信任信息并将其作为 `webRuntime` 提供给浏览器信任栅栏和客户端名录,挂载 [`frontend-static`](../../host/frontend-static/README.md) 回退席位所有者,在 `surfaceContext` 为 true 时注册 Harness 源码与 Web 表层提示词段落,以及 bash 可见的 `DSH_WEB_URL` 运行时变量,并在 `printUrl` 为 true 时等自身的 Loader 配置树结算后再打印 `dsh web:` URL 行,避免兄弟行失败时公告一个已失效的应用。本组合包还持有应用命令行:普通 `web-startup` 提供方([`src/startup.ts`](src/startup.ts))注入 `ctx.cmdlineArgs`([`dsh-cmdline`](../../boot/cmdline/README.md)),解析 `--host`、`--port`、可重复的 `--trusted-host` 以及应用自己的 `--help`,再提供 `webStartup`。由 flag 配置的行会注入该服务,并在惰性配置中直接读取它,因此参数解析完成前不会有任何东西绑定端口,`dsh --profile web --help` 也不会启动服务器。[`dsh-headless`](../headless/README.md) 是同一 base 之上的同级表层,不挂载本组合包。
5
+ dsh 浏览器表层组合包。[`cordis.patch.yml`](cordis.patch.yml) 叠加在 [`dsh-base`](../base/README.md) 之上:设置 coding persona,插入 Web 宿主行(webserver、API 网关、workspace、投影缓存、存储)、浏览器插件名录与始终挂载的客户端插件重载链([`dsh-client-hmr`](../../client/hmr/README.md),在重建 watcher 改写客户端 bundle 之前保持空闲),并挂载本包的 `web-runtime` 粘合插件(配置为 `{printUrl, surfaceContext, trustedHosts}`)。该插件通过 `@deepseek-ai/dsh-web-frontend` 的 exports 解析已构建的前端 dist,只采样一次依赖 bind 的 LAN 信任信息并将其作为 `webRuntime` 提供给浏览器信任栅栏和客户端名录,挂载 [`frontend-static`](../../host/frontend-static/README.md) 回退席位所有者,在 `surfaceContext` 为 true 时注册 Harness 源码与 Web 表层提示词段落,以及 bash 可见的 `DSH_WEB_URL` 运行时变量,并在 `printUrl` 为 true 时等自身的 Loader 配置树结算后再打印 `dsh web:` URL 行,避免兄弟行失败时公告一个已失效的应用。本组合包还持有应用命令行:普通 `web-startup` 提供方([`src/startup.ts`](src/startup.ts))注入 `ctx.cmdlineArgs`([`dsh-cmdline`](../../boot/cmdline/README.md)),解析 `--host`、`--port`、可重复的 `--trusted-host` 以及应用自己的 `--help`,再提供 `webStartup`。它会在发布该服务前拒绝 `--host 0.0.0.0`,因为 CLI 目前有意不支持绑定所有网络接口。由 flag 配置的行会注入该服务,并在惰性配置中直接读取它,因此参数解析完成前不会有任何东西绑定端口,`dsh --profile web --help` 也不会启动服务器。[`dsh-headless`](../headless/README.md) 是同一 base 之上的同级表层,不挂载本组合包。
6
6
 
7
7
  ## 模型体验
8
8
 
package/cordis.patch.yml CHANGED
@@ -22,14 +22,15 @@
22
22
  - id: hmr
23
23
  disabled: true
24
24
 
25
- # Web content search runs on an ephemeral in-memory index. The service
26
- # activates at boot, while first-search defers the node:sqlite import and
27
- # in-memory handle so Node 22 startup stays quiet until content search
28
- # actually uses SQLite. That search then reconciles this boot's sources.
25
+ # Full-text session search is opt-in (the base row's `openAt: never`). This
26
+ # restatement keeps the Web values on one ephemeral in-memory index; a
27
+ # deployment enabling content search overrides `openAt` to `first-search` in a
28
+ # later patch layer, which defers the node:sqlite import and in-memory handle
29
+ # to the first search so Node 22 startup stays quiet.
29
30
  - id: session-query-sqlite
30
31
  config:
31
32
  path: ':memory:'
32
- openAt: first-search
33
+ openAt: never
33
34
 
34
35
  - id: tools
35
36
  config:
package/lib/startup.js CHANGED
@@ -19,24 +19,24 @@ const WEB_STARTUP_SERVICE = "webStartup";
19
19
  * @returns a fresh program, so one process can parse more than once (tests).
20
20
  */
21
21
  function webCommand() {
22
- return new Command().name("dsh --profile web").description("Serve the DeepSeek Harness browser UI.").helpOption("-h, --help", "show this help").option("--host <host>", "bind host; pass 0.0.0.0 to reach it from another machine").option("--port <port>", "listen port; pass 0 to let the OS pick a free one").option("--trusted-host <authority...>", "extra authority the /api browser-trust fence accepts (host or host:port; repeatable)").addHelpText("after", `
22
+ return new Command().name("dsh --profile web").description("Serve the DeepSeek Harness browser UI.").helpOption("-h, --help", "show this help").option("--host <host>", "bind host").option("--port <port>", "listen port; pass 0 to let the OS pick a free one").option("--trusted-host <authority...>", "extra authority the /api browser-trust fence accepts (host or host:port; repeatable)").addHelpText("after", `
23
23
  Examples:
24
24
  dsh --profile web serve on the composed host and port
25
25
  dsh --profile web --port 8080 serve on another port
26
- dsh --profile web --host 0.0.0.0 reach it from another machine on the LAN
27
26
  `);
28
27
  }
29
28
  /**
30
29
  * Parse and provide the Web invocation as an ordinary Cordis service. The
31
- * command's action publishes the flags this invocation named; a non-numeric
32
- * `--port` is a usage error, so on rejection (and on `--help`) nothing is
33
- * provided.
30
+ * command's action publishes the flags this invocation named; `--host 0.0.0.0`
31
+ * or a non-numeric `--port` is a usage error, so on rejection (and on `--help`)
32
+ * nothing is provided.
34
33
  * @param ctx - plugin context carrying the command line.
35
34
  */
36
35
  function apply(ctx) {
37
36
  const program = webCommand();
38
37
  program.action(() => {
39
38
  const options = program.opts();
39
+ if (options.host === "0.0.0.0") program.error("error: --host 0.0.0.0 is intentionally not supported yet for safety: it would expose remote code execution to the network; use 127.0.0.1 instead");
40
40
  if (options.port !== void 0 && !/^\d+$/.test(options.port)) program.error(`error: --port must be a number, got ${JSON.stringify(options.port)}`);
41
41
  ctx.provide(WEB_STARTUP_SERVICE, {
42
42
  ...options.host !== void 0 && { host: options.host },
@@ -23,9 +23,9 @@ export interface WebStartupValues {
23
23
  }
24
24
  /**
25
25
  * Parse and provide the Web invocation as an ordinary Cordis service. The
26
- * command's action publishes the flags this invocation named; a non-numeric
27
- * `--port` is a usage error, so on rejection (and on `--help`) nothing is
28
- * provided.
26
+ * command's action publishes the flags this invocation named; `--host 0.0.0.0`
27
+ * or a non-numeric `--port` is a usage error, so on rejection (and on `--help`)
28
+ * nothing is provided.
29
29
  * @param ctx - plugin context carrying the command line.
30
30
  */
31
31
  export declare function apply(ctx: Context): void;
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.0.1-rc.5",
4
+ "version": "0.1.0-rc.2",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },
@@ -37,7 +37,7 @@
37
37
  "cordis.patch.yml",
38
38
  "lib/types/**/*.d.ts"
39
39
  ],
40
- "license": "BSD-3-Clause",
40
+ "license": "MIT",
41
41
  "dsh": {
42
42
  "bundle": {
43
43
  "patch": "./cordis.patch.yml"
@@ -45,77 +45,77 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "commander": "^15.0.0",
48
- "@deepseek-ai/dsh-app-boot": "^0.0.1-rc.5",
49
- "@deepseek-ai/dsh-client-connection": "^0.0.1-rc.5",
50
- "@deepseek-ai/dsh-client-hmr": "^0.0.1-rc.5",
51
- "@deepseek-ai/dsh-client-locale": "^0.0.1-rc.5",
52
- "@deepseek-ai/dsh-agent-presets": "^0.0.1-rc.5",
53
- "@deepseek-ai/dsh-api-remotes": "^0.0.1-rc.5",
54
- "@deepseek-ai/dsh-client-modules": "^0.0.1-rc.5",
55
- "@deepseek-ai/dsh-client-runtime": "^0.0.1-rc.5",
56
- "@deepseek-ai/dsh-client-ui-agent-preset": "^0.0.1-rc.5",
57
- "@deepseek-ai/dsh-client-ui-commands": "^0.0.1-rc.5",
58
- "@deepseek-ai/dsh-client-ui-deliverables": "^0.0.1-rc.5",
59
- "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.0.1-rc.5",
60
- "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.0.1-rc.5",
61
- "@deepseek-ai/dsh-client-ui-conversation": "^0.0.1-rc.5",
62
- "@deepseek-ai/dsh-client-ui-cordis": "^0.0.1-rc.5",
63
- "@deepseek-ai/dsh-client-ui-goal": "^0.0.1-rc.5",
64
- "@deepseek-ai/dsh-client-ui-layout": "^0.0.1-rc.5",
65
- "@deepseek-ai/dsh-client-ui-model-selection": "^0.0.1-rc.5",
66
- "@deepseek-ai/dsh-client-ui-settings-models": "^0.0.1-rc.5",
67
- "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.0.1-rc.5",
68
- "@deepseek-ai/dsh-client-ui-permission-presets": "^0.0.1-rc.5",
69
- "@deepseek-ai/dsh-client-ui-message-feedback": "^0.0.1-rc.5",
70
- "@deepseek-ai/dsh-client-ui-plan": "^0.0.1-rc.5",
71
- "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.0.1-rc.5",
72
- "@deepseek-ai/dsh-client-ui-user-questions": "^0.0.1-rc.5",
73
- "@deepseek-ai/dsh-client-ui-settings": "^0.0.1-rc.5",
74
- "@deepseek-ai/dsh-client-ui-settings-general": "^0.0.1-rc.5",
75
- "@deepseek-ai/dsh-client-ui-sidebar": "^0.0.1-rc.5",
76
- "@deepseek-ai/dsh-client-ui-skill": "^0.0.1-rc.5",
77
- "@deepseek-ai/dsh-client-ui-input-trigger": "^0.0.1-rc.5",
78
- "@deepseek-ai/dsh-client-ui-subagent": "^0.0.1-rc.5",
79
- "@deepseek-ai/dsh-client-ui-theme": "^0.0.1-rc.5",
80
- "@deepseek-ai/dsh-client-ui-tool": "^0.0.1-rc.5",
81
- "@deepseek-ai/dsh-client-ui-workflow-run": "^0.0.1-rc.5",
82
- "@deepseek-ai/dsh-client-ui-trajectory": "^0.0.1-rc.5",
83
- "@deepseek-ai/dsh-client-ui-jobs": "^0.0.1-rc.5",
84
- "@deepseek-ai/dsh-cmdline": "^0.0.1-rc.5",
85
- "@deepseek-ai/dsh-code-runtime-worker-thread": "^0.0.1-rc.5",
86
- "@deepseek-ai/dsh-client-ui-workspace": "^0.0.1-rc.5",
87
- "@deepseek-ai/dsh-cordis-host-runner": "^0.0.1-rc.5",
88
- "@deepseek-ai/dsh-web-frontend": "^0.0.1-rc.5",
89
- "@deepseek-ai/dsh-host-frontend-static": "^0.0.1-rc.5",
90
- "@deepseek-ai/dsh-host-apiproxy": "^0.0.1-rc.5",
91
- "@deepseek-ai/dsh-cordis-client-runner": "^0.0.1-rc.5",
92
- "@deepseek-ai/dsh-host-directory-picker-auto": "^0.0.1-rc.5",
93
- "@deepseek-ai/dsh-host-directory-picker-browse": "^0.0.1-rc.5",
94
- "@deepseek-ai/dsh-host-directory-picker-native": "^0.0.1-rc.5",
95
- "@deepseek-ai/dsh-host-plugin-inventory": "^0.0.1-rc.5",
96
- "@deepseek-ai/dsh-message-feedback": "^0.0.1-rc.5",
97
- "@deepseek-ai/dsh-session-projection-cache": "^0.0.1-rc.5",
98
- "@deepseek-ai/dsh-host-webserver": "^0.0.1-rc.5",
99
- "@deepseek-ai/dsh-session-stats": "^0.0.1-rc.5",
100
- "@deepseek-ai/dsh-storage-domain": "^0.0.1-rc.5",
101
- "@deepseek-ai/dsh-session-log-export": "^0.0.1-rc.5",
102
- "@deepseek-ai/dsh-storage": "^0.0.1-rc.5",
103
- "@deepseek-ai/dsh-storage-json": "^0.0.1-rc.5",
104
- "@deepseek-ai/dsh-workspace": "^0.0.1-rc.5",
105
- "@deepseek-ai/schemastery": "^3.18.1-rc.4"
48
+ "@deepseek-ai/dsh-api-remotes": "^0.1.0-rc.2",
49
+ "@deepseek-ai/dsh-app-boot": "^0.1.0-rc.2",
50
+ "@deepseek-ai/dsh-client-connection": "^0.1.0-rc.2",
51
+ "@deepseek-ai/dsh-client-hmr": "^0.1.0-rc.2",
52
+ "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.2",
53
+ "@deepseek-ai/dsh-client-modules": "^0.1.0-rc.2",
54
+ "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.2",
55
+ "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.0-rc.2",
56
+ "@deepseek-ai/dsh-client-ui-commands": "^0.1.0-rc.2",
57
+ "@deepseek-ai/dsh-client-ui-cordis": "^0.1.0-rc.2",
58
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.0-rc.2",
59
+ "@deepseek-ai/dsh-client-ui-deliverables": "^0.1.0-rc.2",
60
+ "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.0-rc.2",
61
+ "@deepseek-ai/dsh-client-ui-message-feedback": "^0.1.0-rc.2",
62
+ "@deepseek-ai/dsh-client-ui-goal": "^0.1.0-rc.2",
63
+ "@deepseek-ai/dsh-client-ui-layout": "^0.1.0-rc.2",
64
+ "@deepseek-ai/dsh-agent-presets": "^0.1.0-rc.2",
65
+ "@deepseek-ai/dsh-client-ui-settings-models": "^0.1.0-rc.2",
66
+ "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.1.0-rc.2",
67
+ "@deepseek-ai/dsh-client-ui-permission-presets": "^0.1.0-rc.2",
68
+ "@deepseek-ai/dsh-client-ui-plan": "^0.1.0-rc.2",
69
+ "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.0-rc.2",
70
+ "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.0-rc.2",
71
+ "@deepseek-ai/dsh-client-ui-user-questions": "^0.1.0-rc.2",
72
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.2",
73
+ "@deepseek-ai/dsh-client-ui-settings-general": "^0.1.0-rc.2",
74
+ "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.0-rc.2",
75
+ "@deepseek-ai/dsh-client-ui-skill": "^0.1.0-rc.2",
76
+ "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.0-rc.2",
77
+ "@deepseek-ai/dsh-client-ui-subagent": "^0.1.0-rc.2",
78
+ "@deepseek-ai/dsh-client-ui-jobs": "^0.1.0-rc.2",
79
+ "@deepseek-ai/dsh-client-ui-theme": "^0.1.0-rc.2",
80
+ "@deepseek-ai/dsh-client-ui-workflow-run": "^0.1.0-rc.2",
81
+ "@deepseek-ai/dsh-client-ui-trajectory": "^0.1.0-rc.2",
82
+ "@deepseek-ai/dsh-client-ui-workspace": "^0.1.0-rc.2",
83
+ "@deepseek-ai/dsh-cmdline": "^0.1.0-rc.2",
84
+ "@deepseek-ai/dsh-code-runtime-worker-thread": "^0.1.0-rc.2",
85
+ "@deepseek-ai/dsh-cordis-client-runner": "^0.1.0-rc.2",
86
+ "@deepseek-ai/dsh-cordis-host-runner": "^0.1.0-rc.2",
87
+ "@deepseek-ai/dsh-client-ui-tool": "^0.1.0-rc.2",
88
+ "@deepseek-ai/dsh-web-frontend": "^0.1.0-rc.2",
89
+ "@deepseek-ai/dsh-host-frontend-static": "^0.1.0-rc.2",
90
+ "@deepseek-ai/dsh-host-apiproxy": "^0.1.0-rc.2",
91
+ "@deepseek-ai/dsh-host-directory-picker-auto": "^0.1.0-rc.2",
92
+ "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.0-rc.2",
93
+ "@deepseek-ai/dsh-host-directory-picker-native": "^0.1.0-rc.2",
94
+ "@deepseek-ai/dsh-host-plugin-inventory": "^0.1.0-rc.2",
95
+ "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.2",
96
+ "@deepseek-ai/dsh-message-feedback": "^0.1.0-rc.2",
97
+ "@deepseek-ai/dsh-session-projection-cache": "^0.1.0-rc.2",
98
+ "@deepseek-ai/dsh-session-stats": "^0.1.0-rc.2",
99
+ "@deepseek-ai/dsh-session-log-export": "^0.1.0-rc.2",
100
+ "@deepseek-ai/dsh-storage-domain": "^0.1.0-rc.2",
101
+ "@deepseek-ai/dsh-storage-json": "^0.1.0-rc.2",
102
+ "@deepseek-ai/dsh-workspace": "^0.1.0-rc.2",
103
+ "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.0-rc.2",
104
+ "@deepseek-ai/schemastery": "^3.18.1",
105
+ "@deepseek-ai/dsh-storage": "^0.1.0-rc.2"
106
106
  },
107
107
  "peerDependencies": {
108
- "@deepseek-ai/dsh-shell-env": "^0.0.1-rc.5",
109
- "@deepseek-ai/dsh-system-prompt": "^0.0.1-rc.5",
110
- "@deepseek-ai/cordis": "^4.0.1-rc.4",
111
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.5",
112
- "@deepseek-ai/cordis-plugin-loader": "^1.0.2-rc.4"
108
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
109
+ "@deepseek-ai/dsh-shell-env": "^0.1.0-rc.2",
110
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.2",
111
+ "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.2",
112
+ "@deepseek-ai/cordis": "^4.0.1"
113
113
  },
114
114
  "devDependencies": {
115
- "@deepseek-ai/cordis-plugin-loader": "^1.0.2-rc.4",
116
- "@deepseek-ai/dsh-shell-env": "^0.0.1-rc.5",
117
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.5",
118
- "@deepseek-ai/dsh-system-prompt": "^0.0.1-rc.5",
119
- "@deepseek-ai/cordis": "^4.0.1-rc.4"
115
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
116
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.2",
117
+ "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.2",
118
+ "@deepseek-ai/cordis": "^4.0.1",
119
+ "@deepseek-ai/dsh-shell-env": "^0.1.0-rc.2"
120
120
  }
121
121
  }