Skip to main content

OpenCodeClient

Struct OpenCodeClient 

Source
pub struct OpenCodeClient { /* private fields */ }
Expand description

OpenCode CLI client for validation enrichment

This client invokes opencode run to process findings through GLM 4.7 with access to the RAG-powered MCP server.

Implementations§

Source§

impl OpenCodeClient

Source

pub fn new(config: OpenCodeConfig) -> Result<Self>

Create a new OpenCode client

Source

pub fn with_platform(self, platform: &str) -> Self

Set platform for prompt customization

Source

pub fn from_env() -> Result<Self>

Create client from environment variables

Source

pub fn auto() -> Result<Self>

Create client with auto-detected configuration

Source

pub fn cli_path(&self) -> &Path

Get the CLI path

Source

pub fn model(&self) -> &str

Get the model being used

Source

pub fn has_mcp(&self) -> bool

Check if MCP integration is available

Source

pub async fn enrich_finding( &self, finding: &RawFinding, file_context: &FileContext, ) -> Result<EnrichedFinding>

Enrich a single finding with RAG context

Invokes OpenCode with the finding details and file context. OpenCode will use MCP tools (search_docs_for_rule) to fetch relevant documentation and provide a detailed analysis.

Source

pub async fn enrich_findings( &self, findings: Vec<RawFinding>, codebase_path: &Path, ) -> Result<Vec<EnrichedFinding>>

Enrich multiple findings in a SINGLE OpenCode call

Batches all findings together and sends them to OpenCode once, which analyzes the codebase and returns enriched results for all. This is much faster than processing findings one-by-one.

Source

pub async fn analyze_file( &self, file_path: &Path, categories: &[&str], ) -> Result<Vec<RawFinding>>

Analyze a file for potential issues

Uses OpenCode to scan a file and identify any marketplace-related issues that the local pipeline might have missed.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more