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