@yejiming/dsh-data-agent 0.0.5 → 0.0.9
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.en.md +127 -128
- package/README.md +123 -127
- package/lib/client.js +42071 -114
- package/lib/client.js.map +1 -1
- package/lib/command.js +875 -0
- package/lib/{defaults-Bac6QvNt.js → connections-DeauhaZi.js} +427 -19
- package/lib/defaults-DP4RyRh1.js +21 -0
- package/lib/index.js +185 -51
- package/lib/routes.js +94 -170
- package/lib/tool.js +751 -50
- package/lib/types/analysis.d.ts +1071 -0
- package/lib/types/client/AnalysisChart.d.ts +26 -0
- package/lib/types/client/AnalysisDashboard.d.ts +30 -0
- package/lib/types/client/analysis-charts.d.ts +40 -0
- package/lib/types/client/analysis-view-model.d.ts +44 -0
- package/lib/types/client/locales.d.ts +48 -0
- package/lib/types/client/persistence.d.ts +6 -1
- package/lib/types/clients.d.ts +10 -9
- package/lib/types/command.d.ts +41 -0
- package/lib/types/connections.d.ts +115 -40
- package/lib/types/index.d.ts +67 -47
- package/lib/types/routes.d.ts +25 -77
- package/lib/types/sql.d.ts +1 -1
- package/lib/types/storage.d.ts +70 -0
- package/lib/types/structured-read.d.ts +50 -0
- package/lib/types/tool.d.ts +25 -20
- package/lib/types/tui-connection-form.d.ts +98 -0
- package/package.json +61 -4
- package/preset/data-agent/agent.cordis.yml +34 -18
- package/preset/data-agent/preset.yml +2 -2
- package/lib/query-CmhTFklw.js +0 -86
package/README.md
CHANGED
|
@@ -1,191 +1,187 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DSH Data Agent · 用对话分析数据
|
|
2
2
|
|
|
3
|
-
[English](README.en.md)
|
|
3
|
+
**中文** | [English](README.en.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="assets/dsh-data-agent-banner.png" alt="dsh-data-agent HERO图" width="100%">
|
|
7
|
+
</p>
|
|
8
|
+
<p align="center">
|
|
9
|
+
<img src="https://img.shields.io/github/v/release/omdsh-dev/dsh-data-agent?style=flat-square" alt="Version">
|
|
10
|
+
|
|
11
|
+
<img src="https://img.shields.io/github/stars/omdsh-dev/dsh-data-agent?style=flat-square" alt="Stars">
|
|
12
|
+
|
|
13
|
+
<img src="https://img.shields.io/npm/v/@yejiming%2Fdsh-data-agent?style=flat-square&label=npm" alt="npm">
|
|
14
|
+
|
|
15
|
+
<img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License">
|
|
16
|
+
</p>
|
|
17
|
+
<p align="center">
|
|
18
|
+
<strong>让DeepSeek Harness连接数据库,用对话完成数据分析与商业洞察</strong><br>
|
|
19
|
+
<em>自然语言查询 · 自动执行SQL · 连续分析 · Web UI · dsh-tui · 只读保护</em>
|
|
20
|
+
</p>
|
|
6
21
|
|
|
7
|
-
|
|
22
|
+
<p align="center">
|
|
8
23
|
|
|
9
|
-
|
|
24
|
+
[项目简介](#项目简介) · [主要功能](#主要功能) · [快速安装](#快速安装) · [Web UI](#在web-ui中使用) · [dsh-tui](#在dsh-tui中使用) · [安全说明](#安全说明)
|
|
10
25
|
|
|
11
|
-
|
|
26
|
+
</p>
|
|
12
27
|
|
|
13
|
-
|
|
28
|
+
## 项目简介
|
|
14
29
|
|
|
15
|
-
|
|
30
|
+
dsh-data-agent是DeepSeek Harness(DSH)的数据分析插件。连接数据库后,直接提出业务问题,DSH会自动查看库表、编写并执行SQL、根据真实结果继续分析,最终给出清晰的数据结论和商业洞察。插件同时支持Web UI与dsh-tui,无需修改DSH源码。
|
|
16
31
|
|
|
17
32
|
## 主要功能
|
|
18
33
|
|
|
19
|
-
-
|
|
34
|
+
- **通过对话完成数据分析**:直接用自然语言描述目标,DSH会理解问题、拆解分析步骤、查询真实数据并整理结论。你可以继续追问,分析会沿着当前上下文逐步深入。
|
|
35
|
+
- **自动寻找商业洞察**:不仅返回查询结果,还能帮助比较趋势、定位异常、识别高价值客户或商品,并把数据转化为便于业务决策的说明。
|
|
36
|
+
- **Web 分析报告(render-analysis)**:Web 界面中 Agent 可在普通工具调用里自主生成单图或 Dashboard 式综合分析报告(metric/line/bar/pie/scatter/table 视图),结果行提供内联预览与「查看分析」Modal;是否画图由 Agent 按问题判断,schema 探查、单标量等查询不会被强制生成图表。
|
|
37
|
+
- **完整兼容Web UI与dsh-tui**:喜欢可视化操作时,可以在Web界面连接数据库、浏览库表和查看结果,推荐使用[zhu1090093659/dsh-web-ui](https://github.com/zhu1090093659/dsh-web-ui);习惯键盘工作流时,可以在终端中使用同一“数据模式”,通过`/database`完成连接,然后直接开始对话分析,推荐使用[ccch1mneyyy/dsh-TUI](https://github.com/ccch1mneyyy/dsh-TUI)。两种界面都能使用数据Agent的核心能力。
|
|
38
|
+
- **连接常见业务数据库**:支持MySQL、PostgreSQL、SQLite、Oracle、Hive和Impala,可用于业务系统、分析库、本地数据文件及数仓场景。
|
|
39
|
+
- **DSH自动完成分析闭环**:DSH会根据当前问题查看表结构、编写SQL、执行查询,并结合报错或返回结果继续调整,而不是只生成一段未经验证的SQL。
|
|
40
|
+
- **专注数据任务的数据模式**:会话使用DSH原生`str_replace_editor`处理文件,并保留`sql-query`、`sql-write`、`sql-cmd`;Web额外提供`render-analysis`。`describe_image`、`ssh_*`等宿主或社区插件工具不会进入数据模式。
|
|
41
|
+
- **安全地使用真实数据**:支持只读模式和数据库只读账号;TUI密码会被隐藏,且不会作为表单草稿恢复。是否允许修改数据由你决定。
|
|
20
42
|
|
|
21
|
-
|
|
22
|
-
- **数据库工作台**(内嵌于会话输入框上方):连接配置卡(连接成功后折叠为摘要行,可展开查看);库表浏览(点击「库表」按钮弹出 Modal:单击库展开表列表(可滚动),点击表查看结构);SQL 命令框(编辑并运行 SQL,非 agent 通道,结果等宽展示)。连接配置持久化到浏览器 localStorage,切换页面/重启自动回填并重连。开始对话后工作台自动变为左侧栏,对话记录与输入框在右侧。
|
|
43
|
+

|
|
23
44
|
|
|
24
|
-
|
|
25
|
-
- **数据库 tools**:`sql-query` 执行只读 SQL 并返回结构化 `{ columns, rows, affectedRows, elapsedMs }`;`sql-write` 执行写/管理 SQL(单条自动提交,写语义明确);`sqlcmd` 保留原始终端输出。三者均在数据库客户端(mysql / psql / sqlite3 / sqlplus / beeline / impala-shell)执行;无 shell 层(argv 数组化 + SQL 走 stdin),超时自动终止进程树,输出有界截断,单次调用只允许一条 SQL。
|
|
26
|
-
- **数据Agent 预设**:新建会话可选「数据Agent」——工具面为 `sql-query`/`sql-write`/`sqlcmd`/`read`/`write`/`edit`,项目其他工具(bash、grep、skill、todo、goal、web、subagent 等)全部缺席即禁用;非数据Agent 会话不渲染工作台,零影响。
|
|
45
|
+
Web UI还提供内嵌数据库工作台,可以浏览库表、查看字段结构,或临时运行SQL。开始对话后,工作台会自动移到侧栏,不打断分析过程。
|
|
27
46
|
|
|
28
|
-
|
|
29
|
-
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
创建会话时选择“数据模式”,DSH就会以数据分析工作流处理后续问题。
|
|
50
|
+
|
|
51
|
+

|
|
30
52
|
|
|
31
53
|
## 快速安装
|
|
32
54
|
|
|
33
|
-
|
|
34
|
-
`prepare`/`prepack` 脚本)。
|
|
55
|
+
Web UI和dsh-tui使用独立的DSH profile。只使用其中一种界面时,安装对应的一项;两个界面都使用时,请执行两条命令。
|
|
35
56
|
|
|
36
|
-
### 方式一:npm
|
|
57
|
+
### 方式一:npm安装(推荐)
|
|
37
58
|
|
|
38
59
|
```sh
|
|
39
|
-
# 从 npm 安装(首次使用会初始化该 profile)
|
|
40
60
|
dsh plugin --profile web add @yejiming/dsh-data-agent
|
|
61
|
+
dsh plugin --profile dsh-tui add @yejiming/dsh-data-agent
|
|
41
62
|
```
|
|
42
63
|
|
|
43
|
-
###
|
|
64
|
+
### 方式二:从GitHub安装
|
|
44
65
|
|
|
45
66
|
```sh
|
|
46
|
-
# 从 GitHub 源码安装(仓库已提交构建产物 lib/,安装时无需构建)
|
|
47
67
|
dsh plugin --profile web add github:omdsh-dev/dsh-data-agent
|
|
68
|
+
dsh plugin --profile dsh-tui add github:omdsh-dev/dsh-data-agent
|
|
48
69
|
```
|
|
49
70
|
|
|
50
|
-
|
|
71
|
+
插件会自动安装“数据模式”预设,无需本地构建。
|
|
51
72
|
|
|
52
|
-
|
|
53
|
-
dsh --profile web --dump-config # 输出中应出现 data-agent 层
|
|
54
|
-
ls $DSH_HOME/.agent-presets/data-agent/ # 应有 agent.cordis.yml + preset.yml(由插件自动安装)
|
|
55
|
-
```
|
|
73
|
+
## 在Web UI中使用
|
|
56
74
|
|
|
57
|
-
启动
|
|
75
|
+
启动Web UI:
|
|
58
76
|
|
|
59
77
|
```sh
|
|
60
78
|
dsh --profile web
|
|
61
79
|
```
|
|
62
80
|
|
|
63
|
-
|
|
81
|
+
然后按下面的步骤操作:
|
|
82
|
+
|
|
83
|
+
1. 新建会话并选择“数据模式”。
|
|
84
|
+
2. 在数据库工作台填写连接信息。
|
|
85
|
+
3. 连接成功后,直接在对话框中提出分析问题。
|
|
86
|
+
4. 根据第一轮结果继续追问,让DSH缩小范围、比较维度或总结结论。
|
|
87
|
+
|
|
88
|
+
例如,输入“分析最近30天订单变化,找出销售额下降最明显的地区和商品,并解释主要原因”,DSH会自行查看相关表、生成并执行查询,再根据真实结果完成分析。
|
|
89
|
+
|
|
90
|
+
### Web 分析报告
|
|
64
91
|
|
|
65
|
-
|
|
92
|
+
在 Web UI 中,数据模式还提供 render-analysis 工具:Agent 会先用 sql-query 探查并核对事实,再自行判断可视化是否有帮助。判断需要画图时,一次工具调用会生成一份版本化分析报告:
|
|
93
|
+
|
|
94
|
+
- 报告包含 1-6 个只读数据集与 1-8 个视图(metric、line、bar、pie、scatter、table),同一数据集可被多个视图复用,聚合与 Top N 都写在 SQL 中;
|
|
95
|
+
- 简单问题生成单个主图(结果行内联预览),复杂问题生成紧凑摘要 + 「查看分析」按钮;
|
|
96
|
+
- 「查看分析」在大型 Modal 中展示本次报告的全部视图:紧凑指标带、全宽主图、双列辅助图与明细表,浅色/深色主题与窄屏单列自适应;
|
|
97
|
+
- 完整报告快照随会话日志持久化:刷新或历史回放不重新查询数据库,也不产生新的浏览器存储;
|
|
98
|
+
- 仅 Web 提供该工具;dsh-tui 的工具面保持不变,也不会加载图表或浏览器依赖。
|
|
99
|
+
|
|
100
|
+
## 在dsh-tui中使用
|
|
101
|
+
|
|
102
|
+
启动终端界面:
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
dsh --profile dsh-tui
|
|
106
|
+
```
|
|
66
107
|
|
|
67
|
-
|
|
108
|
+
在空白会话中切换到数据模式,然后连接数据库:
|
|
68
109
|
|
|
69
110
|
```text
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
│ 数据库工作台 (input.dock) │ fetch │ @yejiming/dsh-data-agent (宿主行) │
|
|
73
|
-
│ · 连接配置 (6 类型) │ ───────▶ │ · /plugins/data-agent/* 路由 │
|
|
74
|
-
│ · 库表浏览 + SQL 命令框 │ │ · 连接存储服务 dataAgentConnections │
|
|
75
|
-
│ · hero 堆叠 / active 左栏 │ │ · 预设自安装 → $DSH_HOME/.agent-presets│
|
|
76
|
-
└─────────────────────────────┘ └──────────────┬───────────────────────┘
|
|
77
|
-
│ 同一进程
|
|
78
|
-
data-agent 会话 (agent loop 全复用) ▼
|
|
79
|
-
┌──────────────────────────────────────────────────────────────────────────┐
|
|
80
|
-
│ agent.cordis.yml (预设层,仅 3 行) │
|
|
81
|
-
│ · persona → 数据工程师系统提示词 │
|
|
82
|
-
│ · dsh-tool-fs → read / write / edit(项目自带) │
|
|
83
|
-
│ · dsh-data-agent/tool → sql-query / sql-write / sqlcmd(本包工具半体) │
|
|
84
|
-
└──────────────────────────────────────────────────────────────────────────┘
|
|
111
|
+
/preset data-agent
|
|
112
|
+
/database connect
|
|
85
113
|
```
|
|
86
114
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
工具半体只消费宿主服务(`tools`、`subprocess`、`dataAgentConnections`),不提供服务,因此预设守卫无需 `isolate` realm。
|
|
97
|
-
|
|
98
|
-
## 配置
|
|
99
|
-
|
|
100
|
-
所有字段都有 loader 默认值;无库级默认值。宿主行 `data-agent`:
|
|
101
|
-
|
|
102
|
-
| 键 | 说明 |
|
|
103
|
-
|---|---|
|
|
104
|
-
| `presetId` | 自安装的预设目录名(默认 `data-agent`) |
|
|
105
|
-
| `installPreset` | 是否在启动时自安装预设(默认 true;已存在则跳过,保留用户编辑) |
|
|
106
|
-
| `connectTimeoutMs` | /connect 连通性检查的端到端超时(默认 10000 毫秒) |
|
|
107
|
-
| `introspectMaxTables` | 表清单上限(默认 500) |
|
|
108
|
-
| `queryTimeoutMs` | 数据库 tools 单次查询超时(默认 30000 毫秒) |
|
|
109
|
-
| `maxResultChars` | 数据库 tools 捕获输出上限(stdout/stderr 各自,默认 20000 字符) |
|
|
110
|
-
| `readonly` | 只读护栏(默认 false):true 时数据库 tools 与 `/query` 仅放行读语句(SELECT/SHOW/DESCRIBE/EXPLAIN/PRAGMA 等),写语句直接拒绝 |
|
|
111
|
-
| `clients` | 各数据库类型 CLI 客户端覆盖:`{ command?, args? }`,键为 `mysql` / `postgres` / `sqlite` / `oracle` / `hive` / `impala`(内置默认 mysql/psql/sqlite3/sqlplus/beeline/impala-shell) |
|
|
112
|
-
| `connections` | 配置预置连接,键为 sessionId(`'*'` = 通配符默认,任何无自有连接的会话回落它;headless/keyless 运行与部署固定默认库场景)。**不含 password 字段**——密码只允许经 /connect 路由进入内存;可选 `readonly` 字段按连接锁定只读 |
|
|
113
|
-
|
|
114
|
-
工具行 `tool-sqlcmd`(data-agent 预设内)另有 `maxRows`(默认 100,强制生效:SELECT 未写 LIMIT 时自动追加,结构化结果解析时二次截断)与 `readonly`,`queryTimeoutMs` / `maxResultChars` / `clients` 与宿主行同名可配。
|
|
115
|
-
|
|
116
|
-
路由行 `data-agent-routes` 独立配置:`connectTimeoutMs` / `introspectMaxTables` / `maxResultChars` / `readonly` 与主行同名同默认;另有 `queryTimeoutMs`(/query 与元数据查询超时,默认 30000)与 `maxQueryChars`(/query 单条 SQL 长度上限,默认 65536)。
|
|
117
|
-
|
|
118
|
-
```yaml
|
|
119
|
-
# cordis.patch.yml 或 profile 层覆盖示例
|
|
120
|
-
- id: data-agent
|
|
121
|
-
name: '@yejiming/dsh-data-agent'
|
|
122
|
-
config:
|
|
123
|
-
clients:
|
|
124
|
-
mysql:
|
|
125
|
-
command: /usr/local/bin/mysql-client
|
|
126
|
-
# 通配符默认连接:任何未显式 /connect 的会话回落到该库(仅限无密码场景)
|
|
127
|
-
connections:
|
|
128
|
-
'*':
|
|
129
|
-
type: sqlite
|
|
130
|
-
database: /tmp/analytics.db
|
|
115
|
+
连接表单会一次展示所有相关字段。使用Tab或Shift+Tab切换输入项;数据库类型和只读模式按Enter展开选项,使用方向键选择并再次按Enter确认。
|
|
116
|
+
|
|
117
|
+
连接成功后,回到聊天输入框直接提出业务问题即可。常用的数据库命令还有:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
/database status 查看当前连接
|
|
121
|
+
/database test 测试当前连接
|
|
122
|
+
/database disconnect 断开当前连接
|
|
131
123
|
```
|
|
132
124
|
|
|
133
|
-
|
|
125
|
+
同一会话再次打开连接表单时,会恢复最近填写的数据库类型、地址、端口、用户、数据库和只读模式。密码始终隐藏且不会恢复。
|
|
126
|
+
|
|
127
|
+

|
|
128
|
+
|
|
129
|
+
## 推荐的提问方式
|
|
130
|
+
|
|
131
|
+
为了获得更有价值的分析,可以在问题中补充业务目标、时间范围和关注维度。例如:
|
|
134
132
|
|
|
135
|
-
|
|
133
|
+
```text
|
|
134
|
+
分析2026年第二季度各地区的销售额和毛利率变化,找出表现异常的地区,
|
|
135
|
+
继续拆解到品类和核心客户,并给出三条可执行的业务建议。
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
你也可以让DSH保存分析过程或SQL,方便复查和复用:
|
|
136
139
|
|
|
137
|
-
|
|
140
|
+
```text
|
|
141
|
+
完成会员复购分析,把最终SQL保存到analysis/repurchase.sql,
|
|
142
|
+
并用一段适合周报的文字总结主要发现。
|
|
143
|
+
```
|
|
138
144
|
|
|
139
|
-
|
|
145
|
+
## 使用前准备
|
|
140
146
|
|
|
141
|
-
|
|
147
|
+
DSH运行查询时需要本机能够访问目标数据库,并安装相应的数据库客户端:
|
|
142
148
|
|
|
143
|
-
|
|
149
|
+
- SQLite通常已随macOS或Linux提供。
|
|
150
|
+
- MySQL需要`mysql`客户端。
|
|
151
|
+
- PostgreSQL需要`psql`客户端。
|
|
152
|
+
- Oracle、Hive和Impala需要各自的命令行客户端。
|
|
144
153
|
|
|
145
|
-
|
|
146
|
-
|---|---|
|
|
147
|
-
| `POST /connect` | body `{ sessionId, type, host?, port?, user?, database, password?, readonly? }`;校验 → 连通性验证(列出所有表)→ 成功才保存连接,返回 `{ ok, tables }`,失败返回 `{ ok: false, error }` 且不保存 |
|
|
148
|
-
| `POST /disconnect` | body `{ sessionId }`;清除该会话连接 |
|
|
149
|
-
| `GET /status?sessionId=` | `{ connected, summary? }`;summary 为脱敏连接概要(无密码,含 `readonly` 当连接显式设定时)+ 表清单 |
|
|
150
|
-
| `GET /schemas?sessionId=` | `{ ok, schemas: string[] }`;库/数据库列表(sqlite 为 `['main']`) |
|
|
151
|
-
| `GET /tables?sessionId=&schema=` | `{ ok, tables: string[] }`;某库的表列表(sqlite 忽略 schema 参数) |
|
|
152
|
-
| `GET /describe?sessionId=&schema=&table=` | `{ ok, columns: [{ name, type, nullable? }] }`;表结构(sqlite 忽略 schema) |
|
|
153
|
-
| `POST /query` | body `{ sessionId, sql }`;运行一条 SQL(工作台命令框,非 agent 通道),返回 `{ ok, result: { exitCode, stdout, stderr, truncated } }`;`sql` 长度上限 `maxQueryChars`;单次只允许一条语句;readonly 开启时拒绝写语句 |
|
|
154
|
+
建议先准备一个只读数据库账号,让数据Agent在不修改业务数据的前提下完成探索和分析。
|
|
154
155
|
|
|
155
|
-
|
|
156
|
+
如果出现`failed to mount`或提示找不到`@yejiming/dsh-data-agent`,通常是当前profile还没有安装插件。请确认Web UI和dsh-tui分别执行了对应的安装命令,然后重新启动DSH。
|
|
156
157
|
|
|
157
158
|
## 安全说明
|
|
158
159
|
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
160
|
+
- 推荐使用数据库只读账号,并在连接表单中开启只读模式。
|
|
161
|
+
- Web UI和dsh-tui中的临时密码只用于当前连接;TUI只显示`*`,重新打开表单时不会恢复密码。
|
|
162
|
+
- 需要跨进程恢复认证时,可以使用DSH credential reference,避免在命令参数中输入明文密码。
|
|
163
|
+
- 未开启只读模式时,数据Agent可以按你的要求执行更新或管理语句。连接生产数据库前,请先确认账号权限和数据备份策略。
|
|
164
|
+
- 不同会话的数据库连接相互隔离,便于分别处理不同项目、客户或分析环境。
|
|
164
165
|
|
|
165
166
|
## 卸载与回滚
|
|
166
167
|
|
|
167
168
|
```sh
|
|
168
|
-
dsh plugin --profile web remove @yejiming/dsh-data-agent
|
|
169
|
-
|
|
169
|
+
dsh plugin --profile web remove @yejiming/dsh-data-agent
|
|
170
|
+
dsh plugin --profile dsh-tui remove @yejiming/dsh-data-agent
|
|
171
|
+
rm -rf $DSH_HOME/.agent-presets/data-agent
|
|
170
172
|
```
|
|
171
173
|
|
|
172
|
-
|
|
174
|
+
卸载插件不会主动删除已经保存的非敏感连接信息。若需要彻底清理,请先备份,再删除DSH中对应的数据Agent存储记录。
|
|
173
175
|
|
|
174
176
|
## 本地开发
|
|
175
177
|
|
|
176
|
-
构建与测试:
|
|
177
|
-
|
|
178
178
|
```sh
|
|
179
|
-
pnpm
|
|
180
|
-
pnpm
|
|
179
|
+
pnpm install
|
|
180
|
+
pnpm build
|
|
181
|
+
pnpm test
|
|
181
182
|
```
|
|
182
183
|
|
|
183
|
-
`lib
|
|
184
|
-
构建产物时直接 `pnpm install` 即可:`@deepseek-ai/*` 等依赖均已发布到 npm,
|
|
185
|
-
无需再从本地 DSH checkout 复制/链接 node_modules。`pnpm-workspace.yaml` 采用
|
|
186
|
-
dsh 同款约定(`nodeLinker: hoisted`);pnpm 11 的供应链策略会拦截「发布不久」
|
|
187
|
-
的包与依赖构建脚本,仓库已预置 `minimumReleaseAgeExclude`(rc.6 全家桶)与
|
|
188
|
-
`allowBuilds: esbuild`。
|
|
184
|
+
`lib/`已提交到仓库,因此通过npm或GitHub安装时无需自行构建。
|
|
189
185
|
|
|
190
186
|
## 许可
|
|
191
187
|
|
|
@@ -193,6 +189,6 @@ MIT
|
|
|
193
189
|
|
|
194
190
|
## 友情链接
|
|
195
191
|
|
|
196
|
-
- [dshfind.com](https://dshfind.com):DeepSeek Harness
|
|
197
|
-
- [dsh-web-ui](https://github.com/dsh-external/dsh-web-ui):DeepSeek Harness
|
|
198
|
-
- [dsh-cc-tui](https://github.com/dsh-external/dsh-cc-tui):Claude Code
|
|
192
|
+
- [dshfind.com](https://dshfind.com):DeepSeek Harness中文学习与分享社区
|
|
193
|
+
- [dsh-web-ui](https://github.com/dsh-external/dsh-web-ui):DeepSeek Harness Web UI插件与皮肤集合
|
|
194
|
+
- [dsh-cc-tui](https://github.com/dsh-external/dsh-cc-tui):Claude Code风格的全屏终端界面
|