dsh-edge 0.1.0 → 0.1.3
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 +1 -1
- package/README.i18n.yaml +2 -2
- package/README.md +6 -4
- package/README.zh.md +6 -4
- package/THIRD_PARTY_NOTICES.md +42 -14
- package/dist/index.html +1 -1
- package/dist/plugins/@deepseek-ai/dsh-client-locale/client.js +7 -7
- package/dist/plugins/@deepseek-ai/dsh-client-ui-agent-preset/client.js +61 -61
- package/dist/plugins/@deepseek-ai/dsh-client-ui-commands/client.js +14 -14
- package/dist/plugins/@deepseek-ai/dsh-client-ui-conversation/client.js +287 -287
- package/dist/plugins/@deepseek-ai/dsh-client-ui-deliverables/client.js +10 -10
- package/dist/plugins/@deepseek-ai/dsh-client-ui-input-trigger/client.js +11 -11
- package/dist/plugins/@deepseek-ai/dsh-client-ui-jobs/client.js +15 -15
- package/dist/plugins/@deepseek-ai/dsh-client-ui-layout/client.js +8 -8
- package/dist/plugins/@deepseek-ai/dsh-client-ui-model-selection/client.js +27 -27
- package/dist/plugins/@deepseek-ai/dsh-client-ui-permission-presets/client.js +8 -8
- package/dist/plugins/@deepseek-ai/dsh-client-ui-settings-general/client.js +31 -31
- package/dist/plugins/@deepseek-ai/dsh-client-ui-sidebar/client.js +23 -23
- package/dist/plugins/@deepseek-ai/dsh-client-ui-skill/client.js +19 -19
- package/dist/plugins/@deepseek-ai/dsh-client-ui-subagent/client.js +29 -29
- package/dist/plugins/@deepseek-ai/dsh-client-ui-theme/client.js +7 -7
- package/dist/plugins/@deepseek-ai/dsh-client-ui-tool/client.js +64 -64
- package/dist/plugins/@deepseek-ai/dsh-client-ui-trajectory/client.js +183 -183
- package/dist/plugins/@deepseek-ai/dsh-client-ui-user-questions/client.js +44 -44
- package/dist/plugins/@deepseek-ai/dsh-client-ui-workflow-run/client.js +24 -24
- package/dist/plugins/@deepseek-ai/dsh-client-ui-workspace/client.js +79 -79
- package/dist/plugins/{@deepseek-ai/dsh-client-ui-edge → dsh-edge-client-ui}/client.js +12 -12
- package/package.json +26 -23
- package/scripts/assemble-web.mjs +1 -1
- package/scripts/bundle.mjs +41 -8
- package/scripts/cli.d.mts +1 -0
- package/scripts/cli.mjs +37 -6
- package/scripts/install.d.mts +6 -6
- package/scripts/install.mjs +36 -19
- package/scripts/legal-files.mjs +65 -7
- package/scripts/smoke-installed.mjs +47 -0
- package/scripts/verify-packed.d.mts +24 -0
- package/scripts/verify-packed.mjs +85 -23
- package/scripts/wrangler-config.d.mts +19 -2
- package/scripts/wrangler-config.mjs +68 -27
- package/worker/direct/index.js +2347 -0
- package/worker/isolated/index.js +44491 -0
- package/src/agent.ts +0 -119
- package/src/auth.ts +0 -352
- package/src/deepseek.ts +0 -231
- package/src/deployment.ts +0 -147
- package/src/direct-shell-core-empty.ts +0 -10
- package/src/direct-shell-protocol.ts +0 -5
- package/src/direct-shell.ts +0 -341
- package/src/do-session-persistence.ts +0 -1064
- package/src/edge-api.ts +0 -796
- package/src/edge-credentials.ts +0 -56
- package/src/edge-remotes.ts +0 -41
- package/src/edge-workspace-store.ts +0 -339
- package/src/http.ts +0 -212
- package/src/index.ts +0 -196
- package/src/instance.ts +0 -1007
- package/src/isolated-direct-shell-unavailable.ts +0 -11
- package/src/protocol.ts +0 -39
- package/src/release.ts +0 -9
- package/src/session-store.ts +0 -1110
- package/src/sse.ts +0 -86
- package/src/web-search.ts +0 -38
- package/src/workspace.ts +0 -270
package/LICENSE
CHANGED
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 apps/dsh-edge/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 4bd24a79960574545591302c66dad9586639373a
|
|
6
|
+
README.zh.md: 848255b552bb176e84aa9d73339ea81be46b3026
|
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@ English | [中文](README.zh.md)
|
|
|
4
4
|
|
|
5
5
|
`dsh-edge` is the Cloudflare runtime prototype for DeepSeek Harness. One deployment maps its authenticated owner to one Durable Object whose SQLite-backed virtual filesystem survives requests. By default, an in-process just-bash backend runs commands against that same filesystem without a Linux container or Dynamic Worker.
|
|
6
6
|
|
|
7
|
+
`dsh-edge` is an independent community project. It is not affiliated with or endorsed by DeepSeek; DeepSeek Harness remains an upstream dependency under its own license.
|
|
8
|
+
|
|
7
9
|
The checked-in Wrangler configuration exposes two deployment targets from the same application graph. The default target is direct mode for Workers Free and has no Worker Loader binding. The named `isolated` target adds the `LOADER` binding and requires Workers Paid, but does not fork the DSH protocol, storage, UI, or tool implementation.
|
|
8
10
|
|
|
9
11
|
The prototype runs persistent conversations through the upstream Cordis-composed `ReactLoopAgent`, `AgentRegistry`, `LlmRuntime`, `ToolRuntime`, `SystemPrompt`, `SessionStore`, and `SessionPersistence`. Edge code only binds a request-scoped DeepSeek adapter and maps one native DSH `bash` tool definition onto Cloudflare Computer. Durable Object SQLite implements the upstream persistence backend contract; `PersistenceCoordinator` still owns write-behind, revisions, resume preparation, and crash recovery. Model history is projected from canonical events rather than persisted separately.
|
|
@@ -135,7 +137,7 @@ The top level of the committed `wrangler.jsonc` is the default direct target and
|
|
|
135
137
|
|
|
136
138
|
The same file also defines `env.isolated`, a complete Workers Paid target with the `LOADER` binding. The application code sees `LOADER` and chooses Computer's Worker Shell backend, so `/api/health` reports `just-bash-isolated` instead of `just-bash-direct`. Workers Paid is a Workers subscription starting at $5 per month, not the Cloudflare Pro website plan. Each Worker name has independent Durable Object storage and secrets, so install both modes under different names when both should remain live.
|
|
137
139
|
|
|
138
|
-
`wrangler.jsonc` remains the single canonical configuration for both modes.
|
|
140
|
+
`wrangler.jsonc` remains the single canonical configuration for both modes. Release packaging builds one tested, minified Worker artifact per mode from the workspace sources. Direct mode replaces only Computer's unreachable Dynamic Worker shell-core module at build time; the Computer workspace adapter and command exports remain the upstream implementations. Isolated mode preserves that shell core but replaces the unreachable Direct backend with a fail-closed module, so each artifact carries only its selected command runtime. The published installer generates a private mode-specific configuration that points at the selected artifact and asks Wrangler to upload it with `no_bundle`; the user's machine does not rebuild dsh-edge or resolve the upstream Harness packages into a new Worker. CI starts the Direct artifact from an installed tarball and rejects it above a 900 KiB compressed budget, leaving headroom below the 1 MiB limit enforced by Cloudflare's anonymous temporary-account upload path.
|
|
139
141
|
|
|
140
142
|
Run the guided installer without cloning this repository:
|
|
141
143
|
|
|
@@ -151,9 +153,9 @@ pnpm dlx dsh-edge@latest upgrade
|
|
|
151
153
|
|
|
152
154
|
The installer asks for the runtime before the account. The recommended `Free — Direct Shell` mode works on Workers Free and can use a detected Cloudflare account, open Cloudflare sign-in or registration, or create a temporary account without login. `Isolated — Dynamic Worker` requires Workers Paid and therefore offers only a detected or newly authenticated account. Cloudflare does not expose a reliable local entitlement check for Worker Loader, so an isolated install lets Cloudflare authorize the upload and turns a rejection into a choice between enabling Workers Paid and using direct mode.
|
|
153
155
|
|
|
154
|
-
The remaining prompts select a Worker name, generate or accept the owner access key, collect the DeepSeek API key through hidden input, and show a final cost summary. A temporary-account install also asks the user to accept Cloudflare's Terms of Service and Privacy Policy explicitly. An existing Worker is never overwritten without confirmation. The installer passes both credentials through a mode-`0600` temporary secrets file and gives Wrangler only an allowlisted runtime environment plus the Cloudflare authentication selected for that command; unrelated ambient keys, tokens, passwords, secrets, and Node injection options do not reach the child. It removes the secret file after the command and discovers the resulting URL from Wrangler's structured output. It does not probe the public Worker after upload. Instead, it prints the URL, owner access key, and concrete next steps; a temporary account also receives a bearer claim URL that must be claimed within 60 minutes to retain the Worker and its data. If upload succeeds but output parsing, claim-URL extraction, interruption handling, or local cleanup prevents a normal handoff, a recovery card still prints the active owner key and any known URLs before the command exits unsuccessfully. The installation uploads directly through Wrangler and does not create or bind a GitHub repository, Cloudflare Builds project, or source-build pipeline.
|
|
156
|
+
The remaining prompts select a Worker name, generate or accept the owner access key, collect the DeepSeek API key through hidden input, and show a final cost summary. A temporary-account install also asks the user to accept Cloudflare's Terms of Service and Privacy Policy explicitly. An existing Worker is never overwritten without confirmation. The installer passes both credentials through a mode-`0600` temporary secrets file and gives Wrangler only an allowlisted runtime environment plus the Cloudflare authentication selected for that command; unrelated ambient keys, tokens, passwords, secrets, and Node injection options do not reach the child. It removes the secret file after the command and discovers the resulting URL from Wrangler's structured output. Deployment output is hidden behind one progress indicator by default; add `--verbose` to either command to inspect Wrangler diagnostics. It does not probe the public Worker after upload. Instead, it prints the URL, owner access key, and concrete next steps; a temporary account also receives a bearer claim URL that must be claimed within 60 minutes to retain the Worker and its data. A rejected upload is reported as not installed and, when Wrangler created a temporary account first, still prints its claim URL without presenting the unused owner key as active. If upload succeeds but output parsing, claim-URL extraction, interruption handling, or local cleanup prevents a normal handoff, a recovery card still prints the active owner key and any known URLs before the command exits unsuccessfully. The installation uploads directly through Wrangler and does not create or bind a GitHub repository, Cloudflare Builds project, or source-build pipeline.
|
|
155
157
|
|
|
156
|
-
Contributors working from a checkout can reproduce the two
|
|
158
|
+
Contributors working from a checkout can reproduce the two release artifacts locally with `pnpm --filter dsh-edge bundle:direct` and `pnpm --filter dsh-edge bundle:isolated`. The first command also enforces the compressed-size budget.
|
|
157
159
|
|
|
158
160
|
Contributors can replay the complete Free temporary-account journey without a key or network call. This example runs the shipped bin, real prompts, Wrangler subprocess, structured deployment-output parsing, and final handoff while replacing only the external Cloudflare command:
|
|
159
161
|
|
|
@@ -167,7 +169,7 @@ pnpm --filter dsh-edge example:install
|
|
|
167
169
|
- `GET /login` renders the Edge-owned owner form; `POST /api/auth/login` exchanges the configured access key for a signed cookie, `GET /api/auth/session` reports cookie validity, and `POST /api/auth/logout` clears it.
|
|
168
170
|
- `GET /api/events.mux` and `GET /api/events.host` upgrade to the upstream downlink WebSockets. The Durable Object serializes each socket's channel and verified owner-session expiry as its hibernation attachment, closes it at that expiry through an alarm, and reconstructs canonical sessions plus retained blank headers from Durable Object SQL. The mux stream publishes a complete `session/queue` snapshot after each committed inbox splice and sends pending live inbox baselines when a client reconnects.
|
|
169
171
|
- `POST /api/commands/list` implements the upstream generated-Remote envelope with an empty catalog because the Edge preset registers no human commands.
|
|
170
|
-
- `GET /api/health` returns the public
|
|
172
|
+
- `GET /api/health` returns the public package-and-mode release identifier and validates owner authentication, the deployment-scoped DeepSeek credential, model and transport choices, and the command-timeout policy before reporting the runtime components as ready. It does not call the provider, Durable Object, VFS, or shell.
|
|
171
173
|
- `PUT /api/workspace/file?path=/workspace/...` writes a UTF-8 file.
|
|
172
174
|
- `GET /api/workspace/file?path=/workspace/...` reads a UTF-8 file.
|
|
173
175
|
- `DELETE /api/workspace/file?path=/workspace/...` removes a file.
|
package/README.zh.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
`dsh-edge` 是 DeepSeek Harness 的 Cloudflare 运行时原型。每次部署把通过认证的 owner 固定映射到一个 Durable Object,其基于 SQLite 的虚拟文件系统可跨请求持久保存。默认情况下,进程内 just-bash 后端直接在同一文件系统上执行命令,不依赖 Linux 容器或 Dynamic Worker。
|
|
6
6
|
|
|
7
|
+
`dsh-edge` 是独立的社区项目,与 DeepSeek 没有隶属关系,也未获得 DeepSeek 官方背书;DeepSeek Harness 仍是按其自身许可证使用的上游依赖。
|
|
8
|
+
|
|
7
9
|
仓库提交的 Wrangler 配置从同一套应用 graph 暴露两个部署目标。默认目标是面向 Workers Free 的 direct 模式,不包含 Worker Loader binding。命名的 `isolated` 目标会添加 `LOADER` binding,并且需要 Workers Paid,但不会 fork DSH protocol、storage、UI 或 tool implementation。
|
|
8
10
|
|
|
9
11
|
该原型通过上游 Cordis 组合的 `ReactLoopAgent`、`AgentRegistry`、`LlmRuntime`、`ToolRuntime`、`SystemPrompt`、`SessionStore` 和 `SessionPersistence` 运行持久对话。Edge 代码只绑定请求作用域的 DeepSeek 适配器,并把一个原生 DSH `bash` 工具定义映射到 Cloudflare Computer。Durable Object SQLite 实现上游持久化后端约定,write-behind、revision、恢复准备和崩溃恢复仍由 `PersistenceCoordinator` 负责。模型历史从 canonical 事件投影,不再单独持久化。
|
|
@@ -135,7 +137,7 @@ Cloudflare static assets -> upstream Web shell + client plugin graph
|
|
|
135
137
|
|
|
136
138
|
同一文件还定义了 `env.isolated`,这是包含 `LOADER` binding 的完整 Workers Paid 目标。应用代码会发现 `LOADER` 并选择 Computer 的 Worker Shell backend,因此 `/api/health` 会报告 `just-bash-isolated`,而不是 `just-bash-direct`。Workers Paid 是每月 5 美元起的 Workers 订阅,并非 Cloudflare Pro 网站套餐。不同 Worker 名称分别拥有独立的 Durable Object storage 与 secret;如果需要让两种模式同时在线,请使用不同名称分别安装。
|
|
137
139
|
|
|
138
|
-
`wrangler.jsonc` 仍然是两种模式唯一的 canonical configuration
|
|
140
|
+
`wrangler.jsonc` 仍然是两种模式唯一的 canonical configuration。发布打包会从 workspace 源码为每种模式构建一个经过测试、已 minify 的 Worker artifact。Direct 模式只在构建时替换 Computer 中不可达的 Dynamic Worker shell-core module;Computer workspace adapter 与 command export 仍使用上游实现。Isolated 模式保留该 shell core,但把不可达的 Direct backend 替换成 fail-closed module,因此每个 artifact 都只携带所选 command runtime。发布的安装器会生成私有的 mode-specific configuration,指向所选 artifact,并要求 Wrangler 使用 `no_bundle` 上传;用户机器不会重新构建 dsh-edge,也不会把上游 Harness package 解析进一个新的 Worker。CI 会从已安装的 tarball 启动 Direct artifact,并拒绝压缩后超过 900 KiB 的产物,从而在 Cloudflare 匿名临时账户上传路径强制执行的 1 MiB 上限下保留余量。
|
|
139
141
|
|
|
140
142
|
无需克隆仓库即可运行引导式安装器:
|
|
141
143
|
|
|
@@ -151,9 +153,9 @@ pnpm dlx dsh-edge@latest upgrade
|
|
|
151
153
|
|
|
152
154
|
安装器会先询问运行时,再询问账户。推荐的 `Free — Direct Shell` 模式可在 Workers Free 上运行,并可使用检测到的 Cloudflare 账户、打开 Cloudflare 登录或注册,也可在不登录的情况下创建临时账户。`Isolated — Dynamic Worker` 需要 Workers Paid,因此只提供已检测到或新认证的账户。Cloudflare 没有提供可靠的本地 Worker Loader entitlement 检查;isolated 安装会由 Cloudflare 对上传进行授权,并在被拒绝时提示启用 Workers Paid 或改用 direct 模式。
|
|
153
155
|
|
|
154
|
-
后续提示会选择 Worker 名称、生成或接收 owner access key、通过隐藏输入收集 DeepSeek API key,并显示最终费用摘要。临时账户安装还会要求用户明确接受 Cloudflare 服务条款与隐私政策。安装器绝不会在未经确认时覆盖现有 Worker。两项 credential 会通过权限模式为 `0600` 的临时 secret 文件传给 Wrangler;Wrangler 子进程只会收到 allowlist 内的运行时环境变量和当前命令选中的 Cloudflare authentication,其他 ambient key、token、password、secret 与 Node 注入选项不会进入子进程。命令结束后临时 secret 文件会被删除,安装器从 Wrangler 结构化输出中取得最终 URL
|
|
156
|
+
后续提示会选择 Worker 名称、生成或接收 owner access key、通过隐藏输入收集 DeepSeek API key,并显示最终费用摘要。临时账户安装还会要求用户明确接受 Cloudflare 服务条款与隐私政策。安装器绝不会在未经确认时覆盖现有 Worker。两项 credential 会通过权限模式为 `0600` 的临时 secret 文件传给 Wrangler;Wrangler 子进程只会收到 allowlist 内的运行时环境变量和当前命令选中的 Cloudflare authentication,其他 ambient key、token、password、secret 与 Node 注入选项不会进入子进程。命令结束后临时 secret 文件会被删除,安装器从 Wrangler 结构化输出中取得最终 URL。默认情况下,部署输出会收敛到一个进度提示;在任一命令后添加 `--verbose` 可以查看 Wrangler 诊断。上传后它不会探测公开 Worker,而是直接输出 URL、owner access key 与明确的下一步;临时账户还会收到一个 bearer claim URL,必须在 60 分钟内认领才能保留 Worker 及其数据。上传被拒绝时,安装器会明确报告未安装;如果 Wrangler 已经创建临时账户,仍会输出其 claim URL,但不会把尚未生效的 owner key 显示为 active。如果上传成功,但输出解析、claim URL 提取、中断处理或本地清理导致正常交接无法完成,命令仍会在按失败退出前通过恢复卡片输出已生效的 owner key 与当时已知的 URL。安装过程直接通过 Wrangler 上传,不会创建或绑定 GitHub 仓库、Cloudflare Builds 项目或源码构建流水线。
|
|
155
157
|
|
|
156
|
-
从 checkout 开发的贡献者可以用 `pnpm --filter dsh-edge bundle:direct` 和 `pnpm --filter dsh-edge bundle:isolated`
|
|
158
|
+
从 checkout 开发的贡献者可以用 `pnpm --filter dsh-edge bundle:direct` 和 `pnpm --filter dsh-edge bundle:isolated` 在本地复现两种 release artifact。第一条命令还会执行压缩体积预算检查。
|
|
157
159
|
|
|
158
160
|
贡献者可以在没有 key 且不发起网络请求的情况下重放完整的 Free 临时账户流程。这个 example 会运行实际交付的 bin、真实 prompt、Wrangler 子进程、结构化部署输出解析与最终交接,只替换外部 Cloudflare command:
|
|
159
161
|
|
|
@@ -167,7 +169,7 @@ pnpm --filter dsh-edge example:install
|
|
|
167
169
|
- `GET /login` 渲染 Edge 持有的 owner form;`POST /api/auth/login` 用已配置的 access key 换取 signed cookie,`GET /api/auth/session` 报告 cookie 是否有效,`POST /api/auth/logout` 清除 cookie。
|
|
168
170
|
- `GET /api/events.mux` 和 `GET /api/events.host` 会升级为上游 downlink WebSocket。Durable Object 会把每个 socket 的 channel 与已验证 owner session 过期时间序列化为 hibernation attachment,通过 alarm 在该时间关闭连接,并从 Durable Object SQL 重建 canonical session 与 retained blank header。每次 inbox splice 提交后,mux stream 都会发布完整的 `session/queue` snapshot;客户端重连时还会发送 live inbox 的待处理 baseline。
|
|
169
171
|
- `POST /api/commands/list` 使用上游 generated-Remote envelope 返回空 catalog,因为 Edge preset 没有注册 human command。
|
|
170
|
-
- `GET /api/health`
|
|
172
|
+
- `GET /api/health` 会返回公开的 package-and-mode release identifier,并先验证 owner authentication、部署级 DeepSeek 凭据、模型与传输配置,以及命令超时策略,再报告运行时组件已就绪。它不会调用提供方、Durable Object、VFS 或 shell。
|
|
171
173
|
- `PUT /api/workspace/file?path=/workspace/...` 写入 UTF-8 文件。
|
|
172
174
|
- `GET /api/workspace/file?path=/workspace/...` 读取 UTF-8 文件。
|
|
173
175
|
- `DELETE /api/workspace/file?path=/workspace/...` 删除文件。
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -1,15 +1,43 @@
|
|
|
1
|
-
<!-- Generated by scripts/
|
|
2
|
-
Run `pnpm run
|
|
1
|
+
<!-- Generated by apps/dsh-edge/scripts/legal-files.mjs — do not edit by hand.
|
|
2
|
+
Run `pnpm --filter dsh-edge run legal:write` to regenerate. -->
|
|
3
3
|
|
|
4
4
|
# Third-Party Notices
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
`dsh-edge` is an independent community project and is not affiliated with or endorsed by DeepSeek.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## DeepSeek Harness
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
`dsh-edge` includes and adapts DeepSeek Harness. DeepSeek Harness retains its upstream copyright and MIT license:
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
```text
|
|
13
|
+
MIT License
|
|
14
|
+
|
|
15
|
+
Copyright (c) 2026 DeepSeek
|
|
16
|
+
|
|
17
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
18
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
19
|
+
in the Software without restriction, including without limitation the rights
|
|
20
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
21
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
22
|
+
furnished to do so, subject to the following conditions:
|
|
23
|
+
|
|
24
|
+
The above copyright notice and this permission notice shall be included in all
|
|
25
|
+
copies or substantial portions of the Software.
|
|
26
|
+
|
|
27
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
28
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
29
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
30
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
31
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
33
|
+
SOFTWARE.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## DeepSeek Harness dependency notices
|
|
37
|
+
|
|
38
|
+
The following inventory is reproduced from the DeepSeek Harness source distribution. Each project remains under its own license; nothing in this file changes those terms.
|
|
39
|
+
|
|
40
|
+
### Vendored source (`vendor/`)
|
|
13
41
|
|
|
14
42
|
The Cordis framework and its foundation libraries are source-vendored into this repository rather than consumed from npm, and republished under the `@deepseek-ai` scope. All are MIT-licensed; each directory preserves its upstream `LICENSE` file. Exact upstream commits and local modifications are recorded in [`vendor/README.md`](vendor/README.md).
|
|
15
43
|
|
|
@@ -25,7 +53,7 @@ The Cordis framework and its foundation libraries are source-vendored into this
|
|
|
25
53
|
| `@deepseek-ai/cordis-plugin-hmr` | `@cordisjs/plugin-hmr` | [github.com/deepseek-harness/cordis](https://github.com/deepseek-harness/cordis) | MIT |
|
|
26
54
|
| `@deepseek-ai/cordis-plugin-logger-console` | `@cordisjs/plugin-logger-console` | [github.com/deepseek-harness/cordis](https://github.com/deepseek-harness/cordis) | MIT |
|
|
27
55
|
|
|
28
|
-
|
|
56
|
+
### Runtime npm dependencies
|
|
29
57
|
|
|
30
58
|
External packages that a workspace package resolves at runtime. The tier covers every plugin a user can mount from `cordis.yml` — not only what the `dsh` CLI, Web UI, and Python SDK runtime load by default.
|
|
31
59
|
|
|
@@ -36,7 +64,6 @@ External packages that a workspace package resolves at runtime. The tier covers
|
|
|
36
64
|
| [`@anthropic-ai/sdk`](https://github.com/anthropics/anthropic-sdk-typescript) | MIT |
|
|
37
65
|
| [`@babel/code-frame`](https://github.com/babel/babel) | MIT |
|
|
38
66
|
| [`@clack/prompts`](https://github.com/bombshell-dev/clack) | MIT |
|
|
39
|
-
| [`@cloudflare/computer`](https://github.com/cloudflare/computer) | MIT |
|
|
40
67
|
| [`@earendil-works/pi-ai`](https://github.com/earendil-works/pi) | MIT |
|
|
41
68
|
| [`@joplin/turndown-plugin-gfm`](https://github.com/laurent22/joplin-turndown-plugin-gfm) | MIT |
|
|
42
69
|
| [`@jridgewell/gen-mapping`](https://github.com/jridgewell/sourcemaps) | MIT |
|
|
@@ -65,7 +92,6 @@ External packages that a workspace package resolves at runtime. The tier covers
|
|
|
65
92
|
| [`immer`](https://github.com/immerjs/immer) | MIT |
|
|
66
93
|
| [`js-yaml`](https://github.com/nodeca/js-yaml) | MIT |
|
|
67
94
|
| [`jsonc-parser`](https://github.com/microsoft/node-jsonc-parser) | MIT |
|
|
68
|
-
| [`just-bash`](https://github.com/vercel-labs/just-bash) | Apache-2.0 |
|
|
69
95
|
| [`katex`](https://github.com/KaTeX/KaTeX) | MIT |
|
|
70
96
|
| [`koffi`](https://github.com/Koromix/koffi) | MIT |
|
|
71
97
|
| [`mdast-util-from-markdown`](https://github.com/syntax-tree/mdast-util-from-markdown) | MIT |
|
|
@@ -102,7 +128,7 @@ pnpm applies local patches to the following packages at install time, so shipped
|
|
|
102
128
|
|
|
103
129
|
- `node-pty@1.2.0-beta.15` — [`patches/node-pty@1.2.0-beta.15.patch`](patches/node-pty@1.2.0-beta.15.patch)
|
|
104
130
|
|
|
105
|
-
|
|
131
|
+
### Official Claude Code platform payloads
|
|
106
132
|
|
|
107
133
|
The project owner authorizes distribution of every version of the official `@anthropic-ai/claude-agent-sdk` package and the official Claude Code CLI/platform payloads that each version declares through `optionalDependencies`. This identity-scoped authorization does not classify their declared terms as permissive and does not cover any unrelated runtime package; version, declared-license, and payload-set changes still require the ordinary dependency, lockfile, compatibility, terms, and notices review.
|
|
108
134
|
|
|
@@ -120,13 +146,14 @@ The installed SDK 0.3.220 declares the following optional platform packages. Eac
|
|
|
120
146
|
| [`@anthropic-ai/claude-agent-sdk-win32-x64`](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk-win32-x64) | 0.3.220 | SEE LICENSE IN LICENSE.md |
|
|
121
147
|
|
|
122
148
|
|
|
123
|
-
|
|
149
|
+
### Development-only npm dependencies
|
|
124
150
|
|
|
125
151
|
External packages **directly declared** only by repository tooling, test infrastructure, the documentation site, the demo leaves, or the native launcher's build workspace. No shipped surface names them itself. A package here may still be pulled in transitively by a runtime dependency — `pnpm-lock.yaml` is the authority on the full closure — so this tier records who declares a package, not what a build ultimately bundles.
|
|
126
152
|
|
|
127
153
|
| Package | License |
|
|
128
154
|
| --- | --- |
|
|
129
155
|
| [`@braintree/sanitize-url`](https://github.com/braintree/sanitize-url) | MIT |
|
|
156
|
+
| [`@cloudflare/computer`](https://github.com/cloudflare/computer) | MIT |
|
|
130
157
|
| [`@cloudflare/workers-types`](https://github.com/cloudflare/workerd) | MIT OR Apache-2.0 |
|
|
131
158
|
| [`@modelcontextprotocol/server-everything`](https://github.com/modelcontextprotocol/servers) | MIT / Apache-2.0 |
|
|
132
159
|
| [`@modelcontextprotocol/server-filesystem`](https://github.com/modelcontextprotocol/servers) | MIT / Apache-2.0 |
|
|
@@ -157,6 +184,7 @@ External packages **directly declared** only by repository tooling, test infrast
|
|
|
157
184
|
| [`istanbul-lib-report`](https://github.com/istanbuljs/istanbuljs) | BSD-3-Clause |
|
|
158
185
|
| [`jscpd`](https://github.com/kucherenko/jscpd) | MIT |
|
|
159
186
|
| [`jsdom`](https://github.com/jsdom/jsdom) | MIT |
|
|
187
|
+
| [`just-bash`](https://github.com/vercel-labs/just-bash) | Apache-2.0 |
|
|
160
188
|
| [`knip`](https://github.com/webpro-nl/knip) | ISC |
|
|
161
189
|
| [`lefthook`](https://github.com/evilmartians/lefthook) | MIT |
|
|
162
190
|
| [`lightningcss`](https://github.com/parcel-bundler/lightningcss) | MPL-2.0 |
|
|
@@ -177,7 +205,7 @@ External packages **directly declared** only by repository tooling, test infrast
|
|
|
177
205
|
|
|
178
206
|
`eslint-plugin-sonarjs` (LGPL-3.0-only) and `lightningcss` (MPL-2.0) run only as development tooling; their code is not linked into or distributed with any DeepSeek Harness artifact.
|
|
179
207
|
|
|
180
|
-
|
|
208
|
+
### Python SDK dependencies (`python/`)
|
|
181
209
|
|
|
182
210
|
Direct dependencies of the `pyproject.toml` manifests, plus `uv` as the development workflow tool.
|
|
183
211
|
|
|
@@ -188,12 +216,12 @@ Direct dependencies of the `pyproject.toml` manifests, plus `uv` as the developm
|
|
|
188
216
|
| [`pytest`](https://github.com/pytest-dev/pytest) | MIT | test-only |
|
|
189
217
|
| [`uv`](https://github.com/astral-sh/uv) | MIT / Apache-2.0 | development workflow tool |
|
|
190
218
|
|
|
191
|
-
|
|
219
|
+
### Fetched at build time
|
|
192
220
|
|
|
193
221
|
| Package | License | Role |
|
|
194
222
|
| --- | --- | --- |
|
|
195
223
|
| [`@yao-pkg/pkg`](https://github.com/yao-pkg/pkg) | MIT | invoked by `scripts/build-exe-for-python-sdk.ts` to assemble the single-file SDK runtime executable |
|
|
196
224
|
|
|
197
|
-
|
|
225
|
+
### First-party native packages
|
|
198
226
|
|
|
199
227
|
`@deepseek-ai/node-addon-landlock-run` (and its platform packages) is built and released from this repository under BSD 3-Clause. It is listed here for completeness; it is first-party, not third-party.
|
package/dist/index.html
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
}
|
|
19
19
|
return response
|
|
20
20
|
}
|
|
21
|
-
})()</script><script>window.__DSH_BOOT__ = {"rev":"
|
|
21
|
+
})()</script><script>window.__DSH_BOOT__ = {"rev":"f18475191378","entries":[{"id":"@deepseek-ai/dsh-typert-registry","url":"/plugins/@deepseek-ai/dsh-typert-registry/client.js?rev=f41d56e0b747","rev":"f41d56e0b747","inject":[],"immediately":true},{"id":"@deepseek-ai/dsh-api-gateway","url":"/plugins/@deepseek-ai/dsh-api-gateway/client.js?rev=9e83e9d9c076","rev":"9e83e9d9c076","inject":["@deepseek-ai/dsh-typert-registry","@deepseek-ai/dsh-client-connection"],"immediately":true},{"id":"@deepseek-ai/dsh-client-modules","url":"/plugins/@deepseek-ai/dsh-client-modules/client.js?rev=c3a65f7f440a","rev":"c3a65f7f440a","inject":[],"immediately":true},{"id":"@deepseek-ai/dsh-client-connection","url":"/plugins/@deepseek-ai/dsh-client-connection/client.js?rev=e4774927550c","rev":"e4774927550c","inject":[],"immediately":true},{"id":"@deepseek-ai/dsh-api-remotes","url":"/plugins/@deepseek-ai/dsh-api-remotes/client.js?rev=e17dd6016653","rev":"e17dd6016653","inject":["@deepseek-ai/dsh-api-gateway"],"immediately":true},{"id":"@deepseek-ai/dsh-client-runtime","url":"/plugins/@deepseek-ai/dsh-client-runtime/client.js?rev=6a4a3bdb1227","rev":"6a4a3bdb1227","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-typert-registry","@deepseek-ai/dsh-api-remotes"],"immediately":true},{"id":"@deepseek-ai/dsh-client-ui-theme","url":"/plugins/@deepseek-ai/dsh-client-ui-theme/client.js?rev=f1cbb1fd7d2e","rev":"f1cbb1fd7d2e","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-api-remotes"],"immediately":true},{"id":"@deepseek-ai/dsh-client-locale","url":"/plugins/@deepseek-ai/dsh-client-locale/client.js?rev=91998d0839f4","rev":"91998d0839f4","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-api-remotes"],"immediately":true},{"id":"@deepseek-ai/dsh-client-ui-layout","url":"/plugins/@deepseek-ai/dsh-client-ui-layout/client.js?rev=f801d241f929","rev":"f801d241f929","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-theme"]},{"id":"@deepseek-ai/dsh-client-ui-sidebar","url":"/plugins/@deepseek-ai/dsh-client-ui-sidebar/client.js?rev=b3efdeeea6b0","rev":"b3efdeeea6b0","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-layout","@deepseek-ai/dsh-client-locale"]},{"id":"@deepseek-ai/dsh-client-ui-settings","url":"/plugins/@deepseek-ai/dsh-client-ui-settings/client.js?rev=09edeb10e0d0","rev":"09edeb10e0d0","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-api-remotes"]},{"id":"@deepseek-ai/dsh-client-ui-settings-general","url":"/plugins/@deepseek-ai/dsh-client-ui-settings-general/client.js?rev=78ada4cdd41d","rev":"78ada4cdd41d","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-ui-sidebar"]},{"id":"@deepseek-ai/dsh-client-ui-conversation","url":"/plugins/@deepseek-ai/dsh-client-ui-conversation/client.js?rev=aa44cb0d8306","rev":"aa44cb0d8306","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-ui-layout"]},{"id":"@deepseek-ai/dsh-client-ui-tool","url":"/plugins/@deepseek-ai/dsh-client-ui-tool/client.js?rev=2010ca7f6b0a","rev":"2010ca7f6b0a","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"]},{"id":"@deepseek-ai/dsh-client-ui-workflow-run","url":"/plugins/@deepseek-ai/dsh-client-ui-workflow-run/client.js?rev=92680e2e1911","rev":"92680e2e1911","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation"]},{"id":"@deepseek-ai/dsh-client-ui-deliverables","url":"/plugins/@deepseek-ai/dsh-client-ui-deliverables/client.js?rev=f158d1377c1b","rev":"f158d1377c1b","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation"]},{"id":"@deepseek-ai/dsh-client-ui-workspace","url":"/plugins/@deepseek-ai/dsh-client-ui-workspace/client.js?rev=7a8acc3ee34e","rev":"7a8acc3ee34e","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-sidebar"]},{"id":"@deepseek-ai/dsh-client-ui-input-trigger","url":"/plugins/@deepseek-ai/dsh-client-ui-input-trigger/client.js?rev=f950c406eec1","rev":"f950c406eec1","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale"]},{"id":"@deepseek-ai/dsh-client-ui-commands","url":"/plugins/@deepseek-ai/dsh-client-ui-commands/client.js?rev=115936ff0e5b","rev":"115936ff0e5b","inject":["@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-input-trigger","@deepseek-ai/dsh-client-ui-conversation"]},{"id":"@deepseek-ai/dsh-client-ui-skill","url":"/plugins/@deepseek-ai/dsh-client-ui-skill/client.js?rev=c86167956025","rev":"c86167956025","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-tool","@deepseek-ai/dsh-client-ui-input-trigger","@deepseek-ai/dsh-api-remotes"]},{"id":"@deepseek-ai/dsh-client-ui-subagent","url":"/plugins/@deepseek-ai/dsh-client-ui-subagent/client.js?rev=59cdd497df18","rev":"59cdd497df18","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-primitives","@deepseek-ai/dsh-client-ui-input-trigger"]},{"id":"@deepseek-ai/dsh-client-ui-jobs","url":"/plugins/@deepseek-ai/dsh-client-ui-jobs/client.js?rev=fb10247df4cf","rev":"fb10247df4cf","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-primitives"]},{"id":"@deepseek-ai/dsh-client-ui-model-selection","url":"/plugins/@deepseek-ai/dsh-client-ui-model-selection/client.js?rev=d477a028342e","rev":"d477a028342e","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-api-remotes"]},{"id":"@deepseek-ai/dsh-client-ui-permission-presets","url":"/plugins/@deepseek-ai/dsh-client-ui-permission-presets/client.js?rev=94c39d4a0d97","rev":"94c39d4a0d97","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-ui-settings"]},{"id":"@deepseek-ai/dsh-client-ui-agent-preset","url":"/plugins/@deepseek-ai/dsh-client-ui-agent-preset/client.js?rev=9faa800cc93b","rev":"9faa800cc93b","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-api-remotes"]},{"id":"@deepseek-ai/dsh-client-ui-user-questions","url":"/plugins/@deepseek-ai/dsh-client-ui-user-questions/client.js?rev=6f7b72fc148a","rev":"6f7b72fc148a","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"]},{"id":"@deepseek-ai/dsh-client-ui-trajectory","url":"/plugins/@deepseek-ai/dsh-client-ui-trajectory/client.js?rev=0d3d606d8ed2","rev":"0d3d606d8ed2","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation"]},{"id":"dsh-edge-client-ui","url":"/plugins/dsh-edge-client-ui/client.js?rev=216eed0edd13","rev":"216eed0edd13","inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale"]}]}</script>
|
|
22
22
|
<meta charset="utf-8" />
|
|
23
23
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
24
24
|
<link rel="manifest" href="/manifest.webmanifest" />
|
|
@@ -875,8 +875,8 @@ window.__ModuleLoader__.load({
|
|
|
875
875
|
/** English dictionary, checked complete against the zh key set. */
|
|
876
876
|
const en = { "language.title": "Language" };
|
|
877
877
|
//#endregion
|
|
878
|
-
//#region \0dsh-css
|
|
879
|
-
const css = ".
|
|
878
|
+
//#region \0dsh-css:D:\a\dsh-edge\dsh-edge\packages\client\locale\src\client\LanguageRow.module.css.mjs
|
|
879
|
+
const css = ".D6Kc3G_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.D6Kc3G_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.D6Kc3G_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.D6Kc3G_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.D6Kc3G_selector:hover{background:var(--dsw-alias-interactive-bg-hover)}.D6Kc3G_chevron{flex:none}";
|
|
880
880
|
const tagId = "@deepseek-ai/dsh-client-locale/LanguageRow.module.css";
|
|
881
881
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
882
882
|
const tag = document.createElement("style");
|
|
@@ -886,11 +886,11 @@ window.__ModuleLoader__.load({
|
|
|
886
886
|
document.head.appendChild(tag);
|
|
887
887
|
}
|
|
888
888
|
var LanguageRow_module_css_default = {
|
|
889
|
-
"chevron": "
|
|
890
|
-
"
|
|
891
|
-
"row": "
|
|
892
|
-
"
|
|
893
|
-
"
|
|
889
|
+
"chevron": "D6Kc3G_chevron",
|
|
890
|
+
"title": "D6Kc3G_title",
|
|
891
|
+
"row": "D6Kc3G_row",
|
|
892
|
+
"selector": "D6Kc3G_selector",
|
|
893
|
+
"rowText": "D6Kc3G_rowText"
|
|
894
894
|
};
|
|
895
895
|
//#endregion
|
|
896
896
|
//#region lib/types/client/LanguageRow.js
|
|
@@ -158,8 +158,8 @@ window.__ModuleLoader__.load({
|
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
160
|
//#endregion
|
|
161
|
-
//#region \0dsh-css
|
|
162
|
-
const css$3 = ".
|
|
161
|
+
//#region \0dsh-css:D:\a\dsh-edge\dsh-edge\packages\client\ui-agent-preset\src\client\AgentPresetLabel.module.css.mjs
|
|
162
|
+
const css$3 = ".m-LsSW_label{background:var(--dsw-alias-fill-tsp-secondary);max-width:180px;height:22px;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;gap:4px;padding:0 2px 0 0;font-size:12px;line-height:22px;display:inline-flex;overflow:hidden}.m-LsSW_icon{opacity:.7;flex:none}";
|
|
163
163
|
const tagId$3 = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetLabel.module.css";
|
|
164
164
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
|
|
165
165
|
const tag = document.createElement("style");
|
|
@@ -169,8 +169,8 @@ window.__ModuleLoader__.load({
|
|
|
169
169
|
document.head.appendChild(tag);
|
|
170
170
|
}
|
|
171
171
|
var AgentPresetLabel_module_css_default = {
|
|
172
|
-
"label": "
|
|
173
|
-
"icon": "
|
|
172
|
+
"label": "m-LsSW_label",
|
|
173
|
+
"icon": "m-LsSW_icon"
|
|
174
174
|
};
|
|
175
175
|
//#endregion
|
|
176
176
|
//#region lib/types/client/AgentPresetLabel.js
|
|
@@ -257,8 +257,8 @@ window.__ModuleLoader__.load({
|
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
//#endregion
|
|
260
|
-
//#region \0dsh-css
|
|
261
|
-
const css$2 = ".
|
|
260
|
+
//#region \0dsh-css:D:\a\dsh-edge\dsh-edge\packages\client\ui-agent-preset\src\client\AgentPresetRow.module.css.mjs
|
|
261
|
+
const css$2 = ".mh38Ja_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.mh38Ja_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.mh38Ja_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.mh38Ja_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.mh38Ja_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.mh38Ja_selector:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.mh38Ja_selector:disabled{cursor:default}.mh38Ja_chevron{flex:none}";
|
|
262
262
|
const tagId$2 = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetRow.module.css";
|
|
263
263
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
|
|
264
264
|
const tag = document.createElement("style");
|
|
@@ -268,12 +268,12 @@ window.__ModuleLoader__.load({
|
|
|
268
268
|
document.head.appendChild(tag);
|
|
269
269
|
}
|
|
270
270
|
var AgentPresetRow_module_css_default = {
|
|
271
|
-
"
|
|
272
|
-
"
|
|
273
|
-
"
|
|
274
|
-
"
|
|
275
|
-
"
|
|
276
|
-
"
|
|
271
|
+
"title": "mh38Ja_title",
|
|
272
|
+
"desc": "mh38Ja_desc",
|
|
273
|
+
"row": "mh38Ja_row",
|
|
274
|
+
"selector": "mh38Ja_selector",
|
|
275
|
+
"chevron": "mh38Ja_chevron",
|
|
276
|
+
"rowText": "mh38Ja_rowText"
|
|
277
277
|
};
|
|
278
278
|
//#endregion
|
|
279
279
|
//#region lib/types/client/AgentPresetRow.js
|
|
@@ -332,8 +332,8 @@ window.__ModuleLoader__.load({
|
|
|
332
332
|
});
|
|
333
333
|
}
|
|
334
334
|
//#endregion
|
|
335
|
-
//#region \0dsh-css
|
|
336
|
-
const css$1 = ".
|
|
335
|
+
//#region \0dsh-css:D:\a\dsh-edge\dsh-edge\packages\client\ui-agent-preset\src\client\AgentPresetSeat.module.css.mjs
|
|
336
|
+
const css$1 = "._1bLKuG_seat{max-width:min(100%,240px);min-height:28px;color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex;overflow:hidden}._1bLKuG_seat:not(:disabled):hover,._1bLKuG_seat[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}._1bLKuG_seat:disabled{cursor:default;color:var(--dsw-alias-label-quaternary)}._1bLKuG_seatIcon{color:var(--dsw-alias-label-primary);flex:none}._1bLKuG_introIcon{animation:.15s cubic-bezier(.16,1,.3,1) both _1bLKuG_seat-icon-in}@keyframes _1bLKuG_seat-icon-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}._1bLKuG_introText{white-space:pre;display:inline-block}._1bLKuG_introChar{white-space:pre;opacity:0;animation:.4s ease-out forwards _1bLKuG_seat-char-in;display:inline-block}@keyframes _1bLKuG_seat-char-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){._1bLKuG_introIcon,._1bLKuG_introChar{opacity:1;animation:none}}._1bLKuG_chevron{color:var(--dsw-alias-label-caption);flex:none}._1bLKuG_item{flex-direction:column;gap:2px;max-width:280px;display:flex}._1bLKuG_itemName{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}._1bLKuG_itemDesc{color:var(--dsw-alias-label-caption);white-space:normal;font-size:12px;line-height:16px}";
|
|
337
337
|
const tagId$1 = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetSeat.module.css";
|
|
338
338
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
339
339
|
const tag = document.createElement("style");
|
|
@@ -343,17 +343,17 @@ window.__ModuleLoader__.load({
|
|
|
343
343
|
document.head.appendChild(tag);
|
|
344
344
|
}
|
|
345
345
|
var AgentPresetSeat_module_css_default = {
|
|
346
|
-
"
|
|
347
|
-
"
|
|
348
|
-
"seat-icon-in": "
|
|
349
|
-
"
|
|
350
|
-
"
|
|
351
|
-
"
|
|
352
|
-
"
|
|
353
|
-
"
|
|
354
|
-
"
|
|
355
|
-
"
|
|
356
|
-
"
|
|
346
|
+
"seat": "_1bLKuG_seat",
|
|
347
|
+
"seat-char-in": "_1bLKuG_seat-char-in",
|
|
348
|
+
"seat-icon-in": "_1bLKuG_seat-icon-in",
|
|
349
|
+
"itemName": "_1bLKuG_itemName",
|
|
350
|
+
"introChar": "_1bLKuG_introChar",
|
|
351
|
+
"itemDesc": "_1bLKuG_itemDesc",
|
|
352
|
+
"seatIcon": "_1bLKuG_seatIcon",
|
|
353
|
+
"introIcon": "_1bLKuG_introIcon",
|
|
354
|
+
"introText": "_1bLKuG_introText",
|
|
355
|
+
"chevron": "_1bLKuG_chevron",
|
|
356
|
+
"item": "_1bLKuG_item"
|
|
357
357
|
};
|
|
358
358
|
//#endregion
|
|
359
359
|
//#region lib/types/client/AgentPresetSeat.js
|
|
@@ -973,8 +973,8 @@ window.__ModuleLoader__.load({
|
|
|
973
973
|
}
|
|
974
974
|
};
|
|
975
975
|
//#endregion
|
|
976
|
-
//#region \0dsh-css
|
|
977
|
-
const css = ".
|
|
976
|
+
//#region \0dsh-css:D:\a\dsh-edge\dsh-edge\packages\client\ui-agent-preset\src\client\AgentPresetSection.module.css.mjs
|
|
977
|
+
const css = ".TA3O3q_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.TA3O3q_title{margin:0;font-size:18px;font-weight:600}.TA3O3q_intro{color:var(--dsw-alias-label-tertiary);margin:0;font-size:13px}.TA3O3q_group{flex-direction:column;gap:10px;display:flex}.TA3O3q_group+.TA3O3q_group{margin-top:20px}.TA3O3q_groupHead{letter-spacing:.06em;text-transform:uppercase;color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:600}.TA3O3q_cards{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));grid-auto-rows:1fr;gap:12px;margin:0;padding:0;list-style:none;display:grid}.TA3O3q_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex-direction:column;transition:border-color .16s,background .16s;display:flex}.TA3O3q_card:hover:not(.TA3O3q_cardActive){border-color:var(--dsw-alias-label-dimmed)}.TA3O3q_cardActive{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-label-primary)}.TA3O3q_cardBroken,.TA3O3q_cardBroken:hover{border-color:var(--dsw-alias-state-error-primary)}.TA3O3q_brokenBadge{white-space:nowrap;background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-bg-layer-3);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.TA3O3q_cardBrokenReason{color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;font-size:12px;line-height:1.5}.TA3O3q_cardMain{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px 12px 0 0;flex-direction:column;flex:1;gap:8px;padding:14px 16px 12px;display:flex}.TA3O3q_cardMain:disabled{cursor:default}.TA3O3q_cardMain:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.TA3O3q_cardHead{align-items:center;gap:8px;display:flex}.TA3O3q_cardName{font-size:15px;font-weight:600;line-height:1.4}.TA3O3q_badge,.TA3O3q_inUse{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.TA3O3q_badge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary)}.TA3O3q_inUse{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);margin-left:auto}.TA3O3q_cardDesc{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:4;overflow-wrap:anywhere;-webkit-box-orient:vertical;min-height:42px;font-size:13px;line-height:1.55;display:-webkit-box;overflow:hidden}.TA3O3q_cardId{font-family:var(--dsw-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--dsw-alias-label-dimmed);margin-top:auto;font-size:11px}.TA3O3q_cardFoot{border-top:1px solid var(--dsw-alias-border-l2);justify-content:flex-end;gap:2px;padding:6px 10px;display:flex}.TA3O3q_iconButton{appearance:none;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;padding:6px;display:inline-flex;position:relative}.TA3O3q_iconButton:disabled{opacity:.4;cursor:default}.TA3O3q_iconButton:hover:not(:disabled){background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.TA3O3q_iconButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-1px}.TA3O3q_iconButton:after{content:attr(data-tip);background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:3px 8px;font-size:11px;line-height:17px;transition:opacity .12s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.TA3O3q_iconButton:hover:after,.TA3O3q_iconButton:focus-visible:after{opacity:1}.TA3O3q_iconDanger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.TA3O3q_revealedPath{color:var(--dsw-alias-label-tertiary);align-items:baseline;gap:6px;margin:0;padding:6px 16px 10px;font-size:11px;display:flex}.TA3O3q_revealedPath code{font-family:var(--dsw-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--dsw-alias-label-secondary);user-select:all;overflow-wrap:anywhere}.TA3O3q_revealedPathLabel{white-space:nowrap}.TA3O3q_secondaryButton{color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:5px 8px;font-size:12.5px}.TA3O3q_secondaryButton:hover:not(:disabled){background:var(--dsw-alias-bg-layer-1)}.TA3O3q_secondaryButton:disabled{opacity:.5;cursor:default}.TA3O3q_field{flex-direction:column;gap:6px;display:flex}.TA3O3q_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500}.TA3O3q_input{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);font:inherit;background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);border-radius:10px;padding:9px 12px;font-size:13px}.TA3O3q_input:focus{border-color:var(--dsw-alias-brand-primary);outline:none}.TA3O3q_input::placeholder{color:var(--dsw-alias-label-dimmed)}.TA3O3q_dialog{width:min(560px,100%)}.TA3O3q_dialogFields{flex-direction:column;gap:12px;display:flex}.TA3O3q_viewerCode{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-height:min(52vh,480px);color:var(--dsw-alias-label-secondary);font-family:var(--dsw-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);white-space:pre;tab-size:2;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:10px;margin:0;padding:12px;font-size:12.5px;line-height:1.5;overflow:auto}.TA3O3q_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}.TA3O3q_deleteDialog{width:min(480px,100%)}.TA3O3q_deleteConfirm:not(:disabled){border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.TA3O3q_deleteConfirm:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}.TA3O3q_creatorButton{box-sizing:border-box;border:1px dashed var(--dsw-alias-border-l3);height:44px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-self:stretch;align-items:center;gap:6px;font-size:14px;line-height:22px;display:flex}.TA3O3q_creatorButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.TA3O3q_creatorButton:disabled{opacity:.4;cursor:default}";
|
|
978
978
|
const tagId = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetSection.module.css";
|
|
979
979
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
980
980
|
const tag = document.createElement("style");
|
|
@@ -984,40 +984,40 @@ window.__ModuleLoader__.load({
|
|
|
984
984
|
document.head.appendChild(tag);
|
|
985
985
|
}
|
|
986
986
|
var AgentPresetSection_module_css_default = {
|
|
987
|
-
"
|
|
988
|
-
"
|
|
989
|
-
"
|
|
990
|
-
"intro": "
|
|
991
|
-
"
|
|
992
|
-
"
|
|
993
|
-
"
|
|
994
|
-
"
|
|
995
|
-
"
|
|
996
|
-
"
|
|
997
|
-
"
|
|
998
|
-
"
|
|
999
|
-
"
|
|
1000
|
-
"
|
|
1001
|
-
"
|
|
1002
|
-
"
|
|
1003
|
-
"
|
|
1004
|
-
"
|
|
1005
|
-
"
|
|
1006
|
-
"
|
|
1007
|
-
"
|
|
1008
|
-
"
|
|
1009
|
-
"
|
|
1010
|
-
"
|
|
1011
|
-
"
|
|
1012
|
-
"
|
|
1013
|
-
"
|
|
1014
|
-
"
|
|
1015
|
-
"
|
|
1016
|
-
"
|
|
1017
|
-
"
|
|
1018
|
-
"
|
|
1019
|
-
"
|
|
1020
|
-
"
|
|
987
|
+
"cardActive": "TA3O3q_cardActive",
|
|
988
|
+
"creatorButton": "TA3O3q_creatorButton",
|
|
989
|
+
"revealedPathLabel": "TA3O3q_revealedPathLabel",
|
|
990
|
+
"intro": "TA3O3q_intro",
|
|
991
|
+
"groupHead": "TA3O3q_groupHead",
|
|
992
|
+
"cardBrokenReason": "TA3O3q_cardBrokenReason",
|
|
993
|
+
"section": "TA3O3q_section",
|
|
994
|
+
"cardName": "TA3O3q_cardName",
|
|
995
|
+
"input": "TA3O3q_input",
|
|
996
|
+
"cardId": "TA3O3q_cardId",
|
|
997
|
+
"revealedPath": "TA3O3q_revealedPath",
|
|
998
|
+
"iconDanger": "TA3O3q_iconDanger",
|
|
999
|
+
"title": "TA3O3q_title",
|
|
1000
|
+
"cardMain": "TA3O3q_cardMain",
|
|
1001
|
+
"iconButton": "TA3O3q_iconButton",
|
|
1002
|
+
"cardDesc": "TA3O3q_cardDesc",
|
|
1003
|
+
"viewerCode": "TA3O3q_viewerCode",
|
|
1004
|
+
"card": "TA3O3q_card",
|
|
1005
|
+
"secondaryButton": "TA3O3q_secondaryButton",
|
|
1006
|
+
"fieldLabel": "TA3O3q_fieldLabel",
|
|
1007
|
+
"error": "TA3O3q_error",
|
|
1008
|
+
"field": "TA3O3q_field",
|
|
1009
|
+
"cardBroken": "TA3O3q_cardBroken",
|
|
1010
|
+
"brokenBadge": "TA3O3q_brokenBadge",
|
|
1011
|
+
"badge": "TA3O3q_badge",
|
|
1012
|
+
"inUse": "TA3O3q_inUse",
|
|
1013
|
+
"dialog": "TA3O3q_dialog",
|
|
1014
|
+
"dialogFields": "TA3O3q_dialogFields",
|
|
1015
|
+
"cards": "TA3O3q_cards",
|
|
1016
|
+
"deleteConfirm": "TA3O3q_deleteConfirm",
|
|
1017
|
+
"group": "TA3O3q_group",
|
|
1018
|
+
"cardFoot": "TA3O3q_cardFoot",
|
|
1019
|
+
"deleteDialog": "TA3O3q_deleteDialog",
|
|
1020
|
+
"cardHead": "TA3O3q_cardHead"
|
|
1021
1021
|
};
|
|
1022
1022
|
//#endregion
|
|
1023
1023
|
//#region lib/types/client/AgentPresetSection.js
|