Files
deepseek-harness/packages/core
Yichen Jiang fb6fb1fa12 Merge origin/master into worktree/web-plugin-config, adapting to ctx.remote.$on
#2201 landed three moves this branch sits on top of. `bindSettingsScope` became
`ctx.settingsScope.bind` on the Settings surface, so the section injects that
service and the Remote face instead of importing a free function; the
`SettingsScope` types moved into the runtime contract module, which is where
this branch's `base`, `user`, and `unset` now live; and the client
`credentials/changed` event became the forwarded owner event
`credentials/updated`, which the web-search card subscribes to through
`ctx.remote.$on`.

The generated module graph crossed mermaid's 1000-edge render guard with this
branch's 14 new edges. The guard doubles again, exactly as it did at 500 — the
graph counts real package edges, and trimming them to fit a renderer default
would make the document lie about the dependency set.
2026-08-11 19:52:34 +08:00
..
2026-08-10 13:07:46 +08:00

core/ — product API spine

English | 中文

The session log, system-prompt assembly, tool registry, agent vocabulary, deployment-default model selection, and concrete loop that form the harness's default control spine. These are product packages — the stable surface plugins and consumers build against.

Package Role ctx key
scope/ Scoped-context registration primitive library — no ctx key
session/ Event-sourced session log and in-memory store ctx.sessions
system-prompt/ Prompt and tool-schema assembly registry ctx.systemPrompt
tools/ Scoped tool registry and execution pipeline ctx.tools
agent/ Agent interface, registry, and event vocabulary ctx.agents
agent-default-model/ Default model selection shared by Agent entry points ctx.agentDefaultModel
agent-loop/ Default concrete agent driver ctx.agentLoop

scope supplies the shared scoping primitive. agent owns the public contract, while agent-loop is its default implementation; extension plugins depend on the seam so the driver remains swappable. agent-default-model owns the deployment selection an Agent entry point uses only when a session has no selection of its own.

Runnable compositions belong to examples/agent-spine-demo; this group owns only the swappable spine pieces.

The subsystem reference — the package-by-package loop map, the Agent handle and its delivery/interception contracts — is docs/subsystems/core.md; the default runnable composition is examples/agent-spine-demo.