hooks.json can now declare a separate 'surface' module for drawing a hook module's UI elements
A plugin's hooks.json configuration file can now include an optional surface field, naming a module (a code file separate from the main hooks module) whose job is to render the hooks module's Client UI elements onto a display surface. This field requires the modules field to also be present, and its format is checked by a new validation rule: it must be a path relative to the hooks.json file and cannot start with $.
This gives plugin authors a way to separate the code that renders UI elements from the main hooks logic, which is useful for plugins that need to show their own interface elements.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
V2 was an experimental session API that removed the need for async generators and yield coordination. Instead of managing generator state across turns, each turn was a separate `send()`/`stream()` cycle. The API surface reduced to creating…agent-sdk/typescript-v2-preview see the edit
When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Echo this on a `user.custom_tool_result` event to route the result back.api/beta/sessions/events/list see the edit
Anthropic's documentation has since written up surface, on List Events.