/** * @license * Copyright 2026 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type { GeminiClient } from '../core/client.js'; import type { MessageBus } from '../confirmation-bus/message-bus.js'; import type { ToolRegistry } from '../tools/tool-registry.js'; import type { SandboxManager } from '../services/sandboxManager.js'; import type { Config } from './config.js'; /** * AgentLoopContext represents the execution-scoped view of the world for a single * agent turn or sub-agent loop. */ export interface AgentLoopContext { /** The global runtime configuration. */ readonly config: Config; /** The unique ID for the current user turn or agent thought loop. */ readonly promptId: string; /** The registry of tools available to the agent in this context. */ readonly toolRegistry: ToolRegistry; /** The bus for user confirmations and messages in this context. */ readonly messageBus: MessageBus; /** The client used to communicate with the LLM in this context. */ readonly geminiClient: GeminiClient; /** The service used to prepare commands for sandboxed execution. */ readonly sandboxManager: SandboxManager; }