Restore files outside the patch feature to their merge-base state: the invariant-check refactors across acp, session-controller, client, compaction, agent-loop, agent, session-title, and subprocess, the cast baseline edit, and the rescope-vendor skip list added during the merge. Rename tool-fs.enableApplyPatch to applyPatch, matching the read, write, and edit switches. Remove the unused collectMutationPaths export and the unconsumed PatchHunk.contextLineIndices field, including its SSH schema and fixtures. Report preflight refusals and syntax failures directly instead of padding every phase with outcome, affectedPaths, and cancelled fields. Add apply_patch to the shipped tool catalog test. Fold the default-activation Agent Note into the apply_patch file-editing note and delete it. Delete the guarded-filesystem-mutations upgrade guide: every change is additive and all FileSystem subclasses live in this repository. Trim defensive and reviewer-addressed sentences from the package READMEs, subsystem docs, FileSystem JSDoc, and the Agent Note, keeping the English and Chinese pairs aligned.
description, kind
| description | kind |
|---|---|
| The core group map: the session log, system-prompt assembly, tool registry, agent vocabulary, and default loop that form the product API spine. | package-group |
packages/core
English | 中文
Summary
Use the core packages to build or extend an agent that records durable session history, assembles system prompts, exposes tools, selects a default model, and runs model turns. These packages define the shared APIs used by every composition, while executable product assemblies live under packages/bundle. Choose this group when developing agent behavior or replacing one of those capabilities; start with dsh-base when you need the default runnable composition.
Table of Contents
Packages
| Package | Role | ctx key |
|---|---|---|
scope/ |
Scoped registration and event routing that isolate one agent's contributions | library — no ctx key |
session/ |
The append-only session event log every agent's history derives from | ctx.sessions |
system-prompt/ |
System-prompt assembly from ordered sections, tool schemas, and variables | ctx.systemPrompt |
tools/ |
The tool registry and guarded execution pipeline the loop dispatches through | ctx.tools |
agent-tool-presentation/ |
Per-agent tool-presentation selector for presets | no ctx key |
agent/ |
The Agent handle plugins program against, plus its live registry and events |
ctx.agents |
agent-default-model/ |
The deployment default model selection entry points apply to fresh agents | ctx.agentDefaultModel |
agent-loop/ |
The default agent driver: creates agents and runs the turn and step lifecycle | ctx.agentLoop |
scope supplies the shared scoping primitive; agent owns the public Agent contract, while agent-loop is its default implementation, so extension plugins depend on agent and the driver stays swappable. agent-default-model owns the deployment selection an entry point applies when a session has none of its own. Runnable compositions live under packages/bundle; this group owns only the swappable spine pieces.
Related documentation
- Core subsystem — the package-by-package loop map and the
Agenthandle contracts. - Session subsystem — the session event vocabulary and derived history.
- System-prompt subsystem — prompt section, dynamic context, and tool-schema types.
- Tools subsystem — the tool execution pipeline and presentation vocabulary.
- Scoped registration subsystem — the scoped-layer primitive these registries build on.
- Architecture — the turn flow and where new behavior goes.
- Base bundle — the default product composition.
- SDK minimal bundle — a complete standalone composition with a deliberately smaller feature set.
Dev Note
Working context for maintainers — click to expand
None.