The `mode: 'code'` qualification landed on the module header and `isBareIdentifier` but not on the other three sites the same reviews enumerated. `UNPRINTABLE`'s "only declaration of the tools", the open-object comment's "only signal that extra keys are accepted", and the docstring comment's "only description of what a tool does" are each false under `mode: 'both'`, where the native schemas ship alongside the SDK. Widen the note's predicate-path sentence past head and last position: a character added to `XID_Continue` passes `IDENTIFIER`'s trailing quantifier anywhere after the head, the middle of a name included. Record the ƛ test's table provenance. U+A7DC and the U+019B mapping to it both arrive in Unicode 16.0, and the engines floor sits exactly there: Node 22.19.0 reports Unicode 16.0 (ICU 77.1) and produces the mapping.
core/ — product API spine
English | 中文
The session log, system-prompt assembly, tool registry, agent vocabulary, 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-loop/ |
Default concrete agent driver | ctx.agentLoop |
scope supplies the shared scoping primitive. agent owns the public seam, while agent-loop is its default implementation; extension plugins depend on the seam so the driver remains swappable.
Runnable compositions belong to examples/agent-spine-demo; this group owns only the swappable spine pieces.