Class: ProceduralConnectorTurn<TState, TBus, TSubject>
Makaio Framework / ai-adapters-core / ProceduralConnectorTurn
Class: ProceduralConnectorTurn<TState, TBus, TSubject>
Section titled “Class: ProceduralConnectorTurn<TState, TBus, TSubject>”Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:60
Base turn implementation for procedural adapters (Gemini, OpenAI, Copilot).
These adapters share an abort+restart pattern rather than true pause/resume. This class extracts the common state machine, lifecycle methods, and message handle delegation that was duplicated across all three.
Subclasses only need to add adapter-specific behavior:
- Gemini: AbortController for SDK cancellation
- OpenAI: AbortController for SDK cancellation
- Copilot: SDK event handling (handleSdkEvent)
Extends
Section titled “Extends”BaseConnectorTurn<TState>
Type Parameters
Section titled “Type Parameters”TState
Section titled “TState”TState extends string = ProceduralTurnState
Turn state type (defaults to ProceduralTurnState)
TBus extends ScopedBus<string> = ScopedBus<string>
Scoped bus type for the adapter
TSubject
Section titled “TSubject”TSubject extends ScopedSubjectDefinition = ScopedSubjectDefinition
Subject definition type for emit calls
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new ProceduralConnectorTurn<
TState,TBus,TSubject>(config,initialState):ProceduralConnectorTurn<TState,TBus,TSubject>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:71
Parameters
Section titled “Parameters”config
Section titled “config”ProceduralTurnConfig<TBus, TSubject>
initialState
Section titled “initialState”TState
Returns
Section titled “Returns”ProceduralConnectorTurn<TState, TBus, TSubject>
Overrides
Section titled “Overrides”Properties
Section titled “Properties”aborted
Section titled “aborted”
protectedaborted:boolean=false
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:69
activeMessageHandle
Section titled “activeMessageHandle”
protectedactiveMessageHandle:MessageHandle
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:65
Active message handle for this turn. Subclasses must provide this handle for message lifecycle management.
Overrides
Section titled “Overrides”BaseConnectorTurn.activeMessageHandle
adapterId
Section titled “adapterId”
protectedreadonlyadapterId:string
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:31
Inherited from
Section titled “Inherited from”adapterName
Section titled “adapterName”
protectedreadonlyadapterName:string
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:32
Inherited from
Section titled “Inherited from”agentId
Section titled “agentId”
protectedreadonlyagentId:string
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:67
protectedreadonlybus:ScopedBus<string>
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:30
Inherited from
Section titled “Inherited from”connectorBus
Section titled “connectorBus”
protectedreadonlyconnectorBus:TBus
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:66
protectedstate:TState
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:29
Inherited from
Section titled “Inherited from”stateChangedCallback?
Section titled “stateChangedCallback?”
protectedoptionalstateChangedCallback?: (oldState,newState) =>void|Promise<void>
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:33
Parameters
Section titled “Parameters”oldState
Section titled “oldState”TState
newState
Section titled “newState”TState
Returns
Section titled “Returns”void | Promise<void>
Inherited from
Section titled “Inherited from”BaseConnectorTurn.stateChangedCallback
turnSubjects
Section titled “turnSubjects”
protectedreadonlyturnSubjects:TurnSubjects<TSubject>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:68
Methods
Section titled “Methods”canAcceptImmediate()
Section titled “canAcceptImmediate()”canAcceptImmediate():
boolean
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:192
Check if turn can accept immediate message. True if turn is active (not finished, not aborted).
Returns
Section titled “Returns”boolean
True if turn can accept an immediate message
emitStateChange()
Section titled “emitStateChange()”
protectedemitStateChange(oldState,newState):Promise<void>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:84
Emit state change using adapter-provided turn subjects.
Parameters
Section titled “Parameters”oldState
Section titled “oldState”TState
Previous state before transition
newState
Section titled “newState”TState
New state after transition
Returns
Section titled “Returns”Promise<void>
Overrides
Section titled “Overrides”BaseConnectorTurn.emitStateChange
getMessageHandle()
Section titled “getMessageHandle()”getMessageHandle():
MessageHandle
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:111
Get the message handle for this turn.
Returns
Section titled “Returns”The message handle for this turn
Inherited from
Section titled “Inherited from”BaseConnectorTurn.getMessageHandle
getState()
Section titled “getState()”getState():
TState
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:103
Get current turn state.
Returns
Section titled “Returns”TState
Current turn state
Inherited from
Section titled “Inherited from”isCompleted()
Section titled “isCompleted()”isCompleted():
boolean
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:183
Check if turn is completed.
Returns
Section titled “Returns”boolean
True if turn has finished
isPaused()
Section titled “isPaused()”isPaused():
boolean
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:175
Check if turn was aborted.
Returns
Section titled “Returns”boolean
True if turn was aborted
Overrides
Section titled “Overrides”markAcknowledged()
Section titled “markAcknowledged()”markAcknowledged():
void
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:118
Mark message handle as acknowledged.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”BaseConnectorTurn.markAcknowledged
markCompleted()
Section titled “markCompleted()”markCompleted(
result):void
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:126
Mark message handle as completed.
Parameters
Section titled “Parameters”result
Section titled “result”The completion result with outcome and optional result/error
error?
Section titled “error?”unknown
outcome
Section titled “outcome”string
result?
Section titled “result?”unknown
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”BaseConnectorTurn.markCompleted
markStepFinished()
Section titled “markStepFinished()”markStepFinished():
Promise<void>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:132
Transition to step_finished (called after content block completes).
Returns
Section titled “Returns”Promise<void>
markStepStarted()
Section titled “markStepStarted()”markStepStarted():
Promise<void>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:123
Transition to step_started (called when first content arrives). Allows turn_started to step_started AND step_finished to step_started (for tool recursion).
Returns
Section titled “Returns”Promise<void>
markTurnFinished()
Section titled “markTurnFinished()”markTurnFinished():
Promise<void>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:141
Mark turn as finished.
Returns
Section titled “Returns”Promise<void>
onStateChanged()
Section titled “onStateChanged()”onStateChanged(
cb):void
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:69
Register callback for state changes.
Parameters
Section titled “Parameters”(oldState, newState) => void | Promise<void>
Callback to invoke on state transitions
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”BaseConnectorTurn.onStateChanged
pause()
Section titled “pause()”pause():
Promise<PauseResult<TState>>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:151
Pause (abort) at next opportunity. Procedural adapters don’t support true pause - caller creates a new turn with merged content instead.
Returns
Section titled “Returns”Promise<PauseResult<TState>>
Pause result indicating turn state
Overrides
Section titled “Overrides”resume()
Section titled “resume()”resume(
_message?):Promise<void>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:167
Resume is not supported for procedural adapters - caller creates new turn.
Parameters
Section titled “Parameters”_message?
Section titled “_message?”unknown
Unused
Returns
Section titled “Returns”Promise<void>
Throws
Section titled “Throws”Error always
Overrides
Section titled “Overrides”start()
Section titled “start()”start():
Promise<void>
Defined in: ../../../adapters/core/src/connector/procedural-connector-turn.ts:114
Start the turn.
Returns
Section titled “Returns”Promise<void>
transitionTo()
Section titled “transitionTo()”
protectedtransitionTo(newState):Promise<void>
Defined in: ../../../adapters/core/src/connector/base-connector-turn.ts:81
Transition to new state and notify listeners. Template method for shared state transition pattern.
NOTE: Subclasses should use their typed namespace subjects for emission. This is a template - concrete implementation in adapter-specific Turn classes.
Parameters
Section titled “Parameters”newState
Section titled “newState”TState
New state to transition to
Returns
Section titled “Returns”Promise<void>