zot/packages/agent
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
..
ext feat(panels): spontaneous open_panel frame for human-in-the-loop tool gates (#19) 2026-06-08 12:13:55 -04:00
extensions feat(panels): spontaneous open_panel frame for human-in-the-loop tool gates (#19) 2026-06-08 12:13:55 -04:00
extproto feat(panels): spontaneous open_panel frame for human-in-the-loop tool gates (#19) 2026-06-08 12:13:55 -04:00
modes Gate live tool rendering behind preceding stream text 2026-06-07 16:58:39 +02:00
sdk refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
skills Add clear_notes extension frame and clear notes on new prompt 2026-06-07 11:10:02 +02:00
swarm refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
tools refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
args.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
botcmd.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
botcmd_unix.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
botcmd_windows.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
build.go Scan all known providers in credential fallback (adopts #16) 2026-06-08 15:22:40 +02:00
build_test.go Discover env-only bedrock in credential fallback scan 2026-06-08 15:17:22 +02:00
changelog.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
cli.go Add clear_notes extension frame and clear notes on new prompt 2026-06-07 11:10:02 +02:00
config.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
extcmd.go Respect gitignore when installing extensions 2026-06-07 10:25:50 +02:00
extcmd_test.go Respect gitignore when installing extensions 2026-06-07 10:25:50 +02:00
extupdate.go feat(update): fast-forward installed extensions during zot update 2026-05-27 09:37:59 +02:00
extupdate_test.go feat(update): fast-forward installed extensions during zot update 2026-05-27 09:37:59 +02:00
modelsync.go provider: discover OpenRouter models live, drop baked-in catalog 2026-06-05 15:20:54 +02:00
modelsync_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
rpc.go Add clear_notes extension frame and clear notes on new prompt 2026-06-07 11:10:02 +02:00
settings_store.go Add JSON theming, theme-only extensions, and docs 2026-05-30 11:34:42 +02:00
swarm_agent.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
swarm_agent_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
systemprompt.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
update.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
updatecmd.go feat(update): fast-forward installed extensions during zot update 2026-05-27 09:37:59 +02:00