2nd dokployH
Find a file
Tianyi Cui fb3f3a69ec fix: extend the schema cross-check to nested key paths; scope the catalog framing
Review findings on the config catalog:

The schema-subset check compared only top-level z.object keys against
top-level type members, so a nested loader-accepted key (agents[].id,
agentOptions.model, capabilities.*) missing from the declared type would
pass the gate unseen. The walk now collects nested object/array
compositions as key paths and resolves each against the declared config
type — through interfaces (heritage included), aliases, literals,
intersections, unions, arrays, indexed access, Partial-style wrappers, and
type references across package-local and workspace imports (re-export
chains included). The check stays presence-only and one-directional, and
only a definite miss is a violation: a path crossing a type the walk
cannot enumerate (an external package's) is skipped, never mis-reported.
The recursion guard applies at named declarations only — a structural
first child shares its span start with its parent, so a span-keyed guard
on every node mistakes ordinary descent for a cycle and silently turns
definite misses into unknowns.

The page and RFC framing also overstated the catalog as the exact
cordis.yml-settable surface: the paste is the plugin's full declared
config type, and a field the runtime schema deliberately excludes (the ACP
bridge's test-injected stream) is a runtime-only seam its own JSDoc marks.
Both now say so.

Five spec cases pin the new behavior: nested hidden key, workspace
intersection via star re-export, Partial wrapper, indexed-access
composition, and the external-type unknown path.
2026-07-06 23:06:03 +08:00
.agents/skills docs: state the dependent check's contract as zero-versus-non-zero 2026-07-06 01:19:46 +08:00
.claude docs: accuracy sweep, architecture restructure, two ADRs, review skill 2026-06-13 22:05:34 +08:00
.github/workflows docs(graphs): verify mermaid syntax 2026-07-03 01:32:01 +08:00
docs fix: extend the schema cross-check to nested key paths; scope the catalog framing 2026-07-06 23:06:03 +08:00
examples test: re-record snapshot goldens — every transcript gains its request/header event 2026-07-06 03:39:48 +08:00
packages fix: extend the schema cross-check to nested key paths; scope the catalog framing 2026-07-06 23:06:03 +08:00
scripts fix: extend the schema cross-check to nested key paths; scope the catalog framing 2026-07-06 23:06:03 +08:00
vendor Use explicit ts specifiers for declarations 2026-06-22 06:11:00 +08:00
.gitignore Add web capability seam: ctx.web, search/fetch providers, web tools 2026-06-26 19:12:13 +08:00
AGENTS.md Clarify condensing in doc budget guidance 2026-07-06 16:31:18 +08:00
CLAUDE.md Initialize repo with README, AGENTS.md, and CLAUDE.md symlink 2026-06-10 22:58:56 +08:00
eslint.config.mjs fix: make constraints, lint and md-links happy 2026-06-22 01:38:44 +08:00
knip.json chore: knip learns agent-loop's e2e entry (ported from #162 with request-cache.e2e.ts) 2026-07-06 04:01:56 +08:00
lefthook.yml feat(acp-example): snapshot harness, normalizers, wiring, and handshake scenario 2026-06-19 03:36:12 +08:00
LICENSE Initialize repo with README, AGENTS.md, and CLAUDE.md symlink 2026-06-10 22:58:56 +08:00
package.json feat: generated plugin config catalog (docs/config-catalog.md) 2026-07-06 21:57:17 +08:00
pnpm-lock.yaml review: the persona becomes the system-prompt plugin's deployment config 2026-07-05 23:23:46 +08:00
pnpm-workspace.yaml Reorganize packages into a modular hierarchy 2026-06-20 22:55:20 +08:00
README.i18n.yaml docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
README.md docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
README.zh.md docs: revise graph docs from review 2026-07-05 01:25:58 +08:00
tsconfig.base.json Merge branch 'worktree-hooks-d-subagent' into worktree-hooks-e-protocol 2026-07-04 03:01:22 +08:00
tsconfig.build.json feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot 2026-07-04 16:43:06 +08:00
tsconfig.json feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot 2026-07-04 16:43:06 +08:00
tsdown.config.ts Merge remote-tracking branch 'origin/master' into feat/adr0016-type-build-check 2026-06-22 00:35:51 +08:00
vitest.config.ts fix(docs): address Codex review round 3 — last three moved-policy citations 2026-07-04 16:02:39 +08:00
vitest.e2e.config.ts Merge remote-tracking branch 'origin/master' into feat/adr0016-type-build-check 2026-06-22 00:35:51 +08:00
vitest.snapshot.config.ts feat: one tsconfig.json and different rules 2026-06-19 23:35:47 +08:00

DeepSeek Harness

English | 中文

The DeepSeek Harness SDK is a plugin-based SDK for building agent harnesses.

Development

This monorepo is built on the Cordis framework (vendored as source under vendor/), microkernel-style: everything is a plugin.

pnpm install
pnpm run test          # vitest
pnpm run demo:repl     # REPL agent demo (needs DEEPSEEK_API_KEY)
pnpm run demo:acp      # ACP server agent demo (needs DEEPSEEK_API_KEY)

For humans, start with the development guide for local setup, hooks, environment variables, and quality gates, then read the architecture design and documentation graph index before package work. Local context lives in packages/ and vendor/.

For agents, follow AGENTS.md.