Something went wrong. Try again.
forked niri
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637import type { Message, RunnerState, UserMessage } from "../types.js"
/** Generic decoded tool arguments object. */export type ToolArgs = Record<string, any>
/** Supported image detail levels for multimodal requests. */export type ImageDetail = "auto" | "low" | "high"
/** Mutable state consumed by the runner loop on each turn. */export interface LoopState { conversation: Message[] pendingInputs: UserMessage[] tokenCount: number contextSize: number toolInFlight: boolean}
/** Lifecycle hooks injected by the runner orchestrator into the loop. */export interface LoopHooks { /** Waits for the next incoming event from any trigger source. */ waitForEvent: () => Promise<UserMessage> /** Injects an incoming event into the in-memory conversation. */ injectIncomingEvent: (convId: number, event: UserMessage) => void /** Flushes events deferred while a tool call was in flight. */ flushDeferredEvents: () => void /** Clears persisted session state when ending a run. */ clearSession: () => Promise<void> /** Persists the current in-memory session state. */ saveSession: () => Promise<void>}
/** Internal runtime state for the runner service. */export interface RunnerStateInternal extends RunnerState { toolInFlight: boolean deferredEvents: UserMessage[]}