Files
deepseek-harness/examples
Hypatia May c76b7042b6 fix(compact): size the compaction e2e to actually cross threshold; sync stale docs (CBR-007)
The compaction e2e never exercised compaction: its window/fixture combo
(contextWindow 8000, thresholdRatio 0.5 → threshold 4000; four small files)
peaked at ~1389 estimated tokens, so compactIfNeeded declined every pre-step
and compact/start never landed. Shrink the window (contextWindow 2400 →
threshold 1200; retainTokens 500 + summarizationMaxTokens 300 = 800 < 1200,
convergence holds) and grow the fixture to six files so a couple of bash steps
reliably cross the threshold. Verified compaction fires and the suite passes
across repeated real-API runs.

Sync docs left stale by the landed compaction work: list compaction.e2e.ts and
keyless-smoke.e2e.ts in the coding-agent README (and fix the wrong "Both
self-skip" count), add compaction to the examples with-key inventory, and
replace the hypothetical compaction/marker / "future plugin" naming in the
session README, session types JSDoc, and the core-data-structures catalog with
the real compact/start, compact/summary, compact/end events.
2026-06-26 16:42:51 +08:00
..

Examples

Runnable demos (not workspaces) that showcase how the harness is wired. Each example is now a thin leaf: a cordis.yml that picks the swappable backends (an LLM adapter, a bash executor) and loads ONE app package, plus any demo-only mocks. The composition — the spine, the front-door cluster, and the boot glue — lives in the app packages (@deepseek-ai/dsh-stdio-agent, @deepseek-ai/dsh-acp-agent) and the @deepseek-ai/dsh-agent-core bundle they share. There is no start.ts; the demo:* scripts invoke each app package's bin.

echo-agent

A mock model + echo tool on the stdio chat app — the all-mock skeleton. The leaf swaps dsh-stdio-agent's LLM backend to a local mock-echo adapter and adds a local echo tool. Demonstrates:

  • A thin leaf cordis.yml loading the @deepseek-ai/dsh-stdio-agent app
  • Registering a mock LlmAdapter (streaming scripted responses)
  • Registering a tool via ctx.tools.register()
  • "Swap the backend, keep the app" — the only difference from coding-agent is the adapter

Run with: pnpm run demo:echo. When prompted, type "echo " to trigger a tool call round-trip.

coding-agent

The real thing: DeepSeek V4 + the bash tool suite on the same @deepseek-ai/dsh-stdio-agent app. Where echo-agent proves the skeleton with mocks, this is a usable coding assistant.

Run with: pnpm run demo:coding (needs DEEPSEEK_API_KEY in the environment or a gitignored repo-root .env). See coding-agent/README.md for details.

acp-agent

The same coding agent exposed as an Agent Client Protocol (ACP) server over JSON-RPC stdio, via the @deepseek-ai/dsh-acp-agent app — drive it from Zed or any other ACP client. Also the home of the keyless snapshot tests.

Run with: pnpm run demo:acp (needs DEEPSEEK_API_KEY). See acp-agent/README.md for the Zed setup and the snapshot-test design.