/** * Harness lifecycle manager — session lifecycle state machine. * * Provides transition guards, activity tracking, and event routing * for delegated session lifecycle management. */ import { CompletionDetector } from "../../coordination/completion/detector.js"; import type { DelegationManager } from "../../coordination/delegation/manager.js"; import { type OpenCodeClient } from "../../shared/session-api.js"; import type { CheckpointData, RuntimePolicy, SessionLifecyclePhase, SessionLifecycleState } from "../../shared/types.js"; type HivemindLifecycleManagerOptions = { client: OpenCodeClient; pollTimeoutMs: number; runtimePolicy?: RuntimePolicy; backgroundManager?: unknown; delegationManager?: DelegationManager; }; export type LaunchDelegatedSessionArgs = { sessionID: string; description: string; agent: string; category?: string; model?: string; constraints?: string[]; promptText: string; parentSessionID?: string; [key: string]: unknown; }; export declare function isValidTransition(from: SessionLifecyclePhase, to: SessionLifecyclePhase): boolean; export declare function isTerminalPhase(phase: SessionLifecyclePhase): boolean; export declare class HivemindLifecycleManager { private readonly concurrencyLimit; private readonly completionDetector; private readonly client; private readonly delegationManager?; constructor(options: HivemindLifecycleManagerOptions); getConcurrencyLimit(): number; /** * Returns the lifecycle-owned `CompletionDetector` instance. * * Phase 36.1 wiring: the SDK delegation polling path consumes cached * terminal signals (`session.error` / `session.deleted`) and feeds * message counts back into this detector so message-stability is * mirrored across both state machines. Exposing the instance — rather * than a façade — keeps test ergonomics simple: tests can construct * a real detector, feed it directly, and assert on resulting state * transitions in the SDK handler. * * @returns The lifecycle-owned `CompletionDetector`. */ getCompletionDetector(): CompletionDetector; hydrateFromContinuity(): void; getLifecycleSnapshot(sessionID: string): SessionLifecycleState | undefined; noteObservedActivity(sessionID: string, source: string): void; handleEvent(args: { event: unknown; eventType: string; sessionID: string; }): void; /** * Replays queued parent-session notifications from the explicit write-side manager boundary. * * @param sessionID - Parent session observed by an OpenCode lifecycle event. * @param eventType - OpenCode event type that may authorize replay. */ replayPendingNotificationsForEvent(sessionID: string, eventType: string): Promise; cancelDelegatedSession(sessionID: string): Promise; requestAutoLoopRetry(args: { sessionID: string; promptText: string; }): Promise; recordCompactionCheckpoint(sessionID: string, checkpoint: CheckpointData): void; launchDelegatedSession(args: LaunchDelegatedSessionArgs): Promise; } export declare function createHivemindLifecycleManager(options: HivemindLifecycleManagerOptions): HivemindLifecycleManager; export {}; //# sourceMappingURL=index.d.ts.map