Skip to content

Tasks: wait for an externally delivered event - #2314

Open
aron-cf wants to merge 1 commit into
mainfrom
tiny-harness-1
Open

aron-cf wants to merge 1 commit into
mainfrom
tiny-harness-1

Conversation

@aron-cf

@aron-cf aron-cf commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Adds step.waitForEvent() and Tasks.sendEvent() to allow a task to wait on an external event. The event becomes the journaled result, so replay returns it without waiting again.

The sendEvent() results in one of several outcomes delivered, duplicate, not-waiting, wrong-event, not-found, terminal.

The cf_agents_task_steps is renamed in a migration. And 'event' is added to the kind constraint, and its rows copied. It runs against existing data on the first load.


Devin Review

Adds step.waitForEvent() and Tasks.sendEvent(), so a run can park on
something outside itself -- a human decision, a webhook -- and resume
from its journal when the event arrives. The payload becomes the
journaled step result, so replay returns it without waiting again.

sendEvent reports six outcomes rather than throwing: delivered,
duplicate, not-waiting, wrong-event, not-found, terminal. Which of
those a caller should treat as a fault depends on the caller, so the
decision is left to them.

Two things to look at closely:

store.ensureEventColumns() rewrites a live table. cf_agents_task_steps
is renamed, recreated with 'event' added to the kind constraint, and
its rows copied. It runs against existing deployments' data, once, on
the first load after upgrade.

replay.ts must distinguish a step journaled as one kind and replayed
as another -- a handler edited between attempts -- from a legitimate
resume. It throws on the mismatch rather than guessing.
@changeset-bot

changeset-bot Bot commented Sep 22, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 0618d53

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

Devin Review

Comment on lines +940 to +950
if (event.state === "completed") return { status: "duplicate" };
if (event.state !== "waiting" || run.state !== "waiting") {
return { status: "not-waiting" };
}

const result = serializeTaskValue(
payload,
`payload for Task event "${type}" in run "${runId}"`
);
const now = Date.now();
const delivered = this.#store.completeEventWait(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Late events bypass wait deadlines

After a deadline passes, sendEvent still delivers while the run remains parked. Alarm latency can resume tasks with payloads that arrived too late.

Learn more

An event wait stores its absolute deadline in the step's next_at. The run alarm normally replays the handler at that deadline and fails the step. Alarms are not guaranteed to execute at the exact timestamp, so the row can remain waiting after the deadline. sendEvent checks only the step and run states, then completes that expired wait. The documented maximum wait therefore depends on alarm dispatch latency rather than delivery time.

Example: A wait expires at 12:00:00, but its alarm runs at 12:00:05. A delivery at 12:00:03 returns delivered and resumes the task, although the event arrived three seconds late.

