export * as SessionCompaction from "./compaction.js" import { AIError, InvalidProviderOutputError, UnknownProviderError, isContextOverflowFailure, LLMClient, LLMEvent, LLMRequest, Message, type ContentPart, type Usage, } from "@opencode/ai" import type { StreamOptions } from "@opencode/ai/route" import type { SessionCompactionResult } from "@opencode/plugin/effect/session" import { SessionError } from "@opencode/schema/session-error" import { Context, Effect, Layer, Stream } from "effect" import { Bus } from "../bus.js" import { Database } from "../database/database.js" import { makeLocationNode } from "@opencode/util/effect/app-node" import { llmClient } from "../effect/app-node-platform.js" import { SessionEvent } from "./event.js" import type { SessionContext } from "./context.js" import { SessionHistory } from "./history.js" import type { SessionMessage } from "./message.js" import { SessionModelRequest } from "./model-request.js" import { SessionProviderContext } from "./provider-context.js" import type { SessionRunnerModel } from "./runner/model.js" import { SessionRunnerRetry } from "./runner/retry.js" import { SessionSchema } from "./schema.js" import { toSessionError } from "./to-session-error.js" import { Token } from "../util/token.js" import { SessionUsage } from "./usage.js" import { State } from "../state.js" import { toLLMMessages } from "./runner/to-llm-message.js" import type { AgentNotFoundError } from "./error.js" import type { Instructions } from "../instructions/index.js" const DEFAULT_BUFFER = 20_000 const DEFAULT_KEEP_TOKENS = 15_000 const OUTPUT_TOKEN_MAX = 32_000 const TOOL_OUTPUT_MAX_CHARS = 2_000 const IMAGE_TOKEN_ESTIMATE = 1_500 const PDF_TOKEN_ESTIMATE = 2_000 const SUMMARY_TEMPLATE = `You MUST use this format for your response (you may omit sections that aren't applicable). Do not include the