dsh-data-cleaning-agent 0.6.2 → 0.7.0
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 +21 -0
- package/README.en.md +5 -1
- package/README.md +4 -2
- package/docs/RELEASE-0.6.3.md +38 -0
- package/docs/RELEASE-0.7.0.md +44 -0
- package/docs/UI-WORKFLOW-V2-ACCEPTANCE.md +40 -0
- package/docs/UI-WORKFLOW-V2.md +16 -7
- package/lib/client.js +363 -79
- package/lib/qcc-command.js +27 -16
- package/lib/qcc-field-catalog.js +185 -0
- package/lib/qcc-safety.js +11 -1
- package/lib/qcc.js +276 -79
- package/lib/skill-enrich.js +2 -2
- package/lib/workflow-contract.js +17 -70
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,27 @@
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.7.0] - 2026-09-05
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- 数据清洗补全字段目录从 30 项扩展到 128 项:第一批开放联系方式、上市信息、税务开票、进出口信用 40 字段;第二批开放企业自身与关联风险扫描 58 字段。
|
|
11
|
+
- 新增 6 个一企一行 Host 适配器、风险因子稳定透视与目录漂移审计;电话/邮箱/网址全集、海关资质、风险明细和关联方列表继续排除。
|
|
12
|
+
- UI 按 8 个来源工具展示字段;同工具多字段每企只调用一次,Host 按实际来源工具在调用前校验 300 次预算上限。
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- 所有新增字段贯通任务草稿、Agent-owned 命令、候选续跑、结果预览和中文 CSV/XLSX;缺失值保留空列,股票代码、税号、电话和银行账号保持文本。
|
|
16
|
+
|
|
17
|
+
## [0.6.3] - 2026-09-05
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- 无表头、每行一家企业的粘贴名单改按「主体标识」逐行解析,不再把第一家企业误识为 CSV 表头。
|
|
21
|
+
- 已完成或已确认规则的任务再录入名单时自动创建新 taskId,避免新数据继承旧任务的锁定状态、默认字段或运行结果。
|
|
22
|
+
- 匹配补全预览的内部字段键改为中文表头,并改善窄工作台下的列宽和横向滚动。
|
|
23
|
+
- 缩小桌面端右侧工作台宽度,打开时让中央会话区留出同宽空间,并固定头部操作组、在窄屏隐藏次要状态,避免输入框被遮挡或关闭按钮被挤出可见区。
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- 首次主体匹配不再立即发送内部 JSON 命令;改为向中央对话框回填可阅读、可编辑的中文任务说明,关闭右栏后由用户显式发送才执行 Agent-owned QCC 高层工具。
|
|
27
|
+
|
|
7
28
|
## [0.6.2] - 2026-09-04
|
|
8
29
|
|
|
9
30
|
### Fixed
|
package/README.en.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> A data cleaning & completion agent plugin for DeepSeek Harness: local CSV/XLSX/JSON engine plus optional Qichacha (QCC) MCP enterprise-data enrichment. Initiated and maintained by the Qichacha (QCC) team.
|
|
4
4
|
>
|
|
5
|
-
> Current source version / 当前源码版本: **0.
|
|
5
|
+
> Current source version / 当前源码版本: **0.7.0** (stable release)
|
|
6
6
|
|
|
7
7
|
[](https://github.com/duhu2000/dsh-data-cleaning-agent/actions/workflows/ci.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/dsh-data-cleaning-agent)
|
|
@@ -117,6 +117,10 @@ See [the Phase-3 acceptance record](docs/PHASE3-ACCEPTANCE.md) and
|
|
|
117
117
|
See [the 0.5.1 release record](docs/RELEASE-0.5.1.md) for the README fix and release-text gate.
|
|
118
118
|
See [the 0.5.2 release record](docs/RELEASE-0.5.2.md) for native DSH UI alignment, verification, and rollback.
|
|
119
119
|
See [the 0.5.3 release record](docs/RELEASE-0.5.3.md) for the business landing view and prompt builder.
|
|
120
|
+
See [the 0.7.0 release record](docs/RELEASE-0.7.0.md) for the first 40 and second 58
|
|
121
|
+
one-company-one-row fields, deduplicated QCC tool dispatch, and real two-company acceptance.
|
|
122
|
+
See [the 0.6.3 release record](docs/RELEASE-0.6.3.md) for multiline entity-list parsing,
|
|
123
|
+
editable execution summaries, and workbench/composer layout fixes.
|
|
120
124
|
See [the 0.6.2 release record](docs/RELEASE-0.6.2.md) for Chinese export headers,
|
|
121
125
|
complete field-selection propagation, and profile-field enrichment.
|
|
122
126
|
See [the 0.6.1 release record](docs/RELEASE-0.6.1.md) for the Agent-owned QCC workbench,
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 在 DeepSeek Harness 中清洗、补全、画像企业名单数据的智能体插件:本地 CSV/XLSX/JSON 引擎 + 可选企查查(Qichacha/QCC)MCP 企业数据补全,由企查查(Qichacha/QCC)团队发起并维护。
|
|
4
4
|
>
|
|
5
|
-
> 当前源码版本 / Current source version: **0.
|
|
5
|
+
> 当前源码版本 / Current source version: **0.7.0**(正式版本)
|
|
6
6
|
|
|
7
7
|
[](https://github.com/duhu2000/dsh-data-cleaning-agent/actions/workflows/ci.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/dsh-data-cleaning-agent)
|
|
@@ -113,7 +113,9 @@ bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/dsh-data-cleaning-a
|
|
|
113
113
|
0.5.1 文档补丁与防回归发布门见 [docs/RELEASE-0.5.1.md](docs/RELEASE-0.5.1.md)。
|
|
114
114
|
0.5.2 DSH 原生 UI 对齐范围、验收与回滚见 [docs/RELEASE-0.5.2.md](docs/RELEASE-0.5.2.md)。
|
|
115
115
|
0.5.3 业务首页、提示词生成和输入框下方流程栏见 [docs/RELEASE-0.5.3.md](docs/RELEASE-0.5.3.md)。
|
|
116
|
-
0.
|
|
116
|
+
0.7.0 第一批 40 字段、第二批 58 字段、调用编排和真实两企业验收见
|
|
117
|
+
[docs/RELEASE-0.7.0.md](docs/RELEASE-0.7.0.md)。0.6.3 多行名单解析、可编辑执行说明与工作台遮挡修复见
|
|
118
|
+
[docs/RELEASE-0.6.3.md](docs/RELEASE-0.6.3.md)。0.6.2 中文导出表头、完整字段选择传递与画像字段补全见
|
|
117
119
|
[docs/RELEASE-0.6.2.md](docs/RELEASE-0.6.2.md)。0.6.1 Agent-owned QCC 工作台、会话隔离、恢复统计及真实闭环验收见
|
|
118
120
|
[docs/RELEASE-0.6.1.md](docs/RELEASE-0.6.1.md)。0.6.0 五步 taskId 工作流、耐久制品、
|
|
119
121
|
跨重启恢复与双基线验收见 [docs/RELEASE-0.6.0.md](docs/RELEASE-0.6.0.md)。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 0.6.3 多行名单解析与可编辑执行体验修复
|
|
2
|
+
|
|
3
|
+
> 版本:**0.6.3**
|
|
4
|
+
> 发布日期:2026-09-05
|
|
5
|
+
> 发布来源:`v0.6.3` Tag 触发 GitHub Actions,使用 npm OIDC Trusted Publishing。
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
0.6.3 是 0.6.2 的 UI 与任务正确性补丁,不扩大企查查工具域:
|
|
10
|
+
|
|
11
|
+
1. 无表头、每行一家企业的粘贴名单按「主体标识」逐行解析,不再把首家企业误作表头;
|
|
12
|
+
2. 完成或确认规则后的任务再次录入名单时创建新 taskId,不复用旧任务锁定状态和结果;
|
|
13
|
+
3. 首次主体匹配先将可阅读、可编辑的中文任务说明回填中央对话框,由用户发送后才执行企查查调用;
|
|
14
|
+
4. 桌面端右侧工作台打开时为中央会话和输入框让位,窄屏保持关闭按钮可见;
|
|
15
|
+
5. 匹配补全预览使用中文字段名,并保留横向滚动能力。
|
|
16
|
+
|
|
17
|
+
## 安全与调用边界
|
|
18
|
+
|
|
19
|
+
- 名单、字段和额度确认仍只暂存在本机 Host;可见任务说明不包含企业名单。
|
|
20
|
+
- 生成任务说明不会产生企查查调用;用户显式发送后才调用一次 `data_cleaning_qcc_run`。
|
|
21
|
+
- 使用当前用户自己连接的企查查 MCP 账号,插件不内置、不保存或分发 OAuth token、Key。
|
|
22
|
+
- 历史域、人员域和招投标域仍按既定范围延期,本补丁不新增相关工具。
|
|
23
|
+
|
|
24
|
+
## 验收
|
|
25
|
+
|
|
26
|
+
- 两行纯文本企业名单解析为 2 行,显式表头输入仍走 CSV 解析;
|
|
27
|
+
- 已完成任务重新录入数据后生成新的 taskId;
|
|
28
|
+
- 可见任务说明展示处理动作、数量和中文字段,不展示 `schemaVersion` 或 JSON;
|
|
29
|
+
- 1280px 与 900px 视口下右侧工作台不遮挡中央输入框,720px 下关闭按钮可见;
|
|
30
|
+
- 结果预览和新生成的 CSV/XLSX 使用中文字段名;已选择但无返回值的字段保留空列;
|
|
31
|
+
- `npm run check` 全绿,177/177 自动化测试通过,发布包内容命中白名单。
|
|
32
|
+
|
|
33
|
+
## 升级与回滚
|
|
34
|
+
|
|
35
|
+
- 升级:安装 `dsh-data-cleaning-agent@0.6.3` 并完全停止、重新运行 `dsh web`。
|
|
36
|
+
- 回滚:重新安装 `dsh-data-cleaning-agent@0.6.2` 并完全重启 DSH。
|
|
37
|
+
- 本补丁不修改 `dc_workflows_v2` 存储 schema,也不删除既有任务或耐久制品。
|
|
38
|
+
- 旧任务制品不会自动重写;升级后需新建任务并重新生成结果,才能获得修正后的行数和表头。
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# 0.7.0 · 一企一行 128 字段补全
|
|
2
|
+
|
|
3
|
+
> 版本:**0.7.0**
|
|
4
|
+
> 发布日期:2026-09-05
|
|
5
|
+
> 发布方式:推送 `v0.7.0` Tag 后,由 GitHub Actions 使用 npm OIDC Trusted Publishing 发布并创建 GitHub Release。
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
0.7.0 把已经核对 QCC MCP 一手契约、能够稳定投影到单个 Excel 单元格的字段统一为 128 项目录:
|
|
10
|
+
|
|
11
|
+
- 基础 30 字段:企业工商信息 27、企业简介 3;
|
|
12
|
+
- 第一批 40 字段:联系方式 6、上市信息 15、税务开票信息 8、进出口信用 11;
|
|
13
|
+
- 第二批 58 字段:企业自身风险扫描 38、企业关联风险扫描 20。
|
|
14
|
+
|
|
15
|
+
字段 ID、中文表头、来源工具和发布批次由 `lib/qcc-field-catalog.js` 单一来源管理。一级行业、二级行业、
|
|
16
|
+
电话/邮箱/网址全集、风险明细、关联方名单等未被上游声明为稳定一对一值的数据不会进入主表。
|
|
17
|
+
|
|
18
|
+
## 业务与调用规则
|
|
19
|
+
|
|
20
|
+
- 提示词向导和规则确认页按 8 个来源工具展示字段,支持整组全选与清空。
|
|
21
|
+
- 同一工具选择多个字段时,每家企业只调用一次;调用上界按
|
|
22
|
+
`唯一企业数 ×(主体定位 + 去重后的来源工具)` 计算,并在任何 QCC 调用前执行 300 次硬上限。
|
|
23
|
+
- 风险扫描明细由 Host 透视为稳定计数、命中摘要和关联方数量;数组不进入单元格。
|
|
24
|
+
- 新字段贯通任务草稿、Agent-owned 命令、候选续跑、结果预览及中文 CSV/XLSX;缺失值保留空列,
|
|
25
|
+
股票代码、税号、电话和银行账号按文本保存。
|
|
26
|
+
- 生产风险目录变化记录为脱敏的 `QCC_RISK_CATALOG_DRIFT` 审计事件,不静默扩张稳定字段契约。
|
|
27
|
+
|
|
28
|
+
## 验收
|
|
29
|
+
|
|
30
|
+
- 字段目录:基础 30、第一批 40、第二批 58,共 128 个唯一字段 ID 和 128 个唯一中文表头。
|
|
31
|
+
- 自动化:`npm run check` 通过,186/186 测试通过;npm tarball 内容全部命中白名单。
|
|
32
|
+
- 真实环境:本机 DSH `0.1.1-rc.2`,两家企业选择第一、二批全部 98 字段及基础默认 5 字段。
|
|
33
|
+
- QCC 调用:8 个工具,估算 16 次、实际 16 次且全部成功;任务结果为补全 2、待核验 0、未匹配 0、失败 0。
|
|
34
|
+
- 结果 XLSX:`清洗补全结果!A1:DB3`,106 列、2 行;第一、二批中文表头完整,无重复、无内部英文表头、
|
|
35
|
+
无公式错误,统一社会信用代码保持文本。
|
|
36
|
+
|
|
37
|
+
详细证据见 `docs/UI-WORKFLOW-V2-ACCEPTANCE.md` 第 9 节。
|
|
38
|
+
|
|
39
|
+
## 升级与回滚
|
|
40
|
+
|
|
41
|
+
- 升级:安装 `dsh-data-cleaning-agent@0.7.0`,完全停止并重新运行 `dsh web`。
|
|
42
|
+
- 回滚:重新安装 `dsh-data-cleaning-agent@0.6.3`,完全重启 DSH。
|
|
43
|
+
- 本版本不修改 `dc_workflows_v2` 持久化 schema,也不删除旧任务或耐久制品。
|
|
44
|
+
- 旧任务维持创建时的字段选择和既有制品;如需新增字段,升级后创建新任务并重新生成结果。
|
|
@@ -82,3 +82,43 @@ npm pack --dry-run --json --cache .npm-cache
|
|
|
82
82
|
版本确定为 **0.6.0**,原因是新增 Host 工作流 API、持久化 domain、耐久制品和完整五步业务流程。
|
|
83
83
|
发布按顺序执行:最终代码审查 → 版本/README/Changelog 快照 → commit/push → Tag → OIDC npm 发布 →
|
|
84
84
|
GitHub Release → 公共 Registry 全新安装。验收记录本身不等于外部平台已经完成发布。
|
|
85
|
+
|
|
86
|
+
## 9. 2026-09-05 · 第一批 40 字段与第二批 58 字段验收
|
|
87
|
+
|
|
88
|
+
### 9.1 契约与界面
|
|
89
|
+
|
|
90
|
+
- 字段目录共 128 个一对一字段:基础 30、第一批 40、第二批 58;字段 ID、中文表头、来源工具和批次由
|
|
91
|
+
`lib/qcc-field-catalog.js` 单一来源管理。
|
|
92
|
+
- 第一批覆盖联系方式 6、上市信息 15、税务开票 8、进出口信用 11;第二批覆盖企业自身风险 38、
|
|
93
|
+
企业关联风险 20。
|
|
94
|
+
- 提示词向导和规则页均按维度分组展示字段,支持组内全选/清空;调用量按“唯一企业数 ×(主体定位 +
|
|
95
|
+
去重后的来源工具)”精确估算,并在 300 次硬上限前阻断。
|
|
96
|
+
- 风险类明细数组只在 Host 内透视为稳定计数和摘要,不进入单元格;所有输出保持一企业一行、单字段一单元格。
|
|
97
|
+
|
|
98
|
+
### 9.2 真实 DSH + QCC 回归
|
|
99
|
+
|
|
100
|
+
环境为本机 DSH `0.1.1-rc.2`,由市场安装包覆盖当前本地候选代码;使用当前用户自己连接的企查查 MCP
|
|
101
|
+
账号。输入两家企业,选择基础 5 字段以及第一、二批全部 98 字段,共 103 个补全字段。
|
|
102
|
+
|
|
103
|
+
| 验收项 | 实测结果 |
|
|
104
|
+
| --- | --- |
|
|
105
|
+
| 输入解析 | 2 行、2 个唯一企业,未再复现“两条只识别一条” |
|
|
106
|
+
| 来源工具 | 主体定位、工商、联系方式、上市、税务开票、进出口信用、自身风险、关联风险,共 8 个 |
|
|
107
|
+
| 调用估算 / 实际 | 16 / 16,全部成功 |
|
|
108
|
+
| 任务 | `g5-e7dfb2a9-e72a-4866-9813-d8ad5a119b17`,`completed` |
|
|
109
|
+
| 业务结果 | 已补全 2、待核验 0、未匹配 0、失败 0 |
|
|
110
|
+
| 耐久制品 | 结果与异常清单的 CSV/XLSX 四件套均生成,可从任务历史恢复下载 |
|
|
111
|
+
|
|
112
|
+
真实结果工作簿 `清洗补全结果!A1:DB3` 共 106 列、2 条数据:原始主体列 1 + 所选字段 103 +
|
|
113
|
+
匹配状态 1 + 数据来源 1。第一批 40 和第二批 58 的预期中文表头全部存在,无重复表头、无内部英文表头、
|
|
114
|
+
无公式错误;两家企业统一社会信用代码均以文本保留。未上市企业的上市字段为空,未构造不存在的数据;
|
|
115
|
+
风险为零的计数保留数值 0。
|
|
116
|
+
|
|
117
|
+
### 9.3 非阻断观察项
|
|
118
|
+
|
|
119
|
+
生产返回的企业关联风险目录包含当前固定目录以外的扩展标签,因此审计记录
|
|
120
|
+
`QCC_RISK_CATALOG_DRIFT`。本次所选 20 个关联风险字段均完整输出,故不阻断双批验收。审计事件现额外保留
|
|
121
|
+
受限、脱敏后的 `catalogVersion`、`missing` 与 `unknown` 标签,便于后续根据生产目录升级固定字段契约,
|
|
122
|
+
而不是静默吞掉或擅自把动态数组写入单元格。
|
|
123
|
+
|
|
124
|
+
**结论:第一批 40 字段与第二批 58 字段功能、调用编排、中文导出及真实两企业闭环验收通过。**
|
package/docs/UI-WORKFLOW-V2.md
CHANGED
|
@@ -18,12 +18,19 @@
|
|
|
18
18
|
|
|
19
19
|
## 2. 当前范围
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
当前字段目录共 128 项,UI/Host/XLSX 按 8 个来源工具分组:
|
|
22
22
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
23
|
+
- 基础 30 项:`get_company_registration_info`(企业工商信息,27 项)和 `get_company_profile`(企业简介,3 项)。
|
|
24
|
+
- 第一批 40 项:`get_contact_info`(联系方式,6 项)、`get_listing_info`(上市信息,15 项)、`get_tax_invoice_info`(税务开票,8 项)、`get_import_export_credit`(进出口信用,11 项)。
|
|
25
|
+
- 第二批 58 项:`get_company_risk_scan`(企业自身风险扫描,38 项)和 `get_company_related_risk_scan`(企业关联风险扫描,20 项)。
|
|
26
|
+
- 基础工商:企业名称、统一社会信用代码、注册号、组织机构代码、纳税人识别号、登记状态、法定代表人、注册/实缴资本、成立日期、企业类型、核准日期、登记机关、纳税人资质、支付系统行号、进出口企业代码、企业简称、英文名。
|
|
27
|
+
- 地址与地区:注册地址、通信地址、所属地区原值。
|
|
28
|
+
- 经营信息:经营范围、国标行业、企查查行业、营业期限、人员规模、参保人数、分支机构参保人数、企业简介、产业链概览。
|
|
29
|
+
- 上传列“联系电话”仍可作为本地质量检查字段;QCC 联系方式另以“首选联系电话/邮箱/官网”等字段输出。电话、邮箱和网址全集不拼接进单元格。
|
|
30
|
+
- 风险字段只输出扫描工具已返回的聚合计数、命中摘要与重点维度命中关联方数;风险明细、关联方名单和下钻结果不进入一企一行主表。
|
|
31
|
+
- 一级行业、二级行业、省、市、区县、曾用名和知识产权摘要不在当前目录;不得推断、拼接或用其他字段冒充。
|
|
32
|
+
|
|
33
|
+
字段来源、185 工具审计及后续可适配字段详见 `docs/QCC-185-ONE-TO-ONE-FIELD-CATALOG.md`。
|
|
27
34
|
|
|
28
35
|
历史域、人员域、招投标域已明确延期,不进入当前实现或字段目录。
|
|
29
36
|
|
|
@@ -47,12 +54,14 @@ draft → uploaded → rules_confirmed → diagnosed(可选)
|
|
|
47
54
|
- 至少映射一个主体锚点:`company_name`、`credit_no`、`reg_no`。
|
|
48
55
|
- 同一目标字段不能被多个输入列重复映射。
|
|
49
56
|
- 同一输入列不能重复映射到多个目标;未知目标字段按契约错误处理,不静默忽略。
|
|
50
|
-
-
|
|
57
|
+
- 企业名称可以结合输入中的地址、所属地区、电话辅助人工核验,但辅助字段不能取代主体锚点,也不因此成为 QCC 输出字段。
|
|
51
58
|
- 匹配结果只保存状态、数量汇总、运行引用和可审计依据;不得生成或展示无来源的置信度百分比。
|
|
52
59
|
- 多候选必须进入 `review_required`;人工确认完成后才能进入补全。
|
|
53
60
|
- `exact`、`candidate`、`confirmed`、`unresolved`、`failed` 是互斥数量,合计不得超过 `total`。
|
|
54
61
|
|
|
55
|
-
|
|
62
|
+
目录单一来源位于 `lib/qcc-field-catalog.js`,`lib/workflow-contract.js` 对外发布只读契约;Client 仅保留 Host 契约暂不可用时的同版本降级快照。
|
|
63
|
+
|
|
64
|
+
所选字段先按 `sourceTool` 去重,再执行 `主体查询 + 所选来源工具`。同一工具选择多个字段时每家企业只调用一次;Host 在任何 QCC 调用前以 `唯一企业数 × (1 + 来源工具数)` 校验 300 次调用上限。
|
|
56
65
|
|
|
57
66
|
## 5. Host 持久化与隐私边界
|
|
58
67
|
|