memory-journal-mcp 7.7.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-6LPTBIB6.js → chunk-MWNLAEHR.js} +309 -4332
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +6 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,134 @@
1
+ # Workers Playground Patterns
2
+
3
+ ## JSON API
4
+
5
+ ```javascript
6
+ export default {
7
+ async fetch(request) {
8
+ const url = new URL(request.url)
9
+ if (url.pathname === '/api/hello') return Response.json({ message: 'Hello' })
10
+ if (url.pathname === '/api/echo' && request.method === 'POST') {
11
+ return Response.json({ received: await request.json() })
12
+ }
13
+ return Response.json({ error: 'Not found' }, { status: 404 })
14
+ },
15
+ }
16
+ ```
17
+
18
+ ## Router Pattern
19
+
20
+ ```javascript
21
+ const routes = {
22
+ '/': () => new Response('Home'),
23
+ '/api/users': () => Response.json([{ id: 1, name: 'Alice' }]),
24
+ }
25
+
26
+ export default {
27
+ async fetch(request) {
28
+ const handler = routes[new URL(request.url).pathname]
29
+ return handler ? handler() : new Response('Not Found', { status: 404 })
30
+ },
31
+ }
32
+ ```
33
+
34
+ ## Proxy Pattern
35
+
36
+ ```javascript
37
+ export default {
38
+ async fetch(request) {
39
+ const url = new URL(request.url)
40
+ url.hostname = 'api.example.com'
41
+ return fetch(url.toString(), {
42
+ method: request.method,
43
+ headers: request.headers,
44
+ body: request.body,
45
+ })
46
+ },
47
+ }
48
+ ```
49
+
50
+ ## CORS Handling
51
+
52
+ ```javascript
53
+ export default {
54
+ async fetch(request) {
55
+ if (request.method === 'OPTIONS') {
56
+ return new Response(null, {
57
+ headers: {
58
+ 'Access-Control-Allow-Origin': '*',
59
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
60
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
61
+ },
62
+ })
63
+ }
64
+ const response = await fetch('https://api.example.com', request)
65
+ const modified = new Response(response.body, response)
66
+ modified.headers.set('Access-Control-Allow-Origin', '*')
67
+ return modified
68
+ },
69
+ }
70
+ ```
71
+
72
+ ## Caching
73
+
74
+ ```javascript
75
+ export default {
76
+ async fetch(request) {
77
+ if (request.method !== 'GET') return fetch(request)
78
+ const cache = caches.default
79
+ let response = await cache.match(request)
80
+ if (!response) {
81
+ response = await fetch('https://api.example.com')
82
+ if (response.status === 200) await cache.put(request, response.clone())
83
+ }
84
+ return response
85
+ },
86
+ }
87
+ ```
88
+
89
+ ## Hono Framework
90
+
91
+ ```javascript
92
+ import { Hono } from 'https://esm.sh/hono@3'
93
+ const app = new Hono()
94
+ app.get('/', (c) => c.text('Hello'))
95
+ app.get('/api/users/:id', (c) => c.json({ id: c.req.param('id') }))
96
+ app.notFound((c) => c.json({ error: 'Not found' }, 404))
97
+ export default app
98
+ ```
99
+
100
+ ## Authentication
101
+
102
+ ```javascript
103
+ export default {
104
+ async fetch(request) {
105
+ const auth = request.headers.get('Authorization')
106
+ if (!auth?.startsWith('Bearer ')) {
107
+ return Response.json({ error: 'Unauthorized' }, { status: 401 })
108
+ }
109
+ const token = auth.substring(7)
110
+ if (token !== 'secret-token') {
111
+ return Response.json({ error: 'Invalid token' }, { status: 403 })
112
+ }
113
+ return Response.json({ message: 'Authenticated' })
114
+ },
115
+ }
116
+ ```
117
+
118
+ ## Error Handling
119
+
120
+ ```javascript
121
+ export default {
122
+ async fetch(request) {
123
+ try {
124
+ const response = await fetch('https://api.example.com')
125
+ if (!response.ok) throw new Error(`API returned ${response.status}`)
126
+ return response
127
+ } catch (error) {
128
+ return Response.json({ error: error.message }, { status: 500 })
129
+ }
130
+ },
131
+ }
132
+ ```
133
+
134
+ **Note:** In-memory state (Maps, variables) resets on Worker cold start. Use Durable Objects or KV for persistence.
@@ -0,0 +1,130 @@
1
+ # Workers VPC Connectivity
2
+
3
+ Connect Cloudflare Workers to private networks and internal infrastructure using TCP Sockets.
4
+
5
+ ## Overview
6
+
7
+ Workers VPC connectivity enables outbound TCP connections from Workers to private resources in AWS, Azure, GCP, on-premises datacenters, or any private network. This is achieved through the **TCP Sockets API** (`cloudflare:sockets`), which provides low-level network access for custom protocols and services.
8
+
9
+ **Key capabilities:**
10
+
11
+ - Direct TCP connections to private IPs and hostnames
12
+ - TLS/StartTLS support for encrypted connections
13
+ - Integration with Cloudflare Tunnel for secure private network access
14
+ - Full control over wire protocols (database protocols, SSH, MQTT, custom TCP)
15
+
16
+ **Note:** This reference documents the TCP Sockets API. For the newer Workers VPC Services product (HTTP-only service bindings with built-in SSRF protection), refer to separate documentation when available. VPC Services is currently in beta (2025+).
17
+
18
+ ## Quick Decision: Which Technology?
19
+
20
+ Need private network connectivity from Workers?
21
+
22
+ | Requirement | Use | Why |
23
+ | --------------------------------------------- | ---------------------------------------------------- | -------------------------------------- |
24
+ | HTTP/HTTPS APIs in private network | VPC Services (beta, separate docs) | SSRF-safe, declarative bindings |
25
+ | PostgreSQL/MySQL databases | [Hyperdrive](../hyperdrive/) | Connection pooling, caching, optimized |
26
+ | Custom TCP protocols (SSH, MQTT, proprietary) | **TCP Sockets (this doc)** | Full protocol control |
27
+ | Simple HTTP with lowest latency | TCP Sockets + [Smart Placement](../smart-placement/) | Manual optimization |
28
+ | Expose on-prem to internet (inbound) | [Cloudflare Tunnel](../tunnel/) | Not Worker-specific |
29
+
30
+ ## When to Use TCP Sockets
31
+
32
+ **Use TCP Sockets when you need:**
33
+
34
+ - ✅ Direct control over wire protocols (e.g., Postgres wire protocol, SSH, Redis RESP)
35
+ - ✅ Non-HTTP protocols (MQTT, SMTP, custom binary protocols)
36
+ - ✅ StartTLS or custom TLS negotiation
37
+ - ✅ Streaming binary data over TCP
38
+
39
+ **Don't use TCP Sockets when:**
40
+
41
+ - ❌ You just need HTTP/HTTPS (use `fetch()` or VPC Services)
42
+ - ❌ You need PostgreSQL/MySQL (use Hyperdrive for pooling)
43
+ - ❌ You need WebSocket (use native Workers WebSocket)
44
+
45
+ ## Quick Start
46
+
47
+ ```typescript
48
+ import { connect } from 'cloudflare:sockets'
49
+
50
+ export default {
51
+ async fetch(req: Request): Promise<Response> {
52
+ // Connect to private service
53
+ const socket = connect(
54
+ { hostname: 'db.internal.company.net', port: 5432 },
55
+ { secureTransport: 'on' }
56
+ )
57
+
58
+ try {
59
+ await socket.opened // Wait for connection
60
+
61
+ const writer = socket.writable.getWriter()
62
+ await writer.write(new TextEncoder().encode('QUERY\r\n'))
63
+ await writer.close()
64
+
65
+ const reader = socket.readable.getReader()
66
+ const { value } = await reader.read()
67
+
68
+ return new Response(value)
69
+ } finally {
70
+ await socket.close()
71
+ }
72
+ },
73
+ }
74
+ ```
75
+
76
+ ## Architecture Pattern: Workers + Tunnel
77
+
78
+ Most private network connectivity combines TCP Sockets with Cloudflare Tunnel:
79
+
80
+ ```
81
+ ┌─────────┐ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐
82
+ │ Worker │────▶│ TCP Socket │────▶│ Tunnel │────▶│ Private │
83
+ │ │ │ (this API) │ │ (cloudflared)│ │ Network │
84
+ └─────────┘ └─────────────┘ └──────────────┘ └─────────────┘
85
+ ```
86
+
87
+ 1. Worker opens TCP socket to Tunnel hostname
88
+ 2. Tunnel endpoint routes to private IP
89
+ 3. Response flows back through Tunnel to Worker
90
+
91
+ See [configuration.md](./configuration.md) for Tunnel setup details.
92
+
93
+ ## Reading Order
94
+
95
+ 1. **Start here (README.md)** - Overview and decision guide
96
+ 2. **[api.md](./api.md)** - Socket interface, types, methods
97
+ 3. **[configuration.md](./configuration.md)** - Wrangler setup, Tunnel integration
98
+ 4. **[patterns.md](./patterns.md)** - Real-world examples (databases, protocols, error handling)
99
+ 5. **[gotchas.md](./gotchas.md)** - Limits, blocked ports, common errors
100
+
101
+ ## Key Limits
102
+
103
+ | Limit | Value |
104
+ | ---------------------------------- | ----------------------------------- |
105
+ | Max concurrent sockets per request | 6 |
106
+ | Blocked destinations | Cloudflare IPs, localhost, port 25 |
107
+ | Scope requirement | Must create in handler (not global) |
108
+
109
+ See [gotchas.md](./gotchas.md) for complete limits and troubleshooting.
110
+
111
+ ## Best Practices
112
+
113
+ 1. **Always close sockets** - Use try/finally blocks
114
+ 2. **Validate destinations** - Prevent SSRF by allowlisting hosts
115
+ 3. **Use Hyperdrive for databases** - Better performance than raw TCP
116
+ 4. **Prefer fetch() for HTTP** - Only use TCP when necessary
117
+ 5. **Combine with Smart Placement** - Reduce latency to private networks
118
+
119
+ ## Related Technologies
120
+
121
+ - **[Hyperdrive](../hyperdrive/)** - PostgreSQL/MySQL with connection pooling
122
+ - **[Cloudflare Tunnel](../tunnel/)** - Secure private network access
123
+ - **[Smart Placement](../smart-placement/)** - Auto-locate Workers near backends
124
+ - **VPC Services (beta)** - HTTP-only service bindings with SSRF protection (separate docs)
125
+
126
+ ## Reference
127
+
128
+ - [TCP Sockets API Documentation](https://developers.cloudflare.com/workers/runtime-apis/tcp-sockets/)
129
+ - [Connect to databases guide](https://developers.cloudflare.com/workers/tutorials/connect-to-postgres/)
130
+ - [Cloudflare Tunnel setup](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/)
@@ -0,0 +1,196 @@
1
+ # TCP Sockets API Reference
2
+
3
+ Complete API reference for the Cloudflare Workers TCP Sockets API (`cloudflare:sockets`).
4
+
5
+ ## Core Function: `connect()`
6
+
7
+ ```typescript
8
+ function connect(address: SocketAddress, options?: SocketOptions): Socket
9
+ ```
10
+
11
+ Creates an outbound TCP connection to the specified address.
12
+
13
+ ### Parameters
14
+
15
+ #### `SocketAddress`
16
+
17
+ ```typescript
18
+ interface SocketAddress {
19
+ hostname: string // DNS hostname or IP address
20
+ port: number // TCP port (1-65535, excluding blocked ports)
21
+ }
22
+ ```
23
+
24
+ | Field | Type | Description | Example |
25
+ | ---------- | -------- | --------------------- | ---------------------------------- |
26
+ | `hostname` | `string` | Target hostname or IP | `"db.internal.net"`, `"10.0.1.50"` |
27
+ | `port` | `number` | TCP port number | `5432`, `443`, `22` |
28
+
29
+ DNS names are resolved at connection time. IPv4, IPv6, and private IPs (10.x, 172.16.x, 192.168.x) supported.
30
+
31
+ #### `SocketOptions`
32
+
33
+ ```typescript
34
+ interface SocketOptions {
35
+ secureTransport?: 'off' | 'on' | 'starttls'
36
+ allowHalfOpen?: boolean
37
+ }
38
+ ```
39
+
40
+ | Field | Type | Default | Description |
41
+ | ----------------- | ----------------------------- | ------- | ----------------------------- |
42
+ | `secureTransport` | `"off" \| "on" \| "starttls"` | `"off"` | TLS mode |
43
+ | `allowHalfOpen` | `boolean` | `false` | Allow half-closed connections |
44
+
45
+ **`secureTransport` modes:**
46
+
47
+ | Mode | Behavior | Use Case |
48
+ | ------------ | -------------------------------------------- | ---------------------------------- |
49
+ | `"off"` | Plain TCP, no encryption | Testing, internal trusted networks |
50
+ | `"on"` | Immediate TLS handshake | HTTPS, secure databases, SSH |
51
+ | `"starttls"` | Start plain, upgrade later with `startTls()` | Postgres, SMTP, IMAP |
52
+
53
+ **`allowHalfOpen`:** When `false` (default), closing read stream auto-closes write stream. When `true`, streams are independent.
54
+
55
+ ### Returns
56
+
57
+ A `Socket` object with readable/writable streams.
58
+
59
+ ## Socket Interface
60
+
61
+ ```typescript
62
+ interface Socket {
63
+ // Streams
64
+ readable: ReadableStream<Uint8Array>
65
+ writable: WritableStream<Uint8Array>
66
+
67
+ // Connection state
68
+ opened: Promise<SocketInfo>
69
+ closed: Promise<void>
70
+
71
+ // Methods
72
+ close(): Promise<void>
73
+ startTls(): Socket
74
+ }
75
+ ```
76
+
77
+ ### Properties
78
+
79
+ #### `readable: ReadableStream<Uint8Array>`
80
+
81
+ Stream for reading data from the socket. Use `getReader()` to consume data.
82
+
83
+ ```typescript
84
+ const reader = socket.readable.getReader()
85
+ const { done, value } = await reader.read() // Read one chunk
86
+ ```
87
+
88
+ #### `writable: WritableStream<Uint8Array>`
89
+
90
+ Stream for writing data to the socket. Use `getWriter()` to send data.
91
+
92
+ ```typescript
93
+ const writer = socket.writable.getWriter()
94
+ await writer.write(new TextEncoder().encode('HELLO\r\n'))
95
+ await writer.close()
96
+ ```
97
+
98
+ #### `opened: Promise<SocketInfo>`
99
+
100
+ Promise that resolves when connection succeeds, rejects on failure.
101
+
102
+ ```typescript
103
+ interface SocketInfo {
104
+ remoteAddress?: string // May be undefined
105
+ localAddress?: string // May be undefined
106
+ }
107
+
108
+ try {
109
+ const info = await socket.opened
110
+ } catch (error) {
111
+ // Connection failed
112
+ }
113
+ ```
114
+
115
+ #### `closed: Promise<void>`
116
+
117
+ Promise that resolves when socket is fully closed (both directions).
118
+
119
+ ### Methods
120
+
121
+ #### `close(): Promise<void>`
122
+
123
+ Closes the socket gracefully, waiting for pending writes to complete.
124
+
125
+ ```typescript
126
+ const socket = connect({ hostname: 'api.internal', port: 443 })
127
+ try {
128
+ // Use socket
129
+ } finally {
130
+ await socket.close() // Always call in finally block
131
+ }
132
+ ```
133
+
134
+ #### `startTls(): Socket`
135
+
136
+ Upgrades connection to TLS. Only available when `secureTransport: "starttls"` was specified.
137
+
138
+ ```typescript
139
+ const socket = connect({ hostname: 'db.internal', port: 5432 }, { secureTransport: 'starttls' })
140
+
141
+ // Send protocol-specific StartTLS command
142
+ const writer = socket.writable.getWriter()
143
+ await writer.write(new TextEncoder().encode('STARTTLS\r\n'))
144
+
145
+ // Upgrade to TLS - use returned socket, not original
146
+ const secureSocket = socket.startTls()
147
+ const secureWriter = secureSocket.writable.getWriter()
148
+ ```
149
+
150
+ ## Complete Example
151
+
152
+ ```typescript
153
+ import { connect } from 'cloudflare:sockets'
154
+
155
+ export default {
156
+ async fetch(req: Request): Promise<Response> {
157
+ const socket = connect({ hostname: 'echo.example.com', port: 7 }, { secureTransport: 'on' })
158
+
159
+ try {
160
+ await socket.opened
161
+
162
+ const writer = socket.writable.getWriter()
163
+ await writer.write(new TextEncoder().encode('Hello, TCP!\n'))
164
+ await writer.close()
165
+
166
+ const reader = socket.readable.getReader()
167
+ const { value } = await reader.read()
168
+
169
+ return new Response(value)
170
+ } finally {
171
+ await socket.close()
172
+ }
173
+ },
174
+ }
175
+ ```
176
+
177
+ See [patterns.md](./patterns.md) for multi-chunk reading, error handling, and protocol implementations.
178
+
179
+ ## Quick Reference
180
+
181
+ | Task | Code |
182
+ | -------------- | ------------------------------------------------- |
183
+ | Import | `import { connect } from 'cloudflare:sockets';` |
184
+ | Connect | `connect({ hostname: "host", port: 443 })` |
185
+ | With TLS | `connect(addr, { secureTransport: "on" })` |
186
+ | StartTLS | `socket.startTls()` after handshake |
187
+ | Write | `await writer.write(data); await writer.close();` |
188
+ | Read | `const { value } = await reader.read();` |
189
+ | Error handling | `try { await socket.opened; } catch { }` |
190
+ | Always close | `try { } finally { await socket.close(); }` |
191
+
192
+ ## See Also
193
+
194
+ - [patterns.md](./patterns.md) - Real-world protocol implementations
195
+ - [configuration.md](./configuration.md) - Wrangler setup and environment variables
196
+ - [gotchas.md](./gotchas.md) - Limits and error handling
@@ -0,0 +1,151 @@
1
+ # Configuration
2
+
3
+ Setup and configuration for TCP Sockets in Cloudflare Workers.
4
+
5
+ ## Wrangler Configuration
6
+
7
+ ### Basic Setup
8
+
9
+ TCP Sockets are available by default in Workers runtime. No special configuration required in `wrangler.jsonc`:
10
+
11
+ ```jsonc
12
+ {
13
+ "name": "private-network-worker",
14
+ "main": "src/index.ts",
15
+ "compatibility_date": "2025-01-01",
16
+ }
17
+ ```
18
+
19
+ ### Environment Variables
20
+
21
+ Store connection details as env vars:
22
+
23
+ ```jsonc
24
+ {
25
+ "vars": { "DB_HOST": "10.0.1.50", "DB_PORT": "5432" },
26
+ }
27
+ ```
28
+
29
+ ```typescript
30
+ interface Env {
31
+ DB_HOST: string
32
+ DB_PORT: string
33
+ }
34
+
35
+ export default {
36
+ async fetch(req: Request, env: Env): Promise<Response> {
37
+ const socket = connect({ hostname: env.DB_HOST, port: parseInt(env.DB_PORT) })
38
+ },
39
+ }
40
+ ```
41
+
42
+ ### Per-Environment Configuration
43
+
44
+ ```jsonc
45
+ {
46
+ "vars": { "DB_HOST": "localhost" },
47
+ "env": {
48
+ "staging": { "vars": { "DB_HOST": "staging-db.internal.net" } },
49
+ "production": { "vars": { "DB_HOST": "prod-db.internal.net" } },
50
+ },
51
+ }
52
+ ```
53
+
54
+ Deploy: `wrangler deploy --env staging` or `wrangler deploy --env production`
55
+
56
+ ## Integration with Cloudflare Tunnel
57
+
58
+ To connect Workers to private networks, combine TCP Sockets with Cloudflare Tunnel:
59
+
60
+ ```
61
+ Worker (TCP Socket) → Tunnel hostname → cloudflared → Private Network
62
+ ```
63
+
64
+ ### Quick Setup
65
+
66
+ 1. **Install cloudflared** on a server inside your private network
67
+ 2. **Create tunnel**: `cloudflared tunnel create my-private-network`
68
+ 3. **Configure routing** in `config.yml`:
69
+
70
+ ```yaml
71
+ tunnel: <TUNNEL_ID>
72
+ credentials-file: /path/to/<TUNNEL_ID>.json
73
+ ingress:
74
+ - hostname: db.internal.example.com
75
+ service: tcp://10.0.1.50:5432
76
+ - service: http_status:404 # Required catch-all
77
+ ```
78
+
79
+ 4. **Run tunnel**: `cloudflared tunnel run my-private-network`
80
+ 5. **Connect from Worker**:
81
+
82
+ ```typescript
83
+ const socket = connect(
84
+ { hostname: 'db.internal.example.com', port: 5432 }, // Tunnel hostname
85
+ { secureTransport: 'on' }
86
+ )
87
+ ```
88
+
89
+ For detailed Tunnel setup, see [Tunnel configuration reference](../tunnel/configuration.md).
90
+
91
+ ## Smart Placement Integration
92
+
93
+ Reduce latency by auto-placing Workers near backends:
94
+
95
+ ```jsonc
96
+ { "placement": { "mode": "smart" } }
97
+ ```
98
+
99
+ Workers automatically relocate closer to TCP socket destinations after observing connection latency. See [Smart Placement reference](../smart-placement/).
100
+
101
+ ## Secrets Management
102
+
103
+ Store sensitive credentials as secrets (not in wrangler.jsonc):
104
+
105
+ ```bash
106
+ wrangler secret put DB_PASSWORD # Enter value when prompted
107
+ ```
108
+
109
+ Access in Worker via `env.DB_PASSWORD`. Use in protocol handshake or authentication.
110
+
111
+ ## Local Development
112
+
113
+ Test with `wrangler dev`. Note: Local mode may not access private networks. Use public endpoints or mock servers for development:
114
+
115
+ ```typescript
116
+ const config =
117
+ process.env.NODE_ENV === 'dev'
118
+ ? { hostname: 'localhost', port: 5432 } // Mock
119
+ : { hostname: 'db.internal.example.com', port: 5432 } // Production
120
+ ```
121
+
122
+ ## Connection String Patterns
123
+
124
+ Parse connection strings to extract host and port:
125
+
126
+ ```typescript
127
+ function parseConnectionString(connStr: string): SocketAddress {
128
+ const url = new URL(connStr) // e.g., "postgres://10.0.1.50:5432/mydb"
129
+ return { hostname: url.hostname, port: parseInt(url.port) || 5432 }
130
+ }
131
+ ```
132
+
133
+ ## Hyperdrive Integration
134
+
135
+ For PostgreSQL/MySQL, prefer Hyperdrive over raw TCP sockets (includes connection pooling):
136
+
137
+ ```jsonc
138
+ { "hyperdrive": [{ "binding": "DB", "id": "<HYPERDRIVE_ID>" }] }
139
+ ```
140
+
141
+ See [Hyperdrive reference](../hyperdrive/) for complete setup.
142
+
143
+ ## Compatibility
144
+
145
+ TCP Sockets available in all modern Workers. Use current date: `"compatibility_date": "2025-01-01"`. No special flags required.
146
+
147
+ ## Related Configuration
148
+
149
+ - **[Tunnel Configuration](../tunnel/configuration.md)** - Detailed cloudflared setup
150
+ - **[Smart Placement](../smart-placement/configuration.md)** - Placement mode options
151
+ - **[Hyperdrive](../hyperdrive/configuration.md)** - Database connection pooling setup