mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-29 04:26:38 +00:00
fix(repo): close examples migration review gaps
This commit is contained in:
+2
-2
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.md
|
||||
2026-08-10-source-run-without-managed-installer.md: ce618c88327fc11ad0cad9042e171800a5492663
|
||||
2026-08-10-source-run-without-managed-installer.zh.md: 95dc669035bca5bd7d04fe6a7bb1eb073e0005a2
|
||||
2026-08-10-source-run-without-managed-installer.md: b9e86c3c325b41126576cbe5d5d1d53b71e80051
|
||||
2026-08-10-source-run-without-managed-installer.zh.md: 48c1fdb7cced6383e8870ab099dec5d181d5ccbf
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ That lifecycle is not required to run or develop DeepSeek Harness from a source
|
||||
|
||||
## Decision
|
||||
|
||||
The repository supports source execution through its root `pnpm` scripts. The `dsh` entry in `package.json` launches `apps/cli/src/bin.ts` directly through `node --import tsx/esm`; artifact generation is the separate `pnpm run build` operation defined by the [source-launch/build separation decision](2026-08-12-separate-source-launch-from-build.md). The package script forwards arguments and inherits the caller's environment, including `NODE_USE_ENV_PROXY=1` when a supporting Node version must honor `HTTP_PROXY` and `HTTPS_PROXY`. Users select Web with `pnpm dsh web` and headless execution with `pnpm dsh --profile headless "task"`. The independent ACP example remains available through `pnpm run demo:acp`.
|
||||
The repository supports source execution through its root `pnpm` scripts. The `dsh` entry in `package.json` launches `apps/cli/src/bin.ts` directly through `node --import tsx/esm`; artifact generation is the separate `pnpm run build` operation defined by the [source-launch/build separation decision](2026-08-12-separate-source-launch-from-build.md). The package script forwards arguments and inherits the caller's environment, including `NODE_USE_ENV_PROXY=1` when a supporting Node version must honor `HTTP_PROXY` and `HTTPS_PROXY`. Users select Web with `pnpm dsh web`, headless execution with `pnpm dsh --profile headless "task"`, and ACP automation with `pnpm dsh --profile acp`.
|
||||
|
||||
The repository does not distribute a source installer, an installer test suite, or skills that assume a managed `current` symlink and timestamped staging worktrees. Users own source checkout placement, Git updates, and any launcher they create outside the repository.
|
||||
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ Status: implemented
|
||||
|
||||
## 决策
|
||||
|
||||
仓库通过根目录的 `pnpm` 脚本支持从源码运行。`package.json` 中的 `dsh` 项通过 `node --import tsx/esm` 直接启动 `apps/cli/src/bin.ts`;产物生成是独立的 `pnpm run build` 操作,由[源码启动与构建分离决策](2026-08-12-separate-source-launch-from-build.zh.md)规定。该包脚本会转发参数并继承调用方环境;当支持环境代理的 Node 版本必须遵循 `HTTP_PROXY` 和 `HTTPS_PROXY` 时,调用方可设置 `NODE_USE_ENV_PROXY=1`。用户使用 `pnpm dsh web` 选择 Web,使用 `pnpm dsh --profile headless "task"` 选择无头执行。独立的 ACP(Agent Client Protocol)示例仍可通过 `pnpm run demo:acp` 运行。
|
||||
仓库通过根目录的 `pnpm` 脚本支持从源码运行。`package.json` 中的 `dsh` 项通过 `node --import tsx/esm` 直接启动 `apps/cli/src/bin.ts`;产物生成是独立的 `pnpm run build` 操作,由[源码启动与构建分离决策](2026-08-12-separate-source-launch-from-build.zh.md)规定。该包脚本会转发参数并继承调用方环境;当支持环境代理的 Node 版本必须遵循 `HTTP_PROXY` 和 `HTTPS_PROXY` 时,调用方可设置 `NODE_USE_ENV_PROXY=1`。用户使用 `pnpm dsh web` 选择 Web,使用 `pnpm dsh --profile headless "task"` 选择无头执行,并使用 `pnpm dsh --profile acp` 运行 ACP 自动化。
|
||||
|
||||
仓库不分发源码安装器、安装器测试套件,也不分发依赖受管理的 `current` 符号链接和带时间戳 staging worktree 的 skill。源码检出的存放位置、Git 更新,以及用户在仓库外创建的任何启动器均由用户负责。
|
||||
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/guide/github-review.md
|
||||
github-review.md: 2f777acdd0e8b4996a29a0b78262b1ba3ff9188c
|
||||
github-review.zh.md: 7518a13f3d74801dbfb4d0810c89851f4616a2ef
|
||||
github-review.md: a104c1ec8d32d23ccbcb88a492ed2a9ede474c01
|
||||
github-review.zh.md: 4800dbc65c098e871573ac01d3904e6ab1b991f9
|
||||
|
||||
@@ -25,7 +25,7 @@ printf '%s\n' "$DSH_GITHUB_WEBHOOK_SECRET"
|
||||
From a development checkout:
|
||||
|
||||
```sh
|
||||
export DSH_GITHUB_REVIEW_WORKSPACE=/Users/cty/deepseek-harness
|
||||
export DSH_GITHUB_REVIEW_WORKSPACE=/path/to/deepseek-harness
|
||||
pnpm dsh web --patch apps/cli/config/examples/github-review/cordis.yml
|
||||
```
|
||||
|
||||
@@ -89,8 +89,8 @@ It can also map repositories to different local paths:
|
||||
|
||||
```js
|
||||
const workspacePath = {
|
||||
'deepseek-harness/deepseek-harness': '/Users/cty/deepseek-harness',
|
||||
'deepseek-harness/dsh-sdk': '/Users/cty/dsh-sdk',
|
||||
'deepseek-harness/deepseek-harness': '/path/to/deepseek-harness',
|
||||
'deepseek-harness/dsh-sdk': '/path/to/dsh-sdk',
|
||||
}[payload.repository.full_name]
|
||||
if (workspacePath === undefined) return null
|
||||
```
|
||||
|
||||
@@ -25,7 +25,7 @@ printf '%s\n' "$DSH_GITHUB_WEBHOOK_SECRET"
|
||||
在开发 checkout 中运行:
|
||||
|
||||
```sh
|
||||
export DSH_GITHUB_REVIEW_WORKSPACE=/Users/cty/deepseek-harness
|
||||
export DSH_GITHUB_REVIEW_WORKSPACE=/path/to/deepseek-harness
|
||||
pnpm dsh web --patch apps/cli/config/examples/github-review/cordis.yml
|
||||
```
|
||||
|
||||
@@ -89,8 +89,8 @@ if (!response.ok || (await response.json()).automaticReview !== true) return nul
|
||||
|
||||
```js
|
||||
const workspacePath = {
|
||||
'deepseek-harness/deepseek-harness': '/Users/cty/deepseek-harness',
|
||||
'deepseek-harness/dsh-sdk': '/Users/cty/dsh-sdk',
|
||||
'deepseek-harness/deepseek-harness': '/path/to/deepseek-harness',
|
||||
'deepseek-harness/dsh-sdk': '/path/to/dsh-sdk',
|
||||
}[payload.repository.full_name]
|
||||
if (workspacePath === undefined) return null
|
||||
```
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/acp/acp/README.md
|
||||
README.md: a3df8deea1541a65692f8ec31c96dd2960022931
|
||||
README.zh.md: 75b045de87073d7b164e400959edc3f82a056ee0
|
||||
README.md: 0e8689632d7115bd65f4849e2ba5d402a1cb62d4
|
||||
README.zh.md: 0dcde8c2467481454181d146a1eaae2a3ebac1dc
|
||||
|
||||
@@ -81,7 +81,7 @@ Prompt settlement precedence is explicit cancellation, committed-output failure,
|
||||
|
||||
## Running
|
||||
|
||||
`pnpm --dir /path/to/deepseek-harness run demo:acp` boots the repository's automation server composition. The generic keyless conformance test drives this bin using only the ACP SDK, including model selection, MCP attachment, close, process restart, list/resume, and cancellation.
|
||||
`pnpm --dir /path/to/deepseek-harness dsh --profile acp` boots the repository's automation server profile. The generic keyless conformance test launches this profile through `dsh` and drives it using only the ACP SDK, including model selection, MCP attachment, close, process restart, list/resume, and cancellation.
|
||||
|
||||
## Model Experience
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ ACP 客户端是受信任的自动化控制器。stdio 声明授权 DSH 在会
|
||||
|
||||
## 运行
|
||||
|
||||
`pnpm --dir /path/to/deepseek-harness run demo:acp` 启动仓库的自动化服务器组合。通用 keyless conformance 测试只使用 ACP SDK 驱动此 bin,覆盖模型选择、MCP 挂载、关闭、进程重启、列出/恢复和取消。
|
||||
`pnpm --dir /path/to/deepseek-harness dsh --profile acp` 启动仓库的自动化服务器 profile。通用 keyless conformance 测试通过 `dsh` 启动此 profile,并只使用 ACP SDK 驱动它,覆盖模型选择、MCP 挂载、关闭、进程重启、列出/恢复和取消。
|
||||
|
||||
## 模型体验
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ try {
|
||||
.sort()
|
||||
|
||||
process.stdout.write(`${JSON.stringify({
|
||||
registeredProviders: ctx.subagents.list(),
|
||||
registeredProviders: ctx.subagents.list().sort(),
|
||||
providers,
|
||||
tools,
|
||||
jobTools,
|
||||
|
||||
@@ -40,7 +40,7 @@ describe('product-provider public Loader composition', () => {
|
||||
|
||||
expect(stderr).toBe('')
|
||||
expect(JSON.parse(stdout)).toEqual({
|
||||
registeredProviders: ['codex', 'claude-primary', 'claude-secondary', 'claude-code'],
|
||||
registeredProviders: ['claude-code', 'claude-primary', 'claude-secondary', 'codex'],
|
||||
providers: [
|
||||
{
|
||||
name: 'codex',
|
||||
|
||||
Reference in New Issue
Block a user