Add CustomMessageEntry rendering infrastructure

- Add renderCustomMessage to HookAPI for registering custom renderers
- Add CustomMessageRenderer type and CustomMessageRenderOptions
- Store customMessageRenderers in LoadedHook
- Add getCustomMessageRenderer(customType) to HookRunner
- SessionContext.entries now aligned with messages (same length, corresponding indices)

TUI can now correlate messages with their source entries to identify
custom_message entries and use hook-provided renderers.
This commit is contained in:
Mario Zechner 2025-12-26 23:02:53 +01:00
parent 3ecaaa5937
commit 11a7845ceb
7 changed files with 83 additions and 10 deletions

View file

@ -63,6 +63,7 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
path: "test-hook",
resolvedPath: "/test/test-hook.ts",
handlers,
customMessageRenderers: new Map(),
setSendHandler: () => {},
};
}
@ -238,6 +239,7 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
],
],
]),
customMessageRenderers: new Map(),
setSendHandler: () => {},
};
@ -281,6 +283,7 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
],
],
]),
customMessageRenderers: new Map(),
setSendHandler: () => {},
};
@ -303,6 +306,7 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
],
],
]),
customMessageRenderers: new Map(),
setSendHandler: () => {},
};