Skip to main content

BaseProvider

@codebolt/provider


Abstract Class: BaseProvider

Defined in: BaseProvider.ts:26

BaseProvider encapsulates shared functionality for environment providers. Concrete providers can extend this class and override protected methods to customize setup logic or communication transport.

Implements

Constructors

Constructor

new BaseProvider(config?: Partial<BaseProviderConfig>): BaseProvider;

Defined in: BaseProvider.ts:41

Parameters

ParameterType
config?Partial<BaseProviderConfig>

Returns

BaseProvider

Properties

PropertyModifierTypeDefined in
agentServerprotectedAgentServerConnectionBaseProvider.ts:35
configreadonlyBaseProviderConfigBaseProvider.ts:28
stateprotectedProviderState & { connectedEnvironments?: string[]; environmentId?: string; providerId?: string; startTime?: number; }BaseProvider.ts:29

Methods

afterConnected()

protected afterConnected(_startResult: ProviderStartResult): Promise<void>;

Defined in: BaseProvider.ts:388

Optional hook: execute logic after connection is established.

Parameters

ParameterType
_startResultProviderStartResult

Returns

Promise<void>


beforeClose()

protected beforeClose(): Promise<void>;

Defined in: BaseProvider.ts:235

Optional hook: execute custom logic before closing.

Returns

Promise<void>


buildAgentServerUrl()

protected buildAgentServerUrl(): string;

Defined in: BaseProvider.ts:428

Construct agent server URL from config.

Returns

string


buildWebSocketUrl()

protected buildWebSocketUrl(initVars: ProviderInitVars): string;

Defined in: BaseProvider.ts:509

Build the WebSocket URL used to connect to the agent server. Subclasses can override to adjust query params.

Parameters

ParameterType
initVarsProviderInitVars

Returns

string


disconnectTransport()

protected disconnectTransport(): Promise<void>;

Defined in: BaseProvider.ts:196

Transport: disconnect from agent server.

Returns

Promise<void>


ensureAgentServer()

protected ensureAgentServer(): Promise<void>;

Defined in: BaseProvider.ts:406

Ensure agent server availability (start or reuse). Subclasses can override.

Returns

Promise<void>


ensureTransportConnection()

ensureTransportConnection(initVars: ProviderInitVars): Promise<void>;

Defined in: BaseProvider.ts:187

Transport: establish connection to agent server.

Parameters

ParameterType
initVarsProviderInitVars

Returns

Promise<void>

Implementation of

ProviderTransport.ensureTransportConnection


getEventHandlers()

getEventHandlers(): ProviderEventHandlers;

Defined in: BaseProvider.ts:173

Returns provider lifecycle event handlers that can be used by the host application to register callbacks in a consistent way.

Returns

ProviderEventHandlers


getProviderHealthStatus()

protected getProviderHealthStatus(): "healthy" | "degraded" | "error";

Defined in: BaseProvider.ts:349

Get the current health status of the provider. Subclasses can override for custom health determination.

Returns

"healthy" | "degraded" | "error"


handleTransportMessage()

protected handleTransportMessage(message: RawMessageForAgent): void;

Defined in: BaseProvider.ts:528

Handle incoming transport messages and forward to Codebolt runtime by default. Subclasses can override for custom routing.

Parameters

ParameterType
messageRawMessageForAgent

Returns

void


onCloseSignal()

onCloseSignal(): Promise<void>;

Defined in: BaseProvider.ts:144

Graceful shutdown and cleanup entry point.

Returns

Promise<void>

Implementation of

ProviderLifecycleHandlers.onCloseSignal


onGetDiffFiles()

abstract onGetDiffFiles(): Promise<any>;

Defined in: BaseProvider.ts:139

Get diff files handler - returns diff information for changed files Must be implemented by subclasses.

Returns

Promise<any>

Implementation of

ProviderLifecycleHandlers.onGetDiffFiles


onProviderAgentStart()

onProviderAgentStart(agentMessage: AgentStartMessage): Promise<void>;

Defined in: BaseProvider.ts:108

Called after onProviderStart completes to begin the agent loop. Default implementation forwards the message to the agent server through sendToAgentServer.

Parameters

ParameterType
agentMessageAgentStartMessage

Returns

Promise<void>

Implementation of

ProviderLifecycleHandlers.onProviderAgentStart


onProviderStart()

