Files
deepseek-harness/packages/core
creatixchu 1861a3fc7c feat(fs): add a minimal read_image tool over the attachment and fs seams
The model reads a PNG/JPEG/WebP/GIF file, the bytes commit through the
durable attachment lifecycle, and the tool result carries the real
ImageBlock so the image enters context from the next request onward.
FileSystem gains a bounded readBytes primitive (local + E2B providers);
registration is conditional on the attachment store, and a strict
execution gate refuses routes that do not declare image input, so a
text route's durable history stays free of image blocks. llm-replay
models may declare inputModalities, letting keyless ACP snapshots pin
both the sha256-referenced success and the verbatim refusal.

Supersedes the withdrawn route-scoped design of PR #598; the decision
record is .agents/notes/implemented/feature/2026-08-10-minimal-read-image-tool.md.
2026-08-10 15:09:07 +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 front doors 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 front door 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.