deepseek-harness/packages/agent-loop/tests
Tianyi Cui 825b57aff9 feat(llm): structured error taxonomy with a shared HarnessError base (RFC 005 pt 2)
Introduce HarnessError in dsh-llm (the leaf package): a stable machine-routable
code distinct from the message, cause chaining, name from the subclass, plus
isHarnessError. LlmError, ToolArgsError, and InvariantError now extend it.

Tool failures carry the structure end-to-end: ToolExecutionResult gains
error: { name, code } (populated from a thrown HarnessError), and the loop
forwards it onto the tool/result session event (which gained the same optional
field) for retry/sandbox plugins and replay. The loop's toError wraps non-Error
throws in a HarnessError(code: UNKNOWN, cause) instead of a bare Error.

Landed last and in isolation so it's a pure upgrade over the plain Error+code
the earlier PRs used — independently revertible. Graduates RFC 005 pt 2 ->
ADR 0015; RFC 005 now fully implemented.
2026-06-14 01:07:28 +08:00
..
agent.spec.ts Add branded ID types: CallId, SessionId, AgentId 2026-06-11 15:17:56 +08:00
coverage-edges.spec.ts feat(llm): structured error taxonomy with a shared HarnessError base (RFC 005 pt 2) 2026-06-14 01:07:28 +08:00
inbox.spec.ts Enforce 100% per-file test coverage on packages/*/src 2026-06-11 14:58:36 +08:00
loop.spec.ts Enforce 100% per-file test coverage on packages/*/src 2026-06-11 14:58:36 +08:00
mock-adapter.ts Add branded ID types: CallId, SessionId, AgentId 2026-06-11 15:17:56 +08:00
properties.spec.ts test: address Codex review of property tests (PR 3) 2026-06-14 00:24:23 +08:00
review-fixes.spec.ts Add two DeepSeek LLM adapters: dsh-llm-deepseek and dsh-llm-pi-ai 2026-06-13 18:30:03 +08:00