import type { GoalEvidence, GoalTerminalReceipt } from "../core/goal-bound.js"; import type { OperatorProposalGoalBinding } from "../core/operator-proposal.js"; import type { RuntimeProfile } from "../core/runtime-profile.js"; import type { OperatorRepairValidationRetryBinding, OperatorRepairValidationRetrySource } from "../core/operator-runtime.js"; import type { ModelRoutingConfig } from "./model-routing.js"; export interface SerialDispatchSettlement { readonly rootSessionID: string; readonly callID: string; readonly unitID: string; readonly childSessionID?: string; readonly disposition: "succeeded" | "failed" | "cancelled"; readonly evidence: readonly GoalEvidence[]; readonly resultClass: string; readonly failure?: { readonly command: readonly string[]; readonly outcome: "fail"; readonly exitCode: number | null; }; } /** Host-owned extension. It is not parsed from project JSON or a worker's prompt. */ export interface RuntimeBridge { readonly profile: RuntimeProfile; readonly assetVersion: string; readonly defaultModelRouting?: ModelRoutingConfig; readonly defaultModelCatalog?: import("./model-routing.js").ModelCatalog; transformConfiguration?(value: unknown): unknown; continuationCheckpoint?(rootSessionID: string): Promise; ownsCanonicalValidation?(rootSessionID: string, unitID: string, childSessionID: string, command: string): Promise; onSerialSettlement?(settlement: SerialDispatchSettlement): Promise; onRootTerminal?(rootSessionID: string, receipt: GoalTerminalReceipt): Promise; connected?(control: { enableUnits(rootSessionID: string, maximum: number): void; isRoot(rootSessionID: string): Promise; cancelChildren(rootSessionID: string): Promise; settleRejectedDispatch(rootSessionID: string, callID: string): Promise; restoreAcceptedUnit(rootSessionID: string, request: { taskID: string; handoffPath: string; handoffHash: string; }): Promise; restoreAcceptanceLineage(rootSessionID: string, request: { criteria: readonly string[]; fingerprint: string; currentTaskIDs: readonly string[]; }): Promise; restoreAcceptanceRemediationBaseline(rootSessionID: string, request: { failedTaskID: string; criteria: readonly string[]; fingerprint: string; currentTaskIDs: readonly string[]; }): Promise; registerGoalDeclaration(rootSessionID: string, prompt: string): Promise; relinkRegisteredGoal(rootSessionID: string, request: { prompt: string; expectedFingerprint: string; registeredAt: string; }): Promise; proposalGoalBinding(rootSessionID: string): Promise; reserveProposalBudget(rootSessionID: string, intentID: string, callID: string, binding: OperatorProposalGoalBinding): Promise; settleProposalBudget(rootSessionID: string, intentID: string, callID: string, disposition: "succeeded" | "failed" | "cancelled"): Promise; assertProposalExecutionBudget(rootSessionID: string, binding: OperatorProposalGoalBinding, executionUnits: number): Promise; hasNoGoalReservation(rootSessionID: string, unitID: string, callID: string): Promise; assertActiveGoal(rootSessionID: string, goalFingerprint: string): Promise; retainOperatorContractRepairWorker(rootSessionID: string, taskID: string, childSessionID: string): Promise; assertOperatorContractRepairValidationAvailable(rootSessionID: string, taskID: string, childSessionID: string): Promise; remediationScopeExpansionAuthority(rootSessionID: string): Promise; authorizeOperatorContractRepairValidation(rootSessionID: string, taskID: string, childSessionID: string, repairFingerprint: string): Promise; authorizeOperatorContractRepairValidationRetry(rootSessionID: string, source: OperatorRepairValidationRetrySource & { readonly declarationFingerprint: string; }): Promise; activateOperatorContractRepairValidationRetry(rootSessionID: string, request: { taskID: string; childSessionID: string; callID: string; repairFingerprint: string; binding: OperatorRepairValidationRetryBinding; }): Promise; finishOperatorContractRepairValidation(rootSessionID: string, childSessionID: string): Promise; currentReceipt(rootSessionID: string): Promise; retireHistoricalGoal(rootSessionID: string): Promise; isUncontractedGoal(rootSessionID: string, latestUserMessageID: string): Promise; currentBudget(rootSessionID: string): Promise<{ readonly max_units: number; readonly consumed_units: number; readonly reserved_units: number; readonly remaining_units: number; } | null>; renderReturnReport(rootSessionID: string, text: string, receiptFingerprint: string): Promise; recoverUnitEvidence(rootSessionID: string, request: { unitID: string; childSessionID: string; manifestPath: string; manifestHash: string; goalFingerprint: string; }): Promise; completeRoot(rootSessionID: string, acceptanceFingerprint: string): Promise<{ status: "succeeded" | "awaiting-evidence"; receipt?: GoalTerminalReceipt; }>; stopAutomaticRecovery(rootSessionID: string): Promise; stopRoot(rootSessionID: string): Promise; }): void; }