* feat(approval): localize prompts and allow consent for one turn * test(approval): update cast baseline and Web PTC prompt pin * fix(approval): cover PTC language and clarify turn consent * fix(approval): group turn consent under allow menu * fix(approval): keep turn consent in memory only * test(snapshot): refresh owners for merged justification guidance * fix(approval): drop duplicate allow-once from the allow menu * refactor(approval): derive turn consent expiry from one check Replace the turn approval bookkeeping (revocation state, incremental log cursor, and turn-signal listeners) with one side-effect-free expiry check over the log and lifetime flags. Events now only withdraw open presentations early; the expiry check decides whether an answer or turn consent still applies, including for Sessions without event publication. * refactor(approval): drop one-turn consent and keep localization only Remove the allowed-turn answer, the live turn-consent state, the allow menu, and their tests, notes, and recorded Web scenario. The approval service returns to the master request path; the request keeps the localized displayReason for presentation, and the card resolves it in the active UI language. * test(snapshots): record the localized justification schema text in new scenarios --------- Co-authored-by: Turtle <[email protected]> Co-authored-by: Kaige-Gao <[email protected]>
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.