mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
271d5cecf2
## Disclaimer Do not use for now ## Why Extensions can already contribute prompt fragments and request same-turn item injection, but there was no host-owned hook for contributing structured `ResponseItem`s while Codex is assembling a new turn's initial model input. This change adds that seam so extensions can attach turn-local input that depends on the submitted user input and resolved turn environments without routing through prompt text or late injection. ## What changed - add `TurnInputContributor` to `codex_extension_api` and export the new `TurnInputContext` / `TurnInputEnvironment` types it receives - teach `ExtensionRegistry` to register and expose turn-input contributors alongside the existing extension hooks - call registered turn-input contributors from `core/src/session/turn.rs` while building the initial injected input for a turn, then append their returned `ResponseItem`s after the skill and plugin injections
61 lines
2.3 KiB
Rust
61 lines
2.3 KiB
Rust
mod capabilities;
|
|
mod contributors;
|
|
mod registry;
|
|
mod state;
|
|
|
|
pub use capabilities::AgentSpawnFuture;
|
|
pub use capabilities::AgentSpawner;
|
|
pub use capabilities::ExtensionEventSink;
|
|
pub use capabilities::NoopExtensionEventSink;
|
|
pub use capabilities::NoopResponseItemInjector;
|
|
pub use capabilities::ResponseItemInjectionFuture;
|
|
pub use capabilities::ResponseItemInjector;
|
|
pub use codex_protocol::models::ResponseItem;
|
|
pub use codex_tools::ConversationHistory;
|
|
pub use codex_tools::ExtensionTurnItem;
|
|
pub use codex_tools::FunctionCallError;
|
|
pub use codex_tools::JsonToolOutput;
|
|
pub use codex_tools::NoopTurnItemEmitter;
|
|
pub use codex_tools::ResponsesApiTool;
|
|
pub use codex_tools::ToolCall;
|
|
pub use codex_tools::ToolExecutor;
|
|
pub use codex_tools::ToolName;
|
|
pub use codex_tools::ToolOutput;
|
|
pub use codex_tools::ToolPayload;
|
|
pub use codex_tools::ToolSpec;
|
|
pub use codex_tools::TurnItemEmissionFuture;
|
|
pub use codex_tools::TurnItemEmitter;
|
|
pub use codex_tools::parse_tool_input_schema;
|
|
pub use codex_tools::parse_tool_input_schema_without_compaction;
|
|
pub use contributors::ApprovalReviewContributor;
|
|
pub use contributors::ConfigContributor;
|
|
pub use contributors::ContextContributor;
|
|
pub use contributors::PromptFragment;
|
|
pub use contributors::PromptSlot;
|
|
pub use contributors::ThreadIdleInput;
|
|
pub use contributors::ThreadLifecycleContributor;
|
|
pub use contributors::ThreadResumeInput;
|
|
pub use contributors::ThreadStartInput;
|
|
pub use contributors::ThreadStopInput;
|
|
pub use contributors::TokenUsageContributor;
|
|
pub use contributors::ToolCallOutcome;
|
|
pub use contributors::ToolCallSource;
|
|
pub use contributors::ToolContributor;
|
|
pub use contributors::ToolFinishInput;
|
|
pub use contributors::ToolLifecycleContributor;
|
|
pub use contributors::ToolLifecycleFuture;
|
|
pub use contributors::ToolStartInput;
|
|
pub use contributors::TurnAbortInput;
|
|
pub use contributors::TurnErrorInput;
|
|
pub use contributors::TurnInputContext;
|
|
pub use contributors::TurnInputContributor;
|
|
pub use contributors::TurnInputEnvironment;
|
|
pub use contributors::TurnItemContributor;
|
|
pub use contributors::TurnLifecycleContributor;
|
|
pub use contributors::TurnStartInput;
|
|
pub use contributors::TurnStopInput;
|
|
pub use registry::ExtensionRegistry;
|
|
pub use registry::ExtensionRegistryBuilder;
|
|
pub use registry::empty_extension_registry;
|
|
pub use state::ExtensionData;
|