memory-journal-mcp 7.7.0 → 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-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
  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 +7 -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,178 @@
1
+ ## Configuration Patterns
2
+
3
+ ### Enable Workers Logs
4
+
5
+ ```jsonc
6
+ {
7
+ "observability": {
8
+ "enabled": true,
9
+ "head_sampling_rate": 1, // 100% sampling (default)
10
+ },
11
+ }
12
+ ```
13
+
14
+ **Best Practice**: Use structured JSON logging for better indexing
15
+
16
+ ```typescript
17
+ // Good - structured logging
18
+ console.log({
19
+ user_id: 123,
20
+ action: 'login',
21
+ status: 'success',
22
+ duration_ms: 45,
23
+ })
24
+
25
+ // Avoid - unstructured string
26
+ console.log('user_id: 123 logged in successfully in 45ms')
27
+ ```
28
+
29
+ ### Enable Workers Traces
30
+
31
+ ```jsonc
32
+ {
33
+ "observability": {
34
+ "traces": {
35
+ "enabled": true,
36
+ "head_sampling_rate": 0.05, // 5% sampling
37
+ },
38
+ },
39
+ }
40
+ ```
41
+
42
+ **Note**: Default sampling is 100%. For high-traffic Workers, use lower sampling (0.01-0.1).
43
+
44
+ ### Configure Analytics Engine
45
+
46
+ **Bind to Worker**:
47
+
48
+ ```toml
49
+ # wrangler.toml
50
+ analytics_engine_datasets = [
51
+ { binding = "ANALYTICS", dataset = "api_metrics" }
52
+ ]
53
+ ```
54
+
55
+ **Write Data Points**:
56
+
57
+ ```typescript
58
+ export interface Env {
59
+ ANALYTICS: AnalyticsEngineDataset
60
+ }
61
+
62
+ export default {
63
+ async fetch(request: Request, env: Env): Promise<Response> {
64
+ // Track metrics
65
+ env.ANALYTICS.writeDataPoint({
66
+ blobs: ['customer_123', 'POST', '/api/v1/users'],
67
+ doubles: [1, 245.5], // request_count, response_time_ms
68
+ indexes: ['customer_123'], // for efficient filtering
69
+ })
70
+
71
+ return new Response('OK')
72
+ },
73
+ }
74
+ ```
75
+
76
+ ### Configure Tail Workers
77
+
78
+ Tail Workers receive logs/traces from other Workers for filtering, transformation, or export.
79
+
80
+ **Setup**:
81
+
82
+ ```toml
83
+ # wrangler.toml
84
+ name = "log-processor"
85
+ main = "src/tail.ts"
86
+
87
+ [[tail_consumers]]
88
+ service = "my-worker" # Worker to tail
89
+ ```
90
+
91
+ **Tail Worker Example**:
92
+
93
+ ```typescript
94
+ export default {
95
+ async tail(events: TraceItem[], env: Env, ctx: ExecutionContext) {
96
+ // Filter errors only
97
+ const errors = events.filter(
98
+ (event) => event.outcome === 'exception' || event.outcome === 'exceededCpu'
99
+ )
100
+
101
+ if (errors.length > 0) {
102
+ // Send to external monitoring
103
+ ctx.waitUntil(
104
+ fetch('https://monitoring.example.com/errors', {
105
+ method: 'POST',
106
+ body: JSON.stringify(errors),
107
+ })
108
+ )
109
+ }
110
+ },
111
+ }
112
+ ```
113
+
114
+ ### Configure Logpush
115
+
116
+ Send logs to external storage (S3, R2, GCS, Azure, Datadog, etc.). Requires Business/Enterprise plan.
117
+
118
+ **Via Dashboard**:
119
+
120
+ 1. Navigate to Analytics → Logs → Logpush
121
+ 2. Select destination type
122
+ 3. Provide credentials and bucket/endpoint
123
+ 4. Choose dataset (e.g., Workers Trace Events)
124
+ 5. Configure filters and fields
125
+
126
+ **Via API**:
127
+
128
+ ```bash
129
+ curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/logpush/jobs" \
130
+ -H "Authorization: Bearer <API_TOKEN>" \
131
+ -H "Content-Type: application/json" \
132
+ -d '{
133
+ "name": "workers-logs-to-s3",
134
+ "destination_conf": "s3://my-bucket/logs?region=us-east-1",
135
+ "dataset": "workers_trace_events",
136
+ "enabled": true,
137
+ "frequency": "high",
138
+ "filter": "{\"where\":{\"and\":[{\"key\":\"ScriptName\",\"operator\":\"eq\",\"value\":\"my-worker\"}]}}"
139
+ }'
140
+ ```
141
+
142
+ ### Environment-Specific Configuration
143
+
144
+ **Development** (verbose logs, full sampling):
145
+
146
+ ```jsonc
147
+ // wrangler.dev.jsonc
148
+ {
149
+ "observability": {
150
+ "enabled": true,
151
+ "head_sampling_rate": 1.0,
152
+ "traces": {
153
+ "enabled": true,
154
+ },
155
+ },
156
+ }
157
+ ```
158
+
159
+ **Production** (reduced sampling, structured logs):
160
+
161
+ ```jsonc
162
+ // wrangler.prod.jsonc
163
+ {
164
+ "observability": {
165
+ "enabled": true,
166
+ "head_sampling_rate": 0.1, // 10% sampling
167
+ "traces": {
168
+ "enabled": true,
169
+ },
170
+ },
171
+ }
172
+ ```
173
+
174
+ Deploy with env-specific config:
175
+
176
+ ```bash
177
+ wrangler deploy --config wrangler.prod.jsonc --env production
178
+ ```
@@ -0,0 +1,125 @@
1
+ ## Common Errors
2
+
3
+ ### "Logs not appearing"
4
+
5
+ **Cause:** Observability disabled, Worker not redeployed, no traffic, low sampling rate, or log size exceeds 256 KB
6
+ **Solution:**
7
+
8
+ ```bash
9
+ # Verify config
10
+ cat wrangler.jsonc | jq '.observability'
11
+
12
+ # Check deployment
13
+ wrangler deployments list <WORKER_NAME>
14
+
15
+ # Test with curl
16
+ curl https://your-worker.workers.dev
17
+ ```
18
+
19
+ Ensure `observability.enabled = true`, redeploy Worker, check `head_sampling_rate`, verify traffic
20
+
21
+ ### "Traces not being captured"
22
+
23
+ **Cause:** Traces not enabled, incorrect sampling rate, Worker not redeployed, or destination unavailable
24
+ **Solution:**
25
+
26
+ ```jsonc
27
+ // Temporarily set to 100% sampling for debugging
28
+ {
29
+ "observability": {
30
+ "enabled": true,
31
+ "head_sampling_rate": 1.0,
32
+ "traces": {
33
+ "enabled": true,
34
+ },
35
+ },
36
+ }
37
+ ```
38
+
39
+ Ensure `observability.traces.enabled = true`, set `head_sampling_rate` to 1.0 for testing, redeploy, check destination status
40
+
41
+ ## Limits
42
+
43
+ | Resource/Limit | Value | Notes |
44
+ | --------------------------- | ----------------- | --------------------------------- |
45
+ | Max log size | 256 KB | Logs exceeding this are truncated |
46
+ | Default sampling rate | 1.0 (100%) | Reduce for high-traffic Workers |
47
+ | Max destinations | Varies by plan | Check dashboard |
48
+ | Trace context propagation | 100 spans max | Deep call chains may lose spans |
49
+ | Analytics Engine write rate | 25 writes/request | Excess writes dropped silently |
50
+
51
+ ## Performance Gotchas
52
+
53
+ ### Spectre Mitigation Timing
54
+
55
+ **Problem:** `Date.now()` and `performance.now()` have reduced precision (coarsened to 100μs)
56
+ **Cause:** Spectre vulnerability mitigation in V8
57
+ **Solution:** Accept reduced precision or use Workers Traces for accurate timing
58
+
59
+ ```typescript
60
+ // Date.now() is coarsened - trace spans are accurate
61
+ export default {
62
+ async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
63
+ // For user-facing timing, Date.now() is fine
64
+ const start = Date.now()
65
+ const response = await processRequest(request)
66
+ const duration = Date.now() - start
67
+
68
+ // For detailed performance analysis, use Workers Traces instead
69
+ return response
70
+ },
71
+ }
72
+ ```
73
+
74
+ ### Analytics Engine \_sample_interval Aggregation
75
+
76
+ **Problem:** Queries return incorrect totals when not multiplying by `_sample_interval`
77
+ **Cause:** Analytics Engine stores sampled data points, each representing multiple events
78
+ **Solution:** Always multiply counts/sums by `_sample_interval` in aggregations
79
+
80
+ ```sql
81
+ -- WRONG: Undercounts actual events
82
+ SELECT blob1 AS customer_id, COUNT(*) AS total_calls
83
+ FROM api_usage GROUP BY customer_id;
84
+
85
+ -- CORRECT: Accounts for sampling
86
+ SELECT blob1 AS customer_id, SUM(_sample_interval) AS total_calls
87
+ FROM api_usage GROUP BY customer_id;
88
+ ```
89
+
90
+ ### Trace Context Propagation Limits
91
+
92
+ **Problem:** Deep call chains lose trace context after 100 spans
93
+ **Cause:** Cloudflare limits trace depth to prevent performance impact
94
+ **Solution:** Design for flatter architectures or use custom correlation IDs for deep chains
95
+
96
+ ```typescript
97
+ // For deep call chains, add custom correlation ID
98
+ const correlationId = crypto.randomUUID()
99
+ console.log({ correlationId, event: 'request_start' })
100
+
101
+ // Pass correlationId through headers to downstream services
102
+ await fetch('https://api.example.com', {
103
+ headers: { 'X-Correlation-ID': correlationId },
104
+ })
105
+ ```
106
+
107
+ ## Pricing (2026)
108
+
109
+ ### Workers Traces
110
+
111
+ - **GA Pricing (starts March 1, 2026):**
112
+ - $0.10 per 1M trace spans captured
113
+ - Retention: 14 days included
114
+ - **Free tier:** 10M trace spans/month
115
+ - **Note:** Beta usage (before March 1, 2026) is free
116
+
117
+ ### Workers Logs
118
+
119
+ - **Included:** Free for all Workers
120
+ - **Logpush:** Requires Business/Enterprise plan
121
+
122
+ ### Analytics Engine
123
+
124
+ - **Included:** 10M writes/month on Paid Workers plan
125
+ - **Additional:** $0.25 per 1M writes beyond included quota
@@ -0,0 +1,105 @@
1
+ # Observability Patterns
2
+
3
+ ## Usage-Based Billing
4
+
5
+ ```typescript
6
+ env.ANALYTICS.writeDataPoint({
7
+ blobs: [customerId, request.url, request.method],
8
+ doubles: [1], // request_count
9
+ indexes: [customerId],
10
+ })
11
+ ```
12
+
13
+ ```sql
14
+ SELECT blob1 AS customer_id, SUM(_sample_interval * double1) AS total_calls
15
+ FROM api_usage WHERE timestamp >= DATE_TRUNC('month', NOW())
16
+ GROUP BY customer_id
17
+ ```
18
+
19
+ ## Performance Monitoring
20
+
21
+ ```typescript
22
+ const start = Date.now()
23
+ const response = await fetch(url)
24
+ env.ANALYTICS.writeDataPoint({
25
+ blobs: [url, response.status.toString()],
26
+ doubles: [Date.now() - start, response.status],
27
+ })
28
+ ```
29
+
30
+ ```sql
31
+ SELECT blob1 AS url, AVG(double1) AS avg_ms, percentile(double1, 0.95) AS p95_ms
32
+ FROM fetch_metrics WHERE timestamp >= NOW() - INTERVAL '1' HOUR
33
+ GROUP BY url
34
+ ```
35
+
36
+ ## Error Tracking
37
+
38
+ ```typescript
39
+ env.ANALYTICS.writeDataPoint({
40
+ blobs: [error.name, request.url, request.method],
41
+ doubles: [1],
42
+ indexes: [error.name],
43
+ })
44
+ ```
45
+
46
+ ## Multi-Tenant Tracking
47
+
48
+ ```typescript
49
+ env.ANALYTICS.writeDataPoint({
50
+ indexes: [tenantId], // efficient filtering
51
+ blobs: [tenantId, url.pathname, method, status],
52
+ doubles: [1, duration, bytesSize],
53
+ })
54
+ ```
55
+
56
+ ## Tail Worker Log Filtering
57
+
58
+ ```typescript
59
+ export default {
60
+ async tail(events, env, ctx) {
61
+ const critical = events.filter((e) => e.exceptions.length > 0 || e.event.wallTime > 1000000)
62
+ if (critical.length === 0) return
63
+
64
+ ctx.waitUntil(
65
+ fetch('https://logging.example.com/ingest', {
66
+ method: 'POST',
67
+ headers: { Authorization: `Bearer ${env.API_KEY}` },
68
+ body: JSON.stringify(
69
+ critical.map((e) => ({
70
+ outcome: e.event.outcome,
71
+ cpu_ms: e.event.cpuTime / 1000,
72
+ errors: e.exceptions,
73
+ }))
74
+ ),
75
+ })
76
+ )
77
+ },
78
+ }
79
+ ```
80
+
81
+ ## OpenTelemetry Export
82
+
83
+ ```typescript
84
+ export default {
85
+ async tail(events, env, ctx) {
86
+ const otelSpans = events.map((e) => ({
87
+ traceId: generateId(32),
88
+ spanId: generateId(16),
89
+ name: e.scriptName || 'worker.request',
90
+ attributes: [
91
+ { key: 'worker.outcome', value: { stringValue: e.event.outcome } },
92
+ { key: 'worker.cpu_time_us', value: { intValue: String(e.event.cpuTime) } },
93
+ ],
94
+ }))
95
+
96
+ ctx.waitUntil(
97
+ fetch('https://api.honeycomb.io/v1/traces', {
98
+ method: 'POST',
99
+ headers: { 'X-Honeycomb-Team': env.HONEYCOMB_KEY },
100
+ body: JSON.stringify({ resourceSpans: [{ scopeSpans: [{ spans: otelSpans }] }] }),
101
+ })
102
+ )
103
+ },
104
+ }
105
+ ```
@@ -0,0 +1,92 @@
1
+ # Cloudflare Pages
2
+
3
+ JAMstack platform for full-stack apps on Cloudflare's global network.
4
+
5
+ ## Key Features
6
+
7
+ - **Git-based deploys**: Auto-deploy from GitHub/GitLab
8
+ - **Preview deployments**: Unique URL per branch/PR
9
+ - **Pages Functions**: File-based serverless routing (Workers runtime)
10
+ - **Static + dynamic**: Smart asset caching + edge compute
11
+ - **Smart Placement**: Automatic function optimization based on traffic patterns
12
+ - **Framework optimized**: SvelteKit, Astro, Nuxt, Qwik, Solid Start
13
+
14
+ ## Deployment Methods
15
+
16
+ ### 1. Git Integration (Production)
17
+
18
+ Dashboard → Workers & Pages → Create → Connect to Git → Configure build
19
+
20
+ ### 2. Direct Upload
21
+
22
+ ```bash
23
+ npx wrangler pages deploy ./dist --project-name=my-project
24
+ npx wrangler pages deploy ./dist --project-name=my-project --branch=staging
25
+ ```
26
+
27
+ ### 3. C3 CLI
28
+
29
+ ```bash
30
+ npm create cloudflare@latest my-app
31
+ # Select framework → auto-setup + deploy
32
+ ```
33
+
34
+ ## vs Workers
35
+
36
+ - **Pages**: Static sites, JAMstack, frameworks, git workflow, file-based routing
37
+ - **Workers**: Pure APIs, complex routing, WebSockets, scheduled tasks, email handlers
38
+ - **Combine**: Pages Functions use Workers runtime, can bind to Workers
39
+
40
+ ## Quick Start
41
+
42
+ ```bash
43
+ # Create
44
+ npm create cloudflare@latest
45
+
46
+ # Local dev
47
+ npx wrangler pages dev ./dist
48
+
49
+ # Deploy
50
+ npx wrangler pages deploy ./dist --project-name=my-project
51
+
52
+ # Types
53
+ npx wrangler types --path='./functions/types.d.ts'
54
+
55
+ # Secrets
56
+ echo "value" | npx wrangler pages secret put KEY --project-name=my-project
57
+
58
+ # Logs
59
+ npx wrangler pages deployment tail --project-name=my-project
60
+ ```
61
+
62
+ ## Resources
63
+
64
+ - [Pages Docs](https://developers.cloudflare.com/pages/)
65
+ - [Functions API](https://developers.cloudflare.com/pages/functions/api-reference/)
66
+ - [Framework Guides](https://developers.cloudflare.com/pages/framework-guides/)
67
+ - [Discord #functions](https://discord.com/channels/595317990191398933/910978223968518144)
68
+
69
+ ## Reading Order
70
+
71
+ **New to Pages?** Start here:
72
+
73
+ 1. README.md (you are here) - Overview & quick start
74
+ 2. [configuration.md](./configuration.md) - Project setup, wrangler.jsonc, bindings
75
+ 3. [api.md](./api.md) - Functions API, routing, context
76
+ 4. [patterns.md](./patterns.md) - Common implementations
77
+ 5. [gotchas.md](./gotchas.md) - Troubleshooting & pitfalls
78
+
79
+ **Quick reference?** Jump to relevant file above.
80
+
81
+ ## In This Reference
82
+
83
+ - [configuration.md](./configuration.md) - wrangler.jsonc, build, env vars, Smart Placement
84
+ - [api.md](./api.md) - Functions API, bindings, context, advanced mode
85
+ - [patterns.md](./patterns.md) - Full-stack patterns, framework integration
86
+ - [gotchas.md](./gotchas.md) - Build issues, limits, debugging, framework warnings
87
+
88
+ ## See Also
89
+
90
+ - [pages-functions](../pages-functions/) - File-based routing, middleware
91
+ - [d1](../d1/) - SQL database for Pages Functions
92
+ - [kv](../kv/) - Key-value storage for caching/state
@@ -0,0 +1,205 @@
1
+ # Functions API
2
+
3
+ ## File-Based Routing
4
+
5
+ ```
6
+ /functions/index.ts → example.com/
7
+ /functions/api/users.ts → example.com/api/users
8
+ /functions/api/users/[id].ts → example.com/api/users/:id
9
+ /functions/api/users/[[path]].ts → example.com/api/users/* (catchall)
10
+ /functions/_middleware.ts → Runs before all routes
11
+ ```
12
+
13
+ **Rules**: `[param]` = single segment, `[[param]]` = multi-segment catchall, more specific wins.
14
+
15
+ ## Request Handlers
16
+
17
+ ```typescript
18
+ import type { PagesFunction } from '@cloudflare/workers-types'
19
+
20
+ interface Env {
21
+ DB: D1Database
22
+ KV: KVNamespace
23
+ }
24
+
25
+ // All methods
26
+ export const onRequest: PagesFunction<Env> = async (context) => {
27
+ return new Response('All methods')
28
+ }
29
+
30
+ // Method-specific
31
+ export const onRequestGet: PagesFunction<Env> = async (context) => {
32
+ const { request, env, params, data } = context
33
+
34
+ const user = await env.DB.prepare('SELECT * FROM users WHERE id = ?').bind(params.id).first()
35
+
36
+ return Response.json(user)
37
+ }
38
+
39
+ export const onRequestPost: PagesFunction<Env> = async (context) => {
40
+ const body = await context.request.json()
41
+ return Response.json({ success: true })
42
+ }
43
+
44
+ // Also: onRequestPut, onRequestPatch, onRequestDelete, onRequestHead, onRequestOptions
45
+ ```
46
+
47
+ ## Context Object
48
+
49
+ ```typescript
50
+ interface EventContext<Env, Params, Data> {
51
+ request: Request // HTTP request
52
+ env: Env // Bindings (KV, D1, R2, etc.)
53
+ params: Params // Route parameters
54
+ data: Data // Middleware-shared data
55
+ waitUntil: (promise: Promise<any>) => void // Background tasks
56
+ next: () => Promise<Response> // Next handler
57
+ passThroughOnException: () => void // Error fallback (not in advanced mode)
58
+ }
59
+ ```
60
+
61
+ ## Dynamic Routes
62
+
63
+ ```typescript
64
+ // Single segment: functions/users/[id].ts
65
+ export const onRequestGet: PagesFunction = async ({ params }) => {
66
+ // /users/123 → params.id = "123"
67
+ return Response.json({ userId: params.id })
68
+ }
69
+
70
+ // Multi-segment: functions/files/[[path]].ts
71
+ export const onRequestGet: PagesFunction = async ({ params }) => {
72
+ // /files/docs/api/v1.md → params.path = ["docs", "api", "v1.md"]
73
+ const filePath = (params.path as string[]).join('/')
74
+ return new Response(filePath)
75
+ }
76
+ ```
77
+
78
+ ## Middleware
79
+
80
+ ```typescript
81
+ // functions/_middleware.ts
82
+ // Single
83
+ export const onRequest: PagesFunction = async (context) => {
84
+ const response = await context.next()
85
+ response.headers.set('X-Custom-Header', 'value')
86
+ return response
87
+ }
88
+
89
+ // Chained (runs in order)
90
+ const errorHandler: PagesFunction = async (context) => {
91
+ try {
92
+ return await context.next()
93
+ } catch (err) {
94
+ return new Response(err.message, { status: 500 })
95
+ }
96
+ }
97
+
98
+ const auth: PagesFunction = async (context) => {
99
+ const token = context.request.headers.get('Authorization')
100
+ if (!token) return new Response('Unauthorized', { status: 401 })
101
+ context.data.userId = await verifyToken(token)
102
+ return context.next()
103
+ }
104
+
105
+ export const onRequest = [errorHandler, auth]
106
+ ```
107
+
108
+ **Scope**: `functions/_middleware.ts` → all; `functions/api/_middleware.ts` → `/api/*` only
109
+
110
+ ## Bindings Usage
111
+
112
+ ```typescript
113
+ export const onRequestGet: PagesFunction<Env> = async ({ env }) => {
114
+ // KV
115
+ const cached = await env.KV.get('key', 'json')
116
+ await env.KV.put('key', JSON.stringify({ data: 'value' }), { expirationTtl: 3600 })
117
+
118
+ // D1
119
+ const result = await env.DB.prepare('SELECT * FROM users WHERE id = ?').bind(userId).first()
120
+
121
+ // R2, Queue, AI - see respective reference docs
122
+
123
+ return Response.json({ success: true })
124
+ }
125
+ ```
126
+
127
+ ## Advanced Mode
128
+
129
+ Full Workers API, bypasses file-based routing:
130
+
131
+ ```javascript
132
+ // functions/_worker.js
133
+ export default {
134
+ async fetch(request, env, ctx) {
135
+ const url = new URL(request.url)
136
+
137
+ // Custom routing
138
+ if (url.pathname.startsWith('/api/')) {
139
+ return new Response('API response')
140
+ }
141
+
142
+ // REQUIRED: Serve static assets
143
+ return env.ASSETS.fetch(request)
144
+ },
145
+ }
146
+ ```
147
+
148
+ **When to use**: WebSockets, complex routing, scheduled handlers, email handlers.
149
+
150
+ ## Smart Placement
151
+
152
+ Automatically optimizes function execution location based on traffic patterns.
153
+
154
+ **Configuration** (in wrangler.jsonc):
155
+
156
+ ```jsonc
157
+ {
158
+ "placement": {
159
+ "mode": "smart", // Enables optimization (default: off)
160
+ },
161
+ }
162
+ ```
163
+
164
+ **How it works**: Analyzes traffic patterns over time and places functions closer to users or data sources (e.g., D1 databases). Requires no code changes.
165
+
166
+ **Trade-offs**: Initial requests may see slightly higher latency during learning period (hours-days). Performance improves as system optimizes.
167
+
168
+ **When to use**: Global apps with centralized databases or geographically concentrated traffic sources.
169
+
170
+ ## getRequestContext (Framework SSR)
171
+
172
+ Access bindings in framework code:
173
+
174
+ ```typescript
175
+ // SvelteKit
176
+ import type { RequestEvent } from '@sveltejs/kit'
177
+ export async function load({ platform }: RequestEvent) {
178
+ const data = await platform.env.DB.prepare('SELECT * FROM users').all()
179
+ return { users: data.results }
180
+ }
181
+
182
+ // Astro
183
+ const { DB } = Astro.locals.runtime.env
184
+ const data = await DB.prepare('SELECT * FROM users').all()
185
+
186
+ // Solid Start (server function)
187
+ import { getRequestEvent } from 'solid-js/web'
188
+ const event = getRequestEvent()
189
+ const data = await event.locals.runtime.env.DB.prepare('SELECT * FROM users').all()
190
+ ```
191
+
192
+ **✅ Supported adapters** (2026):
193
+
194
+ - **SvelteKit**: `@sveltejs/adapter-cloudflare`
195
+ - **Astro**: Built-in Cloudflare adapter
196
+ - **Nuxt**: Set `nitro.preset: 'cloudflare-pages'` in `nuxt.config.ts`
197
+ - **Qwik**: Built-in Cloudflare adapter
198
+ - **Solid Start**: `@solidjs/start-cloudflare-pages`
199
+
200
+ **❌ Deprecated/Unsupported**:
201
+
202
+ - **Next.js**: Official adapter (`@cloudflare/next-on-pages`) deprecated. Use Vercel or self-host on Workers.
203
+ - **Remix**: Official adapter (`@remix-run/cloudflare-pages`) deprecated. Migrate to supported frameworks.
204
+
205
+ See [gotchas.md](./gotchas.md#framework-specific) for migration guidance.