systemprompt_models/wire/origin/
harness.rs1use super::{ClientKind, OriginParseError};
8use crate::feedback::EvaluatorClient;
9
10impl From<EvaluatorClient> for ClientKind {
11 fn from(client: EvaluatorClient) -> Self {
12 match client {
13 EvaluatorClient::ClaudeCode => Self::ClaudeCode,
14 EvaluatorClient::ClaudeDesktop => Self::ClaudeDesktop,
15 EvaluatorClient::Codex => Self::Codex,
16 EvaluatorClient::OpenCode => Self::OpenCode,
17 EvaluatorClient::Hermes => Self::Hermes,
18 }
19 }
20}
21
22impl TryFrom<ClientKind> for EvaluatorClient {
23 type Error = OriginParseError;
24
25 fn try_from(kind: ClientKind) -> Result<Self, Self::Error> {
26 match kind {
27 ClientKind::ClaudeCode => Ok(Self::ClaudeCode),
28 ClientKind::ClaudeDesktop => Ok(Self::ClaudeDesktop),
29 ClientKind::Codex => Ok(Self::Codex),
30 ClientKind::OpenCode => Ok(Self::OpenCode),
31 ClientKind::Hermes => Ok(Self::Hermes),
32 ClientKind::Pi | ClientKind::Other | ClientKind::Internal | ClientKind::Unknown => {
33 Err(OriginParseError::NotAHarness(kind.as_str()))
34 },
35 }
36 }
37}