/** * UnavailableToolLoopDetector の発火結果。 * * エラー文字列だけを返すと、受け側(client.ts の recovery 判定)が * 「どのツールで発火したか」を文字列の再パースで推測する羽目になる。 * ツール名を型で運び、recovery の対象判定(StructuredOutput か一般ツールか)を * 正規表現なしで行えるようにする。 */ export interface UnavailableToolLoopDetection { readonly tool: string; readonly message: string; } export declare class UnavailableToolLoopDetector { private consecutiveUnavailableToolErrors; private lastUnavailableToolCallId; observe(toolCallId: string, tool: string, message: string): UnavailableToolLoopDetection | undefined; reset(): void; } /** * 実在するツールを壊れた引数で呼び続けるループの検出器。 * UnavailableToolLoopDetector の兄弟: あちらは「存在しないツール」、 * こちらは「同一ツールへの引数バリデーションエラーの連発」を打ち切る。 * 実測では弱いモデルがこの状態で10分以上もがき続けた。 */ export declare class InvalidToolArgumentLoopDetector { private consecutiveInvalidArgumentErrors; private lastToolName; private lastCallId; observe(toolCallId: string, tool: string, message: string): string | undefined; reset(): void; } //# sourceMappingURL=unavailable-tool-loop.d.ts.map