BaseProvider
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
| Parameter | Type |
|---|---|
config? | Partial<BaseProviderConfig> |
Returns
BaseProvider
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
agentServer | protected | AgentServerConnection | BaseProvider.ts:35 |
config | readonly | BaseProviderConfig | BaseProvider.ts:28 |
state | protected | ProviderState & { 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
| Parameter | Type |
|---|---|
_startResult | ProviderStartResult |
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
| Parameter | Type |
|---|---|
initVars | ProviderInitVars |
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
| Parameter | Type |
|---|---|
initVars | ProviderInitVars |
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
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
| Parameter | Type |
|---|---|
message | RawMessageForAgent |
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
| Parameter | Type |
|---|---|
agentMessage | AgentStartMessage |
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
| Parameter | Type |
|---|---|
initVars | ProviderInitVars |
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
| Parameter | Type |
|---|---|
initVars | ProviderInitVars |
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
| Parameter | Type |
|---|---|
message | RawMessageForAgent |
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
| Parameter | Type |
|---|---|
environmentId | string |
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
| Parameter | Type |
|---|---|
initVars | ProviderInitVars |
Returns
Promise<void>
resolveWorkspacePath()
protected resolveWorkspacePath(initVars: ProviderInitVars): Promise<string>;
Defined in: BaseProvider.ts:411
Resolve workspace path based on provider requirements.
Parameters
| Parameter | Type |
|---|---|
initVars | ProviderInitVars |
Returns
Promise<string>
sendEnvironmentHeartbeat()
protected sendEnvironmentHeartbeat(environmentId: string): void;
Defined in: BaseProvider.ts:328
Send an environment heartbeat to the main application.
Parameters
| Parameter | Type |
|---|---|
environmentId | string |
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
| Parameter | Type |
|---|---|
message | AgentStartMessage | 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
| Parameter | Type |
|---|---|
initVars | ProviderInitVars |
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
| Parameter | Type |
|---|---|
environmentId | string |
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
| Parameter | Type |
|---|---|
environmentId | string |
Returns
void