/** * Initialization — lifecycle assembly helpers for SessionTracker. * * Extracts the dependency-construction logic from index.ts initialize(). * Returns constructed instances without mutating SessionTracker state directly. * * @module session-tracker/initialization */ import type { OpenCodeClient } from "../../shared/session-api.js"; import { HierarchyIndex } from "./persistence/hierarchy-index.js"; import { PendingDispatchRegistry } from "./persistence/pending-dispatch-registry.js"; import { SessionWriter } from "./persistence/session-writer.js"; import { ChildWriter } from "./persistence/child-writer.js"; import { ChildWriteRetryQueue } from "./persistence/retry-queue.js"; import { SessionIndexWriter } from "./persistence/session-index-writer.js"; import { ProjectIndexWriter } from "./persistence/project-index-writer.js"; import { SessionBootstrap } from "./bootstrap.js"; import { SessionClassifier } from "./classification.js"; import { SessionRouter } from "./session-router.js"; import { ChildRecorder } from "./child-recorder.js"; import { OrphanQuarantine } from "./persistence/orphan-quarantine.js"; import { OrphanCleanup } from "./orphan-cleanup.js"; import { HierarchyManifestWriter } from "./persistence/hierarchy-manifest.js"; import { AgentTransform } from "./transform/agent-transform.js"; import { EventCapture } from "./capture/event-capture.js"; import { LastMessageCapture } from "./capture/last-message-capture.js"; import { MessageCapture } from "./capture/message-capture.js"; import { ToolCapture } from "./capture/tool-capture.js"; import { SessionRecovery } from "./recovery/session-recovery.js"; /** * Minimal client surface documentation. * * The `constructDependencies` function accepts `OpenCodeClient` (the full SDK * client type) because downstream constructors require it. The session-tracker * modules only use a small subset: * - `app.log()` — structured logging * - `session.get()` / `session.messages()` — session data queries * - `session.children()` — child delegation polling * - `tui.showToast()` — user notifications * * This documentation-only note replaces the former `ClientLike = any` alias * that erased the type entirely. C1 concern-remediation 2026-05-28. */ /** * All constructed dependencies from initialization. * index.ts assigns these to its own fields. */ export interface InitializedDeps { hierarchyIndex: HierarchyIndex; pendingRegistry: PendingDispatchRegistry; sessionWriter: SessionWriter; childWriter: ChildWriter; retryQueue: ChildWriteRetryQueue; sessionIndexWriter: SessionIndexWriter; projectIndexWriter: ProjectIndexWriter; childRecorder: ChildRecorder; bootstrap: SessionBootstrap; classifier: SessionClassifier; sessionRouter: SessionRouter; quarantine: OrphanQuarantine; orphanCleanup: OrphanCleanup; manifestWriter: HierarchyManifestWriter; agentTransform: AgentTransform; eventCapture: EventCapture; lastMessageCapture: LastMessageCapture; messageCapture: MessageCapture; toolCapture: ToolCapture; recovery: SessionRecovery; } /** * External callbacks needed by the initializer. */ export interface InitCallbacks { getSessionSafely: (id: string) => Promise; ensureChildRoute: (parentID: string, childSessionID: string) => Promise; bootstrappedSessions: Set; } /** * Constructs all SessionTracker dependencies in correct order. * * Callers assign the returned properties to their own fields. * This function does NOT perform async initialization (recovery, index seeding) * — those remain in index.ts initialize() because they involve I/O sequencing. * * @param client - OpenCode client instance. * @param projectRoot - Absolute path to the project root. * @param callbacks - External callbacks for DI wiring. * @returns All constructed dependency instances. */ export declare function constructDependencies(client: OpenCodeClient, projectRoot: string, callbacks: InitCallbacks): InitializedDeps; /** * Resolves the session tracker root directory. * * @param projectRoot - Absolute path to the project root. * @returns Path to `.hivemind/session-tracker/`. */ export declare function sessionTrackerRoot(projectRoot: string): string; //# sourceMappingURL=initialization.d.ts.map