dsh-pre-duediligence 0.1.7 → 0.1.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/CHANGELOG.md +17 -0
- package/README.md +16 -12
- package/docs/COMPATIBILITY.md +56 -0
- package/docs/DSH-UX-001-ADOPTION.md +20 -9
- package/install.sh +40 -18
- package/lib/client.js +278 -185
- package/lib/index.js +261 -2
- package/lib/index.js.map +3 -3
- package/lib/types/index.d.ts +4 -2
- package/lib/types/left-sidebar.d.ts +1 -2
- package/lib/types/previsit-dock.d.ts +1 -2
- package/lib/types/previsit-store.d.ts +1 -0
- package/lib/types/previsit-tools.d.ts +96 -0
- package/lib/types/report-export.d.ts +13 -1
- package/lib/types/session-input.d.ts +24 -0
- package/lib/types/stage-insights.d.ts +3 -2
- package/lib/types/tool-outcome.d.ts +21 -0
- package/lib/types/workbench-state.d.ts +2 -0
- package/lib/types/workbench-style.d.ts +1 -1
- package/lib/types/workbench-v2.d.ts +13 -2
- package/package.json +7 -3
- package/skills/qcc-previsit-onepager/SKILL.md +14 -2
- package/skills/qcc-previsit-onepager/references/tool-routing.md +20 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
## [0.1.9] - 2026-09-07
|
|
4
|
+
|
|
5
|
+
- 解除 Sidebar 0.17.1 精确限制,新增 0.18 公共能力适配和缺失/不兼容局部降级。
|
|
6
|
+
- 草稿读写绑定会话输入机;迟到发送不清空其它会话或用户新写入的草稿。
|
|
7
|
+
- 任务认领要求专属会话;报告仅取对应任务快照,支持 DSH text blocks,移除全页面 DOM 兜底和不完整报告下载。
|
|
8
|
+
- 报告生成与执行覆盖分开;区分无数据、无权限、未执行、失败和未知结果。
|
|
9
|
+
- 新增 Host 高层工具、真实预算/主体确认、固定 MCP 路由、ToolRuntime 防绕过、次数预算、取消和卸载清理。
|
|
10
|
+
- 安装器预检共同依赖,拒绝自动降级;提供 stable/candidate 基线,修正 OAuth 迁移顺序。
|
|
11
|
+
- 新增 Node/Sidebar/DSH SDK CI 矩阵、浏览器门禁、annotated tag / main CI 检查和 Registry/provenance 回读。
|
|
12
|
+
- 规范 v1.2.0 全文、真实宿主、真实 Provider 与市场验收仍待完成,详见 docs/COMPATIBILITY.md。
|
|
13
|
+
|
|
14
|
+
## [0.1.8] - 2026-09-07
|
|
15
|
+
|
|
16
|
+
- 首页输入框下方五项快捷菜单统一为数据清洗补全风格:独立描边卡片、图标在上、短标签在下。
|
|
17
|
+
- 卡片保持单行排列;窄屏仅在菜单容器内部横向滚动,不再切换为多行宫格,也不会撑宽页面。
|
|
18
|
+
- 采纳 DSH-UX-001 v1.1.3,并新增快捷菜单方向、高度、边框、单行及视口边界 UI 断言。
|
|
19
|
+
|
|
3
20
|
## [0.1.7] - 2026-09-07
|
|
4
21
|
|
|
5
22
|
- 右侧五阶段菜单统一为招投标工作台风格:等宽分栏、图标在上、短标题在下,移除容易越界的第二行描述。
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-pre-duediligence
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
版本:**0.1.9**。本版按 DSH-UX-001 v1.2.0 同步摘要整改,已通过本地自动化门禁;尚未完成权威全文核对、真实 DSH 四插件组合及企查查 Provider 验收。npm 发布与组合验收是独立状态,候选环境请隔离测试。详见 [更新日志](CHANGELOG.md)、[采用记录](docs/DSH-UX-001-ADOPTION.md)和[兼容与验收矩阵](docs/COMPATIBILITY.md)。
|
|
4
4
|
|
|
5
5
|
面向 DeepSeek Harness 的 Session 级访前尽调智能体。业务人员从左侧菜单进入,在会话级工作台定义一次拜访;Agent 调用企查查五类 MCP,使用机会与风险双引擎完成经营状态识别、假设与反证、风险核验,最终交付可追溯的访前尽调报告。
|
|
6
6
|
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
### 工作台
|
|
12
12
|
|
|
13
|
-
-
|
|
13
|
+
- Better Sidebar 为可选工作台依赖,适配 0.17.x / 0.18.x 的公开能力;缺失或不兼容时保留原生会话,并在打开工作台时提示
|
|
14
14
|
- 只在 DSH 左侧菜单增加“访前尽调”入口;对应工作台标签在 Better Sidebar 的右侧“+”菜单中隐藏
|
|
15
15
|
- 菜单、首页与工作台统一使用企查查蓝 Mockup 的线性建筑 LOGO;初始页面为“访前尽调一页纸智能体”
|
|
16
16
|
- 点击左侧入口只创建并进入访前 Session,初始页不打开右侧工作台;点击输入框下方五项业务按钮后才打开对应视图
|
|
17
|
-
- 首页只保留简洁说明、DSH
|
|
17
|
+
- 首页只保留简洁说明、DSH 原生输入框和输入框下方五项快捷菜单:企业核验、经营画像、风险核查、访前材料、任务历史;菜单采用数据清洗补全式单行描边卡片,上图标下短标签,窄屏在容器内横向滚动
|
|
18
18
|
- “当前任务 / 任务历史”主导航与五阶段业务导航分离:
|
|
19
19
|
1. 对象与目标
|
|
20
20
|
2. 范围确认
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
|
|
45
45
|
- 五类 MCP:qcc-company、qcc-risk、qcc-ipr、qcc-operation、qcc-executive
|
|
46
46
|
- 唯一法律实体硬门;多候选必须停下消歧
|
|
47
|
+
- Agent-owned 执行链:`previsit_begin → previsit_query(entity_search) → previsit_confirm_entity → previsit_query`。由真实用户确认付费预算和唯一主体,Host 固定业务路由,经 ToolRuntime 调用
|
|
48
|
+
- 8/18/40 次硬预算含搜索与失败重试;重启后需要重新确认授权;无法匹配的 Provider 契约明确记为未执行
|
|
47
49
|
- 机会轨:八种经营状态 → 状态 × 角色假设 → 支持/反对/未知 → 反证
|
|
48
50
|
- 风险轨:全量扫描 → 零计数不下钻 → 非零维度明细 → 拜访影响
|
|
49
51
|
- 行为信号超过 24 个月只作历史沿革
|
|
@@ -53,7 +55,7 @@
|
|
|
53
55
|
|
|
54
56
|
## 安装
|
|
55
57
|
|
|
56
|
-
前置条件:Node.js
|
|
58
|
+
前置条件:Node.js 22.19+(22 LTS)或 24 LTS、固定版本 DeepSeek Harness、可用的 `pnpm`,以及已经配置好的模型。默认安装基线为 DSH `0.1.1-rc.2` / Sidebar `0.17.1` / Connector `0.2.32`;候选基线为 `0.1.2-rc.1` / `0.18.0` / `0.2.37`,尚待真实四插件组合验收。
|
|
57
59
|
|
|
58
60
|
### 一键安装(推荐)
|
|
59
61
|
|
|
@@ -65,7 +67,9 @@ bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-pre-duediligenc
|
|
|
65
67
|
|
|
66
68
|
1. `dsh-better-sidebar@0.17.1`:提供 Session 级右侧工作台容器。
|
|
67
69
|
2. `dsh-mcp-connector@0.2.32`:提供通用 MCP 连接器与市场,通过“企查查·企业工商”完成 OAuth,并动态挂载企业、风险、知产、经营、历史和董监高 MCP。
|
|
68
|
-
3. `dsh-pre-duediligence@0.1.
|
|
70
|
+
3. `dsh-pre-duediligence@0.1.9`:提供左侧智能体入口、访前工作台、提示词生成器、Host 执行门和 Skill。
|
|
71
|
+
|
|
72
|
+
脚本先读取 JSON 插件清单并检查全部共同依赖;已有版本不匹配会在安装前停止,不自动降级或覆盖。现有匹配依赖跳过安装。隔离联调可设置 `DSH_PREVISIT_BASELINE=candidate`;开发包路径通过 `DSH_PRE_DUEDILIGENCE_SPEC` 指定。安装前完整停止对应 Profile 的 DSH Web。
|
|
69
73
|
|
|
70
74
|
安装完成后停止旧的 DSH Web 进程并重新运行:
|
|
71
75
|
|
|
@@ -80,11 +84,11 @@ dsh web
|
|
|
80
84
|
~~~bash
|
|
81
85
|
dsh plugin --profile web add dsh-better-sidebar@0.17.1 --allow-build=node-pty
|
|
82
86
|
dsh plugin --profile web add dsh-mcp-connector@0.2.32
|
|
83
|
-
dsh plugin --profile web add dsh-pre-duediligence@0.1.
|
|
87
|
+
dsh plugin --profile web add dsh-pre-duediligence@0.1.9 --allow-build=dsh-pre-duediligence
|
|
84
88
|
dsh web
|
|
85
89
|
~~~
|
|
86
90
|
|
|
87
|
-
Better Sidebar
|
|
91
|
+
工作台检查 Better Sidebar 的 `targetedOpen`、`stateSubscription` 及注册/打开接口;已读取 0.18.0 发布包对应公开接口,真实宿主兼容结论仍以验收矩阵为准。安装命令显式允许插件构建;Better Sidebar 使用的 `node-pty` 也需要允许构建。
|
|
88
92
|
|
|
89
93
|
如果 pnpm 仍提示 `Ignored build scripts`,请按终端提示在 `~/.dsh/profiles/web/pnpm-workspace.yaml` 的 `allowBuilds` 中允许对应包,然后重新执行失败的安装命令。
|
|
90
94
|
|
|
@@ -94,7 +98,7 @@ Better Sidebar 必须使用 `0.17.1`;工作台依赖它的 `targetedOpen` 与
|
|
|
94
98
|
dsh plugin --profile web list --depth 0
|
|
95
99
|
~~~
|
|
96
100
|
|
|
97
|
-
|
|
101
|
+
应能看到所选基线的 Sidebar、Connector 和 `dsh-pre-duediligence@0.1.9`。重启 DSH 并连接“企查查·企业工商”后,在左侧菜单点击“访前尽调”只进入初始会话;右侧工作台保持关闭,点击输入框下方业务按钮后才打开对应视图。Better Sidebar 的右侧“+”菜单不会列出该入口,普通会话保持 DSH 原样。
|
|
98
102
|
|
|
99
103
|
### 从旧访前尽调包迁移
|
|
100
104
|
|
|
@@ -110,10 +114,10 @@ dsh plugin --profile web remove qcc-previsit-dsh
|
|
|
110
114
|
|
|
111
115
|
如果 Web profile 已安装 `qcc-dsh-mcp-oauth`,不要让它与 MCP 连接器同时管理同名企查查 Server:
|
|
112
116
|
|
|
113
|
-
1.
|
|
117
|
+
1. 先按选定基线安装 MCP 连接器和访前插件,完全重启 DSH。
|
|
114
118
|
2. 打开“🧩 MCP连接器”,按界面提示迁移旧企查查授权;也可以重新连接“企查查·企业工商”。
|
|
115
|
-
3.
|
|
116
|
-
4.
|
|
119
|
+
3. 先确认新连接健康,并在新连接上成功完成一次真实企业查询。
|
|
120
|
+
4. 查询成功后停止 DSH,执行 `dsh plugin --profile web remove qcc-dsh-mcp-oauth`,然后完整重启并复核连接。
|
|
117
121
|
|
|
118
122
|
连接器只复制旧授权,不会自动删除旧插件或旧凭据;确认新连接可用后再移除旧插件。
|
|
119
123
|
|
|
@@ -134,7 +138,7 @@ pnpm test:ui
|
|
|
134
138
|
1. 在 DSH 选择一个工作空间和 Session。
|
|
135
139
|
2. 点击左侧“访前尽调”,确认只进入专属初始会话,右侧工作台保持关闭;同时右侧 Better Sidebar 的“+”菜单不出现该入口,普通会话保持 DSH 原样。
|
|
136
140
|
3. 点击“访前尽调”,确认首页标题为“访前尽调一页纸智能体”,LOGO 与菜单一致,说明行独立居中。
|
|
137
|
-
4.
|
|
141
|
+
4. 确认五项快捷菜单位于原生输入框下方,呈单行独立描边卡片、上图标下短标签;390px 窄屏只在菜单内部横向滚动且页面不越界,点击后才打开右侧工作台并切换到对应视图。
|
|
138
142
|
5. 检查右侧五阶段菜单为等宽分栏、上图标下短标题且无第二行描述;选中项为浅蓝底、蓝字和底部蓝线,窄屏不横向越界。
|
|
139
143
|
6. 打开输入框左上角“提示词生成”,检查四步、滚动、固定头尾、Tab 焦点环和 Escape 恢复焦点。
|
|
140
144
|
7. 选择“银行/信贷客户经理、首次拜访、风险与涉诉、股权与实控人、15分钟标准、一页纸简报”并填写企业。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 访前尽调 0.1.9 兼容与验收记录
|
|
2
|
+
|
|
3
|
+
日期:2026-09-07。本文为 0.1.9 发布与验收记录;发布前已回读 npm 0.1.8,本次发布结果以 Registry / GitHub Release 回读为准。公开旧版本和 tag 保持不变;npm 发布不代表真实组合验收通过。
|
|
4
|
+
|
|
5
|
+
| 组合 | DSH | Sidebar | Connector | 证据级别 / 状态 |
|
|
6
|
+
| --- | --- | --- | --- | --- |
|
|
7
|
+
| stable(共同复现基线) | 0.1.1-rc.2 | 0.17.1 | 0.2.32 | 既有文档基线;0.1.9 真实宿主、Provider 待验收 |
|
|
8
|
+
| candidate(隔离联调) | 0.1.2-rc.1 | 0.18.0 | 0.2.37 | Sidebar 公开接口已读取;0.1.9 真实宿主、Provider 待验收 |
|
|
9
|
+
| 缺失 Sidebar | 两个目标基线 | 无 | 同上 | 自动化验证保留原生入口;工作台局部提示;真实 Loader 待验收 |
|
|
10
|
+
| 未知 Sidebar / 能力缺失 | 两个目标基线 | 非 0.17/0.18 或缺少公共方法 | 同上 | 局部禁用工作台,不声明兼容 |
|
|
11
|
+
| 旧包共存 | 任意 | 任意 | 任意 | 不支持;安装器拒绝 qcc-previsit-dsh 共存 |
|
|
12
|
+
|
|
13
|
+
Node:22.19+(22 LTS)或 24 LTS。CI 新增两组 Node × 两组 Sidebar × 两组 DSH 客户端 SDK(primitives / invariants)构建/类型/测试矩阵;配置存在不等于远端结果通过。客户端 SDK 契约测试不等于启动真实 DSH,也不替代候选版 Host ToolRuntime 验收。
|
|
14
|
+
|
|
15
|
+
## 实现边界
|
|
16
|
+
|
|
17
|
+
- Sidebar 采用可选 peer 和独立服务注入;主入口不依赖工作台。未知版本/接口错误由局部工作台提示,不在主客户端初始化中抛错。
|
|
18
|
+
- 草稿仅通过宿主会话输入机读写。发送后只清除原会话中仍等于已提交文本的草稿;不使用 document-wide textarea 或延迟 setter。
|
|
19
|
+
- 报告来自已认领任务后的助手快照,支持真实 DSH 的 `blocks[kind=text]`,忽略 reasoning、context、interrupted 前缀;不从页面 DOM 抓取报告。输出结构按完整报告/转发摘要分别校验。
|
|
20
|
+
- Native composer 的归属来自专属 Session ID;工具名称不作为业务归属。窗口索引变化导致任务定位失败时不导出旧报告,需重新打开/恢复原生会话核对。
|
|
21
|
+
- 当前任务历史仍以 DSH 会话为准;清空和“新的尽调”的本地视图状态不承诺跨重启恢复。
|
|
22
|
+
- Host 任务授权按 Agent / Session / cwd 绑定;批准记录由 DSH approval service 持久记录。内存预算授权不跨重启复用,恢复查询必须重新确认。
|
|
23
|
+
- 高层业务工具检查真实注册 schema,Provider 缺失或参数契约不匹配时未执行。主体确认要求同一条结构化搜索记录中的全称和信用代码;非结构化搜索响应暂不适配,禁止猜测。
|
|
24
|
+
- 风险明细只接受扫描结构中对应 dimension / 原始工具名下明确的非负整数计数(数字或 count);其它 Provider 扫描结构需真链路采样、脱敏契约补齐后支持。未知计数不解释成零。
|
|
25
|
+
- 未覆盖固定路由的增量 API 不通过通用动态 MCP 兜底;对报告披露未覆盖。需在 Provider 验收中确认现有业务覆盖是否满足发布标准。
|
|
26
|
+
|
|
27
|
+
## 四层证据与发布条件
|
|
28
|
+
|
|
29
|
+
1. 单元/契约:运行 `pnpm test`,覆盖会话、报告、双 Sidebar、预算、确认、主体、防绕过、取消和卸载。
|
|
30
|
+
2. 真实组件/隔离 DOM:`pnpm test:ui`,真实 React + Chrome;浅/深色 × 桌面/390px。该测试不连接真实 DSH。
|
|
31
|
+
3. 真实宿主:全新隔离 Profile 安装构建 tarball,与清洗 0.8.9 / AI填表 0.2.1 / 招投标 0.5.2 共装;普通会话 → 四入口连续切换;发送后立刻切换;关闭/重开工作台;完整重启;逐个升级和单包卸载。逐项记录结果和合成数据截图,未跑项写待验收。
|
|
32
|
+
4. 真实 Provider:用户确认自有额度后,验证企业搜索、多候选选择、名称/信用代码同记录、付费确认、零记录、无权限、部分失败、取消、HTML 下载。Connector 0.2.32 / 0.2.37 分别留证;不得把合成返回写成真实企查查验收。
|
|
33
|
+
|
|
34
|
+
### 本次本地执行记录(2026-09-07)
|
|
35
|
+
|
|
36
|
+
- Node v24.18.0;`pnpm check` 通过:类型检查、16 个测试文件 / 101 项测试、构建与类型声明生成。
|
|
37
|
+
- `pnpm test:ui` 通过四种 Chrome 场景:浅/深色 × 1440×900 / 390×700;包含真实 React 生命周期中“发送未完成就切换会话”和提示词弹窗切换隔离。使用本机缓存 Chromium;`PREVISIT_CHROME` 可指定浏览器。结果和合成截图位于忽略提交的 `_scratch/ui-layout/`。
|
|
38
|
+
- 本机已安装 Cordis 4.0.2 / DSH ToolRuntime 0.1.1-rc.2:实际运行生成后的 `lib/index.js`,三个业务工具注册、合成审批服务、合成 MCP 嵌套调度、主体确认、直接 MCP 调用拒绝、回合结束传播和卸载均通过。该检查未启动 DSH Web,也未使用真实审批 UI、客户连接或额度。
|
|
39
|
+
- `bash -n install.sh`、两个发布核验脚本的 `node --check`、`git diff --check` 通过。发布核验脚本的远端 CI / Registry 分支仍须在正式发布流程验证。
|
|
40
|
+
- `npm pack --dry-run --ignore-scripts --json` 通过,发布清单共 38 个文件;包含构建产物,不包含 `_scratch`、测试夹具或本机配置。
|
|
41
|
+
- 真实 Web Loader、四插件共装、Connector 双版本真链路和市场投稿仍待完成;远端 CI 进度另列下文,本地门禁通过不等于组合验收通过。
|
|
42
|
+
|
|
43
|
+
首次远端 CI(提交 `75bf8b7`)的八组类型检查、单元测试和构建均通过;Linux Chrome 冷启动触发原有 8 秒进程超时,多数组合未进入 UI 断言。发布前修正为 30 秒启动窗口,保留全部原有 UI / 会话断言,减少 Chrome 后台启动服务,并新增隔离 DOM / 日志 / 截图 artifact。必须等待修正提交的完整矩阵通过后打 tag;不以重试绕过失败检查。
|
|
44
|
+
|
|
45
|
+
## 发布与市场
|
|
46
|
+
|
|
47
|
+
2026-09-07 已回读 0.1.8:npm maintainers 为 duhu2000 / jinhangshi;CI 和 Release 成功;provenance 指向 7dfba4deba72724f792631557c4d432801abb7b3。
|
|
48
|
+
|
|
49
|
+
- [CI](https://github.com/duhu2000/dsh-pre-duediligence/actions/runs/34070774757)
|
|
50
|
+
- [Release workflow](https://github.com/duhu2000/dsh-pre-duediligence/actions/runs/34070844360)
|
|
51
|
+
- [GitHub Release](https://github.com/duhu2000/dsh-pre-duediligence/releases/tag/v0.1.8)
|
|
52
|
+
- [Registry provenance](https://registry.npmjs.org/-/npm/v1/attestations/dsh-pre-duediligence@0.1.8)
|
|
53
|
+
|
|
54
|
+
0.1.9 流程:材料/完整本地门禁 → release commit 推 main → 该提交 CI 全绿 → annotated v0.1.9 tag → Actions 门禁/OIDC/npm/provenance → GitHub Release → Registry 回读并上传证据 artifact。用户已授权本次提交与发布;发布完成后在 main 回写证据,不移动公开 tag 或重用 npm 版本。
|
|
55
|
+
|
|
56
|
+
市场材料待备齐:准确业务简介、两个安装基线和限制、公开仓库/npm/许可证、无客户信息的安装与切换截图、真实安装/卸载证据、权限与额度说明、规范采用记录。投稿/合并/目录生效分别登记;当前不声明已上架。
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
# DSH-UX-001
|
|
1
|
+
# DSH-UX-001 采纳与验收记录
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 0.1.9 整改:目标 v1.2.0,全文核验待完成
|
|
4
|
+
|
|
5
|
+
日期:2026-09-07。根据团队同步邮件 DSH-AGENT-SYNC-001 中的 v1.2.0 摘要实施;邮件所列权威文件在当前机器对应路径不存在,故不声明已完成 v1.2.0 全文采纳。仓库仅记录采用版本、业务差异、例外和证据,不复制权威规范。
|
|
6
|
+
|
|
7
|
+
本轮变更:可选 Sidebar 及 0.17/0.18 能力适配;会话输入机替代全页面草稿改写;任务快照报告替代 DOM 抓取;独立报告/维度完成状态;Agent-owned 高层工具经 ToolRuntime 调用、用户付费预算确认、主体确认、防绕过与取消;安装矩阵和发布门禁。详细边界、四层验收及发布证据见 [兼容与验收记录](COMPATIBILITY.md)。
|
|
8
|
+
|
|
9
|
+
未完成:权威 v1.2.0 全文回读;真实 DSH 四插件共装/切换/升级/卸载;企查查 Provider 两基线契约与最小业务验收;市场投稿。本轮自动化通过情况应引用本次执行结果,不复用下面历史 59 项结论。
|
|
10
|
+
|
|
11
|
+
## 以下为 0.1.8 / v1.1.3 历史记录
|
|
12
|
+
|
|
13
|
+
日期:2026-09-07。业务插件:`dsh-pre-duediligence@0.1.8`。规范源:[共享交互规范 v1.1.3](../../../../AI-设计/DSH智能体开发交互规范方案.md),视觉参考:[企查查蓝交互 Mockup(原文件名 v1.1.0,内容 v1.1.3)](../../../../AI-设计/DSH智能体_企查查蓝_UI_Mockup_v1.1.0.html)。
|
|
4
14
|
|
|
5
15
|
## 页面与品牌映射
|
|
6
16
|
|
|
@@ -8,7 +18,7 @@
|
|
|
8
18
|
| --- | --- | --- |
|
|
9
19
|
| 左侧入口 | 菜单名固定为“访前尽调”,使用 Mockup 的线性建筑 SVG;只创建并进入专属 Session | 位于工作区列表前;不调用 `openTab`,初始页右栏关闭;隐藏 Better Sidebar 标签菜单项 |
|
|
10
20
|
| 中央首页 | 标题“访前尽调一页纸智能体”,同排建筑 LOGO,独立说明行 | 只在插件创建的空白 Session 可逆改写;卸载时恢复宿主标题、图标和预览标识 |
|
|
11
|
-
| 原生输入区 | Composer
|
|
21
|
+
| 原生输入区 | Composer 下方五项数据清洗补全式描边卡片快捷菜单(上图标、下短标签);左上角“提示词生成” | 不替换输入框、模型、权限和原生发送按钮;窄屏只在菜单内部横向滚动,不撑宽页面 |
|
|
12
22
|
| 提示词向导 | 对象 → 角色场景 → 范围深度 → 确认输出 | Portal 到 body;回填不发送;已有草稿显式选择替换、追加或取消 |
|
|
13
23
|
| 右侧工作台 | 当前任务 / 任务历史;招投标式五步等宽导航(上图标、下短标题、无描述);由输入框下方快捷按钮打开和恢复 | Better Sidebar 是唯一权威工作台;关闭不取消会话任务;不另设会话头打开入口;窄屏菜单不横向越界 |
|
|
14
24
|
| 下载材料 | 自包含 HTML 一页纸报告 | 只使用已捕获的当前 Session 报告,不跨 Session 合并 |
|
|
@@ -39,7 +49,7 @@
|
|
|
39
49
|
|
|
40
50
|
## Token 与组件
|
|
41
51
|
|
|
42
|
-
浅色品牌 / 动作色为 `#128BED / #0875D1`,深色为 `#55ADFF / #82C3FF`;表头、背景、文字、边框、成功和复核色均按 v1.1.
|
|
52
|
+
浅色品牌 / 动作色为 `#128BED / #0875D1`,深色为 `#55ADFF / #82C3FF`;表头、背景、文字、边框、成功和复核色均按 v1.1.3 候选表实现。小号白字主按钮使用动作色,深色模式动作按钮使用深色文字。所有变量限定在 `.qcc*` 自有节点,不覆盖全局 `:root`。
|
|
43
53
|
|
|
44
54
|
## DSH 兼容范围与例外
|
|
45
55
|
|
|
@@ -51,8 +61,8 @@
|
|
|
51
61
|
## 自动化证据
|
|
52
62
|
|
|
53
63
|
- `pnpm run typecheck`:TypeScript 严格模式通过。
|
|
54
|
-
- `pnpm run test`:11 个测试文件、
|
|
55
|
-
- `pnpm run test:ui`:真实 React、隔离宿主 DOM 与本机 Headless Chrome 的浅色/深色 × 桌面/移动共 4
|
|
64
|
+
- `pnpm run test`:11 个测试文件、59 项测试通过,覆盖会话归属、LOGO/首页文本、菜单、提示词草稿合并、首页纵向描边卡片、五步状态、阶段菜单样式与描述移除、完成判定、报告导出、安装与 Skill 契约。
|
|
65
|
+
- `pnpm run test:ui`:真实 React、隔离宿主 DOM 与本机 Headless Chrome 的浅色/深色 × 桌面/移动共 4 组通过;检查快捷菜单的五项单行、纵向布局、54px 高度、中性描边、内部横向滚动与视口边界,并覆盖三处同源 LOGO、五步导航、弹窗、焦点、主题 Token 及页面横向溢出。
|
|
56
66
|
- `pnpm run build` 与 `npm pack --dry-run`:发布前执行,结果以发布提交的 CI / Release 记录为准。
|
|
57
67
|
|
|
58
68
|
视觉回归截图和机器结果生成于 `_scratch/ui-layout/`,该目录不提交仓库,也不进入 npm 包。
|
|
@@ -64,6 +74,7 @@
|
|
|
64
74
|
3. 浅色、深色及 390px 窄屏下,无横向页面溢出;移动输入字号不低于 16px。
|
|
65
75
|
4. 向导正文可滚动、头尾固定;Tab 不越出弹窗,Escape 关闭并恢复焦点。
|
|
66
76
|
5. 输入框已有文字时验证替换、追加、取消三条路径;回填后不自动发送。
|
|
67
|
-
6.
|
|
68
|
-
7.
|
|
69
|
-
8.
|
|
77
|
+
6. 输入框下方五项业务按钮为数据清洗补全式单行描边卡片、上图标下短标签;390px 窄屏仅菜单内部横向滚动,页面不越界。
|
|
78
|
+
7. 点击上述卡片后才打开对应工作台视图;关闭不取消任务,再点同组按钮可重新打开。
|
|
79
|
+
8. 右侧五阶段菜单为等宽分栏、上图标下短标题且无第二行描述;选中项有浅蓝底、蓝字和底部蓝线,390px 窄屏不横向越界。
|
|
80
|
+
9. Agent 停止但无完整报告时仍显示“等待确认 / 继续”;完整报告出现后才显示“报告已生成”并允许下载。
|
package/install.sh
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
set -euo pipefail
|
|
4
4
|
|
|
5
5
|
readonly PROFILE_NAME="${DSH_PROFILE:-web}"
|
|
6
|
-
readonly
|
|
7
|
-
readonly
|
|
8
|
-
readonly PREVISIT_SPEC="${DSH_PRE_DUEDILIGENCE_SPEC:-dsh-pre-duediligence@0.1.7}"
|
|
6
|
+
readonly BASELINE="${DSH_PREVISIT_BASELINE:-stable}"
|
|
7
|
+
readonly PREVISIT_SPEC="${DSH_PRE_DUEDILIGENCE_SPEC:-dsh-pre-duediligence@0.1.9}"
|
|
9
8
|
readonly LEGACY_PREVISIT_NAME="qcc-previsit-dsh"
|
|
10
9
|
readonly LEGACY_QCC_OAUTH_NAME="qcc-dsh-mcp-oauth"
|
|
11
10
|
|
|
@@ -18,42 +17,65 @@ fail() {
|
|
|
18
17
|
exit 1
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
case "$BASELINE" in
|
|
21
|
+
stable) DSH_VERSION="0.1.1-rc.2"; SIDEBAR_VERSION="0.17.1"; CONNECTOR_VERSION="0.2.32" ;;
|
|
22
|
+
candidate) DSH_VERSION="0.1.2-rc.1"; SIDEBAR_VERSION="0.18.0"; CONNECTOR_VERSION="0.2.37" ;;
|
|
23
|
+
*) fail "未知基线 ${BASELINE},可选 stable 或 candidate(尚待真实宿主验收)。" ;;
|
|
24
|
+
esac
|
|
25
|
+
readonly DSH_VERSION SIDEBAR_VERSION CONNECTOR_VERSION
|
|
26
|
+
command -v node >/dev/null 2>&1 || fail "请安装 Node.js 22.19+(22 LTS)或 24 LTS。"
|
|
22
27
|
command -v pnpm >/dev/null 2>&1 || fail "未找到 pnpm。请先执行 corepack enable,或安装 pnpm。"
|
|
23
28
|
command -v dsh >/dev/null 2>&1 || fail "未找到 dsh。请先安装 DeepSeek Harness。"
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
fi
|
|
30
|
+
node -e 'const [major,minor]=process.versions.node.split(".").map(Number); process.exit((major===22 && minor>=19)||major===24 ? 0 : 1)' || fail "验收基线要求 Node.js 22.19+(22 LTS)或 24 LTS。"
|
|
31
|
+
readonly CURRENT_DSH_VERSION="$(dsh --version)"
|
|
32
|
+
[[ "$CURRENT_DSH_VERSION" == "$DSH_VERSION" ]] || fail "${BASELINE} 基线要求 DSH ${DSH_VERSION},当前为 ${CURRENT_DSH_VERSION}。请先核对共同版本矩阵。"
|
|
29
33
|
|
|
30
34
|
info "检测到 Node.js $(node --version),DSH $(dsh --version),目标 profile:${PROFILE_NAME}。"
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
INSTALLED_PLUGINS="$(dsh plugin --profile "$PROFILE_NAME" list --depth 0 --json)" || fail "无法读取插件清单;未执行安装。"
|
|
37
|
+
readonly INSTALLED_PLUGINS
|
|
38
|
+
node -e 'const d=JSON.parse(process.argv[1]); if(!Array.isArray(d)||d.length!==1||!d[0]||typeof d[0]!=="object") process.exit(1); const deps=d[0].dependencies??{}; if(typeof deps!=="object"||Array.isArray(deps)||Object.values(deps).some(p=>!p||typeof p.version!=="string")) process.exit(1)' "$INSTALLED_PLUGINS" || fail "无法识别插件清单;未执行安装。"
|
|
39
|
+
installed_version() {
|
|
40
|
+
node -e 'const d=JSON.parse(process.argv[1])[0]; const p=d.dependencies?.[process.argv[2]]; if(p && typeof p.version!=="string") process.exit(1); process.stdout.write(p?.version??"")' "$INSTALLED_PLUGINS" "$1"
|
|
41
|
+
}
|
|
42
|
+
readonly LEGACY_PREVISIT="$(installed_version "$LEGACY_PREVISIT_NAME")"
|
|
43
|
+
readonly LEGACY_OAUTH="$(installed_version "$LEGACY_QCC_OAUTH_NAME")"
|
|
44
|
+
readonly CURRENT_SIDEBAR="$(installed_version dsh-better-sidebar)"
|
|
45
|
+
readonly CURRENT_CONNECTOR="$(installed_version dsh-mcp-connector)"
|
|
46
|
+
if [[ -n "$LEGACY_PREVISIT" ]]; then
|
|
34
47
|
fail "检测到旧包 ${LEGACY_PREVISIT_NAME}。为避免重复注册智能体,请先执行:dsh plugin --profile ${PROFILE_NAME} remove ${LEGACY_PREVISIT_NAME}"
|
|
35
48
|
fi
|
|
36
|
-
if [[
|
|
49
|
+
if [[ -n "$LEGACY_OAUTH" ]]; then
|
|
37
50
|
readonly LEGACY_QCC_OAUTH_PRESENT=true
|
|
38
51
|
else
|
|
39
52
|
readonly LEGACY_QCC_OAUTH_PRESENT=false
|
|
40
53
|
fi
|
|
41
54
|
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
[[ -z "$CURRENT_SIDEBAR" || "$CURRENT_SIDEBAR" == "$SIDEBAR_VERSION" ]] || fail "现有 Sidebar ${CURRENT_SIDEBAR} 与 ${BASELINE} 基线 ${SIDEBAR_VERSION} 不同;未修改 Profile,请先明确升级/回滚方案。"
|
|
56
|
+
[[ -z "$CURRENT_CONNECTOR" || "$CURRENT_CONNECTOR" == "$CONNECTOR_VERSION" ]] || fail "现有 Connector ${CURRENT_CONNECTOR} 与 ${BASELINE} 基线 ${CONNECTOR_VERSION} 不同;未修改 Profile,请先明确升级/回滚方案。"
|
|
57
|
+
info "安装前请停止目标 Profile 的 DSH Web。"
|
|
58
|
+
[[ "$BASELINE" != candidate ]] || info "候选矩阵仅供隔离联调,尚不代表四插件组合已通过验收。"
|
|
59
|
+
if [[ -z "$CURRENT_SIDEBAR" ]]; then
|
|
60
|
+
info "1/3 安装 Better Sidebar(工作台容器)"
|
|
61
|
+
dsh plugin --profile "$PROFILE_NAME" add "dsh-better-sidebar@${SIDEBAR_VERSION}" --allow-build=node-pty
|
|
62
|
+
fi
|
|
44
63
|
|
|
45
|
-
|
|
46
|
-
|
|
64
|
+
if [[ -z "$CURRENT_CONNECTOR" ]]; then
|
|
65
|
+
info "2/3 安装 MCP 连接器(通过市场连接企查查等 MCP)"
|
|
66
|
+
dsh plugin --profile "$PROFILE_NAME" add "dsh-mcp-connector@${CONNECTOR_VERSION}"
|
|
67
|
+
fi
|
|
47
68
|
|
|
48
69
|
info "3/3 安装访前尽调工作台"
|
|
49
70
|
dsh plugin --profile "${PROFILE_NAME}" add "${PREVISIT_SPEC}" --allow-build=dsh-pre-duediligence
|
|
50
71
|
|
|
51
|
-
|
|
72
|
+
dsh plugin --profile "$PROFILE_NAME" list --depth 0
|
|
73
|
+
info "安装完成。请完整重启:dsh --profile ${PROFILE_NAME} --no-open"
|
|
52
74
|
if [[ "${LEGACY_QCC_OAUTH_PRESENT}" == true ]]; then
|
|
53
75
|
printf '%s\n' \
|
|
54
76
|
"检测到旧插件 ${LEGACY_QCC_OAUTH_NAME}。重启后先在“🧩 MCP连接器”中迁移旧企查查授权。" \
|
|
55
|
-
"
|
|
56
|
-
"
|
|
77
|
+
"先确认新连接健康并完成一次真实企业查询,成功后再停止 DSH。" \
|
|
78
|
+
"查询成功后才能执行:dsh plugin --profile ${PROFILE_NAME} remove ${LEGACY_QCC_OAUTH_NAME},然后完整重启。"
|
|
57
79
|
else
|
|
58
80
|
printf '%s\n' \
|
|
59
81
|
"重启后打开左侧“🧩 MCP连接器”,选择“企查查·企业工商”并完成 OAuth 授权。" \
|