@deepseek-ai/dsh-web-app 0.1.3-alpha.2 → 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: 0f71be178c25c0e6687a6e51ff777a9d6ac76a5a
6
- README.zh.md: ea7747c0b814dc36d222d0d7445732159f589d7b
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
 
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
 
package/cordis.patch.yml CHANGED
@@ -105,6 +105,11 @@
105
105
  - id: session-controller
106
106
  name: '@deepseek-ai/dsh-api-session-controller'
107
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
+
108
113
  # Configuration-surface reads and writes over Typert Remote. Each method
109
114
  # reports an actionable error when its settings-domain provider is absent.
110
115
  - id: settings-controller
@@ -208,9 +213,27 @@
208
213
  - id: ui-session
209
214
  name: '@deepseek-ai/dsh-client-ui-session'
210
215
 
216
+ # Unified resource model: protocol providers behind the useResource hook.
217
+ - id: resources
218
+ name: '@deepseek-ai/dsh-client-resources'
219
+
211
220
  - id: ui-sidebar
212
221
  name: '@deepseek-ai/dsh-client-ui-sidebar'
213
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
+
214
237
  - id: ui-settings
215
238
  name: '@deepseek-ai/dsh-client-ui-settings'
216
239
 
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.3-alpha.2",
4
+ "version": "0.1.5-alpha.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -41,90 +41,95 @@
41
41
  "dependencies": {
42
42
  "commander": "^15.0.0",
43
43
  "open": "^11.0.0",
44
- "@deepseek-ai/dsh-agent-presets": "^0.1.3-alpha.2",
45
- "@deepseek-ai/dsh-tool-subagent": "^0.1.3-alpha.2",
46
- "@deepseek-ai/dsh-api-remotes": "^0.1.3-alpha.2",
47
- "@deepseek-ai/dsh-app-boot": "^0.1.3-alpha.2",
48
- "@deepseek-ai/dsh-client-connection": "^0.1.3-alpha.2",
49
- "@deepseek-ai/dsh-client-file-upload": "^0.1.3-alpha.2",
50
- "@deepseek-ai/dsh-client-locale": "^0.1.3-alpha.2",
51
- "@deepseek-ai/dsh-client-modules": "^0.1.3-alpha.2",
52
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.3-alpha.2",
53
- "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.3-alpha.2",
54
- "@deepseek-ai/dsh-client-hmr": "^0.1.3-alpha.2",
55
- "@deepseek-ai/dsh-client-ui-attachment": "^0.1.3-alpha.2",
56
- "@deepseek-ai/dsh-client-ui-approval": "^0.1.3-alpha.2",
57
- "@deepseek-ai/dsh-client-ui-brand-official": "^0.1.3-alpha.2",
58
- "@deepseek-ai/dsh-client-ui-commands": "^0.1.3-alpha.2",
59
- "@deepseek-ai/dsh-client-ui-chat": "^0.1.3-alpha.2",
60
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.3-alpha.2",
61
- "@deepseek-ai/dsh-client-ui-deliverables": "^0.1.3-alpha.2",
62
- "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.3-alpha.2",
63
- "@deepseek-ai/dsh-client-ui-open-in-app": "^0.1.3-alpha.2",
64
- "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.3-alpha.2",
65
- "@deepseek-ai/dsh-client-ui-message-feedback": "^0.1.3-alpha.2",
66
- "@deepseek-ai/dsh-client-ui-goal": "^0.1.3-alpha.2",
67
- "@deepseek-ai/dsh-client-ui-layout": "^0.1.3-alpha.2",
68
- "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.3-alpha.2",
69
- "@deepseek-ai/dsh-client-ui-settings-models": "^0.1.3-alpha.2",
70
- "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.1.3-alpha.2",
71
- "@deepseek-ai/dsh-client-ui-permission-presets": "^0.1.3-alpha.2",
72
- "@deepseek-ai/dsh-client-ui-plan": "^0.1.3-alpha.2",
73
- "@deepseek-ai/dsh-client-ui-schedule": "^0.1.3-alpha.2",
74
- "@deepseek-ai/dsh-client-ui-session": "^0.1.3-alpha.2",
75
- "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.3-alpha.2",
76
- "@deepseek-ai/dsh-client-ui-user-questions": "^0.1.3-alpha.2",
77
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.3-alpha.2",
78
- "@deepseek-ai/dsh-client-ui-settings-general": "^0.1.3-alpha.2",
79
- "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.3-alpha.2",
80
- "@deepseek-ai/dsh-client-ui-skill": "^0.1.3-alpha.2",
81
- "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.3-alpha.2",
82
- "@deepseek-ai/dsh-client-ui-reference": "^0.1.3-alpha.2",
83
- "@deepseek-ai/dsh-client-ui-subagent": "^0.1.3-alpha.2",
84
- "@deepseek-ai/dsh-client-ui-cordis": "^0.1.3-alpha.2",
85
- "@deepseek-ai/dsh-client-ui-jobs": "^0.1.3-alpha.2",
86
- "@deepseek-ai/dsh-client-ui-theme": "^0.1.3-alpha.2",
87
- "@deepseek-ai/dsh-client-ui-workflow-run": "^0.1.3-alpha.2",
88
- "@deepseek-ai/dsh-client-ui-trajectory": "^0.1.3-alpha.2",
89
- "@deepseek-ai/dsh-client-ui-workspace": "^0.1.3-alpha.2",
90
- "@deepseek-ai/dsh-cmdline": "^0.1.3-alpha.2",
91
- "@deepseek-ai/dsh-code-runtime-worker-thread": "^0.1.3-alpha.2",
92
- "@deepseek-ai/dsh-cordis-client-runner": "^0.1.3-alpha.2",
93
- "@deepseek-ai/dsh-cordis-host-runner": "^0.1.3-alpha.2",
94
- "@deepseek-ai/dsh-web-frontend": "^0.1.3-alpha.2",
95
- "@deepseek-ai/dsh-host-frontend-static": "^0.1.3-alpha.2",
96
- "@deepseek-ai/dsh-host-directory-picker-auto": "^0.1.3-alpha.2",
97
- "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.3-alpha.2",
98
- "@deepseek-ai/dsh-client-ui-tool": "^0.1.3-alpha.2",
99
- "@deepseek-ai/dsh-host-directory-picker-native": "^0.1.3-alpha.2",
100
- "@deepseek-ai/dsh-host-open-in-app": "^0.1.3-alpha.2",
101
- "@deepseek-ai/dsh-host-webserver": "^0.1.3-alpha.2",
102
- "@deepseek-ai/dsh-host-plugin-inventory": "^0.1.3-alpha.2",
103
- "@deepseek-ai/dsh-file-reference": "^0.1.3-alpha.2",
104
- "@deepseek-ai/dsh-file-reference-local": "^0.1.3-alpha.2",
105
- "@deepseek-ai/dsh-launch-environment": "^0.1.3-alpha.2",
106
- "@deepseek-ai/dsh-session-reference": "^0.1.3-alpha.2",
107
- "@deepseek-ai/dsh-session-log-export": "^0.1.3-alpha.2",
108
- "@deepseek-ai/dsh-session-stats": "^0.1.3-alpha.2",
109
- "@deepseek-ai/dsh-session-turn-outline": "^0.1.3-alpha.2",
110
- "@deepseek-ai/dsh-api-session-controller": "^0.1.3-alpha.2",
111
- "@deepseek-ai/dsh-api-workspace-controller": "^0.1.3-alpha.2",
112
- "@deepseek-ai/dsh-api-settings-controller": "^0.1.3-alpha.2",
113
- "@deepseek-ai/dsh-subprocess": "^0.1.3-alpha.2",
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",
114
120
  "@deepseek-ai/schemastery": "^3.18.2",
115
- "@deepseek-ai/dsh-workspace": "^0.1.3-alpha.2",
116
- "@deepseek-ai/dsh-message-feedback": "^0.1.3-alpha.2"
121
+ "@deepseek-ai/dsh-session-turn-outline": "^0.1.5-alpha.1"
117
122
  },
118
123
  "peerDependencies": {
119
124
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
120
- "@deepseek-ai/dsh-shell-env": "^0.1.3-alpha.2",
121
- "@deepseek-ai/dsh-system-prompt": "^0.1.3-alpha.2",
122
- "@deepseek-ai/cordis": "^4.0.2"
125
+ "@deepseek-ai/cordis": "^4.0.2",
126
+ "@deepseek-ai/dsh-shell-env": "^0.1.5-alpha.1",
127
+ "@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1"
123
128
  },
124
129
  "devDependencies": {
130
+ "@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.1",
125
131
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
126
- "@deepseek-ai/dsh-shell-env": "^0.1.3-alpha.2",
127
- "@deepseek-ai/dsh-system-prompt": "^0.1.3-alpha.2",
132
+ "@deepseek-ai/dsh-shell-env": "^0.1.5-alpha.1",
128
133
  "@deepseek-ai/cordis": "^4.0.2"
129
134
  }
130
135
  }