Public declaration syntax from forge-rs/crates/forge-core/src/provider_runtime.rs Original source SHA-256: c62baa6d82141343e1057a6f925c5f4e77c45c1d95157f5cdff4a71dfd315f47 Function bodies and constant values are omitted. This is not the complete implementation. Source line 12 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] pub enum RuntimeCapability { ToolCalls, DelegatedAgents, TerminalSession, StructuredPatch, Attachments, Interrupts, ResumeSession, ApprovalCheckpoints, UsageStreaming, TranscriptExport, } Source line 27 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] pub struct ProviderRuntimeCapabilities { /// Whether the provider satisfies the mandatory Forge coding baseline. pub baseline_contract: bool, /// Explicit advanced capabilities advertised by the provider. pub capabilities: BTreeSet } Source line 36 pub fn baseline() -> Self; Source line 44 pub fn with_capability(mut self, capability: RuntimeCapability) -> Self; Source line 50 pub fn supports(&self, capability: &RuntimeCapability) -> bool; Source line 57 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct ProviderNegotiationRequest { pub provider_ref: String, pub require_baseline_contract: bool, pub required_capabilities: Vec } Source line 65 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct ProviderNegotiationResult { pub provider_ref: String, pub baseline_contract: bool, pub negotiated_capabilities: Vec } Source line 73 #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum ProviderSessionState { Created, Ready, Running, Interrupted, Completed, Cancelled, Failed, Expired, Closed, } Source line 87 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] pub struct ProviderUsageSummary { pub input_tokens: u64, pub output_tokens: u64, pub total_tokens: u64 } Source line 95 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct ProviderSessionEvent { pub session_id: String, pub state: ProviderSessionState, pub message: Option, pub usage: Option }