2nd dokployH
Find a file
NI0317 a7bfade7eb refactor(pty): rename model-facing tools to terminal_* and harden teardown
Rename the six model-facing tools pty_* -> terminal_* and align every
description, guidance section, ACP card title, and rendered result to
terminal terminology. Package and service internals keep their technical
PTY names (PtyService, "unknown PTY session", node-pty).

Harden the local backend teardown:
- a failed close is retryable: drop the memoized rejection so a later
  terminal_close re-runs against the live process table
- service disposal clears the backend, reservation, and owner-cleanup
  registries even when a close fails
- stop readiness polling before teardown so an in-flight send settles as
  session_exit instead of a mis-inferred wait reason
- bound the sanitizer's pending buffer against unterminated escape runs

Update the tool catalog, package READMEs, the bilingual Agent Note, and the
acp/headless pty-tools snapshots to match.
2026-07-21 19:29:56 +08:00
.agents refactor(pty): rename model-facing tools to terminal_* and harden teardown 2026-07-21 19:29:56 +08:00
.claude docs: accuracy sweep, architecture restructure, two ADRs, review skill 2026-06-13 22:05:34 +08:00
.github/workflows Merge remote-tracking branch 'origin/master' into chore/import-landlock-run 2026-07-20 11:11:09 +08:00
docs refactor(pty): rename model-facing tools to terminal_* and harden teardown 2026-07-21 19:29:56 +08:00
examples refactor(pty): rename model-facing tools to terminal_* and harden teardown 2026-07-21 19:29:56 +08:00
native docs(landlock-run): align source and release guidance 2026-07-20 12:25:43 +08:00
packages refactor(pty): rename model-facing tools to terminal_* and harden teardown 2026-07-21 19:29:56 +08:00
python Merge remote-tracking branch 'origin/master' into cross-family-fs-sandbox 2026-07-20 11:44:37 +08:00
scripts refactor(pty): rename model-facing tools to terminal_* and harden teardown 2026-07-21 19:29:56 +08:00
skills/create-dsh-sdk-project feat(create-sdk): headless creation via --config/--config-json + NDJSON + skill 2026-07-18 16:11:26 +08:00
vendor Merge origin/master into feat/website-docs 2026-07-16 21:36:43 +08:00
website feat: add persistent PTY sessions 2026-07-21 16:01:00 +08:00
.editorconfig Declare LF and final-newline conventions in .editorconfig 2026-07-15 16:09:12 +08:00
.gitattributes Pin LF working trees via .gitattributes 2026-07-15 16:09:12 +08:00
.gitignore chore: ignore NodeNext typecheck temp dirs 2026-07-15 23:57:44 +08:00
.gitlab-ci.yml python: derive release version from repository 2026-07-13 17:49:01 +08:00
.jscpd.json chore: tighten TypeScript duplication lint 2026-07-14 00:24:04 +08:00
AGENTS.md feat: add persistent PTY sessions 2026-07-21 16:01:00 +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 Merge remote-tracking branch 'origin/master' into chore/import-landlock-run 2026-07-16 23:11:59 +08:00
knip.json chore: align one-shot demo workspace metadata 2026-07-19 13:32:04 +08:00
lefthook.yml Merge parallel pre-push gates into CI scheduler 2026-07-06 01:47:13 +08:00
LICENSE Initialize repo with README, AGENTS.md, and CLAUDE.md symlink 2026-06-10 22:58:56 +08:00
package.json Remove generated Agent Note index 2026-07-19 23:15:23 +08:00
pnpm-lock.yaml feat: add persistent PTY sessions 2026-07-21 16:01:00 +08:00
pnpm-workspace.yaml feat: add persistent PTY sessions 2026-07-21 16:01:00 +08:00
pytest.ini Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose 2026-07-14 00:40:36 +08:00
README.i18n.yaml Merge remote-tracking branch 'origin/master' into codex/cli-one-shot-demo 2026-07-19 13:17:53 +08:00
README.md Merge remote-tracking branch 'origin/master' into codex/cli-one-shot-demo 2026-07-19 13:17:53 +08:00
README.zh.md Merge remote-tracking branch 'origin/master' into codex/cli-one-shot-demo 2026-07-19 13:17:53 +08:00
tsconfig.base.json feat: add persistent PTY sessions 2026-07-21 16:01:00 +08:00
tsconfig.build.json feat: add persistent PTY sessions 2026-07-21 16:01:00 +08:00
tsconfig.json feat: add persistent PTY sessions 2026-07-21 16:01:00 +08:00
tsdown.config.ts docs: align prose with runtime contracts 2026-07-14 16:21:41 +08:00
vitest.config.ts Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
vitest.e2e.config.ts ci: add manual pi-ai provider e2e 2026-07-17 23:33:30 +08:00
vitest.snapshot.config.ts test: rename golden snapshot files to expected 2026-07-19 17:45:49 +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:echo     # keyless mock-model REPL
pnpm run demo:repl     # readline coding agent (needs DEEPSEEK_API_KEY)
pnpm run demo:tui      # full-screen TUI coding agent (needs DEEPSEEK_API_KEY)
pnpm run demo:headless -- "task" # one-shot coding agent (needs DEEPSEEK_API_KEY)
pnpm run demo:cordis   # self-referential 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.