Merge origin/master into feat/website-docs

Conflict resolution notes:
- package.json/run-gates: both sides' new doc-sync gates kept (master's
  scoped-events/readme gates + this branch's website-api/website-yaml);
  js-yaml devDeps deduped (master added them independently).
- pnpm-workspace/knip: website AND python/sdk-runtime entries kept.
- doc-typecheck/verify-type-equiv: master's condensed headers kept, website
  glob retained in both scan scopes.
- vendor/cordis/src/fiber.ts: master's lifecycle-hardening code taken; this
  branch's richer FiberState JSDoc reapplied on top. vendor/README.md logs
  both local modifications (hardening = 6, JSDoc enrichment = 7).
- pnpm-lock: regenerated from master's side (pnpm install).

Post-merge sync the gates forced (the system working as designed):
- verify-website-yaml caught 4 stale plugin names from master's package
  reorg (dsh-stdio-agent -> dsh-stdio-demo, dsh-acp-agent -> dsh-acp-demo);
  8 references fixed across guide/ and develop/.
- gen-website-api picked up master's 6 new services automatically
  (ctx.approval/permission/sandbox/sessionQuery/skills/tasks -> 6 new pages
  + sidebar); api/index.md hub updated to list them.
- AGENTS.md budget ceiling 1370 -> 1400: the website rows (layout line + two
  command lines) and master's own growth collided with the old ceiling; all
  three website rows are load-bearing (new top-level dir, new CI command).
This commit is contained in:
lintianle
2026-07-16 21:36:43 +08:00
1132 changed files with 71533 additions and 19566 deletions

View File

@@ -31,7 +31,7 @@ Harness 使用 `cordis.yml` 描述一个 Agent 加载哪些插件、以什么参
# 应用主体:把 session 管理、tool 调度、agent loop 等组装成一个可交互的终端 Agent
# 只需告诉它用哪个模型 (`model`)、什么人设 (`persona`)
- id: stdio-agent
name: '@deepseek-ai/dsh-stdio-agent'
name: '@deepseek-ai/dsh-stdio-demo'
config:
model: mock-echo
persona: 'You are echo-agent, a demo agent.'
@@ -74,7 +74,7 @@ Harness 使用 `cordis.yml` 描述一个 Agent 加载哪些插件、以什么参
# `persona` 是系统提示词,{{model}} 会被替换为实际模型名
# `resumeSessionId` 设了就恢复旧对话,没设就每次新建
- id: stdio-agent
name: '@deepseek-ai/dsh-stdio-agent'
name: '@deepseek-ai/dsh-stdio-demo'
config:
model: deepseek-v4-flash
resumeSessionId: !!js process.env.RESUME_SESSION_ID
@@ -157,7 +157,7 @@ Harness 使用 `cordis.yml` 描述一个 Agent 加载哪些插件、以什么参
name: '@deepseek-ai/dsh-tool-fs'
```
和 echo-agent 对比:同一个 `dsh-stdio-agent` 应用主体,只是把 mock 换成了真实 API,加上了更多工具插件。
和 echo-agent 对比:同一个 `dsh-stdio-demo` 应用主体,只是把 mock 换成了真实 API,加上了更多工具插件。
## 语法详解
@@ -222,7 +222,7 @@ config:
### stdio-agent(标准应用主体)
**包名:** `@deepseek-ai/dsh-stdio-agent`
**包名:** `@deepseek-ai/dsh-stdio-demo`
| 字段 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
@@ -354,7 +354,7 @@ hmr 仅用于开发环境。它需要 `node --expose-internals` 启动参数,`
1. **hmr** — 热替换(仅开发时需要)
2. **LLM 适配器** — 模型后端
3. **执行器** — bash、fs 等能力提供者
4. **应用主体** — `dsh-stdio-agent` 或 `dsh-acp-agent`
4. **应用主体** — `dsh-stdio-demo` 或 `dsh-acp-demo`
5. **附加插件** — compact、subagent、todo 等
应用主体内部已经捆绑了核心能力(session、tools、agent-loop),不需要手动加载。

View File

@@ -13,7 +13,7 @@ Harness 将一个 AI Agent(智能体) 所需要的所有能力——LLM 调
apiKey: !!js process.env.DEEPSEEK_API_KEY
# 选择应用模板
- name: '@deepseek-ai/dsh-stdio-agent'
- name: '@deepseek-ai/dsh-stdio-demo'
config:
model: deepseek-v4-flash
```

View File

@@ -90,7 +90,7 @@ agent REPL ready. Give it a coding task.
## 回头看
echo-agent 和 coding-agent 用的是同一个应用框架(`@deepseek-ai/dsh-stdio-agent`),区别只在 `cordis.yml`——换了哪些插件、填了什么配置。你以后定制自己的 Agent 也是同样的方式。
echo-agent 和 coding-agent 用的是同一个应用框架(`@deepseek-ai/dsh-stdio-demo`),区别只在 `cordis.yml`——换了哪些插件、填了什么配置。你以后定制自己的 Agent 也是同样的方式。
## 下一步