onProviderStart(initVars: ProviderInitVars): Promise<ProviderStartResult>;

Defined in: BaseProvider.ts:77

Entry point called by the platform when a provider is started. Subclasses should override setupEnvironment and afterConnected for custom logic rather than overriding this method.

Parameters

ParameterType
initVarsProviderInitVars

Returns

Promise<ProviderStartResult>

Implementation of

ProviderLifecycleHandlers.onProviderStart


onProviderStop()

onProviderStop(initVars: ProviderInitVars): Promise<void>;

Defined in: BaseProvider.ts:122

Provider stop handler - stops the provider and cleans up resources

Parameters

ParameterType
initVarsProviderInitVars

Returns

Promise<void>

Implementation of

ProviderLifecycleHandlers.onProviderStop


onRawMessage()

onRawMessage(message: RawMessageForAgent): Promise<void>;

Defined in: BaseProvider.ts:158

Handle raw incoming messages from the platform. Default behavior is to forward the payload to the agent server transport.

Parameters

ParameterType
messageRawMessageForAgent

Returns

Promise<void>

Implementation of

ProviderLifecycleHandlers.onRawMessage


registerConnectedEnvironment()

protected registerConnectedEnvironment(environmentId: string): void;

Defined in: BaseProvider.ts:362

Register an environment as connected to this provider.

Parameters

ParameterType
environmentIdstring

Returns

void


resetState()

protected resetState(): void;

Defined in: BaseProvider.ts:435

Reset mutable state prior to start.

Returns

void


resolveProjectContext()

abstract protected resolveProjectContext(initVars: ProviderInitVars): Promise<void>;

Defined in: BaseProvider.ts:423

Resolve project context (project path, metadata, etc.). Must be implemented by subclasses because repository layout may vary per provider.

Parameters

ParameterType
initVarsProviderInitVars

Returns

Promise<void>


resolveWorkspacePath()

protected resolveWorkspacePath(initVars: ProviderInitVars): Promise<string>;

Defined in: BaseProvider.ts:411

Resolve workspace path based on provider requirements.

Parameters

ParameterType
initVarsProviderInitVars

Returns

Promise<string>


sendEnvironmentHeartbeat()

protected sendEnvironmentHeartbeat(environmentId: string): void;

Defined in: BaseProvider.ts:328

Send an environment heartbeat to the main application.

Parameters

ParameterType
environmentIdstring

Returns

void


sendProviderHeartbeat()

protected sendProviderHeartbeat(): void;

Defined in: BaseProvider.ts:280

Send a provider heartbeat to the main application.

Returns

void


sendToAgentServer()

sendToAgentServer(message: AgentStartMessage | RawMessageForAgent): Promise<boolean>;

Defined in: BaseProvider.ts:212

Helper to send messages to the agent server.

Parameters

ParameterType
messageAgentStartMessage | RawMessageForAgent

Returns

Promise<boolean>

Implementation of

ProviderTransport.sendToAgentServer


setupEnvironment()

abstract protected setupEnvironment(initVars: ProviderInitVars): Promise<void>;

Defined in: BaseProvider.ts:394

Set up provider-specific environment (e.g., create worktree). Must be implemented by subclasses.

Parameters

ParameterType
initVarsProviderInitVars

Returns

Promise<void>


startEnvironmentHeartbeat()

protected startEnvironmentHeartbeat(environmentId: string): void;

Defined in: BaseProvider.ts:311

Start environment-specific heartbeat monitoring. Subclasses can override to implement custom environment health checks.

Parameters

ParameterType
environmentIdstring

Returns

void


startHeartbeat()

protected startHeartbeat(): void;

Defined in: BaseProvider.ts:243

Start sending provider heartbeats at regular intervals. Called automatically after connection is established.

Returns

void


stopHeartbeat()

protected stopHeartbeat(): void;

Defined in: BaseProvider.ts:264

Stop sending provider heartbeats.

Returns

void


teardownEnvironment()

protected teardownEnvironment(): Promise<void>;

Defined in: BaseProvider.ts:400

Tear down provider-specific environment. Default implementation is a no-op.

Returns

Promise<void>


unregisterConnectedEnvironment()

protected unregisterConnectedEnvironment(environmentId: string): void;

Defined in: BaseProvider.ts:374

Unregister an environment from this provider.

Parameters

ParameterType
environmentIdstring

Returns

void