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,187 @@
1
+ # Testing Patterns
2
+
3
+ ## Choosing a Testing Approach
4
+
5
+ | Approach | Use Case | Speed | Setup | Runtime |
6
+ | ----------------------- | ------------------------------- | ------ | ------ | --------- |
7
+ | **getPlatformProxy** | Unit tests, logic testing | Fast | Low | Miniflare |
8
+ | **Miniflare API** | Integration tests, full control | Medium | Medium | Miniflare |
9
+ | **vitest-pool-workers** | Vitest runner integration | Medium | Medium | workerd |
10
+
11
+ **Quick guide:**
12
+
13
+ - Unit tests → getPlatformProxy
14
+ - Integration tests → Miniflare API
15
+ - Vitest workflows → vitest-pool-workers
16
+
17
+ ## getPlatformProxy
18
+
19
+ Lightweight unit testing - provides bindings without full Worker runtime.
20
+
21
+ ```js
22
+ // vitest.config.js
23
+ export default { test: { environment: 'node' } }
24
+ ```
25
+
26
+ ```js
27
+ import { env } from 'cloudflare:test'
28
+ import { describe, it, expect } from 'vitest'
29
+
30
+ describe('Business logic', () => {
31
+ it('processes data with KV', async () => {
32
+ await env.KV.put('test', 'value')
33
+ expect(await env.KV.get('test')).toBe('value')
34
+ })
35
+ })
36
+ ```
37
+
38
+ **Pros:** Fast, simple
39
+ **Cons:** No full runtime, can't test fetch handler
40
+
41
+ ## vitest-pool-workers
42
+
43
+ Full Workers runtime in Vitest. Reads `wrangler.toml`.
44
+
45
+ ```bash
46
+ npm i -D @cloudflare/vitest-pool-workers
47
+ ```
48
+
49
+ ```js
50
+ // vitest.config.js
51
+ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'
52
+
53
+ export default defineWorkersConfig({
54
+ test: {
55
+ poolOptions: { workers: { wrangler: { configPath: './wrangler.toml' } } },
56
+ },
57
+ })
58
+ ```
59
+
60
+ ```js
61
+ import { env, SELF } from 'cloudflare:test'
62
+ import { it, expect } from 'vitest'
63
+
64
+ it('handles fetch', async () => {
65
+ const res = await SELF.fetch('http://example.com/')
66
+ expect(res.status).toBe(200)
67
+ })
68
+ ```
69
+
70
+ **Pros:** Full runtime, uses wrangler.toml
71
+ **Cons:** Requires Wrangler config
72
+
73
+ ## Miniflare API (node:test)
74
+
75
+ ```js
76
+ import assert from 'node:assert'
77
+ import test, { after, before } from 'node:test'
78
+ import { Miniflare } from 'miniflare'
79
+
80
+ let mf
81
+ before(() => {
82
+ mf = new Miniflare({ scriptPath: 'src/index.js', kvNamespaces: ['TEST_KV'] })
83
+ })
84
+
85
+ test('fetch', async () => {
86
+ const res = await mf.dispatchFetch('http://localhost/')
87
+ assert.strictEqual(await res.text(), 'Hello')
88
+ })
89
+
90
+ after(() => mf.dispose())
91
+ ```
92
+
93
+ ## Testing Durable Objects & Events
94
+
95
+ ```js
96
+ // Durable Objects
97
+ const ns = await mf.getDurableObjectNamespace('COUNTER')
98
+ const stub = ns.get(ns.idFromName('test-counter'))
99
+ await stub.fetch('http://localhost/increment')
100
+
101
+ // Direct storage
102
+ const storage = await mf.getDurableObjectStorage(ns.idFromName('test-counter'))
103
+ const count = await storage.get('count')
104
+
105
+ // Queue
106
+ const worker = await mf.getWorker()
107
+ await worker.queue('my-queue', [
108
+ { id: 'msg1', timestamp: new Date(), body: { userId: 123 }, attempts: 1 },
109
+ ])
110
+
111
+ // Scheduled
112
+ await worker.scheduled({ cron: '0 0 * * *' })
113
+ ```
114
+
115
+ ## Test Isolation & Mocking
116
+
117
+ ```js
118
+ // Per-test isolation
119
+ beforeEach(() => {
120
+ mf = new Miniflare({ kvNamespaces: ['TEST'] })
121
+ })
122
+ afterEach(() => mf.dispose())
123
+
124
+ // Mock external APIs
125
+ new Miniflare({
126
+ workers: [
127
+ { name: 'main', serviceBindings: { API: 'mock-api' }, script: `...` },
128
+ {
129
+ name: 'mock-api',
130
+ script: `export default { async fetch() { return Response.json({mock: true}); } }`,
131
+ },
132
+ ],
133
+ })
134
+ ```
135
+
136
+ ## Type Safety
137
+
138
+ ```ts
139
+ import type { KVNamespace } from '@cloudflare/workers-types'
140
+
141
+ interface Env {
142
+ KV: KVNamespace
143
+ API_KEY: string
144
+ }
145
+
146
+ const env = await mf.getBindings<Env>()
147
+ await env.KV.put('key', 'value') // Typed!
148
+
149
+ export default {
150
+ async fetch(req: Request, env: Env) {
151
+ return new Response(await env.KV.get('key'))
152
+ },
153
+ } satisfies ExportedHandler<Env>
154
+ ```
155
+
156
+ ## WebSocket Testing
157
+
158
+ ```js
159
+ const res = await mf.dispatchFetch('http://localhost/ws', {
160
+ headers: { Upgrade: 'websocket' },
161
+ })
162
+ assert.strictEqual(res.status, 101)
163
+ ```
164
+
165
+ ## Migration from unstable_dev
166
+
167
+ ```js
168
+ // Old (deprecated)
169
+ import { unstable_dev } from 'wrangler'
170
+ const worker = await unstable_dev('src/index.ts')
171
+
172
+ // New
173
+ import { Miniflare } from 'miniflare'
174
+ const mf = new Miniflare({ scriptPath: 'src/index.ts' })
175
+ ```
176
+
177
+ ## CI/CD Tips
178
+
179
+ ```js
180
+ // In-memory storage (faster)
181
+ new Miniflare({ kvNamespaces: ['TEST'] }) // No persist = in-memory
182
+
183
+ // Use dispatchFetch (no port conflicts)
184
+ await mf.dispatchFetch('http://localhost/')
185
+ ```
186
+
187
+ See [gotchas.md](./gotchas.md) for troubleshooting.
@@ -0,0 +1,104 @@
1
+ # Cloudflare Network Interconnect (CNI)
2
+
3
+ Private, high-performance connectivity to Cloudflare's network. **Enterprise-only**.
4
+
5
+ ## Connection Types
6
+
7
+ **Direct**: Physical fiber in shared datacenter. 10/100 Gbps. You order cross-connect.
8
+
9
+ **Partner**: Virtual via Console Connect, Equinix, Megaport, etc. Managed via partner SDN.
10
+
11
+ **Cloud**: AWS Direct Connect or GCP Cloud Interconnect. Magic WAN only.
12
+
13
+ ## Dataplane Versions
14
+
15
+ **v1 (Classic)**: GRE tunnel support, VLAN/BFD/LACP, asymmetric MTU (1500↓/1476↑), peering support.
16
+
17
+ **v2 (Beta)**: No GRE, 1500 MTU both ways, no VLAN/BFD/LACP yet, ECMP instead.
18
+
19
+ ## Use Cases
20
+
21
+ - **Magic Transit DSR**: DDoS protection, egress via ISP (v1/v2)
22
+ - **Magic Transit + Egress**: DDoS + egress via CF (v1/v2)
23
+ - **Magic WAN + Zero Trust**: Private backbone (v1 needs GRE, v2 native)
24
+ - **Peering**: Public routes at PoP (v1 only)
25
+ - **App Security**: WAF/Cache/LB (v1/v2 over Magic Transit)
26
+
27
+ ## Prerequisites
28
+
29
+ - Enterprise plan
30
+ - IPv4 /24+ or IPv6 /48+ prefixes
31
+ - BGP ASN for v1
32
+ - See [locations PDF](https://developers.cloudflare.com/network-interconnect/static/cni-locations-2026-01.pdf)
33
+
34
+ ## Specs
35
+
36
+ - /31 point-to-point subnets
37
+ - 10km max optical distance
38
+ - 10G: 10GBASE-LR single-mode
39
+ - 100G: 100GBASE-LR4 single-mode
40
+ - **No SLA** (free service)
41
+ - Backup Internet required
42
+
43
+ ## Throughput
44
+
45
+ | Direction | 10G | 100G |
46
+ | ----------------------- | -------------------- | -------------------- |
47
+ | CF → Customer | 10 Gbps | 100 Gbps |
48
+ | Customer → CF (peering) | 10 Gbps | 100 Gbps |
49
+ | Customer → CF (Magic) | 1 Gbps/tunnel or CNI | 1 Gbps/tunnel or CNI |
50
+
51
+ ## Timeline
52
+
53
+ 2-4 weeks typical. Steps: request → config review → order connection → configure → test → enable health checks → activate → monitor.
54
+
55
+ ## In This Reference
56
+
57
+ - [configuration.md](./configuration.md) - BGP, routing, setup
58
+ - [api.md](./api.md) - API endpoints, SDKs
59
+ - [patterns.md](./patterns.md) - HA, hybrid cloud, failover
60
+ - [gotchas.md](./gotchas.md) - Troubleshooting, limits
61
+
62
+ ## Reading Order by Task
63
+
64
+ | Task | Files to Load |
65
+ | --------------------------- | ---------------------------------- |
66
+ | Initial setup | README → configuration.md → api.md |
67
+ | Create interconnect via API | api.md → gotchas.md |
68
+ | Design HA architecture | patterns.md → README |
69
+ | Troubleshoot connection | gotchas.md → configuration.md |
70
+ | Cloud integration (AWS/GCP) | configuration.md → patterns.md |
71
+ | Monitor + alerts | configuration.md |
72
+
73
+ ## Automation Boundary
74
+
75
+ **API-Automatable:**
76
+
77
+ - List/create/delete interconnects (Direct, Partner)
78
+ - List available slots
79
+ - Get interconnect status
80
+ - Download LOA PDF
81
+ - Create/update CNI objects (BGP config)
82
+ - Query settings
83
+
84
+ **Requires Account Team:**
85
+
86
+ - Initial request approval
87
+ - AWS Direct Connect setup (send LOA+VLAN to CF)
88
+ - GCP Cloud Interconnect final activation
89
+ - Partner interconnect acceptance (Equinix, Megaport)
90
+ - VLAN assignment (v1)
91
+ - Configuration document generation (v1)
92
+ - Escalations + troubleshooting support
93
+
94
+ **Cannot Be Automated:**
95
+
96
+ - Physical cross-connect installation (Direct)
97
+ - Partner portal operations (virtual circuit ordering)
98
+ - AWS/GCP portal operations
99
+ - Maintenance window coordination
100
+
101
+ ## See Also
102
+
103
+ - [tunnel](../tunnel/) - Alternative for private network connectivity
104
+ - [spectrum](../spectrum/) - Layer 4 proxy for TCP/UDP traffic
@@ -0,0 +1,220 @@
1
+ # CNI API Reference
2
+
3
+ See [README.md](README.md) for overview.
4
+
5
+ ## Base
6
+
7
+ ```
8
+ https://api.cloudflare.com/client/v4
9
+ Auth: Authorization: Bearer <token>
10
+ ```
11
+
12
+ ## SDK Namespaces
13
+
14
+ **Primary (recommended):**
15
+
16
+ ```typescript
17
+ client.networkInterconnects.interconnects.*
18
+ client.networkInterconnects.cnis.*
19
+ client.networkInterconnects.slots.*
20
+ ```
21
+
22
+ **Alternate (deprecated):**
23
+
24
+ ```typescript
25
+ client.magicTransit.cfInterconnects.*
26
+ ```
27
+
28
+ Use `networkInterconnects` namespace for all new code.
29
+
30
+ ## Interconnects
31
+
32
+ ```http
33
+ GET /accounts/{account_id}/cni/interconnects # Query: page, per_page
34
+ POST /accounts/{account_id}/cni/interconnects # Query: validate_only=true (optional)
35
+ GET /accounts/{account_id}/cni/interconnects/{icon}
36
+ GET /accounts/{account_id}/cni/interconnects/{icon}/status
37
+ GET /accounts/{account_id}/cni/interconnects/{icon}/loa # Returns PDF
38
+ DELETE /accounts/{account_id}/cni/interconnects/{icon}
39
+ ```
40
+
41
+ **Create Body:** `account`, `slot_id`, `type`, `facility`, `speed`, `name`, `description`
42
+ **Status Values:** `active` | `healthy` | `unhealthy` | `pending` | `down`
43
+
44
+ **Response Example:**
45
+
46
+ ```json
47
+ {
48
+ "result": [
49
+ {
50
+ "id": "icon_abc",
51
+ "name": "prod",
52
+ "type": "direct",
53
+ "facility": "EWR1",
54
+ "speed": "10G",
55
+ "status": "active"
56
+ }
57
+ ]
58
+ }
59
+ ```
60
+
61
+ ## CNI Objects (BGP config)
62
+
63
+ ```http
64
+ GET /accounts/{account_id}/cni/cnis
65
+ POST /accounts/{account_id}/cni/cnis
66
+ GET /accounts/{account_id}/cni/cnis/{cni}
67
+ PUT /accounts/{account_id}/cni/cnis/{cni}
68
+ DELETE /accounts/{account_id}/cni/cnis/{cni}
69
+ ```
70
+
71
+ Body: `account`, `cust_ip`, `cf_ip`, `bgp_asn`, `bgp_password`, `vlan`
72
+
73
+ ## Slots
74
+
75
+ ```http
76
+ GET /accounts/{account_id}/cni/slots
77
+ GET /accounts/{account_id}/cni/slots/{slot}
78
+ ```
79
+
80
+ Query: `facility`, `occupied`, `speed`
81
+
82
+ ## Health Checks
83
+
84
+ Configure via Magic Transit/WAN tunnel endpoints (CNI v2).
85
+
86
+ ```typescript
87
+ await client.magicTransit.tunnels.update(accountId, tunnelId, {
88
+ health_check: { enabled: true, target: '192.0.2.1', rate: 'high', type: 'request' },
89
+ })
90
+ ```
91
+
92
+ Rates: `high` | `medium` | `low`. Types: `request` | `reply`. See [Magic Transit docs](https://developers.cloudflare.com/magic-transit/how-to/configure-tunnel-endpoints/#add-tunnels).
93
+
94
+ ## Settings
95
+
96
+ ```http
97
+ GET /accounts/{account_id}/cni/settings
98
+ PUT /accounts/{account_id}/cni/settings
99
+ ```
100
+
101
+ Body: `default_asn`
102
+
103
+ ## TypeScript SDK
104
+
105
+ ```typescript
106
+ import Cloudflare from 'cloudflare'
107
+
108
+ const client = new Cloudflare({ apiToken: process.env.CF_TOKEN })
109
+
110
+ // List
111
+ await client.networkInterconnects.interconnects.list({ account_id: id })
112
+
113
+ // Create with validation
114
+ await client.networkInterconnects.interconnects.create(
115
+ {
116
+ account_id: id,
117
+ account: id,
118
+ slot_id: 'slot_abc',
119
+ type: 'direct',
120
+ facility: 'EWR1',
121
+ speed: '10G',
122
+ name: 'prod-interconnect',
123
+ },
124
+ {
125
+ query: { validate_only: true }, // Dry-run validation
126
+ }
127
+ )
128
+
129
+ // Create without validation
130
+ await client.networkInterconnects.interconnects.create({
131
+ account_id: id,
132
+ account: id,
133
+ slot_id: 'slot_abc',
134
+ type: 'direct',
135
+ facility: 'EWR1',
136
+ speed: '10G',
137
+ name: 'prod-interconnect',
138
+ })
139
+
140
+ // Status
141
+ await client.networkInterconnects.interconnects.get(accountId, iconId)
142
+
143
+ // LOA (use fetch)
144
+ const res = await fetch(
145
+ `https://api.cloudflare.com/client/v4/accounts/${id}/cni/interconnects/${iconId}/loa`,
146
+ {
147
+ headers: { Authorization: `Bearer ${token}` },
148
+ }
149
+ )
150
+ await fs.writeFile('loa.pdf', Buffer.from(await res.arrayBuffer()))
151
+
152
+ // CNI object
153
+ await client.networkInterconnects.cnis.create({
154
+ account_id: id,
155
+ account: id,
156
+ cust_ip: '192.0.2.1/31',
157
+ cf_ip: '192.0.2.0/31',
158
+ bgp_asn: 65000,
159
+ vlan: 100,
160
+ })
161
+
162
+ // Slots (filter by facility and speed)
163
+ await client.networkInterconnects.slots.list({
164
+ account_id: id,
165
+ occupied: false,
166
+ facility: 'EWR1',
167
+ speed: '10G',
168
+ })
169
+ ```
170
+
171
+ ## Python SDK
172
+
173
+ ```python
174
+ from cloudflare import Cloudflare
175
+
176
+ client = Cloudflare(api_token=os.environ["CF_TOKEN"])
177
+
178
+ # List, create, status (same pattern as TypeScript)
179
+ client.network_interconnects.interconnects.list(account_id=id)
180
+ client.network_interconnects.interconnects.create(account_id=id, account=id, slot_id="slot_abc", type="direct", facility="EWR1", speed="10G")
181
+ client.network_interconnects.interconnects.get(account_id=id, icon=icon_id)
182
+
183
+ # CNI objects and slots
184
+ client.network_interconnects.cnis.create(account_id=id, cust_ip="192.0.2.1/31", cf_ip="192.0.2.0/31", bgp_asn=65000)
185
+ client.network_interconnects.slots.list(account_id=id, occupied=False)
186
+ ```
187
+
188
+ ## cURL
189
+
190
+ ```bash
191
+ # List interconnects
192
+ curl "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/cni/interconnects" \
193
+ -H "Authorization: Bearer ${CF_TOKEN}"
194
+
195
+ # Create interconnect
196
+ curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/cni/interconnects?validate_only=true" \
197
+ -H "Authorization: Bearer ${CF_TOKEN}" -H "Content-Type: application/json" \
198
+ -d '{"account": "id", "slot_id": "slot_abc", "type": "direct", "facility": "EWR1", "speed": "10G"}'
199
+
200
+ # LOA PDF
201
+ curl "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/cni/interconnects/${ICON_ID}/loa" \
202
+ -H "Authorization: Bearer ${CF_TOKEN}" --output loa.pdf
203
+ ```
204
+
205
+ ## Not Available via API
206
+
207
+ **Missing Capabilities:**
208
+
209
+ - BGP session state query (use Dashboard or BGP logs)
210
+ - Bandwidth utilization metrics (use external monitoring)
211
+ - Traffic statistics per interconnect
212
+ - Historical uptime/downtime data
213
+ - Light level readings (contact account team)
214
+ - Maintenance window scheduling (notifications only)
215
+
216
+ ## Resources
217
+
218
+ - [API Docs](https://developers.cloudflare.com/api/resources/network_interconnects/)
219
+ - [TypeScript SDK](https://github.com/cloudflare/cloudflare-typescript)
220
+ - [Python SDK](https://github.com/cloudflare/cloudflare-python)
@@ -0,0 +1,123 @@
1
+ # CNI Configuration
2
+
3
+ See [README.md](README.md) for overview.
4
+
5
+ ## Workflow (2-4 weeks)
6
+
7
+ 1. **Submit request** (Week 1): Contact account team, provide type/location/use case
8
+ 2. **Review config** (Week 1-2, v1 only): Approve IP/VLAN/spec doc
9
+ 3. **Order connection** (Week 2-3):
10
+ - **Direct**: Get LOA, order cross-connect from facility
11
+ - **Partner**: Order virtual circuit in partner portal
12
+ - **Cloud**: Order Direct Connect/Cloud Interconnect, send LOA+VLAN to CF
13
+ 4. **Configure** (Week 3): Both sides configure per doc
14
+ 5. **Test** (Week 3-4): Ping, verify BGP, check routes
15
+ 6. **Health checks** (Week 4): Configure [Magic Transit](https://developers.cloudflare.com/magic-transit/how-to/configure-tunnel-endpoints/#add-tunnels) or [Magic WAN](https://developers.cloudflare.com/magic-wan/configuration/manually/how-to/configure-tunnel-endpoints/#add-tunnels) health checks
16
+ 7. **Activate** (Week 4): Route traffic, verify flow
17
+ 8. **Monitor**: Enable [maintenance notifications](https://developers.cloudflare.com/network-interconnect/monitoring-and-alerts/#enable-cloudflare-status-maintenance-notification)
18
+
19
+ ## BGP Configuration
20
+
21
+ **v1 Requirements:**
22
+
23
+ - BGP ASN (provide during setup)
24
+ - /31 subnet for peering
25
+ - Optional: BGP password
26
+
27
+ **v2:** Simplified, less BGP config needed.
28
+
29
+ **BGP over CNI (Dec 2024):** Magic WAN/Transit can now peer BGP directly over CNI v2 (no GRE tunnel required).
30
+
31
+ **Example v1 BGP:**
32
+
33
+ ```
34
+ Router ID: 192.0.2.1
35
+ Peer IP: 192.0.2.0
36
+ Remote ASN: 13335
37
+ Local ASN: 65000
38
+ Password: [optional]
39
+ VLAN: 100
40
+ ```
41
+
42
+ ## Cloud Interconnect Setup
43
+
44
+ ### AWS Direct Connect (Beta)
45
+
46
+ **Requirements:** Magic WAN, AWS Dedicated Direct Connect 1/10 Gbps.
47
+
48
+ **Process:**
49
+
50
+ 1. Contact CF account team
51
+ 2. Choose location
52
+ 3. Order in AWS portal
53
+ 4. AWS provides LOA + VLAN ID
54
+ 5. Send to CF account team
55
+ 6. Wait ~4 weeks
56
+
57
+ **Post-setup:** Add [static routes](https://developers.cloudflare.com/magic-wan/configuration/manually/how-to/configure-routes/#configure-static-routes) to Magic WAN. Enable [bidirectional health checks](https://developers.cloudflare.com/magic-wan/configuration/manually/how-to/configure-tunnel-endpoints/#legacy-bidirectional-health-checks).
58
+
59
+ ### GCP Cloud Interconnect (Beta)
60
+
61
+ **Setup via Dashboard:**
62
+
63
+ 1. Interconnects → Create → Cloud Interconnect → Google
64
+ 2. Provide name, MTU (match GCP VLAN attachment), speed (50M-50G granular options available for partner interconnects)
65
+ 3. Enter VLAN attachment pairing key
66
+ 4. Confirm order
67
+
68
+ **Routing to GCP:** Add [static routes](https://developers.cloudflare.com/magic-wan/configuration/manually/how-to/configure-routes/#configure-static-routes). BGP routes from GCP Cloud Router **ignored**.
69
+
70
+ **Routing to CF:** Configure [custom learned routes](https://cloud.google.com/network-connectivity/docs/router/how-to/configure-custom-learned-routes) in Cloud Router. Request prefixes from CF account team.
71
+
72
+ ## Monitoring
73
+
74
+ **Dashboard Status:**
75
+
76
+ | Status | Meaning |
77
+ | ------------- | ------------------------------------------------------------ |
78
+ | **Healthy** | Link operational, traffic flowing, health checks passing |
79
+ | **Active** | Link up, sufficient light, Ethernet negotiated |
80
+ | **Unhealthy** | Link down, no/low light (<-20 dBm), can't negotiate |
81
+ | **Pending** | Cross-connect incomplete, device unresponsive, RX/TX swapped |
82
+ | **Down** | Physical link down, no connectivity |
83
+
84
+ **Alerts:**
85
+
86
+ **CNI Connection Maintenance** (Magic Networking only):
87
+
88
+ ```
89
+ Dashboard → Notifications → Add
90
+ Product: Cloudflare Network Interconnect
91
+ Type: Connection Maintenance Alert
92
+ ```
93
+
94
+ Warnings up to 2 weeks advance. 6hr delay for new additions.
95
+
96
+ **Cloudflare Status Maintenance** (entire PoP):
97
+
98
+ ```
99
+ Dashboard → Notifications → Add
100
+ Product: Cloudflare Status
101
+ Filter PoPs: gru,fra,lhr
102
+ ```
103
+
104
+ **Find PoP code:**
105
+
106
+ ```
107
+ Dashboard → Magic Transit/WAN → Configuration → Interconnects
108
+ Select CNI → Note Data Center (e.g., "gru-b")
109
+ Use first 3 letters: "gru"
110
+ ```
111
+
112
+ ## Best Practices
113
+
114
+ **Critical config-specific practices:**
115
+
116
+ - /31 subnets required for BGP
117
+ - BGP passwords recommended
118
+ - BFD for fast failover (v1 only)
119
+ - Test ping connectivity before BGP
120
+ - Enable maintenance notifications immediately after activation
121
+ - Monitor status programmatically via API
122
+
123
+ For design patterns, HA architecture, and security best practices, see [patterns.md](./patterns.md).