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,200 @@
1
+ # API Reference
2
+
3
+ ## Command Execution
4
+
5
+ ```typescript
6
+ // Basic
7
+ const result = await sandbox.exec('python3 script.py')
8
+ // Returns: { stdout, stderr, exitCode, success, duration }
9
+
10
+ // With options
11
+ await sandbox.exec('python3 test.py', {
12
+ cwd: '/workspace/project',
13
+ env: { API_KEY: 'secret' },
14
+ stream: true,
15
+ onOutput: (stream, data) => console.log(data),
16
+ })
17
+ ```
18
+
19
+ ## File Operations
20
+
21
+ ```typescript
22
+ // Read/Write
23
+ const { content } = await sandbox.readFile('/workspace/data.txt')
24
+ await sandbox.writeFile('/workspace/file.txt', 'content') // Auto-creates dirs
25
+
26
+ // List/Delete
27
+ const files = await sandbox.listFiles('/workspace')
28
+ await sandbox.deleteFile('/workspace/temp.txt')
29
+ await sandbox.deleteFile('/workspace/dir', { recursive: true })
30
+
31
+ // Utils
32
+ await sandbox.mkdir('/workspace/dir', { recursive: true })
33
+ await sandbox.pathExists('/workspace/file.txt')
34
+ ```
35
+
36
+ ## Background Processes
37
+
38
+ ```typescript
39
+ // Start
40
+ const process = await sandbox.startProcess('python3 -m http.server 8080', {
41
+ processId: 'web-server',
42
+ cwd: '/workspace/public',
43
+ env: { PORT: '8080' },
44
+ })
45
+ // Returns: { id, pid, command }
46
+
47
+ // Wait for readiness
48
+ await process.waitForPort(8080) // Wait for port to listen
49
+ await process.waitForLog(/Server running/) // Wait for log pattern
50
+ await process.waitForExit() // Wait for completion
51
+
52
+ // Management
53
+ const processes = await sandbox.listProcesses()
54
+ const info = await sandbox.getProcess('web-server')
55
+ await sandbox.stopProcess('web-server')
56
+ const logs = await sandbox.getProcessLogs('web-server')
57
+ ```
58
+
59
+ ## Port Exposure
60
+
61
+ ```typescript
62
+ // Expose port
63
+ const { url } = await sandbox.exposePort(8080, {
64
+ name: 'web-app',
65
+ hostname: request.hostname,
66
+ })
67
+
68
+ // Management
69
+ await sandbox.isPortExposed(8080)
70
+ await sandbox.getExposedPorts(request.hostname)
71
+ await sandbox.unexposePort(8080)
72
+ ```
73
+
74
+ ## Sessions (Isolated Contexts)
75
+
76
+ Each session maintains own shell state, env vars, cwd, process namespace.
77
+
78
+ ```typescript
79
+ // Create with context
80
+ const session = await sandbox.createSession({
81
+ id: 'user-123',
82
+ cwd: '/workspace/user123',
83
+ env: { USER_ID: '123' },
84
+ })
85
+
86
+ // Use (full sandbox API)
87
+ await session.exec('echo $USER_ID')
88
+ await session.writeFile('config.txt', 'data')
89
+
90
+ // Manage
91
+ await sandbox.getSession('user-123')
92
+ await sandbox.deleteSession('user-123')
93
+ ```
94
+
95
+ ## Code Interpreter
96
+
97
+ ```typescript
98
+ // Create context with variables
99
+ const ctx = await sandbox.createCodeContext({
100
+ language: 'python',
101
+ variables: {
102
+ data: [1, 2, 3, 4, 5],
103
+ config: { verbose: true },
104
+ },
105
+ })
106
+
107
+ // Execute code with rich outputs
108
+ const result = await ctx.runCode(`
109
+ import matplotlib.pyplot as plt
110
+ plt.plot(data, [x**2 for x in data])
111
+ plt.savefig('plot.png')
112
+ print(f"Processed {len(data)} points")
113
+ `)
114
+ // Returns: { outputs: [{ type: 'text'|'image'|'html', content }], error }
115
+
116
+ // Context persists variables across runs
117
+ const result2 = await ctx.runCode('print(data[0])') // Still has 'data'
118
+ ```
119
+
120
+ ## WebSocket Connections
121
+
122
+ ```typescript
123
+ // Proxy WebSocket to sandbox service
124
+ export default {
125
+ async fetch(request: Request, env: Env): Promise<Response> {
126
+ const proxyResponse = await proxyToSandbox(request, env)
127
+ if (proxyResponse) return proxyResponse
128
+
129
+ if (request.headers.get('Upgrade')?.toLowerCase() === 'websocket') {
130
+ const sandbox = getSandbox(env.Sandbox, 'realtime')
131
+ return await sandbox.wsConnect(request, 8080)
132
+ }
133
+
134
+ return new Response('Not a WebSocket request', { status: 400 })
135
+ },
136
+ }
137
+ ```
138
+
139
+ ## Bucket Mounting (S3 Storage)
140
+
141
+ ```typescript
142
+ // Mount R2 bucket (production only, not wrangler dev)
143
+ await sandbox.mountBucket(env.DATA_BUCKET, '/data', {
144
+ readOnly: false,
145
+ })
146
+
147
+ // Access files in mounted bucket
148
+ await sandbox.exec('ls /data')
149
+ await sandbox.writeFile('/data/output.txt', 'result')
150
+
151
+ // Unmount
152
+ await sandbox.unmountBucket('/data')
153
+ ```
154
+
155
+ **Note**: Bucket mounting only works in production. Mounted buckets are sandbox-scoped (visible to all sessions in that sandbox).
156
+
157
+ ## Lifecycle Management
158
+
159
+ ```typescript
160
+ // Terminate container immediately
161
+ await sandbox.destroy()
162
+
163
+ // REQUIRED when using keepAlive: true
164
+ const sandbox = getSandbox(env.Sandbox, 'temp', { keepAlive: true })
165
+ try {
166
+ await sandbox.writeFile('/tmp/code.py', code)
167
+ const result = await sandbox.exec('python /tmp/code.py')
168
+ return result.stdout
169
+ } finally {
170
+ await sandbox.destroy() // Free resources
171
+ }
172
+ ```
173
+
174
+ Deletes: files, processes, sessions, network connections, exposed ports.
175
+
176
+ ## Error Handling
177
+
178
+ ```typescript
179
+ // Command errors
180
+ const result = await sandbox.exec('python3 invalid.py')
181
+ if (!result.success) {
182
+ console.error('Exit code:', result.exitCode)
183
+ console.error('Stderr:', result.stderr)
184
+ }
185
+
186
+ // SDK errors
187
+ try {
188
+ await sandbox.readFile('/nonexistent')
189
+ } catch (error) {
190
+ if (error.code === 'FILE_NOT_FOUND') {
191
+ /* ... */
192
+ } else if (error.code === 'CONTAINER_NOT_READY') {
193
+ /* retry */
194
+ } else if (error.code === 'TIMEOUT') {
195
+ /* ... */
196
+ }
197
+ }
198
+
199
+ // Retry pattern (see gotchas.md for full implementation)
200
+ ```
@@ -0,0 +1,154 @@
1
+ # Configuration
2
+
3
+ ## getSandbox Options
4
+
5
+ ```typescript
6
+ const sandbox = getSandbox(env.Sandbox, 'sandbox-id', {
7
+ normalizeId: true, // lowercase ID (required for preview URLs)
8
+ sleepAfter: '10m', // sleep after inactivity: '5m', '1h', '2d' (default: '10m')
9
+ keepAlive: false, // false = auto-timeout, true = never sleep
10
+
11
+ containerTimeouts: {
12
+ instanceGetTimeoutMS: 30000, // 30s for provisioning (default: 30000)
13
+ portReadyTimeoutMS: 90000, // 90s for container startup (default: 90000)
14
+ },
15
+ })
16
+ ```
17
+
18
+ **Sleep Config**:
19
+
20
+ - `sleepAfter`: Duration string (e.g., '5m', '10m', '1h') - default: '10m'
21
+ - `keepAlive: false`: Auto-sleep (default, cost-optimized)
22
+ - `keepAlive: true`: Never sleep (higher cost, requires explicit `destroy()`)
23
+ - Sleeping sandboxes wake automatically (cold start)
24
+
25
+ ## Instance Types
26
+
27
+ wrangler.jsonc `instance_type`:
28
+
29
+ - `lite`: 256MB RAM, 0.5 vCPU (default)
30
+ - `standard`: 512MB RAM, 1 vCPU
31
+ - `heavy`: 1GB RAM, 2 vCPU
32
+
33
+ ## Dockerfile Patterns
34
+
35
+ **Basic**:
36
+
37
+ ```dockerfile
38
+ FROM docker.io/cloudflare/sandbox:latest
39
+ RUN pip3 install --no-cache-dir pandas numpy
40
+ EXPOSE 8080 # Required for wrangler dev
41
+ ```
42
+
43
+ **Scientific**:
44
+
45
+ ```dockerfile
46
+ FROM docker.io/cloudflare/sandbox:latest
47
+ RUN pip3 install --no-cache-dir \
48
+ jupyter-server ipykernel matplotlib \
49
+ pandas seaborn plotly scipy scikit-learn
50
+ ```
51
+
52
+ **Node.js**:
53
+
54
+ ```dockerfile
55
+ FROM docker.io/cloudflare/sandbox:latest
56
+ RUN npm install -g typescript ts-node
57
+ ```
58
+
59
+ **CRITICAL**: `EXPOSE` required for `wrangler dev` port access. Production auto-exposes all ports.
60
+
61
+ ## CLI Commands
62
+
63
+ ```bash
64
+ # Dev
65
+ wrangler dev # Start local dev server
66
+ wrangler deploy # Deploy to production
67
+ wrangler tail # Monitor logs
68
+ wrangler containers list # Check container status
69
+ wrangler secret put KEY # Set secret
70
+ ```
71
+
72
+ ## Environment & Secrets
73
+
74
+ **wrangler.jsonc**:
75
+
76
+ ```jsonc
77
+ {
78
+ "vars": {
79
+ "ENVIRONMENT": "production",
80
+ "API_URL": "https://api.example.com",
81
+ },
82
+ "r2_buckets": [
83
+ {
84
+ "binding": "DATA_BUCKET",
85
+ "bucket_name": "my-data-bucket",
86
+ },
87
+ ],
88
+ }
89
+ ```
90
+
91
+ **Usage**:
92
+
93
+ ```typescript
94
+ const token = env.GITHUB_TOKEN // From wrangler secret
95
+ await sandbox.exec('git clone ...', {
96
+ env: { GIT_TOKEN: token },
97
+ })
98
+ ```
99
+
100
+ ## Preview URL Setup
101
+
102
+ **Prerequisites**:
103
+
104
+ - Custom domain with wildcard DNS: `*.yourdomain.com → worker.yourdomain.com`
105
+ - `.workers.dev` domains NOT supported
106
+ - `normalizeId: true` in getSandbox
107
+ - `proxyToSandbox()` called first in fetch handler
108
+
109
+ ## Cron Triggers (Pre-warming)
110
+
111
+ ```jsonc
112
+ {
113
+ "triggers": {
114
+ "crons": ["*/5 * * * *"], // Every 5 minutes
115
+ },
116
+ }
117
+ ```
118
+
119
+ ```typescript
120
+ export default {
121
+ async scheduled(event: ScheduledEvent, env: Env) {
122
+ const sandbox = getSandbox(env.Sandbox, 'main')
123
+ await sandbox.exec('echo "keepalive"') // Wake sandbox
124
+ },
125
+ }
126
+ ```
127
+
128
+ ## Logging Configuration
129
+
130
+ **wrangler.jsonc**:
131
+
132
+ ```jsonc
133
+ {
134
+ "vars": {
135
+ "SANDBOX_LOG_LEVEL": "debug", // debug | info | warn | error (default: info)
136
+ "SANDBOX_LOG_FORMAT": "pretty", // json | pretty (default: json)
137
+ },
138
+ }
139
+ ```
140
+
141
+ **Dev**: `debug` + `pretty`. **Production**: `info`/`warn` + `json`.
142
+
143
+ ## Timeout Environment Overrides
144
+
145
+ Override default timeouts via environment variables:
146
+
147
+ ```jsonc
148
+ {
149
+ "vars": {
150
+ "SANDBOX_INSTANCE_TIMEOUT_MS": "60000", // Override instanceGetTimeoutMS
151
+ "SANDBOX_PORT_TIMEOUT_MS": "120000", // Override portReadyTimeoutMS
152
+ },
153
+ }
154
+ ```
@@ -0,0 +1,201 @@
1
+ # Gotchas & Best Practices
2
+
3
+ ## Common Errors
4
+
5
+ ### "Container running indefinitely"
6
+
7
+ **Cause:** `keepAlive: true` without calling `destroy()`
8
+ **Solution:** Always call `destroy()` when done with keepAlive containers
9
+
10
+ ```typescript
11
+ const sandbox = getSandbox(env.Sandbox, 'temp', { keepAlive: true })
12
+ try {
13
+ const result = await sandbox.exec('python script.py')
14
+ return result.stdout
15
+ } finally {
16
+ await sandbox.destroy() // REQUIRED to free resources
17
+ }
18
+ ```
19
+
20
+ ### "CONTAINER_NOT_READY"
21
+
22
+ **Cause:** Container still provisioning (first request or after sleep)
23
+ **Solution:** Retry after 2-3s
24
+
25
+ ```typescript
26
+ async function execWithRetry(sandbox, cmd) {
27
+ for (let i = 0; i < 3; i++) {
28
+ try {
29
+ return await sandbox.exec(cmd)
30
+ } catch (e) {
31
+ if (e.code === 'CONTAINER_NOT_READY') {
32
+ await new Promise((r) => setTimeout(r, 2000))
33
+ continue
34
+ }
35
+ throw e
36
+ }
37
+ }
38
+ }
39
+ ```
40
+
41
+ ### "Connection refused: container port not found"
42
+
43
+ **Cause:** Missing `EXPOSE` directive in Dockerfile
44
+ **Solution:** Add `EXPOSE <port>` to Dockerfile (only needed for `wrangler dev`, production auto-exposes)
45
+
46
+ ### "Preview URLs not working"
47
+
48
+ **Cause:** Custom domain not configured, wildcard DNS missing, `normalizeId` not set, or `proxyToSandbox()` not called
49
+ **Solution:** Check:
50
+
51
+ 1. Custom domain configured? (not `.workers.dev`)
52
+ 2. Wildcard DNS set up? (`*.domain.com → worker.domain.com`)
53
+ 3. `normalizeId: true` in getSandbox?
54
+ 4. `proxyToSandbox()` called first in fetch?
55
+
56
+ ### "Slow first request"
57
+
58
+ **Cause:** Cold start (container provisioning)
59
+ **Solution:**
60
+
61
+ - Use `sleepAfter` instead of creating new sandboxes
62
+ - Pre-warm with cron triggers
63
+ - Set `keepAlive: true` for critical sandboxes
64
+
65
+ ### "File not persisting"
66
+
67
+ **Cause:** Files in `/tmp` or other ephemeral paths
68
+ **Solution:** Use `/workspace` for persistent files
69
+
70
+ ### "Bucket mounting doesn't work locally"
71
+
72
+ **Cause:** Bucket mounting requires FUSE, not available in `wrangler dev`
73
+ **Solution:** Test bucket mounting in production only. Use mock data locally.
74
+
75
+ ### "Different normalizeId = different sandbox"
76
+
77
+ **Cause:** Changing `normalizeId` option changes Durable Object ID
78
+ **Solution:** Set `normalizeId` consistently. `normalizeId: true` lowercases the ID.
79
+
80
+ ```typescript
81
+ // These create DIFFERENT sandboxes:
82
+ getSandbox(env.Sandbox, 'MyApp') // DO ID: hash('MyApp')
83
+ getSandbox(env.Sandbox, 'MyApp', { normalizeId: true }) // DO ID: hash('myapp')
84
+ ```
85
+
86
+ ### "Code context variables disappeared"
87
+
88
+ **Cause:** Container restart clears code context state
89
+ **Solution:** Code contexts are ephemeral. Recreate context after container sleep/wake.
90
+
91
+ ## Performance Optimization
92
+
93
+ ### Sandbox ID Strategy
94
+
95
+ ```typescript
96
+ // ❌ BAD: New sandbox every time (slow)
97
+ const sandbox = getSandbox(env.Sandbox, `user-${Date.now()}`)
98
+
99
+ // ✅ GOOD: Reuse per user
100
+ const sandbox = getSandbox(env.Sandbox, `user-${userId}`)
101
+ ```
102
+
103
+ ### Sleep & Traffic Config
104
+
105
+ ```typescript
106
+ // Cost-optimized
107
+ getSandbox(env.Sandbox, 'id', { sleepAfter: '30m', keepAlive: false })
108
+
109
+ // Always-on (requires destroy())
110
+ getSandbox(env.Sandbox, 'id', { keepAlive: true })
111
+ ```
112
+
113
+ ```jsonc
114
+ // High traffic: increase max_instances
115
+ { "containers": [{ "class_name": "Sandbox", "max_instances": 50 }] }
116
+ ```
117
+
118
+ ## Security Best Practices
119
+
120
+ ### Sandbox Isolation
121
+
122
+ - Each sandbox = isolated container (filesystem, network, processes)
123
+ - Use unique sandbox IDs per tenant for multi-tenant apps
124
+ - Sandboxes cannot communicate directly
125
+
126
+ ### Input Validation
127
+
128
+ ```typescript
129
+ // ❌ DANGEROUS: Command injection
130
+ const result = await sandbox.exec(`python3 -c "${userCode}"`)
131
+
132
+ // ✅ SAFE: Write to file, execute file
133
+ await sandbox.writeFile('/workspace/user_code.py', userCode)
134
+ const result = await sandbox.exec('python3 /workspace/user_code.py')
135
+ ```
136
+
137
+ ### Resource Limits
138
+
139
+ ```typescript
140
+ // Timeout long-running commands
141
+ const result = await sandbox.exec('python3 script.py', {
142
+ timeout: 30000, // 30 seconds
143
+ })
144
+ ```
145
+
146
+ ### Secrets Management
147
+
148
+ ```typescript
149
+ // ❌ NEVER hardcode secrets
150
+ const token = 'ghp_abc123'
151
+
152
+ // ✅ Use environment secrets
153
+ const token = env.GITHUB_TOKEN
154
+
155
+ // Pass to sandbox via exec env
156
+ const result = await sandbox.exec('git clone ...', {
157
+ env: { GIT_TOKEN: token },
158
+ })
159
+ ```
160
+
161
+ ### Preview URL Security
162
+
163
+ Preview URLs include auto-generated tokens:
164
+
165
+ ```
166
+ https://8080-sandbox-abc123def456.yourdomain.com
167
+ ```
168
+
169
+ Token changes on each expose operation, preventing unauthorized access.
170
+
171
+ ## Limits
172
+
173
+ | Resource | Lite | Standard | Heavy |
174
+ | -------- | ----- | -------- | ----- |
175
+ | RAM | 256MB | 512MB | 1GB |
176
+ | vCPU | 0.5 | 1 | 2 |
177
+
178
+ | Operation | Default Timeout | Override |
179
+ | ---------------------- | --------------- | ----------------------------- |
180
+ | Container provisioning | 30s | `SANDBOX_INSTANCE_TIMEOUT_MS` |
181
+ | Port readiness | 90s | `SANDBOX_PORT_TIMEOUT_MS` |
182
+ | exec() | 120s | `timeout` option |
183
+ | sleepAfter | 10m | `sleepAfter` option |
184
+
185
+ **Performance**:
186
+
187
+ - **First deploy**: 2-3 min for container build
188
+ - **Cold start**: 2-3s when waking from sleep
189
+ - **Bucket mounting**: Production only (FUSE not in dev)
190
+
191
+ ## Production Guide
192
+
193
+ See: https://developers.cloudflare.com/sandbox/guides/production-deployment/
194
+
195
+ ## Resources
196
+
197
+ - [Official Docs](https://developers.cloudflare.com/sandbox/)
198
+ - [API Reference](https://developers.cloudflare.com/sandbox/api/)
199
+ - [Examples](https://github.com/cloudflare/sandbox-sdk/tree/main/examples)
200
+ - [npm Package](https://www.npmjs.com/package/@cloudflare/sandbox)
201
+ - [Discord Support](https://discord.cloudflare.com)