diff --git a/.changeset/fuzzy-states-matter.md b/.changeset/fuzzy-states-matter.md new file mode 100644 index 00000000..bf47cf1e --- /dev/null +++ b/.changeset/fuzzy-states-matter.md @@ -0,0 +1,5 @@ +--- +"agents": patch +--- + +Allow agents to customize OAuth client behavior diff --git a/packages/agents/src/index.ts b/packages/agents/src/index.ts index dbf92b18..45f68c3a 100644 --- a/packages/agents/src/index.ts +++ b/packages/agents/src/index.ts @@ -831,9 +831,9 @@ export class Agent extends Server { private async _scheduleNextAlarm() { // Find the next schedule that needs to be executed const result = this.sql` - SELECT time FROM cf_agents_schedules + SELECT time FROM cf_agents_schedules WHERE time > ${Math.floor(Date.now() / 1000)} - ORDER BY time ASC + ORDER BY time ASC LIMIT 1 `; if (!result) return; @@ -1004,11 +1004,7 @@ export class Agent extends Server { authUrl: string | undefined; clientId: string | undefined; }> { - const authProvider = new DurableObjectOAuthClientProvider( - this.ctx.storage, - this.name, - callbackUrl - ); + const authProvider = this.createOAuthProvider(callbackUrl); if (reconnect) { authProvider.serverId = reconnect.id; @@ -1091,6 +1087,14 @@ export class Agent extends Server { return mcpState; } + + createOAuthProvider(callbackUrl: string): AgentsOAuthProvider { + return new DurableObjectOAuthClientProvider( + this.ctx.storage, + this.name, + callbackUrl + ); + } } /**