memory-journal-mcp 7.7.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-6LPTBIB6.js → chunk-MWNLAEHR.js} +309 -4332
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +6 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,195 @@
1
+ # API Reference
2
+
3
+ ## Agent Classes
4
+
5
+ ### AIChatAgent
6
+
7
+ For AI chat with auto-streaming, message history, tools, resumable streaming.
8
+
9
+ ```ts
10
+ import { AIChatAgent } from 'agents'
11
+ import { openai } from '@ai-sdk/openai'
12
+
13
+ export class ChatAgent extends AIChatAgent<Env> {
14
+ async onChatMessage(onFinish) {
15
+ return this.streamText({
16
+ model: openai('gpt-4'),
17
+ messages: this.messages, // Auto-managed message history
18
+ tools: {
19
+ getWeather: {
20
+ description: 'Get weather',
21
+ parameters: z.object({ city: z.string() }),
22
+ execute: async ({ city }) => `Sunny, 72°F in ${city}`,
23
+ },
24
+ },
25
+ onFinish, // Persist response to this.messages
26
+ })
27
+ }
28
+ }
29
+ ```
30
+
31
+ ### Agent (Base Class)
32
+
33
+ Full control for custom logic, WebSockets, email, and SQL.
34
+
35
+ ```ts
36
+ import { Agent } from 'agents'
37
+
38
+ export class MyAgent extends Agent<Env, State> {
39
+ // Lifecycle methods below
40
+ }
41
+ ```
42
+
43
+ **Type params:** `Agent<Env, State, ConnState>` - Env bindings, agent state, connection state
44
+
45
+ ## Lifecycle Hooks
46
+
47
+ ```ts
48
+ onStart() { // Init/restart
49
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT, name TEXT)`;
50
+ }
51
+
52
+ async onRequest(req: Request) { // HTTP
53
+ const {pathname} = new URL(req.url);
54
+ if (pathname === "/users") return Response.json(this.sql<{id,name}>`SELECT * FROM users`);
55
+ return new Response("Not found", {status: 404});
56
+ }
57
+
58
+ async onConnect(conn: Connection<ConnState>, ctx: ConnectionContext) { // WebSocket
59
+ conn.accept();
60
+ conn.setState({userId: ctx.request.headers.get("X-User-ID")});
61
+ conn.send(JSON.stringify({type: "connected", state: this.state}));
62
+ }
63
+
64
+ async onMessage(conn: Connection<ConnState>, msg: WSMessage) { // WS messages
65
+ const m = JSON.parse(msg as string);
66
+ this.setState({messages: [...this.state.messages, m]});
67
+ this.connections.forEach(c => c.send(JSON.stringify(m)));
68
+ }
69
+
70
+ async onEmail(email: AgentEmail) { // Email routing
71
+ this.sql`INSERT INTO emails (from_addr,subject,body) VALUES (${email.from},${email.headers.get("subject")},${await email.text()})`;
72
+ }
73
+ ```
74
+
75
+ ## State, SQL, Scheduling
76
+
77
+ ```ts
78
+ // State
79
+ this.setState({ count: 42 }) // Auto-syncs
80
+ this.setState({ ...this.state, count: this.state.count + 1 })
81
+
82
+ // SQL (parameterized queries prevent injection)
83
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, name TEXT)`
84
+ this.sql`INSERT INTO users (id,name) VALUES (${userId},${name})`
85
+ const users = this.sql<{ id; name }>`SELECT * FROM users WHERE id = ${userId}`
86
+
87
+ // Scheduling
88
+ await this.schedule(new Date('2026-12-25'), 'sendGreeting', { msg: 'Hi' }) // Date
89
+ await this.schedule(60, 'checkStatus', {}) // Delay (sec)
90
+ await this.schedule('0 0 * * *', 'dailyCleanup', {}) // Cron
91
+ await this.cancelSchedule(scheduleId)
92
+ ```
93
+
94
+ ## RPC Methods (@callable)
95
+
96
+ ```ts
97
+ import { Agent, callable } from 'agents'
98
+
99
+ export class MyAgent extends Agent<Env> {
100
+ @callable()
101
+ async processTask(input: { text: string }): Promise<{ result: string }> {
102
+ return {
103
+ result: await this.env.AI.run('@cf/meta/llama-3.1-8b-instruct', { prompt: input.text }),
104
+ }
105
+ }
106
+ }
107
+ // Client: const result = await agent.processTask({ text: "Hello" });
108
+ // Must return JSON-serializable values
109
+ ```
110
+
111
+ ## Connections & AI
112
+
113
+ ```ts
114
+ // Connections (type: Agent<Env, State, ConnState>)
115
+ this.connections.forEach((c) => c.send(JSON.stringify(msg))) // Broadcast
116
+ conn.setState({ userId: '123' })
117
+ conn.close(1000, 'Goodbye')
118
+
119
+ // Workers AI
120
+ const r = await this.env.AI.run('@cf/meta/llama-3.1-8b-instruct', { prompt })
121
+
122
+ // Manual streaming (prefer AIChatAgent)
123
+ const stream = await client.chat.completions.create({ model: 'gpt-4', messages, stream: true })
124
+ for await (const chunk of stream)
125
+ conn.send(JSON.stringify({ chunk: chunk.choices[0].delta.content }))
126
+ ```
127
+
128
+ **Type-safe state:** `Agent<Env, State, ConnState>` - third param types `conn.state`
129
+
130
+ ## MCP Integration
131
+
132
+ Model Context Protocol for exposing tools:
133
+
134
+ ```ts
135
+ // Register & use MCP server
136
+ await this.mcp.registerServer('github', {
137
+ url: env.MCP_SERVER_URL,
138
+ auth: { type: 'oauth', clientId: env.GITHUB_CLIENT_ID, clientSecret: env.GITHUB_CLIENT_SECRET },
139
+ })
140
+ const tools = await this.mcp.getAITools(['github'])
141
+ return this.streamText({ model: openai('gpt-4'), messages: this.messages, tools, onFinish })
142
+ ```
143
+
144
+ ## Task Queue
145
+
146
+ ```ts
147
+ await this.queue('processVideo', { videoId: 'abc123' }) // Add task
148
+ const tasks = await this.dequeue(10) // Process up to 10
149
+ ```
150
+
151
+ ## Context & Cleanup
152
+
153
+ ```ts
154
+ const agent = getCurrentAgent<MyAgent>(); // Get current instance
155
+ async destroy() { /* cleanup before agent destroyed */ }
156
+ ```
157
+
158
+ ## AI Integration
159
+
160
+ ```ts
161
+ // Workers AI
162
+ const r = await this.env.AI.run('@cf/meta/llama-3.1-8b-instruct', { prompt })
163
+
164
+ // Manual streaming (prefer AIChatAgent for auto-streaming)
165
+ const stream = await client.chat.completions.create({ model: 'gpt-4', messages, stream: true })
166
+ for await (const chunk of stream) {
167
+ if (chunk.choices[0]?.delta?.content)
168
+ conn.send(JSON.stringify({ chunk: chunk.choices[0].delta.content }))
169
+ }
170
+ ```
171
+
172
+ ## Client Hooks (React)
173
+
174
+ ```ts
175
+ // useAgent() - WebSocket connection + RPC
176
+ import { useAgent } from 'agents/react'
177
+ const agent = useAgent({ agent: 'MyAgent', name: 'user-123' }) // name for idFromName
178
+ const result = await agent.processTask({ text: 'Hello' }) // Call @callable methods
179
+ // agent.readyState: 0=CONNECTING, 1=OPEN, 2=CLOSING, 3=CLOSED
180
+
181
+ // useAgentChat() - AI chat UI
182
+ import { useAgentChat } from 'agents/ai-react'
183
+ const agent = useAgent({ agent: 'ChatAgent' })
184
+ const { messages, input, handleInputChange, handleSubmit, isLoading, stop, clearHistory } =
185
+ useAgentChat({
186
+ agent,
187
+ maxSteps: 5, // Max tool iterations
188
+ resume: true, // Auto-resume on disconnect
189
+ onToolCall: async (toolCall) => {
190
+ // Client tools (human-in-the-loop)
191
+ if (toolCall.toolName === 'confirm') return { ok: window.confirm('Proceed?') }
192
+ },
193
+ })
194
+ // status: "ready" | "submitted" | "streaming" | "error"
195
+ ```
@@ -0,0 +1,178 @@
1
+ # Configuration
2
+
3
+ ## Wrangler Setup
4
+
5
+ ```jsonc
6
+ {
7
+ "name": "my-agents-app",
8
+ "durable_objects": {
9
+ "bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }],
10
+ },
11
+ "migrations": [{ "tag": "v1", "new_sqlite_classes": ["MyAgent"] }],
12
+ "ai": {
13
+ "binding": "AI",
14
+ },
15
+ }
16
+ ```
17
+
18
+ ## Environment Bindings
19
+
20
+ **Type-safe pattern:**
21
+
22
+ ```typescript
23
+ interface Env {
24
+ AI?: Ai // Workers AI
25
+ MyAgent?: DurableObjectNamespace<MyAgent>
26
+ ChatAgent?: DurableObjectNamespace<ChatAgent>
27
+ DB?: D1Database // D1 database
28
+ KV?: KVNamespace // KV storage
29
+ R2?: R2Bucket // R2 bucket
30
+ OPENAI_API_KEY?: string // Secrets
31
+ GITHUB_CLIENT_ID?: string // MCP OAuth credentials
32
+ GITHUB_CLIENT_SECRET?: string
33
+ QUEUE?: Queue // Queues
34
+ }
35
+ ```
36
+
37
+ **Best practice:** Define all DO bindings in Env interface for type safety.
38
+
39
+ ## Deployment
40
+
41
+ ```bash
42
+ # Local dev
43
+ npx wrangler dev
44
+
45
+ # Deploy production
46
+ npx wrangler deploy
47
+
48
+ # Set secrets
49
+ npx wrangler secret put OPENAI_API_KEY
50
+ ```
51
+
52
+ ## Agent Routing
53
+
54
+ **Recommended: Use route helpers**
55
+
56
+ ```typescript
57
+ import { routeAgent } from 'agents'
58
+
59
+ export default {
60
+ fetch(request: Request, env: Env) {
61
+ return routeAgent(request, env)
62
+ },
63
+ }
64
+ ```
65
+
66
+ Helper routes requests to agents automatically based on URL patterns.
67
+
68
+ **Manual routing (advanced):**
69
+
70
+ ```typescript
71
+ export default {
72
+ async fetch(request: Request, env: Env) {
73
+ const url = new URL(request.url)
74
+
75
+ // Named ID (deterministic)
76
+ const id = env.MyAgent.idFromName('user-123')
77
+
78
+ // Random ID (from URL param)
79
+ // const id = env.MyAgent.idFromString(url.searchParams.get("id"));
80
+
81
+ const stub = env.MyAgent.get(id)
82
+ return stub.fetch(request)
83
+ },
84
+ }
85
+ ```
86
+
87
+ **Multi-agent setup:**
88
+
89
+ ```typescript
90
+ import { routeAgent } from 'agents'
91
+
92
+ export default {
93
+ fetch(request: Request, env: Env) {
94
+ const url = new URL(request.url)
95
+
96
+ // Route by path
97
+ if (url.pathname.startsWith('/chat')) {
98
+ return routeAgent(request, env, 'ChatAgent')
99
+ }
100
+ if (url.pathname.startsWith('/task')) {
101
+ return routeAgent(request, env, 'TaskAgent')
102
+ }
103
+
104
+ return new Response('Not found', { status: 404 })
105
+ },
106
+ }
107
+ ```
108
+
109
+ ## Email Routing
110
+
111
+ **Code setup:**
112
+
113
+ ```typescript
114
+ import { routeAgentEmail } from 'agents'
115
+
116
+ export default {
117
+ fetch: (req: Request, env: Env) => routeAgent(req, env),
118
+ email: (message: ForwardableEmailMessage, env: Env) => {
119
+ return routeAgentEmail(message, env)
120
+ },
121
+ }
122
+ ```
123
+
124
+ **Dashboard setup:**
125
+
126
+ Configure email routing in Cloudflare dashboard:
127
+
128
+ ```
129
+ Destination: Workers with Durable Objects
130
+ Worker: my-agents-app
131
+ ```
132
+
133
+ Then handle in agent:
134
+
135
+ ```typescript
136
+ export class EmailAgent extends Agent<Env> {
137
+ async onEmail(email: AgentEmail) {
138
+ const text = await email.text()
139
+ // Process email
140
+ }
141
+ }
142
+ ```
143
+
144
+ ## AI Gateway (Optional)
145
+
146
+ ```typescript
147
+ // Enable caching/routing through AI Gateway
148
+ const response = await this.env.AI.run(
149
+ '@cf/meta/llama-3.1-8b-instruct',
150
+ { prompt },
151
+ {
152
+ gateway: {
153
+ id: 'my-gateway-id',
154
+ skipCache: false,
155
+ cacheTtl: 3600,
156
+ },
157
+ }
158
+ )
159
+ ```
160
+
161
+ ## MCP Configuration (Optional)
162
+
163
+ For exposing tools via Model Context Protocol:
164
+
165
+ ```typescript
166
+ // wrangler.jsonc - Add MCP OAuth secrets
167
+ {
168
+ "vars": {
169
+ "MCP_SERVER_URL": "https://mcp.example.com"
170
+ }
171
+ }
172
+
173
+ // Set secrets via CLI
174
+ // npx wrangler secret put GITHUB_CLIENT_ID
175
+ // npx wrangler secret put GITHUB_CLIENT_SECRET
176
+ ```
177
+
178
+ Then register in agent code (see api.md MCP section).
@@ -0,0 +1,173 @@
1
+ # Gotchas & Best Practices
2
+
3
+ ## Common Errors
4
+
5
+ ### "setState() not syncing"
6
+
7
+ **Cause:** Mutating state directly or not calling `setState()` after modifications
8
+ **Solution:** Always use `setState()` with immutable updates:
9
+
10
+ ```ts
11
+ // ❌ this.state.count++
12
+ // ✅ this.setState({...this.state, count: this.state.count + 1})
13
+ ```
14
+
15
+ ### "Message history grows unbounded (AIChatAgent)"
16
+
17
+ **Cause:** `this.messages` in `AIChatAgent` accumulates all messages indefinitely
18
+ **Solution:** Manually trim old messages periodically:
19
+
20
+ ```ts
21
+ export class ChatAgent extends AIChatAgent<Env> {
22
+ async onChatMessage(onFinish) {
23
+ // Keep only last 50 messages
24
+ if (this.messages.length > 50) {
25
+ this.messages = this.messages.slice(-50)
26
+ }
27
+
28
+ return this.streamText({ model: openai('gpt-4'), messages: this.messages, onFinish })
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### "SQL injection vulnerability"
34
+
35
+ **Cause:** Direct string interpolation in SQL queries
36
+ **Solution:** Use parameterized queries:
37
+
38
+ ```ts
39
+ // ❌ this.sql`...WHERE id = '${userId}'`
40
+ // ✅ this.sql`...WHERE id = ${userId}`
41
+ ```
42
+
43
+ ### "WebSocket connection timeout"
44
+
45
+ **Cause:** Not calling `conn.accept()` in `onConnect`
46
+ **Solution:** Always accept connections:
47
+
48
+ ```ts
49
+ async onConnect(conn: Connection, ctx: ConnectionContext) { conn.accept(); conn.setState({userId: "123"}); }
50
+ ```
51
+
52
+ ### "Schedule limit exceeded"
53
+
54
+ **Cause:** More than 1000 scheduled tasks per agent
55
+ **Solution:** Clean up old schedules and limit creation rate:
56
+
57
+ ```ts
58
+ async checkSchedules() { if ((await this.getSchedules()).length > 800) console.warn("Near limit!"); }
59
+ ```
60
+
61
+ ### "AI Gateway unavailable"
62
+
63
+ **Cause:** AI service timeout or quota exceeded
64
+ **Solution:** Add error handling and fallbacks:
65
+
66
+ ```ts
67
+ try {
68
+ return await this.env.AI.run(model, { prompt })
69
+ } catch (e) {
70
+ console.error('AI error:', e)
71
+ return { error: 'Unavailable' }
72
+ }
73
+ ```
74
+
75
+ ### "@callable method returns undefined"
76
+
77
+ **Cause:** Method doesn't return JSON-serializable value, or has non-serializable types
78
+ **Solution:** Ensure return values are plain objects/arrays/primitives:
79
+
80
+ ```ts
81
+ // ❌ Returns class instance
82
+ @callable()
83
+ async getData() { return new Date(); }
84
+
85
+ // ✅ Returns serializable object
86
+ @callable()
87
+ async getData() { return { timestamp: Date.now() }; }
88
+ ```
89
+
90
+ ### "Resumable stream not resuming"
91
+
92
+ **Cause:** Stream ID must be deterministic for resumption to work
93
+ **Solution:** Use AIChatAgent (automatic) or ensure consistent stream IDs:
94
+
95
+ ```ts
96
+ // AIChatAgent handles this automatically
97
+ export class ChatAgent extends AIChatAgent<Env> {
98
+ // Resumption works out of the box
99
+ }
100
+ ```
101
+
102
+ ### "MCP connection loss on hibernation"
103
+
104
+ **Cause:** MCP server connections don't survive hibernation
105
+ **Solution:** Re-register servers in `onStart()` or check connection status:
106
+
107
+ ```ts
108
+ onStart() {
109
+ // Re-register MCP servers after hibernation
110
+ await this.mcp.registerServer("github", { url: env.MCP_URL, auth: {...} });
111
+ }
112
+ ```
113
+
114
+ ### "Agent not found"
115
+
116
+ **Cause:** Durable Object binding missing or incorrect class name
117
+ **Solution:** Verify DO binding in wrangler.jsonc and class name matches
118
+
119
+ ## Rate Limits & Quotas
120
+
121
+ | Resource/Limit | Value | Notes |
122
+ | ----------------------- | --------------------- | -------------------------------------------- |
123
+ | CPU per request | 30s (std), 300s (max) | Set in wrangler.jsonc |
124
+ | Memory per instance | 128MB | Shared with WebSockets |
125
+ | Storage per agent | 10GB | SQLite storage |
126
+ | Scheduled tasks | 1000 per agent | Monitor with `getSchedules()` |
127
+ | WebSocket connections | Unlimited | Within memory limits |
128
+ | SQL columns | 100 | Per table |
129
+ | SQL row size | 2MB | Key + value |
130
+ | WebSocket message | 32MiB | Max size |
131
+ | DO requests/sec | ~1000 | Per unique DO instance; rate limit if needed |
132
+ | AI Gateway (Workers AI) | Model-specific | Check dashboard for limits |
133
+ | MCP requests | Depends on server | Implement retry/backoff |
134
+
135
+ ## Best Practices
136
+
137
+ ### State Management
138
+
139
+ - Use immutable updates: `setState({...this.state, key: newValue})`
140
+ - Trim unbounded arrays (messages, logs) periodically
141
+ - Store large data in SQL, not state
142
+
143
+ ### SQL Usage
144
+
145
+ - Create tables in `onStart()`, not `onRequest()`
146
+ - Use parameterized queries: `` sql`WHERE id = ${id}` `` (NOT `` sql`WHERE id = '${id}'` ``)
147
+ - Index frequently queried columns
148
+
149
+ ### Scheduling
150
+
151
+ - Monitor schedule count: `await this.getSchedules()`
152
+ - Cancel completed tasks to stay under 1000 limit
153
+ - Use cron strings for recurring tasks
154
+
155
+ ### WebSockets
156
+
157
+ - Always call `conn.accept()` in `onConnect()`
158
+ - Handle client disconnects gracefully
159
+ - Broadcast to `this.connections` efficiently
160
+
161
+ ### AI Integration
162
+
163
+ - Use `AIChatAgent` for chat interfaces (auto-streaming, resumption)
164
+ - Trim message history to avoid token limits
165
+ - Handle AI errors with try/catch and fallbacks
166
+
167
+ ### Production Deployment
168
+
169
+ - **Rate limiting:** Implement request throttling for high-traffic agents (>1000 req/s)
170
+ - **Monitoring:** Log critical errors, track schedule count, monitor storage usage
171
+ - **Graceful degradation:** Handle AI service outages with fallbacks
172
+ - **Message trimming:** Enforce max history length (e.g., 100 messages) in AIChatAgent
173
+ - **MCP reliability:** Re-register servers on hibernation, implement retry logic