mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
start of hooks engine (#13276)
(Experimental) This PR adds a first MVP for hooks, with SessionStart and Stop The core design is: - hooks live in a dedicated engine under codex-rs/hooks - each hook type has its own event-specific file - hook execution is synchronous and blocks normal turn progression while running - matching hooks run in parallel, then their results are aggregated into a normalized HookRunSummary On the AppServer side, hooks are exposed as operational metadata rather than transcript-native items: - new live notifications: hook/started, hook/completed - persisted/replayed hook results live on Turn.hookRuns - we intentionally did not add hook-specific ThreadItem variants Hooks messages are not persisted, they remain ephemeral. The context changes they add are (they get appended to the user's prompt)
This commit is contained in:
1 parent
da616136cc
commit
244b2d53f4
73 files changed
+4791
-483
No files matched your search
@@ -1,10 +1,21 @@
|
||||
mod engine;
|
||||
pub mod events;
|
||||
mod legacy_notify;
|
||||
mod registry;
|
||||
mod schema;
|
||||
mod types;
|
||||
mod user_notification;
|
||||
|
||||
pub use events::session_start::SessionStartOutcome;
|
||||
pub use events::session_start::SessionStartRequest;
|
||||
pub use events::session_start::SessionStartSource;
|
||||
pub use events::stop::StopOutcome;
|
||||
pub use events::stop::StopRequest;
|
||||
pub use legacy_notify::legacy_notify_json;
|
||||
pub use legacy_notify::notify_hook;
|
||||
pub use registry::Hooks;
|
||||
pub use registry::HooksConfig;
|
||||
pub use registry::command_from_argv;
|
||||
pub use schema::write_schema_fixtures;
|
||||
pub use types::Hook;
|
||||
pub use types::HookEvent;
|
||||
pub use types::HookEventAfterAgent;
|
||||
@@ -15,5 +26,3 @@ pub use types::HookResult;
|
||||
pub use types::HookToolInput;
|
||||
pub use types::HookToolInputLocalShell;
|
||||
pub use types::HookToolKind;
|
||||
pub use user_notification::legacy_notify_json;
|
||||
pub use user_notification::notify_hook;
|
||||
Reference in new issue
Block a user