- Add hooks infrastructure in core/hooks/ (loader, runner, types)
- HookUIContext interface with mode-specific implementations
- Interactive mode: TUI-based selector/input/confirm dialogs
- RPC mode: JSON protocol for hook UI requests/responses
- Print mode: no-op UI context (hooks run but can't prompt)
- AgentSession.branch() now async, returns { selectedText, skipped }
- Settings: hooks[] and hookTimeout configuration
- Export hook types from package for hook authors
Based on PR #147 proposal, adapted for new architecture.
26 lines
548 B
TypeScript
26 lines
548 B
TypeScript
/**
|
|
* Core modules shared between all run modes.
|
|
*/
|
|
|
|
export {
|
|
AgentSession,
|
|
type AgentSessionConfig,
|
|
type AgentSessionEvent,
|
|
type AgentSessionEventListener,
|
|
type CompactionResult,
|
|
type ModelCycleResult,
|
|
type PromptOptions,
|
|
type SessionStats,
|
|
} from "./agent-session.js";
|
|
export { type BashExecutorOptions, type BashResult, executeBash } from "./bash-executor.js";
|
|
export {
|
|
type HookAPI,
|
|
type HookError,
|
|
type HookEvent,
|
|
type HookEventContext,
|
|
type HookFactory,
|
|
HookRunner,
|
|
type HookUIContext,
|
|
loadHooks,
|
|
} from "./hooks/index.js";
|