dsh-scout 0.8.1 → 0.9.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/README.en.md +18 -5
- package/README.md +20 -5
- package/package.json +12 -10
- package/scripts/check-release.mjs +23 -0
- package/scripts/profile-smoke.mjs +3 -7
package/README.en.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
[](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/ci.yml)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](package.json)
|
|
6
|
-
[](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/compatibility-nightly.yml)
|
|
7
|
+
[](tests/model.test.mjs)
|
|
8
8
|
[](README.md)
|
|
9
9
|
|
|
10
10
|
**司察(Scout)** — evidence-driven company & job due-diligence plugin for [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness).
|
|
@@ -49,7 +49,7 @@ pnpm test
|
|
|
49
49
|
pnpm run check:release
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
The tests cover the conservative decision default, evidence-level constraints, identity verification, session isolation, report rendering, export/import round-trips, auto-persist, question generation, and tool cleanup on unload. `check:release` additionally packs the plugin, installs it into
|
|
52
|
+
The 34 tests cover the conservative decision default, evidence-level constraints, identity verification, session isolation, report rendering, export/import round-trips, auto-persist, question generation, and tool cleanup on unload. `check:release` additionally packs the plugin, installs it into isolated temporary DSH profiles for the four exact versions in the table below, verifies `--dump-config`, checks the mounted tools, observes the Cordis unload disposer, and checks package contents. `test:profile` uses `DSH_BIN` when explicitly set; otherwise it downloads the exact `DSH_VERSION` (default `0.2.0-rc.2`) through `npx`.
|
|
53
53
|
|
|
54
54
|
## Install into a DSH profile
|
|
55
55
|
|
|
@@ -60,7 +60,20 @@ dsh plugin --profile scout-demo add github:MaxHou-infinity/dsh-scout#<commit>
|
|
|
60
60
|
dsh --profile scout-demo --dump-config
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
Git installs fetch source and run `prepare`. pnpm may require an explicit `allowBuilds` entry for `dsh-scout`; only allow a pinned source you have reviewed. The
|
|
63
|
+
Git installs fetch source and run `prepare`. pnpm may require an explicit `allowBuilds` entry for `dsh-scout`; only allow a pinned source you have reviewed. The `@deepseek-ai/dsh-tools` peer range is `>=0.1.0-rc.6 <0.3.0-0`; the `@deepseek-ai/cordis` peer range is `>=4.0.2 <5`.
|
|
64
|
+
|
|
65
|
+
### DSH compatibility
|
|
66
|
+
|
|
67
|
+
DSH checks a plugin's `@deepseek-ai/dsh-*` peers at install and startup, including prereleases. The `<0.3.0-0` upper bound excludes `0.3.0-alpha` and later releases. **Verified on 2026-10-12** with the 0.9.0 candidate tarball in isolated profiles, covering installation, cold startup, tool mounting, and unload:
|
|
68
|
+
|
|
69
|
+
| DSH version | npm channel on that date | Result |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| `0.1.0-rc.6` | Declared lower bound | Pass |
|
|
72
|
+
| `0.1.2-rc.1` | Older release regression | Pass |
|
|
73
|
+
| `0.2.0-rc.2` | `latest` / `next` | Pass |
|
|
74
|
+
| `0.2.1-alpha.2` | `alpha` | Pass |
|
|
75
|
+
|
|
76
|
+
Future `0.2.x` versions still require runtime verification. The [nightly compatibility workflow](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/compatibility-nightly.yml) resolves npm's `latest`, `next`, and `alpha` tags to exact versions before testing each one. The badge shows the latest workflow result; this table records versions already verified.
|
|
64
77
|
|
|
65
78
|
## Configuration (optional)
|
|
66
79
|
|
|
@@ -87,4 +100,4 @@ See [the product contract](docs/dsh-scout-product-contract.md) for the full MVP
|
|
|
87
100
|
|
|
88
101
|
## Community
|
|
89
102
|
|
|
90
|
-
This is an independent community plugin for DeepSeek Harness. The repository uses the `dsh-plugin`, `deepseek-harness`, `due-diligence`, `company-research`, `job-research`, `hr-tech`, and `evidence-based` topics for discovery.
|
|
103
|
+
This is an independent community plugin for DeepSeek Harness. The repository uses the `dsh-plugin`, `deepseek-harness`, `due-diligence`, `company-research`, `job-research`, `hr-tech`, and `evidence-based` topics for discovery. For install or startup failures, use the [compatibility issue template](https://github.com/MaxHou-infinity/dsh-scout/issues/new?template=compatibility.yml) with exact versions and redacted logs.
|
package/README.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
[](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/ci.yml)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](package.json)
|
|
6
|
-
[](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/compatibility-nightly.yml)
|
|
7
|
+
[](tests/model.test.mjs)
|
|
8
8
|
[](README.en.md)
|
|
9
9
|
|
|
10
10
|
**司察(Scout)** —— 面向 [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) 的**证据驱动型公司与岗位尽调 / 背调插件**。
|
|
@@ -119,7 +119,20 @@ dsh plugin --profile scout-demo add github:MaxHou-infinity/dsh-scout#<commit>
|
|
|
119
119
|
dsh --profile scout-demo --dump-config # 验证工具挂载
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
-
要求:Node ≥ 22.19
|
|
122
|
+
要求:Node ≥ 22.19;`@deepseek-ai/dsh-tools` peer 范围为 `>=0.1.0-rc.6 <0.3.0-0`,`@deepseek-ai/cordis` 为 `>=4.0.2 <5`。Git 安装会运行 `prepare`,pnpm 可能需要为 `dsh-scout` 显式添加 `allowBuilds`(只放行你审查过的固定版本)。
|
|
123
|
+
|
|
124
|
+
### DSH 兼容性
|
|
125
|
+
|
|
126
|
+
DSH 安装和启动时会检查插件的 `@deepseek-ai/dsh-*` peer;预发布版本也参与匹配。上界 `<0.3.0-0` 排除 `0.3.0-alpha` 及之后的版本。以下是 **2026-10-12 在隔离 profile 中用 0.9.0 候选 tarball 实测**的版本,覆盖安装、冷启动、工具挂载和卸载:
|
|
127
|
+
|
|
128
|
+
| DSH 版本 | npm 渠道(核对当日) | 结果 |
|
|
129
|
+
| --- | --- | --- |
|
|
130
|
+
| `0.1.0-rc.6` | 兼容范围下界 | 通过 |
|
|
131
|
+
| `0.1.2-rc.1` | 旧版回归 | 通过 |
|
|
132
|
+
| `0.2.0-rc.2` | `latest` / `next` | 通过 |
|
|
133
|
+
| `0.2.1-alpha.2` | `alpha` | 通过 |
|
|
134
|
+
|
|
135
|
+
未来的 `0.2.x` 版本虽落在声明范围内,仍需实际验证。[夜间兼容检查](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/compatibility-nightly.yml)每天解析 npm 的 `latest`、`next`、`alpha` 到精确版本,再运行测试和隔离 profile 检查。徽章显示该工作流最近一次运行结果;以上表格记录已完成的精确版本验证。
|
|
123
136
|
|
|
124
137
|
## 配置(可选)
|
|
125
138
|
|
|
@@ -162,10 +175,12 @@ report.md 当前报告快照
|
|
|
162
175
|
|
|
163
176
|
```sh
|
|
164
177
|
pnpm install
|
|
165
|
-
pnpm test #
|
|
178
|
+
pnpm test # 34 个测试:决策默认值/证据约束/主体核验/会话隔离/报告渲染/导出导入往返/自动持久化/面试问题/采集→主张流转
|
|
166
179
|
pnpm run check:release
|
|
167
180
|
```
|
|
168
181
|
|
|
182
|
+
`check:release` 在运行 34 项测试后,分别用表中的四个精确 DSH 版本安装候选 tarball 并检查 profile 生命周期,最后检查打包内容。
|
|
183
|
+
|
|
169
184
|
## 路线图
|
|
170
185
|
|
|
171
186
|
- ✅ v0.1:证据纪律、三态决策、结构化报告、会话隔离
|
|
@@ -178,4 +193,4 @@ pnpm run check:release
|
|
|
178
193
|
|
|
179
194
|
## 社区
|
|
180
195
|
|
|
181
|
-
面向 DeepSeek Harness 的独立社区插件(Topic:`dsh-plugin`、`deepseek-harness`、`due-diligence`、`company-research`、`job-research`、`hr-tech`、`evidence-based
|
|
196
|
+
面向 DeepSeek Harness 的独立社区插件(Topic:`dsh-plugin`、`deepseek-harness`、`due-diligence`、`company-research`、`job-research`、`hr-tech`、`evidence-based`)。安装或启动遇到问题时,请用[兼容性问题模板](https://github.com/MaxHou-infinity/dsh-scout/issues/new?template=compatibility.yml)提供精确版本和脱敏日志;也欢迎其他 Issues / PR。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-scout",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Evidence-driven company and job intelligence plugin for DeepSeek Harness.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -17,11 +17,13 @@
|
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
19
19
|
"cordis.patch.yml",
|
|
20
|
-
"scripts",
|
|
20
|
+
"scripts/check-release.mjs",
|
|
21
|
+
"scripts/profile-smoke.mjs",
|
|
21
22
|
"README.md",
|
|
22
23
|
"LICENSE",
|
|
23
|
-
"docs",
|
|
24
|
-
"
|
|
24
|
+
"docs/dsh-scout-product-contract.md",
|
|
25
|
+
"docs/fixtures/dsh-scout/snapmaker-hr-head.json",
|
|
26
|
+
"tests/model.test.mjs",
|
|
25
27
|
"README.en.md"
|
|
26
28
|
],
|
|
27
29
|
"scripts": {
|
|
@@ -29,15 +31,15 @@
|
|
|
29
31
|
"test": "npm run build && node --test tests/*.test.mjs",
|
|
30
32
|
"check": "npm test",
|
|
31
33
|
"test:profile": "node scripts/profile-smoke.mjs",
|
|
32
|
-
"check:release": "
|
|
34
|
+
"check:release": "node scripts/check-release.mjs",
|
|
33
35
|
"prepare": "npm run build"
|
|
34
36
|
},
|
|
35
37
|
"engines": {
|
|
36
38
|
"node": ">=22.19.0"
|
|
37
39
|
},
|
|
38
40
|
"peerDependencies": {
|
|
39
|
-
"@deepseek-ai/cordis": ">=4.0.
|
|
40
|
-
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.6 <0.
|
|
41
|
+
"@deepseek-ai/cordis": ">=4.0.2 <5",
|
|
42
|
+
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.6 <0.3.0-0"
|
|
41
43
|
},
|
|
42
44
|
"peerDependenciesMeta": {
|
|
43
45
|
"@deepseek-ai/cordis": {
|
|
@@ -48,12 +50,12 @@
|
|
|
48
50
|
}
|
|
49
51
|
},
|
|
50
52
|
"devDependencies": {
|
|
51
|
-
"@deepseek-ai/cordis": "4.0.
|
|
52
|
-
"@deepseek-ai/dsh-tools": "0.
|
|
53
|
+
"@deepseek-ai/cordis": "4.0.4",
|
|
54
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2",
|
|
53
55
|
"typescript": "^5.8.3"
|
|
54
56
|
},
|
|
55
57
|
"dependencies": {
|
|
56
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
58
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
57
59
|
},
|
|
58
60
|
"dsh": {
|
|
59
61
|
"bundle": {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process'
|
|
2
|
+
|
|
3
|
+
const command = name => process.platform === 'win32' ? `${name}.cmd` : name
|
|
4
|
+
const verifiedDshVersions = [
|
|
5
|
+
'0.1.0-rc.6',
|
|
6
|
+
'0.1.2-rc.1',
|
|
7
|
+
'0.2.0-rc.2',
|
|
8
|
+
'0.2.1-alpha.2',
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
function run(program, args, env = process.env) {
|
|
12
|
+
const result = spawnSync(command(program), args, { env, stdio: 'inherit' })
|
|
13
|
+
if (result.error) throw result.error
|
|
14
|
+
if (result.status !== 0) {
|
|
15
|
+
throw new Error(`${program} ${args.join(' ')} failed with exit code ${result.status}`)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
run('npm', ['test'])
|
|
20
|
+
for (const version of verifiedDshVersions) {
|
|
21
|
+
run('npm', ['run', 'test:profile'], { ...process.env, DSH_VERSION: version })
|
|
22
|
+
}
|
|
23
|
+
run('pnpm', ['pack', '--dry-run'])
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import assert from 'node:assert/strict'
|
|
2
|
-
import { existsSync } from 'node:fs'
|
|
3
2
|
import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
|
|
4
3
|
import { tmpdir } from 'node:os'
|
|
5
4
|
import { join } from 'node:path'
|
|
6
5
|
import { spawnSync } from 'node:child_process'
|
|
7
6
|
|
|
8
|
-
const DSH_VERSION = '0.
|
|
7
|
+
const DSH_VERSION = process.env.DSH_VERSION ?? '0.2.0-rc.2'
|
|
9
8
|
const command = name => process.platform === 'win32' ? `${name}.cmd` : name
|
|
10
|
-
const localDsh = join(process.cwd(), 'node_modules', '.bin', command('dsh'))
|
|
11
9
|
const dshCommand = process.env.DSH_BIN
|
|
12
10
|
? { program: process.env.DSH_BIN, prefix: [] }
|
|
13
|
-
:
|
|
14
|
-
? { program: localDsh, prefix: [] }
|
|
15
|
-
: { program: 'npx', prefix: ['--yes', `@deepseek-ai/dsh@${DSH_VERSION}`] }
|
|
11
|
+
: { program: 'npx', prefix: ['--yes', `@deepseek-ai/dsh@${DSH_VERSION}`] }
|
|
16
12
|
|
|
17
13
|
function run(program, args, options = {}) {
|
|
18
14
|
const result = spawnSync(command(program), args, {
|
|
@@ -95,7 +91,7 @@ export async function apply(ctx) {
|
|
|
95
91
|
], { capture: true, env: gateEnv })
|
|
96
92
|
assert.match(lifecycle, /DSH_SCOUT_LOAD/)
|
|
97
93
|
assert.match(lifecycle, /DSH_SCOUT_UNLOAD/)
|
|
98
|
-
console.log(
|
|
94
|
+
console.log(`dsh-scout profile smoke: PASS (dsh ${DSH_VERSION})`)
|
|
99
95
|
} finally {
|
|
100
96
|
await rm(gateRoot, { recursive: true, force: true })
|
|
101
97
|
}
|