Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1080 commits
Select commit Hold shift + click to select a range
11aaaff
fix: preserve callProviderMetadata, providerExecuted, and title on to…
threepointone Feb 28, 2026
70ebb05
Bump dependency versions across examples (#1020)
threepointone Feb 28, 2026
c2bfd3c
Remove redundant updateProps and RPC warning (#1022)
threepointone Feb 28, 2026
450e9af
chore(deps): bump minimatch from 10.2.1 to 10.2.4 (#1023)
dependabot[bot] Feb 28, 2026
ceefdf6
Mark many packages as peer in package-lock
threepointone Feb 28, 2026
e9ae070
feat(observability): replace console.log with diagnostics_channel, ad…
threepointone Feb 28, 2026
95753da
fix: useChat status stays ready during stream resumption (#999)
threepointone Feb 28, 2026
c898308
feat: add `Agent.keepAlive()` to prevent idle eviction (#1029)
threepointone Mar 1, 2026
b7a2984
Document keepAlive API and usage
threepointone Mar 1, 2026
b29d8dd
Add Agent.keepAliveWhile() and update AIChatAgent to use it (#1033)
threepointone Mar 1, 2026
24cf279
fix: cleaner tests, better error handling, and protocol improvements …
threepointone Mar 1, 2026
ec9a4b7
Reduce Durable Object test noise (#1036)
threepointone Mar 1, 2026
00d5a31
Reduce test noise: mock MCP connections and add ai-chat DO cleanup (#…
threepointone Mar 1, 2026
e61cb4a
fix(ai-chat): preserve server-generated messages when client appends …
threepointone Mar 1, 2026
766f20b
docs: update ai-chat docs for post-0.6.0 changes (#1040)
threepointone Mar 1, 2026
28b2dbb
auth-agent: lightweight JWT authentication example (#948)
Muhammad-Bin-Ali Mar 2, 2026
eb83f35
Relocate and refactor session-memory example (#1044)
threepointone Mar 2, 2026
64d9ad6
Version Packages (#995)
github-actions[bot] Mar 2, 2026
2cde136
Observability: include agent identity & events (#1046)
threepointone Mar 2, 2026
477d338
Version Packages (#1047)
github-actions[bot] Mar 2, 2026
6157741
Fix alarm() to call super for init (#1050)
ask-bonk[bot] Mar 2, 2026
f1e2bfa
Make scheduleEvery() idempotent (#1052)
ask-bonk[bot] Mar 2, 2026
03fada6
Version Packages (#1051)
github-actions[bot] Mar 2, 2026
c804c73
Bump deps and fix workflow RPC initialization (#1057)
threepointone Mar 4, 2026
c8cf671
streaming example with openai agents sdk (#1055)
deathbyknowledge Mar 4, 2026
054e65d
feat: experimental sub-agent API and examples (#1060)
threepointone Mar 4, 2026
d0812f7
Send RESUME_NONE when no active stream (#1059)
threepointone Mar 4, 2026
a69780e
Version Packages (#1058)
github-actions[bot] Mar 4, 2026
4ace1d4
fix: add migration for schedules CHECK constraint to include 'interva…
threepointone Mar 4, 2026
6938042
Version Packages (#1064)
github-actions[bot] Mar 4, 2026
b05e6d0
Fix test noisiness (#1066)
Muhammad-Bin-Ali Mar 5, 2026
b5238de
feat: add Workspace class — persistent virtual filesystem for Agents …
threepointone Mar 5, 2026
6312684
fix(workflows): await _workflow_updateState RPC calls in _wrapStep (#…
threepointone Mar 5, 2026
c090836
chore(deps): bump @hono/node-server from 1.19.9 to 1.19.10 (#1065)
dependabot[bot] Mar 5, 2026
15aa18e
update dev deps
threepointone Mar 5, 2026
aba7432
Version Packages (#1070)
github-actions[bot] Mar 5, 2026
94f7a3c
chore(deps): bump express-rate-limit from 8.2.1 to 8.3.0 (#1078)
dependabot[bot] Mar 6, 2026
91d3eba
feat: worker-bundler package — runtime app bundler with asset handlin…
threepointone Mar 7, 2026
933b00f
Log workflow errors by default (#1081)
threepointone Mar 7, 2026
8efd716
Use arrayBuffer to read PNG body in test
threepointone Mar 7, 2026
c023992
Merge branch 'main' of https://github.com/cloudflare/agents
threepointone Mar 7, 2026
66755a9
Add Nx task runner, CI build deduplication, and inspector port fixes …
threepointone Mar 7, 2026
e98f123
Add @cloudflare/voice: real-time voice pipeline for Agents (#1087)
threepointone Mar 8, 2026
16e2833
Embed sub-agent API into Agent base class with hibernation-safe facet…
threepointone Mar 9, 2026
33b92d5
fix(codemode): remove zod-to-ts (#1074)
mattzcarey Mar 9, 2026
a1eab1d
feat: @cloudflare/think — opinionated agent base class with fibers, s…
threepointone Mar 10, 2026
a91b598
Allow localhost MCP client URLs
timdp Mar 10, 2026
b5be87a
Add think design doc and index entries
threepointone Mar 10, 2026
a20b77d
refactor(tests): migrate to SELF.fetch and remove unnecessary @callab…
threepointone Mar 10, 2026
95c9b33
fix(mcp): block IPv4-mapped IPv6 addresses in SSRF check
threepointone Mar 10, 2026
c6151a0
Merge PR #1090: Allow localhost MCP client URLs + fix IPv4-mapped IPv…
threepointone Mar 10, 2026
e8195e7
feat(agents): schema version gating and single-row state optimization…
threepointone Mar 10, 2026
0b73a74
fix(mcp): remove unnecessary storage operations in McpAgent (#1085)
threepointone Mar 10, 2026
ba04264
Remove ai-chat changeset; mark workspace as patch
threepointone Mar 10, 2026
aa80823
chore(deps): bump hono from 4.12.5 to 4.12.7 (#1093)
dependabot[bot] Mar 11, 2026
c2df742
feat(codemode): export normalizeCode utility (#1092)
mattzcarey Mar 11, 2026
e8aa938
Version Packages (#1082)
github-actions[bot] Mar 11, 2026
0f14d65
update deps, a better a2a example (#1095)
threepointone Mar 11, 2026
18c51ec
Create shiny-jobs-burn.md
threepointone Mar 11, 2026
d384339
Create thick-cities-rhyme.md
threepointone Mar 11, 2026
522e2df
Version Packages (#1097)
github-actions[bot] Mar 11, 2026
8fd45cf
Add changeset and remove private flags for publish
threepointone Mar 11, 2026
7c626a7
Version Packages (#1098)
github-actions[bot] Mar 11, 2026
fd1f435
@cloudflare/shell (#1103)
threepointone Mar 13, 2026
d455678
Version Packages (#1104)
github-actions[bot] Mar 13, 2026
1915c48
Add repository and bugs fields to shell package.json
threepointone Mar 13, 2026
12b6c61
Version Packages (#1105)
github-actions[bot] Mar 13, 2026
f07ef51
feat(codemode): extract utilities into AI-free main entry point (#1102)
mattzcarey Mar 13, 2026
ab00416
Version Packages (#1107)
github-actions[bot] Mar 13, 2026
82b23b1
Update package-lock.json
threepointone Mar 15, 2026
1264372
feat(codemode): allow custom modules in sandbox (#1113)
mattzcarey Mar 16, 2026
9837adc
feat(codemode): normalize code and sanitize tool names inside executo…
mattzcarey Mar 17, 2026
dcc3bb2
fix(ai-chat): preserve assistant state during continuations (#1116)
whoiskatrin Mar 17, 2026
5d88b81
feat(codemode): add `./mcp` export with `codeMcpServer` and `openApiM…
mattzcarey Mar 17, 2026
de31a87
Version Packages (#1115)
github-actions[bot] Mar 17, 2026
6a6108c
fix(agents): re-arm idempotent scheduleEvery alarms after restart (#1…
whoiskatrin Mar 18, 2026
3b0df53
Prepare @cloudflare/think for first publish (#1125)
threepointone Mar 18, 2026
415fc50
Version Packages (#1123)
github-actions[bot] Mar 18, 2026
a16e74d
Replace @cloudflare/shell (bash interpreter) with sandboxed JS execut…
threepointone Mar 19, 2026
d27cf01
Switch default Workers AI model to Kimi K2.5
threepointone Mar 19, 2026
4acf08a
Version Packages (#1127)
github-actions[bot] Mar 19, 2026
01cfb52
feat: add sessionAffinity getter for Workers AI prefix-cache optimiza…
threepointone Mar 19, 2026
a4836f2
Version Packages (#1129)
github-actions[bot] Mar 19, 2026
de145b9
Create workersAI per-request instead of singleton
threepointone Mar 19, 2026
d46e917
Rewrite InMemoryFs to tree-based storage (#1130)
threepointone Mar 19, 2026
68e3437
Fix symlink handling and add tests
threepointone Mar 19, 2026
0036e93
Bump workers-ai-provider to 3.1.4
threepointone Mar 19, 2026
2ed1ec5
Version Packages (#1131)
github-actions[bot] Mar 19, 2026
60331e1
Version Packages (#1132)
github-actions[bot] Mar 19, 2026
36e2020
Upgrade to Vitest 4.1, Vite 8, and @cloudflare/vitest-pool-workers 0.…
threepointone Mar 20, 2026
3184282
Fix abort duplicate split messages (#1106)
threepointone Mar 20, 2026
30c6be1
chore(deps): bump undici from 6.23.0 to 6.24.1 (#1139)
dependabot[bot] Mar 20, 2026
0d0b7d3
fix(ai-chat): prevent duplicate messages after tool calls and orphane…
threepointone Mar 20, 2026
3ac4b22
Bump workers-ai-provider to 3.1.5 and fix test
threepointone Mar 21, 2026
934de3f
fix: stream reasoning tokens live in ai playground (#1143)
threepointone Mar 21, 2026
c78ff5d
update deps
threepointone Mar 22, 2026
5651ece
fix(ai-chat): serialize chat turns and saveMessages (#1142)
whoiskatrin Mar 22, 2026
94fac05
worker-bundler: host-side assets, no DO wrapper, SW preview proxy (#1…
threepointone Mar 22, 2026
b74e108
Add typed AgentClient, stub proxy, and types (#1146)
threepointone Mar 22, 2026
1f85b06
keepAlive: ref-counted in-memory alarms (#1147)
threepointone Mar 22, 2026
47ce125
feat(codemode): add TanStack AI integration (#1149)
threepointone Mar 22, 2026
16cc622
feat: expose readable `state` property on `useAgent` and `AgentClient…
threepointone Mar 23, 2026
b0c52a5
fix(ai-chat): simplify turn coordination API (#1151)
whoiskatrin Mar 23, 2026
74a018a
fix: prevent schedule() row accumulation across DO restarts (#1154)
threepointone Mar 23, 2026
81a8710
feat(ai-chat): add sanitizeMessageForPersistence hook and Anthropic t…
threepointone Mar 23, 2026
0b97e62
Version Packages (#1140)
github-actions[bot] Mar 23, 2026
4a779b8
Update package-lock.json
threepointone Mar 23, 2026
ad455a1
Bump core deps: agents, hono, AI providers
threepointone Mar 23, 2026
0045a8e
Add dynamic-workers and dynamic-workers-playground examples (#1170)
threepointone Mar 24, 2026
7053b49
fix(ai-chat): preserve assistant messages across chained continuation…
whoiskatrin Mar 24, 2026
c131923
fix(ai-chat): prevent hibernation from dropping tool continuations (#…
whoiskatrin Mar 24, 2026
e2b9071
Version Packages (#1173)
github-actions[bot] Mar 24, 2026
fc7a26c
Workspace: accept generic SqlBackend via options (#1174)
threepointone Mar 24, 2026
9dd1621
Version Packages (#1175)
github-actions[bot] Mar 24, 2026
750446b
Remove local workflow dev workarounds + deps (#1176)
threepointone Mar 24, 2026
253345e
fix(ai-chat): keep other tabs streaming during continuations (#1178)
whoiskatrin Mar 24, 2026
2fac9d9
Rename dynamic-workers to dynamic-workers-starter
threepointone Mar 24, 2026
b545079
feat(shell): add isomorphic-git integration (#1136)
mattzcarey Mar 24, 2026
f4ebb98
Version Packages (#1177)
github-actions[bot] Mar 24, 2026
adc86f8
fix(ai-chat): coalesce rapid auto-continuation turns (#1179)
whoiskatrin Mar 24, 2026
e9bace9
Forward positionalArgs to resolved providers (#1181)
threepointone Mar 24, 2026
37f699d
Version Packages (#1180)
github-actions[bot] Mar 24, 2026
324b296
Fix waitForIdle race and relax test assertion (#1183)
threepointone Mar 25, 2026
f7bfff8
Bump ai, workers-ai-provider and related deps
threepointone Mar 25, 2026
5991964
Add React and dev tooling to examples (#1187)
threepointone Mar 25, 2026
c03e87b
fix: `elicitInput()` broken on RPC transport (#1182)
dmmulroy Mar 25, 2026
7b0b45e
Version Packages (#1184)
github-actions[bot] Mar 25, 2026
f8b2f6e
Cleanup ai-chat changelog; regenerate lockfile
threepointone Mar 25, 2026
eac8fc9
Reset active file using keysKey
threepointone Mar 25, 2026
c3ae97a
Add @types/react and @types/react-dom to examples
threepointone Mar 25, 2026
806cf5b
fix(ai-chat): preserve Anthropic replay tokens during persistence (#1…
whoiskatrin Mar 25, 2026
b39dbff
Add push notifications example; centralize tsconfig and vite plugin (…
threepointone Mar 25, 2026
1a61175
Version Packages (#1191)
github-actions[bot] Mar 25, 2026
735c030
Replace agents-ui in codemode example (#1193)
threepointone Mar 25, 2026
77c8718
Make msg-ordering test more robust (#1194)
threepointone Mar 25, 2026
813c3de
Remove node-server executor and simplify codemode example (#1195)
threepointone Mar 25, 2026
dde826e
Auto-derive MCP callbackHost from connection.uri; TS6 compat fixes (#…
threepointone Mar 25, 2026
d075cdd
Version Packages (#1199)
github-actions[bot] Mar 25, 2026
e620fc5
Enforce example secrets and update env types
threepointone Mar 25, 2026
03215d3
Wait for server initial state in tests
threepointone Mar 25, 2026
9d12a92
Integrate @streamdown/code plugin and bump streamdown
threepointone Mar 25, 2026
fc6d214
Bump @modelcontextprotocol/sdk 1.26.0 → 1.28.0 (#1201)
threepointone Mar 25, 2026
39d8d62
Unwrap MCP results in codeMcpServer (#1204)
threepointone Mar 26, 2026
0f218c6
Version Packages (#1202)
github-actions[bot] Mar 26, 2026
8eec744
Remove agents-ui; inline theme & connection UI
threepointone Mar 26, 2026
9c6a131
Add ElevenLabs starter example and deps (#1205)
threepointone Mar 26, 2026
9b56703
Increase badge heights and simplify header layout
threepointone Mar 26, 2026
f105f9d
Add structured-input example: LLM-driven interactive forms via client…
threepointone Mar 26, 2026
bd040e2
Add per-example .gitignore and Tailwind @source fixes (#1208)
threepointone Mar 26, 2026
82cd489
feat(experimental): Session API with chainable builder (#1166)
mattzcarey Mar 26, 2026
aa80d3f
Write generated VAPID keys to .env
threepointone Mar 27, 2026
841b001
Support stream resume handshake; clear resumes (#1211)
threepointone Mar 27, 2026
a99a35e
Version Packages (#1212)
github-actions[bot] Mar 27, 2026
962e2e4
chore(ai-chat): tidy CHANGELOG formatting
threepointone Mar 27, 2026
f0e2488
Add ai-chat E2E tests and supporting agents (#1214)
threepointone Mar 27, 2026
07a790d
Add codemode e2e tests and test worker endpoints (#1215)
threepointone Mar 27, 2026
938f30f
fix(experimental): session API better compaction helpers (#1210)
mattzcarey Mar 27, 2026
6801966
Bump deps: vite, wrangler, ai, partyserver (#1217)
threepointone Mar 27, 2026
b1da19c
Add `auto` transport for MCP endpoints (#1207)
threepointone Mar 27, 2026
21b426a
Version Packages (#1218)
github-actions[bot] Mar 27, 2026
31d96cb
Narrow Think peer dep on shell from * to >=0.2.0 (#1220)
ghostwriternr Mar 27, 2026
53f27b1
feat(ai-chat): add onChatResponse hook + client streaming indicators …
threepointone Mar 29, 2026
599390c
Fix cache key to ignore query params (#1225)
threepointone Mar 29, 2026
28925b6
Add message concurrency controls to AIChatAgent (#1192)
whoiskatrin Mar 29, 2026
d8cb148
Version Packages (#1221)
github-actions[bot] Mar 30, 2026
b20b047
post release fix npm i and format
threepointone Mar 31, 2026
4f79280
fix(ai-chat): strip messageId from continuation start chunks (#1229) …
whoiskatrin Mar 31, 2026
2713c45
Fix duplicate assistant messages during overlapping submits (#1232)
whoiskatrin Mar 31, 2026
809f4dd
Fix stop() for tool continuation streams; fix orphaned continuation h…
whoiskatrin Mar 31, 2026
c6ebfe7
Version Packages (#1238)
github-actions[bot] Mar 31, 2026
7be1372
post release cleanup
threepointone Mar 31, 2026
befe241
feat(experimental): SessionManager with compaction propagation and mu…
mattzcarey Apr 1, 2026
e843d9b
feat: add skills system for on-demand document loading (#1243)
mattzcarey Apr 1, 2026
f3d5557
Extract shared chat layer into agents/chat, strip Think to minimal co…
threepointone Apr 1, 2026
0d41aae
Fix flaky merge concurrency test by increasing timing margins
threepointone Apr 1, 2026
31c6279
Extract ContinuationState into agents/chat, unify auto-continuation a…
threepointone Apr 1, 2026
902606a
Fix flaky coalesce and resetTurnState tests by increasing stream dura…
threepointone Apr 1, 2026
c74b615
Update dependency versions across repo (#1248)
threepointone Apr 1, 2026
806579a
Version Packages (#1246)
github-actions[bot] Apr 1, 2026
36871f5
Tidy changelogs and update lockfile
threepointone Apr 1, 2026
9189af2
Increase timeouts and chunk counts in cancel tests
threepointone Apr 1, 2026
69a6acd
update deps (#1251)
threepointone Apr 2, 2026
703dfa4
feat: add SearchProvider with AgentSearchProvider (FTS5) and search_c…
mattzcarey Apr 2, 2026
7d9c067
Fiber improvements: configurable keepAlive, E2E tests, type safety, d…
threepointone Apr 2, 2026
8db4ef1
Add stream recovery and continuation to withDurableChat mixin (#1254)
threepointone Apr 3, 2026
dfab937
Unified fiber architecture: durable execution baked into Agent (#1256)
threepointone Apr 4, 2026
1933eb4
Eager fiber recovery on wake (onStart) (#1259)
threepointone Apr 4, 2026
bfbed21
fix(shell): wrap git fs adapter unlink with fsError for proper ENOENT…
threepointone Apr 4, 2026
2e47637
Think: add resumable streams and client tools
threepointone Apr 5, 2026
8a3a84e
feat: inference buffer — durable response buffer for long-running inf…
threepointone Apr 5, 2026
e7f388a
Use workersai as default provider
threepointone Apr 5, 2026
95b4d6a
feat(ai-chat): add unstable_chatRecovery, fix abort controller leak, …
threepointone Apr 5, 2026
d5dbf45
feat(codemode): add description option to codeMcpServer (#1266)
threepointone Apr 5, 2026
d1ee61a
fix(mcp): streamable-http client session lifecycle — explicit termina…
dmmulroy Apr 6, 2026
87b4512
feat(think): Session integration + full AIChatAgent parity (Phases 1-…
threepointone Apr 7, 2026
e3ceb82
fix: use RpcTarget bridge for email callbacks to fix DO hibernation (…
threepointone Apr 7, 2026
c5ca556
Update deps and fix peer dependency ranges
threepointone Apr 7, 2026
cc6a700
Add @types/node to example devDependencies
threepointone Apr 7, 2026
0cc2dae
feat: add MCPServerFilter to scope getAITools and list methods (#1271)
threepointone Apr 7, 2026
b035ff1
Version Packages (#1258)
github-actions[bot] Apr 7, 2026
22da9b1
Rewrite session-skills example with Think + widen useAgentChat agent …
threepointone Apr 7, 2026
5380223
Add unload_context tool and skill unload tracking
threepointone Apr 7, 2026
37b2ce3
feat(think): built-in workspace for every Think agent (#1275)
threepointone Apr 8, 2026
8c7caab
feat(think): lifecycle hooks, dynamic context, extension manifest (#1…
threepointone Apr 9, 2026
b8450b2
feat(think): host bridge, permissions, sandboxed hook dispatch (Phase…
threepointone Apr 10, 2026
d76f8b9
Fix MCP RPC cold-wake initialization (#1286)
threepointone Apr 10, 2026
d9344a0
Unskip SubAgent test (#1287)
threepointone Apr 10, 2026
d862664
refactor(think): remove deprecated APIs, fix progressive snapshot pip…
threepointone Apr 10, 2026
f8a8b06
Remove unused ThinkSanitizeTestAgent import
threepointone Apr 10, 2026
fdafa43
docs + refactor: Session API documentation and AI SDK decoupling (#1280)
mattzcarey Apr 10, 2026
5d808a8
Add experimental Think docs
threepointone Apr 10, 2026
0cd0487
feat(worker-bundler): add typescript support for worker-bundler (#1277)
zebp Apr 11, 2026
cacea7f
Version Packages (#1273)
github-actions[bot] Apr 11, 2026
044da3a
Bump dependencies across examples and remove TS comment
threepointone Apr 11, 2026
0775fff
Add TypeScript & Vite decorator setup docs
threepointone Apr 11, 2026
3a2e221
Add schedule idempotency docs and new events
threepointone Apr 11, 2026
6429189
Remove redundant console warnings on stream abort (#1290)
threepointone Apr 11, 2026
428c0d1
Version Packages (#1291)
github-actions[bot] Apr 11, 2026
0ef5c82
Normalize package-lock and tidy changelog
threepointone Apr 11, 2026
7a5a4ad
Docs: Improve server-driven messages guide
threepointone Apr 11, 2026
b736f6c
Update server-driven-messages.md
threepointone Apr 11, 2026
edc1650
Docs: Long-running agents, durable execution, and chat recovery (#1292)
threepointone Apr 11, 2026
16769b0
feat(voice): per-call continuous STT sessions (#1293)
threepointone Apr 12, 2026
75ec1d2
Version Packages (#1295)
github-actions[bot] Apr 12, 2026
9fb6106
Tidy voice changelog; update lockfile
threepointone Apr 12, 2026
becf9d4
Add completedAt to Task type in docs
threepointone Apr 13, 2026
88170b3
Fix worker-bundler browser target by setting tsdown platform to brows…
zebp Apr 13, 2026
fc95192
Version Packages (#1298)
github-actions[bot] Apr 13, 2026
d501291
fix: preserve providerMetadata on reasoning chunks in applyChunkToPar…
threepointone Apr 13, 2026
dbaca98
feat(site): add robots.txt, sitemap.xml, and Link headers for agent r…
whoiskatrin Apr 13, 2026
348e442
Bump Cloudflare deps & misc package versions
threepointone Apr 13, 2026
3a62f22
Version Packages (#1302)
github-actions[bot] Apr 13, 2026
002c321
Update robots.txt with AI and docs links
threepointone Apr 13, 2026
7c24ec1
feat(site): add agent discovery metadata (#1304)
whoiskatrin Apr 13, 2026
bd19e87
Fix agent slug typo in e2e test
threepointone Apr 14, 2026
d3f757c
Add experimental browser CDP tools without a bundled spec (#1163)
threepointone Apr 14, 2026
eb93c0f
Validate build entries and use entries const
threepointone Apr 14, 2026
9ca9ebe
Version Packages (#1305)
github-actions[bot] Apr 14, 2026
f746500
Mark many package-lock deps as peer
threepointone Apr 14, 2026
528781d
Add execute & extension tools with UI panels (#1307)
threepointone Apr 14, 2026
bd0346e
fix: getConfig() in configureSession() + peer dep ranges (#1310)
threepointone Apr 15, 2026
89773d1
Rename unstable_chatRecovery to chatRecovery (#1312)
threepointone Apr 15, 2026
f32f2d7
Version Packages (#1311)
github-actions[bot] Apr 15, 2026
6aa6212
fix: preserve wide peer dep ranges during publish
threepointone Apr 15, 2026
61309f7
think: Enable chatRecovery by default (#1314)
threepointone Apr 15, 2026
08da191
changeset: patch ai-chat, hono-agents, voice for corrected peer dep r…
threepointone Apr 15, 2026
2982b01
Version Packages (#1315)
github-actions[bot] Apr 15, 2026
c671a34
Add Claude security review workflow
Neil-Smithline Apr 21, 2026
fcb56b5
Merge scan-base anchor for security scan
Neil-Smithline Apr 21, 2026
df429d9
Remove per-repo security review caller
Neil-Smithline May 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
17 changes: 17 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "cloudflare/agents" }
],
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "minor",
"ignore": ["@cloudflare/agents-*"],
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
}
}
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: Bug report
about: Create a report to help us improve Agents SDK
title: ""
labels: ""
assignees: ""
---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Version:**
What version of Agents SDK are you having issues with.

**Additional context**
Add any other context about the problem here.
8 changes: 8 additions & 0 deletions .github/changeset-publish.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { execSync } from "node:child_process";

execSync("npx tsx ./.github/resolve-workspace-versions.ts", {
stdio: "inherit"
});
execSync("npx changeset publish", {
stdio: "inherit"
});
13 changes: 13 additions & 0 deletions .github/changeset-version.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { execSync } from "node:child_process";

// This script is used by the `release.yml` workflow to update the version of the packages being released.
// The standard step is only to run `changeset version` but this does not update the package-lock.json file.
// So we also run `npm install`, which does this update.
// This is a workaround until this is handled automatically by `changeset version`.
// See https://github.com/changesets/changesets/issues/421.
execSync("npx changeset version", {
stdio: "inherit"
});
execSync("npm install", {
stdio: "inherit"
});
89 changes: 89 additions & 0 deletions .github/resolve-workspace-versions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
// this looks for all package.jsons in /packages/**/package.json
// and replaces it with the actual version ids

import * as fs from "node:fs";
import fg from "fast-glob";

// we do this in 2 passes
// first let's cycle through all packages and get thier version numbers

/**
* Minimal interface for the subset of package.json fields this script reads
* and writes. The index signature allows dynamic access to dependency fields
* while the explicit properties give type-safe access to name/version.
*/
interface PackageJson {
name: string;
version: string;
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
peerDependencies?: Record<string, string>;
optionalDependencies?: Record<string, string>;
[key: string]: unknown;
}

const packageJsons: Record<string, { file: string; packageJson: PackageJson }> =
{};

for await (const file of await fg.glob(
"./(packages|examples|guides)/*/package.json"
)) {
let packageJson: PackageJson;
try {
packageJson = JSON.parse(fs.readFileSync(file, "utf8")) as PackageJson;
} catch (err) {
console.error(`Failed to parse ${file}:`, err);
continue;
}
packageJsons[packageJson.name] = {
file,
packageJson
};
}

// then we'll revisit them, and replace any "workspace:*" references
// with "^(actual version)"

for (const [packageName, { file, packageJson }] of Object.entries(
packageJsons
)) {
let changed = false;
const depFields = [
"dependencies",
"devDependencies",
"peerDependencies",
"optionalDependencies"
] as const;
for (const field of depFields) {
const deps = packageJson[field];
if (!deps) continue;
for (const [dependencyName, currentRange] of Object.entries(deps)) {
if (dependencyName in packageJsons) {
// For peerDependencies, preserve intentionally wide ranges.
// Only rewrite workspace:* references or exact caret ranges
// that match the previous version (i.e. changesets-managed).
if (
field === "peerDependencies" &&
!currentRange.startsWith("workspace:") &&
!currentRange.startsWith("^")
) {
continue;
}

let actualVersion = packageJsons[dependencyName].packageJson.version;
if (!actualVersion.startsWith("0.0.0-")) {
actualVersion = `^${actualVersion}`;
}

console.log(
`${packageName}: setting ${field}.${dependencyName} to ${actualVersion}`
);
deps[dependencyName] = actualVersion;
changed = true;
}
}
}
if (changed) {
fs.writeFileSync(file, `${JSON.stringify(packageJson, null, 2)}\n`);
}
}
27 changes: 27 additions & 0 deletions .github/version-script.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import * as fs from "node:fs";
import { execSync } from "node:child_process";
async function main() {
try {
console.log("Getting current git hash...");
const stdout = execSync("git rev-parse --short HEAD").toString();
console.log("Git hash:", stdout.trim());

for (const path of [
"./packages/agents/package.json",
"./packages/hono-agents/package.json"
]) {
const packageJson = JSON.parse(fs.readFileSync(path, "utf-8"));
packageJson.version = `0.0.0-${stdout.trim()}`;
fs.writeFileSync(path, `${JSON.stringify(packageJson, null, 2)}\n`);
}
} catch (error) {
console.error(error);
process.exit(1);
}
}

main().catch((err) => {
// Build failures should fail
console.error(err);
process.exit(1);
});
34 changes: 34 additions & 0 deletions .github/workflows/bonk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Bonk

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]

jobs:
bonk:
if: github.event.sender.type != 'Bot'
runs-on: ubuntu-latest
timeout-minutes: 20
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: false
permissions:
id-token: write
issues: write
pull-requests: write
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Run Bonk
uses: ask-bonk/ask-bonk/github@main
env:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_AI_GATEWAY_ACCOUNT_ID }}
CLOUDFLARE_GATEWAY_ID: ${{ secrets.CF_AI_GATEWAY_NAME }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CF_AI_GATEWAY_TOKEN }}
with:
model: "cloudflare-ai-gateway/anthropic/claude-opus-4-6"
mentions: "/bonk,@ask-bonk"
76 changes: 76 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Nightly E2E

on:
schedule:
# Every day at midnight UTC
- cron: "0 0 * * *"
# Allow manual trigger for debugging
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

jobs:
e2e-ai-chat:
name: "E2E: ai-chat (Playwright)"
timeout-minutes: 15
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1

- uses: actions/setup-node@v6
with:
node-version: 24
cache: "npm"

- run: npm ci
- run: npm run build

- name: Get Playwright version
id: playwright-version
run: echo "version=$(jq -r '.packages["node_modules/playwright"].version' package-lock.json)" >> $GITHUB_OUTPUT

- name: Cache Playwright browsers
uses: actions/cache@v5
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}

- name: Install Playwright browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: npx playwright install --with-deps chromium

- name: Run ai-chat e2e tests
env:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: npx playwright test --config e2e/playwright.config.ts
working-directory: packages/ai-chat

e2e-think:
Comment on lines +16 to +54
name: "E2E: think (chat recovery)"
timeout-minutes: 10
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1

- uses: actions/setup-node@v6
with:
node-version: 24
cache: "npm"

- run: npm ci
- run: npm run build

- name: Run think e2e tests
env:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: npm run test:e2e
working-directory: packages/think
Comment on lines +55 to +76
61 changes: 61 additions & 0 deletions .github/workflows/pullrequest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Pull Request

on:
pull_request:
paths-ignore:
- "docs/**"
- "design/**"
- "*.md"
- ".changeset/**"

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true

env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"

jobs:
ci:
timeout-minutes: 20
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1

- uses: actions/setup-node@v6
with:
node-version: 24
cache: "npm"

- name: Cache Nx
uses: actions/cache@v5
with:
path: .nx/cache
key: ${{ runner.os }}-nx-${{ hashFiles('package-lock.json') }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-nx-${{ hashFiles('package-lock.json') }}-
${{ runner.os }}-nx-

- run: npm ci
- run: npm run build
- run: npm run check

- name: Get Playwright version
id: playwright-version
run: echo "version=$(jq -r '.packages["node_modules/playwright"].version' package-lock.json)" >> $GITHUB_OUTPUT

- name: Cache Playwright browsers
uses: actions/cache@v5
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }}

- name: Install Playwright browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: npx playwright install --with-deps chromium

- run: CI=true npx nx run-many -t test
- run: npx pkg-pr-new publish --peerDeps ./packages/*
Comment on lines +20 to +61
Loading
Loading