Add ctx.ui.theme getter for styling status text with theme colors

- Add theme property to HookUIContext interface
- Implement in interactive, RPC, and no-op contexts
- Add status-line.ts example hook
- Document styling with theme colors in hooks.md
This commit is contained in:
Mario Zechner 2026-01-01 21:58:01 +01:00
parent 48ca55ab3c
commit dccdf91b8c
11 changed files with 96 additions and 2 deletions

View file

@ -375,6 +375,9 @@ export class InteractiveMode {
custom: (factory) => this.showHookCustom(factory),
setEditorText: (text) => this.editor.setText(text),
getEditorText: () => this.editor.getText(),
get theme() {
return theme;
},
};
this.setToolUIContext(uiContext, true);

View file

@ -15,6 +15,7 @@ import * as crypto from "node:crypto";
import * as readline from "readline";
import type { AgentSession } from "../../core/agent-session.js";
import type { HookUIContext } from "../../core/hooks/index.js";
import { theme } from "../interactive/theme/theme.js";
import type { RpcCommand, RpcHookUIRequest, RpcHookUIResponse, RpcResponse, RpcSessionState } from "./rpc-types.js";
// Re-export types for consumers
@ -150,6 +151,10 @@ export async function runRpcMode(session: AgentSession): Promise<never> {
// Host should track editor state locally if needed
return "";
},
get theme() {
return theme;
},
});
// Set up hooks with RPC-based UI context