import type { CompressionTimingState } from "../compress/timing"; import { Message, Part } from "@opencode-ai/sdk/v2"; export interface WithParts { info: Message; parts: Part[]; } export type ToolStatus = "pending" | "running" | "completed" | "error"; export interface ToolParameterEntry { tool: string; parameters: any; status?: ToolStatus; error?: string; turn: number; tokenCount?: number; } export interface SessionStats { pruneTokenCounter: number; totalPruneTokens: number; } export interface PrunedMessageEntry { tokenCount: number; allBlockIds: number[]; activeBlockIds: number[]; } export type CompressionMode = "range" | "message"; export interface CompressionBlock { blockId: number; runId: number; active: boolean; deactivatedByUser: boolean; compressedTokens: number; summaryTokens: number; durationMs: number; mode?: CompressionMode; topic: string; batchTopic?: string; startId: string; endId: string; anchorMessageId: string; compressMessageId: string; compressCallId?: string; includedBlockIds: number[]; consumedBlockIds: number[]; parentBlockIds: number[]; directMessageIds: string[]; directToolIds: string[]; effectiveMessageIds: string[]; effectiveToolIds: string[]; createdAt: number; deactivatedAt?: number; deactivatedByBlockId?: number; summary: string; } export interface PruneMessagesState { byMessageId: Map; blocksById: Map; activeBlockIds: Set; activeByAnchorMessageId: Map; nextBlockId: number; nextRunId: number; } export interface Prune { tools: Map; messages: PruneMessagesState; } export interface PendingManualTrigger { sessionId: string; prompt: string; } export interface MessageIdState { byRawId: Map; byRef: Map; nextRef: number; } export interface Nudges { contextLimitAnchors: Set; turnNudgeAnchors: Set; iterationNudgeAnchors: Set; } export interface SessionState { sessionId: string | null; isSubAgent: boolean; manualMode: false | "active" | "compress-pending"; compressPermission: "ask" | "allow" | "deny" | undefined; pendingManualTrigger: PendingManualTrigger | null; prune: Prune; nudges: Nudges; stats: SessionStats; compressionTiming: CompressionTimingState; toolParameters: Map; subAgentResultCache: Map; toolIdList: string[]; messageIds: MessageIdState; lastCompaction: number; currentTurn: number; variant: string | undefined; modelContextLimit: number | undefined; systemPromptTokens: number | undefined; } //# sourceMappingURL=types.d.ts.map