mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-13 05:12:55 -07:00
fix(core): increase A2A agent timeout to 30 minutes (#21028)
This commit is contained in:
@@ -23,8 +23,20 @@ import {
|
|||||||
createAuthenticatingFetchWithRetry,
|
createAuthenticatingFetchWithRetry,
|
||||||
} from '@a2a-js/sdk/client';
|
} from '@a2a-js/sdk/client';
|
||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
import { Agent as UndiciAgent } from 'undici';
|
||||||
import { debugLogger } from '../utils/debugLogger.js';
|
import { debugLogger } from '../utils/debugLogger.js';
|
||||||
|
|
||||||
|
// Remote agents can take 10+ minutes (e.g. Deep Research).
|
||||||
|
// Use a dedicated dispatcher so the global 5-min timeout isn't affected.
|
||||||
|
const A2A_TIMEOUT = 1800000; // 30 minutes
|
||||||
|
const a2aDispatcher = new UndiciAgent({
|
||||||
|
headersTimeout: A2A_TIMEOUT,
|
||||||
|
bodyTimeout: A2A_TIMEOUT,
|
||||||
|
});
|
||||||
|
const a2aFetch: typeof fetch = (input, init) =>
|
||||||
|
// @ts-expect-error The `dispatcher` property is a Node.js extension to fetch not present in standard types.
|
||||||
|
fetch(input, { ...init, dispatcher: a2aDispatcher });
|
||||||
|
|
||||||
export type SendMessageResult =
|
export type SendMessageResult =
|
||||||
| Message
|
| Message
|
||||||
| Task
|
| Task
|
||||||
@@ -79,9 +91,9 @@ export class A2AClientManager {
|
|||||||
throw new Error(`Agent with name '${name}' is already loaded.`);
|
throw new Error(`Agent with name '${name}' is already loaded.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
let fetchImpl: typeof fetch = fetch;
|
let fetchImpl: typeof fetch = a2aFetch;
|
||||||
if (authHandler) {
|
if (authHandler) {
|
||||||
fetchImpl = createAuthenticatingFetchWithRetry(fetch, authHandler);
|
fetchImpl = createAuthenticatingFetchWithRetry(a2aFetch, authHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
const resolver = new DefaultAgentCardResolver({ fetchImpl });
|
const resolver = new DefaultAgentCardResolver({ fetchImpl });
|
||||||
|
|||||||
Reference in New Issue
Block a user