UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

115 lines (114 loc) 3.47 kB
/** * AgentRuntimeTypes — AgentRuntime 共享类型定义 * * 从 AgentRuntime.ts 提取的接口和类型, * 供 AgentRuntime、ToolExecutionPipeline、LarkTransport 及测试文件独立消费。 * * @module AgentRuntimeTypes */ /** Tool call entry recorded during execution */ export interface ToolCallEntry { tool: string; name?: string; args: Record<string, unknown>; result: unknown; durationMs: number; } /** LLM function call descriptor */ export interface FunctionCall { id: string; name: string; args: Record<string, unknown>; } /** chatWithTools result from the AI provider */ export interface LLMResult { type?: string; text?: string | null; functionCalls?: FunctionCall[] | null; usage?: { inputTokens?: number; outputTokens?: number; }; } /** AI error with optional circuit breaker code */ export interface AiError extends Error { code?: string; } /** Progress event emitted to listeners */ export interface ProgressEvent { type: string; agentId: string; preset: string; timestamp: number; [key: string]: unknown; } /** Tool execution pipeline metadata */ export interface ToolMetadata { cacheHit: boolean; blocked: boolean; isNew: boolean; durationMs: number; dedupMessage?: string; isSubmit?: boolean; } /** File cache entry */ export interface FileCacheEntry { relativePath: string; content?: string; name?: string; } export interface RuntimeConfig { id?: string; presetName?: string; aiProvider: import('#external/ai/AiProvider.js').AiProvider; toolRegistry: import('./tools/ToolRegistry.js').ToolRegistry; container?: Record<string, unknown> | null; capabilities?: import('./capabilities.js').Capability[]; strategy: import('./strategies.js').Strategy; policies?: import('./policies.js').PolicyEngine; persona?: Record<string, unknown>; memory?: Record<string, unknown>; onProgress?: ((event: ProgressEvent) => void) | null; onToolCall?: ToolCallHook | null; lang?: string | null; projectRoot?: string; additionalTools?: string[]; } export type ToolCallHook = (name: string, args: Record<string, unknown>, result: unknown, iteration: number) => void; export interface AgentResult { reply: string; toolCalls: ToolCallEntry[]; tokenUsage: { input: number; output: number; }; iterations: number; durationMs: number; phases?: Record<string, unknown>; state: Record<string, unknown>; qualityWarning?: string; [key: string]: unknown; } export interface ReactLoopOpts { history?: Array<{ role: string; content: string; }>; context?: Record<string, unknown>; capabilityOverride?: string[]; budgetOverride?: Record<string, unknown>; systemPromptOverride?: string; onToolCall?: ToolCallHook | null; contextWindow?: import('./context/ContextWindow.js').ContextWindow; tracker?: Record<string, unknown>; trace?: Record<string, unknown>; memoryCoordinator?: Record<string, unknown>; sharedState?: Record<string, unknown>; source?: string; toolChoiceOverride?: string | null; /** 外部中止信号 — PipelineStrategy hard timeout 时取消进行中的 LLM 调用 */ abortSignal?: AbortSignal; [key: string]: unknown; } /** 单次迭代允许的最大工具调用数 */ export declare const MAX_TOOL_CALLS_PER_ITER = 8;