pub struct CommandProvider { /* private fields */ }Expand description
A Provider backed by an external command speaking the JSON protocol.
Implementations§
Trait Implementations§
Source§impl Provider for CommandProvider
impl Provider for CommandProvider
Source§fn respond(
&self,
platform: &str,
model: &str,
skill: &SkillRef<'_>,
messages: &[Message],
session: Option<&str>,
) -> Result<AssistantTurn>
fn respond( &self, platform: &str, model: &str, skill: &SkillRef<'_>, messages: &[Message], session: Option<&str>, ) -> Result<AssistantTurn>
Run one assistant/skill turn given the conversation so far.
session,
when Some, is a handle returned by a previous respond call on this
run that the provider may use to continue the same harness session
(e.g. via oneharness run --resume); providers that don’t support
continuation should ignore it. Read moreSource§fn respond_with_mocks(
&self,
platform: &str,
model: &str,
skill: &SkillRef<'_>,
messages: &[Message],
session: Option<&str>,
mocks: Option<&MockPlan<'_>>,
) -> Result<AssistantTurn>
fn respond_with_mocks( &self, platform: &str, model: &str, skill: &SkillRef<'_>, messages: &[Message], session: Option<&str>, mocks: Option<&MockPlan<'_>>, ) -> Result<AssistantTurn>
Like
Provider::respond, but with a tool mock/spy plan: the provider
must enforce the plan’s compiled ruleset on the turn’s tool calls and
return the observed-call records on the turn (mock_calls). Read moreSource§fn respond_streaming_with_mocks(
&self,
platform: &str,
model: &str,
skill: &SkillRef<'_>,
messages: &[Message],
session: Option<&str>,
mocks: Option<&MockPlan<'_>>,
on_event: &mut dyn FnMut(&ToolEvent) -> ControlFlow<()>,
) -> Result<AssistantTurn>
fn respond_streaming_with_mocks( &self, platform: &str, model: &str, skill: &SkillRef<'_>, messages: &[Message], session: Option<&str>, mocks: Option<&MockPlan<'_>>, on_event: &mut dyn FnMut(&ToolEvent) -> ControlFlow<()>, ) -> Result<AssistantTurn>
Like
Provider::respond_streaming, with a tool mock/spy plan. Same
contract as Provider::respond_with_mocks: the default supports no
mocking and errs loudly on a present plan. Read moreSource§fn simulate_user(
&self,
model: &str,
persona: &str,
messages: &[Message],
) -> Result<UserTurn>
fn simulate_user( &self, model: &str, persona: &str, messages: &[Message], ) -> Result<UserTurn>
Produce one simulated-user turn. Read more
Source§fn judge(
&self,
model: &str,
query: &JudgeQuery<'_>,
messages: &[Message],
) -> Result<JudgeVerdict>
fn judge( &self, model: &str, query: &JudgeQuery<'_>, messages: &[Message], ) -> Result<JudgeVerdict>
Score a criterion against the conversation. Read more
Source§fn respond_streaming(
&self,
platform: &str,
model: &str,
skill: &SkillRef<'_>,
messages: &[Message],
session: Option<&str>,
on_event: &mut dyn FnMut(&ToolEvent) -> ControlFlow<()>,
) -> Result<AssistantTurn>
fn respond_streaming( &self, platform: &str, model: &str, skill: &SkillRef<'_>, messages: &[Message], session: Option<&str>, on_event: &mut dyn FnMut(&ToolEvent) -> ControlFlow<()>, ) -> Result<AssistantTurn>
Like
Provider::respond, but delivers each normalized tool event to
on_event as it is observed, so a caller can stream events live and
short-circuit. on_event returns ControlFlow::Break to abort the
turn — the provider tears down the harness and returns the partial turn. Read moreSource§fn supports_resume(&self, _platform: &str) -> bool
fn supports_resume(&self, _platform: &str) -> bool
True iff
respond on platform will faithfully continue a prior
session when given its session_id. The default is false; providers
that support resume override this so the runner knows to thread the
session id through.Auto Trait Implementations§
impl Freeze for CommandProvider
impl RefUnwindSafe for CommandProvider
impl Send for CommandProvider
impl Sync for CommandProvider
impl Unpin for CommandProvider
impl UnsafeUnpin for CommandProvider
impl UnwindSafe for CommandProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more