Recommended fix: Compare event.next_at with the delivery timestamp before completing the wait. Expired deliveries must not complete the step; settle or schedule the timeout path consistently with ReplayStep.waitForEvent, including run failure observation and wake synchronization.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +341 to +354
const row = this.#engine.readStep(name);
if (row === undefined) {
this.#live = true;
const timeoutMs = parseTaskDuration(
options.timeout ?? "1 day",
"event wait timeout"
);
const timeoutAt = Date.now() + timeoutMs;
this.#engine.insertEventWait(
name,
options.type,
options.metadata,
timeoutAt
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Event waits bypass step ceiling

waitForEvent inserts each journal miss without checking MAX_STEPS_PER_RUN. Event waits can grow a run beyond the 10,000-step ceiling.

Learn more

The step journal has a shared 10,000-row ceiling, and countSteps() includes every step kind. New do steps enforce that ceiling before insertion, but new event waits do not. A handler that sequentially consumes many external events can therefore create an unbounded journal even though the engine declares a per-run maximum.

Example: A task loops over 10,001 distinct event step names. Every delivery advances the loop, and the 10,001st event row is inserted instead of failing at the same boundary as a do step.

Recommended fix: Apply the same countSteps() >= MAX_STEPS_PER_RUN guard before insertEventWait. Keep the error and boundary consistent across all journal-producing step kinds.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines 21 to +25
Task,
TaskCallbacks,
TaskError,
TaskEventDelivery,
TaskEventWaitOptions,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Public API lacks a changeset

The new event-wait API ships from the public Tasks entry point, but this PR adds no changeset required for package releases.

(Refers to this code)

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@agent-think

agent-think Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

🔴 agents import sizes

Measured 344 runtime imports as minified bundles. The primary size is gzip; raw minified size is included for diagnosis. An existing import growing by more than 10% is marked red. This report is informational.

Red Yellow Green Unchanged New Removed
1 53 1 288 1 0

Compared c076e4c9 with 0618d531. Open workflow run.

Changed imports (56)
Status Import Base gzip Head gzip Delta
🔴 agents/tasks#Tasks 8.9 KiB 10.0 KiB +1.1 KiB (+12.22%)
🟡 agents/tasks#TaskReplayDivergedError 341 B 343 B +2 B (+0.59%)
🟡 agents/chat-sdk#defaultThreadShard 261.1 KiB 262.2 KiB +1.1 KiB (+0.44%)
🟡 agents/chat-sdk#defaultKeyShard 261.2 KiB 262.3 KiB +1.1 KiB (+0.44%)
🟡 agents/workflows#AgentWorkflow 262.4 KiB 263.5 KiB +1.1 KiB (+0.44%)
🟡 agents#routeAgentRequest 261.7 KiB 262.9 KiB +1.1 KiB (+0.43%)
🟡 agents/workflows#WorkflowRejectedError 261.2 KiB 262.3 KiB +1.1 KiB (+0.43%)
🟡 agents/chat-sdk#ChatSdkStateAdapter 263.5 KiB 264.6 KiB +1.1 KiB (+0.43%)
🟡 agents/chat-sdk#ChatSdkStateAgent 262.8 KiB 264.0 KiB +1.1 KiB (+0.43%)
🟡 agents#unstable_callable 261.2 KiB 262.3 KiB +1.1 KiB (+0.43%)
🟡 agents/chat-sdk#createChatSdkState 263.5 KiB 264.6 KiB +1.1 KiB (+0.43%)
🟡 agents#getSubAgentByName 261.4 KiB 262.5 KiB +1.1 KiB (+0.42%)
🟡 agents#AGENT_TOOL_MILESTONE_PART 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#__DO_NOT_USE_WILL_BREAK__withInvocationScope 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#callable 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#buildAgentUrl 261.8 KiB 262.9 KiB +1.1 KiB (+0.42%)
🟡 agents#createHeaderBasedEmailResolver 261.3 KiB 262.4 KiB +1.1 KiB (+0.42%)
🟡 agents#MessageType 261.2 KiB 262.3 KiB +1.1 KiB (+0.42%)
🟡 agents#SUB_PREFIX 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#AGENT_TOOL_PROGRESS_PART 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#getAgentByName 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#DurableObjectOAuthClientProvider 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#isDurableObjectCodeUpdateReset 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#MCP_SERVER_ID_MAX_LENGTH 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#isDurableObjectMemoryLimitReset 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#parseSubAgentPath 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#__DO_NOT_USE_WILL_BREAK__agentContext 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#camelCaseToKebabCase 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#SqlError 261.1 KiB 262.2 KiB +1.1 KiB (+0.42%)
🟡 agents#DEFAULT_AGENT_STATIC_OPTIONS 261.1 KiB 262.2 KiB +1.1 KiB (+0.41%)
🟡 agents#buildAgentPath 261.7 KiB 262.7 KiB +1.1 KiB (+0.41%)
🟡 agents#StreamingResponse 261.1 KiB 262.2 KiB +1.1 KiB (+0.41%)
🟡 agents#getCurrentAgent 261.1 KiB 262.2 KiB +1.1 KiB (+0.41%)
🟡 agents#normalizeServerId 261.1 KiB 262.2 KiB +1.1 KiB (+0.41%)
🟡 agents#Agent 261.1 KiB 262.2 KiB +1.1 KiB (+0.41%)
🟡 agents#routeAgentEmail 261.4 KiB 262.4 KiB +1.1 KiB (+0.41%)
🟡 agents#isPlatformTransientError 261.1 KiB 262.2 KiB +1.1 KiB (+0.41%)
🟡 agents#routeSubAgentRequest 261.3 KiB 262.4 KiB +1.1 KiB (+0.41%)
🟡 agents#isDurableObjectStorageReset 261.1 KiB 262.2 KiB +1.1 KiB (+0.41%)
🟡 agents/mcp#SSEEdgeClientTransport 345.2 KiB 346.4 KiB +1.2 KiB (+0.35%)
🟡 agents/mcp#MCP_SERVER_ID_MAX_LENGTH 345.1 KiB 346.3 KiB +1.2 KiB (+0.34%)
🟡 agents/mcp#getMcpAuthContext 345.1 KiB 346.3 KiB +1.2 KiB (+0.34%)
🟡 agents/mcp#McpAgent 345.1 KiB 346.3 KiB +1.2 KiB (+0.34%)
🟡 agents/mcp#StreamableHTTPEdgeClientTransport 345.2 KiB 346.4 KiB +1.2 KiB (+0.33%)
🟡 agents/mcp#RPC_DO_PREFIX 345.1 KiB 346.3 KiB +1.1 KiB (+0.33%)
🟡 agents/mcp#DurableObjectEventStore 345.1 KiB 346.3 KiB +1.1 KiB (+0.33%)
🟡 agents/mcp#RPCClientTransport 345.1 KiB 346.3 KiB +1.1 KiB (+0.33%)
🟡 agents/mcp#normalizeServerId 345.1 KiB 346.3 KiB +1.1 KiB (+0.33%)
🟡 agents/mcp#RPCServerTransport 345.1 KiB 346.3 KiB +1.1 KiB (+0.33%)
🟡 agents/mcp#ElicitRequestSchema 345.1 KiB 346.2 KiB +1.1 KiB (+0.32%)
🟡 agents/mcp#WorkerTransport 348.5 KiB 349.6 KiB +1.1 KiB (+0.32%)
🟡 agents/mcp#createLegacyMcpHandler 378.6 KiB 379.8 KiB +1.2 KiB (+0.31%)
🟡 agents/mcp#experimental_createMcpHandler 378.7 KiB 379.9 KiB +1.2 KiB (+0.31%)
🟡 agents/mcp#createMcpHandler 390.9 KiB 392.0 KiB +1.1 KiB (+0.28%)
🟢 agents/tasks#DuplicateTaskStepError 328 B 327 B -1 B (-0.3%)
⚪ agents/tasks#TaskEventTimeoutError — 279 B —
All 344 current runtime imports
Status Import Gzip Raw minified
🟡 agents#__DO_NOT_USE_WILL_BREAK__agentContext 262.2 KiB 1146.3 KiB
🟡 agents#__DO_NOT_USE_WILL_BREAK__withInvocationScope 262.2 KiB 1146.3 KiB
🟡 agents#Agent 262.2 KiB 1146.3 KiB
🟡 agents#AGENT_TOOL_MILESTONE_PART 262.2 KiB 1146.3 KiB
🟡 agents#AGENT_TOOL_PROGRESS_PART 262.2 KiB 1146.3 KiB
🟡 agents#buildAgentPath 262.7 KiB 1148.6 KiB
🟡 agents#buildAgentUrl 262.9 KiB 1149.1 KiB
🟡 agents#callable 262.2 KiB 1146.4 KiB
🟡 agents#camelCaseToKebabCase 262.2 KiB 1146.3 KiB
🟡 agents#createHeaderBasedEmailResolver 262.4 KiB 1146.8 KiB
🟡 agents#DEFAULT_AGENT_STATIC_OPTIONS 262.2 KiB 1146.3 KiB
🟡 agents#DurableObjectOAuthClientProvider 262.2 KiB 1146.3 KiB
🟡 agents#getAgentByName 262.2 KiB 1146.3 KiB
🟡 agents#getCurrentAgent 262.2 KiB 1146.3 KiB
🟡 agents#getSubAgentByName 262.5 KiB 1147.0 KiB
🟡 agents#isDurableObjectCodeUpdateReset 262.2 KiB 1146.3 KiB
🟡 agents#isDurableObjectMemoryLimitReset 262.2 KiB 1146.3 KiB
🟡 agents#isDurableObjectStorageReset 262.2 KiB 1146.4 KiB
🟡 agents#isPlatformTransientError 262.2 KiB 1146.3 KiB
🟡 agents#MCP_SERVER_ID_MAX_LENGTH 262.2 KiB 1146.3 KiB
🟡 agents#MessageType 262.3 KiB 1146.7 KiB
🟡 agents#normalizeServerId 262.2 KiB 1146.3 KiB
🟡 agents#parseSubAgentPath 262.2 KiB 1146.3 KiB
🟡 agents#routeAgentEmail 262.4 KiB 1147.1 KiB
🟡 agents#routeAgentRequest 262.9 KiB 1148.2 KiB
🟡 agents#routeSubAgentRequest 262.4 KiB 1146.9 KiB
🟡 agents#SqlError 262.2 KiB 1146.3 KiB
🟡 agents#StreamingResponse 262.2 KiB 1146.3 KiB
🟡 agents#SUB_PREFIX 262.2 KiB 1146.3 KiB
🟡 agents#unstable_callable 262.3 KiB 1146.6 KiB
⚪ agents/agent-tools#agentTool 112.5 KiB 538.2 KiB
⚪ agents/browser#BrowserConnector 50.5 KiB 176.6 KiB
⚪ agents/browser#browserContent 36.3 KiB 127.4 KiB
⚪ agents/browser#browserExtract 36.3 KiB 127.4 KiB
⚪ agents/browser#browserLinks 36.3 KiB 127.4 KiB
⚪ agents/browser#browserMarkdown 36.3 KiB 127.4 KiB
⚪ agents/browser#browserPdf 36.3 KiB 127.3 KiB
⚪ agents/browser#BrowserRenderingError 36.0 KiB 126.7 KiB
⚪ agents/browser#browserScrape 36.3 KiB 127.4 KiB
⚪ agents/browser#browserScreenshot 36.3 KiB 127.3 KiB
⚪ agents/browser#browserSnapshot 36.3 KiB 127.4 KiB
⚪ agents/browser#CdpSession 37.2 KiB 129.8 KiB
⚪ agents/browser#CodemodeRuntime 39.6 KiB 139.0 KiB
⚪ agents/browser#connectBrowser 37.8 KiB 131.4 KiB
⚪ agents/browser#connectBrowserSession 37.5 KiB 130.4 KiB
⚪ agents/browser#connectUrl 37.6 KiB 130.5 KiB
⚪ agents/browser#createBrowserSession 36.3 KiB 127.5 KiB
⚪ agents/browser#DEFAULT_EXEC_SWEEP_IDLE_MS 36.0 KiB 126.6 KiB
⚪ agents/browser#DEFAULT_SWEEP_IDLE_MS 36.0 KiB 126.6 KiB
⚪ agents/browser#deleteBrowserSession 36.1 KiB 126.9 KiB
⚪ agents/browser#DurableBrowserSessionStore 36.4 KiB 127.6 KiB
⚪ agents/browser#getBrowserRecording 36.2 KiB 127.1 KiB
⚪ agents/browser#listBrowserTargets 36.1 KiB 126.9 KiB
⚪ agents/browser#loadCdpSpec 36.6 KiB 128.3 KiB
⚪ agents/browser#runQuickAction 36.0 KiB 126.6 KiB
⚪ agents/browser/ai#createBrowserRuntime 147.0 KiB 632.8 KiB
⚪ agents/browser/ai#createBrowserTools 147.0 KiB 632.9 KiB
⚪ agents/browser/ai#createQuickActionTools 122.5 KiB 554.3 KiB
⚪ agents/browser/tanstack-ai#createBrowserTools 162.7 KiB 701.7 KiB
⚪ agents/channels#ChannelHost 3.3 KiB 9.1 KiB
⚪ agents/channels#consumeChunks 237 B 321 B
⚪ agents/channels#createUserIdentityStore 1.3 KiB 3.2 KiB
⚪ agents/channels#fallback 155 B 160 B
⚪ agents/channels#fallbackChannel 893 B 1.9 KiB
⚪ agents/channels#fanout 151 B 156 B
⚪ agents/channels#fanoutChannel 875 B 1.9 KiB
⚪ agents/channels#identityKey 178 B 223 B
⚪ agents/channels#isChannelMessageSurface 271 B 452 B
⚪ agents/channels#linkChannelIdentities 113 B 99 B
⚪ agents/channels#matchesPath 110 B 96 B
⚪ agents/channels#routes 307 B 507 B
⚪ agents/channels#UserIdentityConflictError 248 B 335 B
⚪ agents/channels/ai-sdk#createSendMessageTool 112.2 KiB 537.4 KiB
⚪ agents/channels/ai-sdk#toChannelChunks 112.5 KiB 538.4 KiB
⚪ agents/channels/email#email 23.5 KiB 75.4 KiB
⚪ agents/channels/email#inboundEmail 22.3 KiB 72.3 KiB
⚪ agents/channels/slack#slack 5.5 KiB 14.6 KiB
⚪ agents/channels/slack#slackWebhook 2.2 KiB 5.1 KiB
⚪ agents/channels/tanstack-ai#createSendMessageTool 16.2 KiB 68.4 KiB
⚪ agents/channels/telegram#telegram 3.8 KiB 10.3 KiB
⚪ agents/channels/telegram#telegramWebhook 1.6 KiB 3.6 KiB
⚪ agents/channels/voice#browserVoice 1010 B 2.2 KiB
⚪ agents/chat#AbortRegistry 2.5 KiB 8.9 KiB
⚪ agents/chat#AGENT_TOOL_STREAM_PROGRESS_BUMP_THROTTLE_MS 2.3 KiB 8.2 KiB
⚪ agents/chat#AgentToolProgressEmitter 2.7 KiB 9.5 KiB
⚪ agents/chat#AgentToolStreamProgressThrottle 2.4 KiB 8.3 KiB
⚪ agents/chat#aiSdkRecoveryCodec 2.3 KiB 8.2 KiB
⚪ agents/chat#applyAgentToolEvent 3.2 KiB 11.0 KiB
⚪ agents/chat#applyChunkToParts 2.3 KiB 8.2 KiB
⚪ agents/chat#applyToolUpdate 2.4 KiB 8.4 KiB
⚪ agents/chat#AutoContinuationController 2.3 KiB 8.2 KiB
⚪ agents/chat#awaitWithDeadline 2.4 KiB 8.4 KiB
⚪ agents/chat#broadcastTransition 3.2 KiB 11.4 KiB
⚪ agents/chat#buildChatRecoveringFrame 2.4 KiB 8.4 KiB
⚪ agents/chat#buildInClauseStrings 2.4 KiB 8.4 KiB
⚪ agents/chat#bumpChatRecoveryProgress 2.4 KiB 8.3 KiB
⚪ agents/chat#byteLength 2.5 KiB 8.5 KiB
⚪ agents/chat#CHAT_LAST_TERMINAL_KEY 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_MESSAGE_TYPES 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERING_FLAG_TTL_MS 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERING_KEY 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERY_ALARM_DEBOUNCE_MS 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERY_INCIDENT_KEY_PREFIX 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERY_INCIDENT_TTL_MS 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERY_PROGRESS_KEY 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERY_STABLE_RETRY_DELAY_SECONDS 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_RECOVERY_TASK_NAME 2.3 KiB 8.2 KiB
⚪ agents/chat#CHAT_STREAM_PROGRESS_CREDIT_THROTTLE_MS 2.3 KiB 8.2 KiB
⚪ agents/chat#ChatRecoveryEngine 4.4 KiB 15.3 KiB
⚪ agents/chat#chatRecoveryTaskRunOptions 2.4 KiB 8.6 KiB
⚪ agents/chat#ChatStreamStalledError 2.4 KiB 8.3 KiB
⚪ agents/chat#classifyAgentToolChildRecovery 2.4 KiB 8.5 KiB
⚪ agents/chat#clearChatTerminal 2.3 KiB 8.3 KiB
⚪ agents/chat#clientResolvableToolNames 2.3 KiB 8.3 KiB
⚪ agents/chat#ContinuationState 2.7 KiB 9.8 KiB
⚪ agents/chat#createAgentToolEventState 2.3 KiB 8.3 KiB
⚪ agents/chat#createChatFiberSnapshot 2.5 KiB 8.6 KiB
⚪ agents/chat#createChatRecoveryTaskDefinition 2.6 KiB 9.0 KiB
⚪ agents/chat#createChatStreams 6.4 KiB 22.1 KiB
⚪ agents/chat#createChatTurnTaskDefinition 2.7 KiB 8.9 KiB
⚪ agents/chat#createToolsFromClientSchemas 114.3 KiB 545.4 KiB
⚪ agents/chat#crossMessageToolResultUpdate 2.4 KiB 8.6 KiB
⚪ agents/chat#DEFAULT_CHAT_RECOVERY_MAX_ATTEMPTS 2.3 KiB 8.2 KiB
⚪ agents/chat#DEFAULT_CHAT_RECOVERY_MAX_OOM_RETRIES 2.3 KiB 8.2 KiB
⚪ agents/chat#DEFAULT_CHAT_RECOVERY_MAX_WORK 2.3 KiB 8.2 KiB
⚪ agents/chat#DEFAULT_CHAT_RECOVERY_NO_PROGRESS_TIMEOUT_MS 2.3 KiB 8.2 KiB
⚪ agents/chat#DEFAULT_CHAT_RECOVERY_STABLE_TIMEOUT_MS 2.3 KiB 8.2 KiB
⚪ agents/chat#DEFAULT_CHAT_RECOVERY_TERMINAL_MESSAGE 2.4 KiB 8.3 KiB
⚪ agents/chat#dispatchChatRecoveryToHandoff 3.0 KiB 9.9 KiB
⚪ agents/chat#drainInteractionApplies 2.3 KiB 8.3 KiB
⚪ agents/chat#enforceRowSizeLimit 3.5 KiB 11.2 KiB
⚪ agents/chat#hasIncompleteToolBatch 2.4 KiB 8.6 KiB
⚪ agents/chat#interceptAgentToolBroadcast 2.5 KiB 8.7 KiB
⚪ agents/chat#isPlatformFailure 2.6 KiB 8.9 KiB
⚪ agents/chat#isReplayChunk 2.4 KiB 8.7 KiB
⚪ agents/chat#iterateWithStallWatchdog 2.6 KiB 8.8 KiB
⚪ agents/chat#KV_DELETE_MAX_KEYS 2.3 KiB 8.2 KiB
⚪ agents/chat#listActiveChatRecoveryIncidents 2.4 KiB 8.4 KiB
⚪ agents/chat#MAX_BOUND_PARAMS 2.3 KiB 8.2 KiB
⚪ agents/chat#MessageType 2.4 KiB 9.0 KiB
⚪ agents/chat#normalizeToolInput 2.3 KiB 8.2 KiB
⚪ agents/chat#parseProtocolMessage 2.5 KiB 9.0 KiB
⚪ agents/chat#partAwaitsClientInteraction 2.4 KiB 8.6 KiB
⚪ agents/chat#pausedExecutionUpdate 2.4 KiB 8.4 KiB
⚪ agents/chat#pendingChatTerminal 2.3 KiB 8.3 KiB
⚪ agents/chat#persistReconstructedOrphan 3.1 KiB 11.0 KiB
⚪ agents/chat#PreStreamTurns 2.6 KiB 9.3 KiB
⚪ agents/chat#readChatRecoveryProgress 2.3 KiB 8.3 KiB
⚪ agents/chat#reconcileMessages 2.8 KiB 9.6 KiB
⚪ agents/chat#reconcileOrphanPartial 2.4 KiB 8.5 KiB
⚪ agents/chat#recordChatTerminal 2.4 KiB 8.3 KiB
⚪ agents/chat#repairInterruptedToolParts 2.6 KiB 9.1 KiB
⚪ agents/chat#resolveChatRecoveryConfig 2.6 KiB 8.9 KiB
⚪ agents/chat#resolveToolMergeId 2.4 KiB 8.5 KiB
⚪ agents/chat#ResumableStream 5.1 KiB 16.8 KiB
⚪ agents/chat#ResumeHandshake 3.0 KiB 10.4 KiB
⚪ agents/chat#ROW_MAX_BYTES 2.3 KiB 8.2 KiB
⚪ agents/chat#runChatRecoveryExhaustion 2.6 KiB 8.9 KiB
⚪ agents/chat#sanitizeMessage 2.5 KiB 8.8 KiB
⚪ agents/chat#sendIfOpen 2.4 KiB 8.4 KiB
⚪ agents/chat#setChatRecovering 2.5 KiB 8.5 KiB
⚪ agents/chat#shouldCreditStreamProgress 2.4 KiB 8.3 KiB
⚪ agents/chat#STREAM_RESUME_NONE_REASONS 2.3 KiB 8.2 KiB
⚪ agents/chat#StreamAccumulator 2.9 KiB 10.7 KiB
⚪ agents/chat#StreamProgressCreditThrottle 2.4 KiB 8.3 KiB
⚪ agents/chat#SubmitConcurrencyController 2.9 KiB 10.3 KiB
⚪ agents/chat#sweepStaleChatRecoveryIncidents 2.4 KiB 8.5 KiB
⚪ agents/chat#TextSegmentJoiner 2.7 KiB 9.2 KiB
⚪ agents/chat#TIMED_OUT 2.3 KiB 8.2 KiB
⚪ agents/chat#toolApprovalUpdate 2.4 KiB 8.5 KiB
⚪ agents/chat#toolPartHasSettledResult 2.3 KiB 8.4 KiB
⚪ agents/chat#toolResultUpdate 2.4 KiB 8.5 KiB
⚪ agents/chat#truncateOlderMessages 3.2 KiB 10.4 KiB
⚪ agents/chat#TurnQueue 2.6 KiB 9.2 KiB
⚪ agents/chat#unwrapChatFiberSnapshot 2.4 KiB 8.5 KiB
⚪ agents/chat#wrapChatFiberSnapshot 2.3 KiB 8.2 KiB
🟡 agents/chat-sdk#ChatSdkStateAdapter 264.6 KiB 1157.9 KiB
🟡 agents/chat-sdk#ChatSdkStateAgent 264.0 KiB 1155.4 KiB
🟡 agents/chat-sdk#createChatSdkState 264.6 KiB 1157.9 KiB
🟡 agents/chat-sdk#defaultKeyShard 262.3 KiB 1146.6 KiB
🟡 agents/chat-sdk#defaultThreadShard 262.2 KiB 1146.4 KiB
⚪ agents/chat/react#detectToolsRequiringConfirmation 3.3 KiB 8.3 KiB
⚪ agents/chat/react#extractClientToolSchemas 3.2 KiB 8.3 KiB
⚪ agents/chat/react#getAgentMessages 3.4 KiB 8.6 KiB
⚪ agents/chat/react#getToolApproval 3.1 KiB 8.0 KiB
⚪ agents/chat/react#getToolCallId 3.1 KiB 8.0 KiB
⚪ agents/chat/react#getToolInput 3.1 KiB 8.0 KiB
⚪ agents/chat/react#getToolOutput 3.1 KiB 8.0 KiB
⚪ agents/chat/react#getToolPartState 3.2 KiB 8.2 KiB
⚪ agents/chat/react#useAgentChat 132.9 KiB 609.7 KiB
⚪ agents/chat/react#WebSocketChatTransport 5.7 KiB 17.1 KiB
⚪ agents/chat/transport#WebSocketChatTransport 2.8 KiB 9.2 KiB
⚪ agents/client#AgentClient 21.8 KiB 75.2 KiB
⚪ agents/client#AgentConnectionError 16.3 KiB 57.8 KiB
⚪ agents/client#agentFetch 19.7 KiB 69.0 KiB
⚪ agents/client#createStubProxy 16.4 KiB 57.8 KiB
⚪ agents/client#DEFAULT_CALL_TIMEOUT_MS 16.2 KiB 57.6 KiB
⚪ agents/client#isTerminalCloseEvent 16.3 KiB 57.6 KiB
⚪ agents/client#nativeCall 16.5 KiB 58.3 KiB
⚪ agents/client#NativeCallQueue 16.7 KiB 58.9 KiB
⚪ agents/client#splitCallOptions 16.3 KiB 57.7 KiB
⚪ agents/context#AgentContextProvider 412 B 792 B
⚪ agents/context#AgentSearchProvider 640 B 1.3 KiB
⚪ agents/context#ContextBlocks 87.4 KiB 429.7 KiB
⚪ agents/email#createAddressBasedEmailResolver 193 B 227 B
⚪ agents/email#createCatchAllEmailResolver 110 B 97 B
⚪ agents/email#createHeaderBasedEmailResolver 334 B 492 B
⚪ agents/email#createSecureReplyEmailResolver 718 B 1.3 KiB
⚪ agents/email#DEFAULT_MAX_AGE_SECONDS 56 B 39 B
⚪ agents/email#isAutoReplyEmail 201 B 249 B
⚪ agents/email#signAgentHeaders 424 B 812 B
⚪ agents/experimental/webmcp#registerWebMcp 85.2 KiB 295.8 KiB
⚪ agents/lifecycle#getCurrentAgent 376 B 798 B
⚪ agents/lifecycle#Lifecycle 8.4 KiB 26.1 KiB
⚪ agents/lifecycle#LifecycleCapability 497 B 999 B
🟡 agents/mcp#createLegacyMcpHandler 379.8 KiB 1588.7 KiB
🟡 agents/mcp#createMcpHandler 392.0 KiB 1633.9 KiB
🟡 agents/mcp#DurableObjectEventStore 346.3 KiB 1447.2 KiB
🟡 agents/mcp#ElicitRequestSchema 346.2 KiB 1447.2 KiB
🟡 agents/mcp#experimental_createMcpHandler 379.9 KiB 1589.0 KiB
🟡 agents/mcp#getMcpAuthContext 346.3 KiB 1447.2 KiB
🟡 agents/mcp#MCP_SERVER_ID_MAX_LENGTH 346.3 KiB 1447.2 KiB
🟡 agents/mcp#McpAgent 346.3 KiB 1447.2 KiB
🟡 agents/mcp#normalizeServerId 346.3 KiB 1447.2 KiB
🟡 agents/mcp#RPC_DO_PREFIX 346.3 KiB 1447.2 KiB
🟡 agents/mcp#RPCClientTransport 346.3 KiB 1447.2 KiB
🟡 agents/mcp#RPCServerTransport 346.3 KiB 1447.2 KiB
🟡 agents/mcp#SSEEdgeClientTransport 346.4 KiB 1447.5 KiB
🟡 agents/mcp#StreamableHTTPEdgeClientTransport 346.4 KiB 1447.5 KiB
🟡 agents/mcp#WorkerTransport 349.6 KiB 1464.1 KiB
⚪ agents/mcp/client#getNamespacedData 62.9 KiB 240.0 KiB
⚪ agents/mcp/client#MCP_SERVER_ID_MAX_LENGTH 62.9 KiB 239.9 KiB
⚪ agents/mcp/client#MCPClientManager 158.6 KiB 702.6 KiB
⚪ agents/mcp/client#normalizeServerId 63.0 KiB 240.2 KiB
⚪ agents/mcp/do-oauth-client-provider#DurableObjectOAuthClientProvider 2.1 KiB 6.6 KiB
⚪ agents/mcp/server#createMcpHandler 80.5 KiB 307.2 KiB
⚪ agents/mcp/server#getMcpAuthContext 64.0 KiB 245.5 KiB
⚪ agents/observability#channels 259 B 549 B
⚪ agents/observability#genericObservability 470 B 1.2 KiB
⚪ agents/observability#subscribe 324 B 668 B
⚪ agents/observability/ai#wrapAISDK 8.8 KiB 30.5 KiB
⚪ agents/queue#Queue 3.1 KiB 9.6 KiB
⚪ agents/react#_testUtils 19.3 KiB 66.4 KiB
⚪ agents/react#useAgent 27.1 KiB 89.9 KiB
⚪ agents/react#useAgentToolEvents 21.1 KiB 73.7 KiB
⚪ agents/routing#getAgentByName 795 B 1.7 KiB
⚪ agents/routing#routeAgentRequest 1.6 KiB 3.6 KiB
⚪ agents/routing#RoutedAgents 2.4 KiB 6.2 KiB
⚪ agents/schedule#getSchedulePrompt 85.8 KiB 424.7 KiB
⚪ agents/schedule#scheduleSchema 85.3 KiB 423.6 KiB
⚪ agents/schedule#unstable_getSchedulePrompt 85.9 KiB 424.9 KiB
⚪ agents/schedule#unstable_scheduleSchema 85.3 KiB 423.6 KiB
⚪ agents/schedules#Scheduler 6.8 KiB 22.0 KiB
⚪ agents/schedules/parser#getSchedulePrompt 85.8 KiB 424.7 KiB
⚪ agents/schedules/parser#scheduleSchema 85.3 KiB 423.6 KiB
⚪ agents/sessions#COMPACTION_PREFIX 147 B 160 B
⚪ agents/sessions#createCompactFunction 1.7 KiB 4.0 KiB
⚪ agents/sessions#isCompactionMessage 177 B 200 B
⚪ agents/sessions#Session 2.0 KiB 6.3 KiB
⚪ agents/sessions#Sessions 9.6 KiB 34.3 KiB
⚪ agents/skills#fromManifest 309.8 KiB 1084.0 KiB
⚪ agents/skills#parseSkillFrontmatter 328.4 KiB 1146.2 KiB
⚪ agents/skills#parseSkillMarkdown 328.6 KiB 1146.5 KiB
⚪ agents/skills#r2 330.2 KiB 1150.4 KiB
⚪ agents/skills#runner 369.0 KiB 1297.8 KiB
⚪ agents/skills#SkillRegistry 416.4 KiB 1581.7 KiB
⚪ agents/skills/compile#compileSkillScript 15.4 KiB 43.4 KiB
⚪ agents/skills/compile#isCompilableSkillScript 15.4 KiB 43.3 KiB
⚪ agents/state#State 1.1 KiB 2.4 KiB
⚪ agents/streams#DEFAULT_MAX_CHUNK_BYTES 94 B 96 B
⚪ agents/streams#sseResponse 857 B 1.6 KiB
⚪ agents/streams#StreamClosedError 175 B 212 B
⚪ agents/streams#StreamNotFoundError 215 B 276 B
⚪ agents/streams#Streams 4.3 KiB 13.9 KiB
⚪ agents/streams#StreamSerializationError 171 B 201 B
🟢 agents/tasks#DuplicateTaskStepError 327 B 463 B
⚪ agents/tasks#MAX_SERIALIZED_BYTES 190 B 232 B
⚪ agents/tasks#MissingTaskDefinitionError 358 B 536 B
⚪ agents/tasks#NonRetryableError 238 B 308 B
⚪ agents/tasks#TaskEventTimeoutError 279 B 386 B
🟡 agents/tasks#TaskReplayDivergedError 343 B 483 B
🔴 agents/tasks#Tasks 10.0 KiB 37.1 KiB
⚪ agents/tasks#TaskSerializationError 258 B 339 B
⚪ agents/types#MessageType 211 B 365 B
⚪ agents/vite#default 353.8 KiB 1356.1 KiB
⚪ agents/voice#addSFUTracks 324 B 424 B
⚪ agents/voice#createSFUSession 255 B 306 B
⚪ agents/voice#createSFUWebSocketAdapter 331 B 429 B
⚪ agents/voice#decodeVarint 157 B 160 B
⚪ agents/voice#downsample48kStereoTo16kMono 238 B 324 B
⚪ agents/voice#encodePayloadToProtobuf 189 B 279 B
⚪ agents/voice#encodeVarint 129 B 122 B
⚪ agents/voice#extractPayloadFromProtobuf 271 B 425 B
⚪ agents/voice#iterateText 1.6 KiB 3.8 KiB
⚪ agents/voice#renegotiateSFUSession 329 B 428 B
⚪ agents/voice#SentenceChunker 550 B 1.1 KiB
⚪ agents/voice#sfuFetch 294 B 358 B
⚪ agents/voice#upsample16kMonoTo48kStereo 211 B 272 B
⚪ agents/voice#VOICE_PROTOCOL_VERSION 51 B 31 B
⚪ agents/voice#withVoice 9.5 KiB 32.7 KiB
⚪ agents/voice#withVoiceInput 4.8 KiB 16.0 KiB
⚪ agents/voice#WorkersAIFluxSTT 1.5 KiB 4.3 KiB
⚪ agents/voice#WorkersAINova3STT 1.6 KiB 4.3 KiB
⚪ agents/voice#WorkersAITTS 682 B 1.4 KiB
⚪ agents/voice/client#VOICE_PROTOCOL_VERSION 473 B 768 B
⚪ agents/voice/client#VoiceClient 10.1 KiB 31.6 KiB
⚪ agents/voice/client#WebSocketVoiceTransport 4.6 KiB 13.3 KiB
⚪ agents/voice/errors#logVoiceError 132 B 173 B
⚪ agents/voice/errors#toVoiceError 94 B 80 B
⚪ agents/voice/errors#voiceErrorMessage 125 B 111 B
⚪ agents/voice/errors#VoiceProviderError 190 B 345 B
⚪ agents/voice/react#useVoiceAgent 13.6 KiB 42.5 KiB
⚪ agents/voice/react#useVoiceInput 13.3 KiB 41.4 KiB
⚪ agents/voice/react#WebSocketVoiceTransport 7.4 KiB 21.3 KiB
⚪ agents/voice/sfu#addSFUTracks 323 B 424 B
⚪ agents/voice/sfu#createSFUSession 254 B 306 B
⚪ agents/voice/sfu#createSFUWebSocketAdapter 329 B 429 B
⚪ agents/voice/sfu#decodeVarint 155 B 160 B
⚪ agents/voice/sfu#downsample48kStereoTo16kMono 236 B 324 B
⚪ agents/voice/sfu#encodePayloadToProtobuf 188 B 279 B
⚪ agents/voice/sfu#encodeVarint 129 B 122 B
⚪ agents/voice/sfu#extractPayloadFromProtobuf 270 B 425 B
⚪ agents/voice/sfu#renegotiateSFUSession 329 B 428 B
⚪ agents/voice/sfu#sfuFetch 292 B 358 B
⚪ agents/voice/sfu#upsample16kMonoTo48kStereo 209 B 272 B
⚪ agents/voice/text#iterateText 1.6 KiB 3.8 KiB
⚪ agents/voice/text#SentenceChunker 549 B 1.1 KiB
⚪ agents/voice/types#VOICE_PROTOCOL_VERSION 51 B 31 B
⚪ agents/voice/workers-ai#WorkersAIFluxSTT 1.5 KiB 4.3 KiB
⚪ agents/voice/workers-ai#WorkersAINova3STT 1.6 KiB 4.3 KiB
⚪ agents/voice/workers-ai#WorkersAITTS 682 B 1.4 KiB
⚪ agents/websockets#CAPNWEB_TRANSPORT_QUERY 12.4 KiB 43.3 KiB
⚪ agents/websockets#CAPNWEB_TRANSPORT_VALUE 12.4 KiB 43.3 KiB
⚪ agents/websockets#capnWebTransportUrl 12.5 KiB 43.5 KiB
⚪ agents/websockets#CF_NO_PROTOCOL_KEY 12.4 KiB 43.3 KiB
⚪ agents/websockets#CF_READONLY_KEY 12.4 KiB 43.3 KiB
⚪ agents/websockets#isCapnWebTransportUpgrade 12.5 KiB 43.4 KiB
⚪ agents/websockets#registerInternalConnectionKeys 12.4 KiB 43.4 KiB
⚪ agents/websockets#WebSockets 20.0 KiB 69.3 KiB
🟡 agents/workflows#AgentWorkflow 263.5 KiB 1151.1 KiB
🟡 agents/workflows#WorkflowRejectedError 262.3 KiB 1146.5 KiB
⚪ agents/x402#normalizeNetwork 14.7 KiB 61.1 KiB
⚪ agents/x402#withX402 23.0 KiB 89.2 KiB
⚪ agents/x402#withX402Client 104.1 KiB 346.5 KiB

Reported by agent-think[bot].

@pkg-pr-new

pkg-pr-new Bot commented Sep 22, 2026

Copy link
Copy Markdown

Open in StackBlitz

agents

npm i https://pkg.pr.new/agents@2314

@cloudflare/ai-chat

npm i https://pkg.pr.new/@cloudflare/ai-chat@2314

@cloudflare/codemode

npm i https://pkg.pr.new/@cloudflare/codemode@2314

hono-agents

npm i https://pkg.pr.new/hono-agents@2314

@cloudflare/shell

npm i https://pkg.pr.new/@cloudflare/shell@2314

@cloudflare/think

npm i https://pkg.pr.new/@cloudflare/think@2314

@cloudflare/voice

npm i https://pkg.pr.new/@cloudflare/voice@2314

@cloudflare/worker-bundler

npm i https://pkg.pr.new/@cloudflare/worker-bundler@2314

commit: 0618d53

@aron-cf
aron-cf added this pull request to stack #2320 September 22, 2026 21:32
@aron-cf
aron-cf removed this pull request from stack #2320 September 23, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant