refactor(hooks): address PR feedback

- Rename getTools/setTools to getActiveTools/setActiveTools
- Add getAllTools to enumerate all configured tools
- Remove text_delta event (use turn_end/agent_end instead)
- Add shortcut conflict detection:
  - Skip shortcuts that conflict with built-in shortcuts (with warning)
  - Log warnings when hooks register same shortcut (last wins)
- Add note about prompt cache invalidation in setActiveTools
- Update plan-mode hook to use agent_end for [DONE:id] parsing
This commit is contained in:
Helmut Januschka 2026-01-03 21:30:19 +01:00 committed by Mario Zechner
parent 5b634ddf75
commit 4ecf3f9422
13 changed files with 175 additions and 153 deletions

View file

@ -83,8 +83,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
shortcuts: new Map(),
setSendMessageHandler: () => {},
setAppendEntryHandler: () => {},
setGetToolsHandler: () => {},
setSetToolsHandler: () => {},
setGetActiveToolsHandler: () => {},
setGetAllToolsHandler: () => {},
setSetActiveToolsHandler: () => {},
setFlagValue: () => {},
};
}
@ -110,8 +111,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
getModel: () => session.model,
sendMessageHandler: async () => {},
appendEntryHandler: async () => {},
getToolsHandler: () => [],
setToolsHandler: () => {},
getActiveToolsHandler: () => [],
getAllToolsHandler: () => [],
setActiveToolsHandler: () => {},
uiContext: {
select: async () => undefined,
confirm: async () => false,
@ -279,8 +281,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
shortcuts: new Map(),
setSendMessageHandler: () => {},
setAppendEntryHandler: () => {},
setGetToolsHandler: () => {},
setSetToolsHandler: () => {},
setGetActiveToolsHandler: () => {},
setGetAllToolsHandler: () => {},
setSetActiveToolsHandler: () => {},
setFlagValue: () => {},
};
@ -332,8 +335,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
shortcuts: new Map(),
setSendMessageHandler: () => {},
setAppendEntryHandler: () => {},
setGetToolsHandler: () => {},
setSetToolsHandler: () => {},
setGetActiveToolsHandler: () => {},
setGetAllToolsHandler: () => {},
setSetActiveToolsHandler: () => {},
setFlagValue: () => {},
};
@ -367,8 +371,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
shortcuts: new Map(),
setSendMessageHandler: () => {},
setAppendEntryHandler: () => {},
setGetToolsHandler: () => {},
setSetToolsHandler: () => {},
setGetActiveToolsHandler: () => {},
setGetAllToolsHandler: () => {},
setSetActiveToolsHandler: () => {},
setFlagValue: () => {},
};