zot/packages
Raymond Gasper 2d46ef9b09 feat(panels): spontaneous open_panel frame for human-in-the-loop tool gates (#19)
Allow extensions to emit an open_panel frame at any time, not just as
the action of a command_response. This makes it possible to build
approval gates, secret collection, and freeform user-input prompts
directly inside tool handlers.

Changes:
- extproto: add OpenPanelFromExt wire type
- extensions/manager: route spontaneous open_panel frames to hooks.OpenPanel
- ext/ext.go: add Extension.OpenPanel() SDK method
- tests: TestSpontaneousOpenPanel (manager), TestOpenPanelEmitsCorrectFrame,
  TestBlockingToolWaitsForPanelKey, TestBlockingToolDenied (SDK)
- docs/plans: add spontaneous-panel.md design doc

The blocking tool pattern (open panel → block on channel → key event →
tool_result) requires no additional wire changes; it falls out of
standard Go concurrency on the extension side.

Part 3 (intercept timeout for built-in tool gating) is out of scope
and tracked separately.
2026-06-08 12:13:55 -04:00
..
agent feat(panels): spontaneous open_panel frame for human-in-the-loop tool gates (#19) 2026-06-08 12:13:55 -04:00
core Retry transient provider stream errors 2026-05-30 15:25:33 +02:00
provider fix(bedrock): inject stub toolConfig when history has tool blocks 2026-06-08 10:56:03 -04:00
tui Word-wrap provider error rows instead of truncating 2026-06-04 19:25:16 +02:00