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.
- package/README.md +126 -56
- package/dist/chunk-6OHRCNYW.js +3231 -0
- package/dist/chunk-JFMITANR.js +5168 -0
- package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
- package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
- package/dist/cli.js +21 -3
- package/dist/index.d.ts +16 -13
- package/dist/index.js +4 -2
- package/dist/resources-IJVKDFGS.js +2 -0
- package/dist/tools-44DGXE3V.js +2 -0
- package/dist/worker-script.js +201 -20
- package/package.json +7 -4
- package/skills/README.md +62 -25
- package/skills/adversarial-performance/SKILL.md +139 -0
- package/skills/adversarial-performance/references/audit-categories.md +462 -0
- package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
- package/skills/adversarial-performance/references/copilot-usage.md +16 -0
- package/skills/adversarial-performance/references/feedback-loop.md +177 -0
- package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
- package/skills/adversarial-planner/SKILL.md +23 -54
- package/skills/adversarial-planner/references/copilot-integration.md +25 -40
- package/skills/adversarial-planner/references/copilot-usage.md +16 -0
- package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
- package/skills/adversarial-security/SKILL.md +149 -0
- package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
- package/skills/adversarial-security/references/audit-categories.md +723 -0
- package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
- package/skills/adversarial-security/references/copilot-usage.md +16 -0
- package/skills/adversarial-security/references/feedback-loop.md +206 -0
- package/skills/adversarial-security/references/journal-opt-out.md +7 -0
- package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
- package/skills/adversarial-skill-audit/SKILL.md +118 -0
- package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
- package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
- package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
- package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
- package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
- package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
- package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
- package/skills/adversarial-workflow-audit/SKILL.md +82 -0
- package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
- package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
- package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
- package/skills/agents-sdk/SKILL.md +220 -0
- package/skills/agents-sdk/references/callable.md +92 -0
- package/skills/agents-sdk/references/codemode.md +209 -0
- package/skills/agents-sdk/references/email.md +144 -0
- package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
- package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
- package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
- package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
- package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
- package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
- package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
- package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
- package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
- package/skills/agents-sdk/references/mcp.md +157 -0
- package/skills/agents-sdk/references/state-scheduling.md +164 -0
- package/skills/agents-sdk/references/streaming-chat.md +168 -0
- package/skills/agents-sdk/references/workflows.md +136 -0
- package/skills/auth-identity/SKILL.md +48 -0
- package/skills/autonomous-dev/SKILL.md +46 -23
- package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
- package/skills/aws/SKILL.md +39 -0
- package/skills/azure/SKILL.md +38 -0
- package/skills/bin/sync.js +7 -1
- package/skills/biome/SKILL.md +59 -0
- package/skills/bun/SKILL.md +8 -2
- package/skills/cloudflare/SKILL.md +37 -0
- package/skills/cloudflare/references/agents-sdk/README.md +95 -0
- package/skills/cloudflare/references/agents-sdk/api.md +195 -0
- package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
- package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
- package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
- package/skills/cloudflare/references/ai-gateway/README.md +176 -0
- package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
- package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
- package/skills/cloudflare/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
- package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
- package/skills/cloudflare/references/ai-search/README.md +145 -0
- package/skills/cloudflare/references/ai-search/api.md +87 -0
- package/skills/cloudflare/references/ai-search/configuration.md +91 -0
- package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
- package/skills/cloudflare/references/ai-search/patterns.md +87 -0
- package/skills/cloudflare/references/analytics-engine/README.md +96 -0
- package/skills/cloudflare/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
- package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
- package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
- package/skills/cloudflare/references/api/README.md +66 -0
- package/skills/cloudflare/references/api/api.md +205 -0
- package/skills/cloudflare/references/api/configuration.md +158 -0
- package/skills/cloudflare/references/api/gotchas.md +231 -0
- package/skills/cloudflare/references/api/patterns.md +208 -0
- package/skills/cloudflare/references/api-shield/README.md +44 -0
- package/skills/cloudflare/references/api-shield/api.md +153 -0
- package/skills/cloudflare/references/api-shield/configuration.md +210 -0
- package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
- package/skills/cloudflare/references/api-shield/patterns.md +185 -0
- package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
- package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
- package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
- package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
- package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
- package/skills/cloudflare/references/bindings/README.md +127 -0
- package/skills/cloudflare/references/bindings/api.md +214 -0
- package/skills/cloudflare/references/bindings/configuration.md +200 -0
- package/skills/cloudflare/references/bindings/gotchas.md +210 -0
- package/skills/cloudflare/references/bindings/patterns.md +205 -0
- package/skills/cloudflare/references/bot-management/README.md +95 -0
- package/skills/cloudflare/references/bot-management/api.md +175 -0
- package/skills/cloudflare/references/bot-management/configuration.md +175 -0
- package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
- package/skills/cloudflare/references/bot-management/patterns.md +181 -0
- package/skills/cloudflare/references/browser-rendering/README.md +84 -0
- package/skills/cloudflare/references/browser-rendering/api.md +108 -0
- package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
- package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
- package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
- package/skills/cloudflare/references/c3/README.md +111 -0
- package/skills/cloudflare/references/c3/api.md +71 -0
- package/skills/cloudflare/references/c3/configuration.md +85 -0
- package/skills/cloudflare/references/c3/gotchas.md +97 -0
- package/skills/cloudflare/references/c3/patterns.md +84 -0
- package/skills/cloudflare/references/cache-reserve/README.md +150 -0
- package/skills/cloudflare/references/cache-reserve/api.md +184 -0
- package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
- package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
- package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare/references/containers/README.md +87 -0
- package/skills/cloudflare/references/containers/api.md +197 -0
- package/skills/cloudflare/references/containers/configuration.md +191 -0
- package/skills/cloudflare/references/containers/gotchas.md +182 -0
- package/skills/cloudflare/references/containers/patterns.md +204 -0
- package/skills/cloudflare/references/cron-triggers/README.md +101 -0
- package/skills/cloudflare/references/cron-triggers/api.md +224 -0
- package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
- package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
- package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
- package/skills/cloudflare/references/d1/README.md +137 -0
- package/skills/cloudflare/references/d1/api.md +213 -0
- package/skills/cloudflare/references/d1/configuration.md +198 -0
- package/skills/cloudflare/references/d1/gotchas.md +98 -0
- package/skills/cloudflare/references/d1/patterns.md +240 -0
- package/skills/cloudflare/references/ddos/README.md +42 -0
- package/skills/cloudflare/references/ddos/api.md +158 -0
- package/skills/cloudflare/references/ddos/configuration.md +94 -0
- package/skills/cloudflare/references/ddos/gotchas.md +114 -0
- package/skills/cloudflare/references/ddos/patterns.md +220 -0
- package/skills/cloudflare/references/decision-trees.md +95 -0
- package/skills/cloudflare/references/do-storage/README.md +79 -0
- package/skills/cloudflare/references/do-storage/api.md +107 -0
- package/skills/cloudflare/references/do-storage/configuration.md +114 -0
- package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
- package/skills/cloudflare/references/do-storage/patterns.md +210 -0
- package/skills/cloudflare/references/do-storage/testing.md +186 -0
- package/skills/cloudflare/references/durable-objects/README.md +194 -0
- package/skills/cloudflare/references/durable-objects/api.md +205 -0
- package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
- package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
- package/skills/cloudflare/references/email-routing/README.md +89 -0
- package/skills/cloudflare/references/email-routing/api.md +192 -0
- package/skills/cloudflare/references/email-routing/configuration.md +187 -0
- package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
- package/skills/cloudflare/references/email-routing/patterns.md +241 -0
- package/skills/cloudflare/references/email-workers/README.md +153 -0
- package/skills/cloudflare/references/email-workers/api.md +227 -0
- package/skills/cloudflare/references/email-workers/configuration.md +115 -0
- package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
- package/skills/cloudflare/references/email-workers/patterns.md +108 -0
- package/skills/cloudflare/references/graphql-api/README.md +147 -0
- package/skills/cloudflare/references/graphql-api/api.md +175 -0
- package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
- package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
- package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
- package/skills/cloudflare/references/hyperdrive/README.md +84 -0
- package/skills/cloudflare/references/hyperdrive/api.md +149 -0
- package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
- package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
- package/skills/cloudflare/references/images/README.md +65 -0
- package/skills/cloudflare/references/images/api.md +101 -0
- package/skills/cloudflare/references/images/configuration.md +206 -0
- package/skills/cloudflare/references/images/gotchas.md +106 -0
- package/skills/cloudflare/references/images/patterns.md +126 -0
- package/skills/cloudflare/references/kv/README.md +90 -0
- package/skills/cloudflare/references/kv/api.md +163 -0
- package/skills/cloudflare/references/kv/configuration.md +148 -0
- package/skills/cloudflare/references/kv/gotchas.md +133 -0
- package/skills/cloudflare/references/kv/patterns.md +195 -0
- package/skills/cloudflare/references/miniflare/README.md +113 -0
- package/skills/cloudflare/references/miniflare/api.md +204 -0
- package/skills/cloudflare/references/miniflare/configuration.md +174 -0
- package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
- package/skills/cloudflare/references/miniflare/patterns.md +187 -0
- package/skills/cloudflare/references/network-interconnect/README.md +104 -0
- package/skills/cloudflare/references/network-interconnect/api.md +220 -0
- package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
- package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
- package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
- package/skills/cloudflare/references/observability/README.md +93 -0
- package/skills/cloudflare/references/observability/api.md +168 -0
- package/skills/cloudflare/references/observability/configuration.md +178 -0
- package/skills/cloudflare/references/observability/gotchas.md +125 -0
- package/skills/cloudflare/references/observability/patterns.md +105 -0
- package/skills/cloudflare/references/pages/README.md +92 -0
- package/skills/cloudflare/references/pages/api.md +205 -0
- package/skills/cloudflare/references/pages/configuration.md +216 -0
- package/skills/cloudflare/references/pages/gotchas.md +218 -0
- package/skills/cloudflare/references/pages/patterns.md +215 -0
- package/skills/cloudflare/references/pages-functions/README.md +104 -0
- package/skills/cloudflare/references/pages-functions/api.md +159 -0
- package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
- package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
- package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
- package/skills/cloudflare/references/pipelines/README.md +109 -0
- package/skills/cloudflare/references/pipelines/api.md +214 -0
- package/skills/cloudflare/references/pipelines/configuration.md +98 -0
- package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
- package/skills/cloudflare/references/pipelines/patterns.md +87 -0
- package/skills/cloudflare/references/product-index.md +112 -0
- package/skills/cloudflare/references/pulumi/README.md +113 -0
- package/skills/cloudflare/references/pulumi/api.md +230 -0
- package/skills/cloudflare/references/pulumi/configuration.md +213 -0
- package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
- package/skills/cloudflare/references/pulumi/patterns.md +260 -0
- package/skills/cloudflare/references/queues/README.md +99 -0
- package/skills/cloudflare/references/queues/api.md +211 -0
- package/skills/cloudflare/references/queues/configuration.md +151 -0
- package/skills/cloudflare/references/queues/gotchas.md +210 -0
- package/skills/cloudflare/references/queues/patterns.md +220 -0
- package/skills/cloudflare/references/r2/README.md +97 -0
- package/skills/cloudflare/references/r2/api.md +235 -0
- package/skills/cloudflare/references/r2/configuration.md +176 -0
- package/skills/cloudflare/references/r2/gotchas.md +190 -0
- package/skills/cloudflare/references/r2/patterns.md +203 -0
- package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
- package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
- package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
- package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
- package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
- package/skills/cloudflare/references/r2-sql/README.md +138 -0
- package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
- package/skills/cloudflare/references/r2-sql/api.md +159 -0
- package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
- package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
- package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
- package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
- package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
- package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
- package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
- package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
- package/skills/cloudflare/references/realtimekit/README.md +118 -0
- package/skills/cloudflare/references/realtimekit/api.md +234 -0
- package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
- package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
- package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
- package/skills/cloudflare/references/sandbox/README.md +104 -0
- package/skills/cloudflare/references/sandbox/api.md +200 -0
- package/skills/cloudflare/references/sandbox/configuration.md +154 -0
- package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
- package/skills/cloudflare/references/sandbox/patterns.md +195 -0
- package/skills/cloudflare/references/secrets-store/README.md +77 -0
- package/skills/cloudflare/references/secrets-store/api.md +199 -0
- package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
- package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
- package/skills/cloudflare/references/smart-placement/README.md +143 -0
- package/skills/cloudflare/references/smart-placement/api.md +192 -0
- package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
- package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
- package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
- package/skills/cloudflare/references/snippets/README.md +74 -0
- package/skills/cloudflare/references/snippets/api.md +214 -0
- package/skills/cloudflare/references/snippets/configuration.md +239 -0
- package/skills/cloudflare/references/snippets/gotchas.md +104 -0
- package/skills/cloudflare/references/snippets/patterns.md +135 -0
- package/skills/cloudflare/references/spectrum/README.md +52 -0
- package/skills/cloudflare/references/spectrum/api.md +184 -0
- package/skills/cloudflare/references/spectrum/configuration.md +203 -0
- package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
- package/skills/cloudflare/references/spectrum/patterns.md +206 -0
- package/skills/cloudflare/references/static-assets/README.md +65 -0
- package/skills/cloudflare/references/static-assets/api.md +201 -0
- package/skills/cloudflare/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
- package/skills/cloudflare/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare/references/stream/README.md +123 -0
- package/skills/cloudflare/references/stream/api-live.md +202 -0
- package/skills/cloudflare/references/stream/api.md +206 -0
- package/skills/cloudflare/references/stream/configuration.md +151 -0
- package/skills/cloudflare/references/stream/gotchas.md +139 -0
- package/skills/cloudflare/references/stream/patterns.md +217 -0
- package/skills/cloudflare/references/tail-workers/README.md +92 -0
- package/skills/cloudflare/references/tail-workers/api.md +203 -0
- package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
- package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
- package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
- package/skills/cloudflare/references/terraform/README.md +100 -0
- package/skills/cloudflare/references/terraform/api.md +178 -0
- package/skills/cloudflare/references/terraform/configuration.md +197 -0
- package/skills/cloudflare/references/terraform/gotchas.md +150 -0
- package/skills/cloudflare/references/terraform/patterns.md +174 -0
- package/skills/cloudflare/references/tunnel/README.md +137 -0
- package/skills/cloudflare/references/tunnel/api.md +205 -0
- package/skills/cloudflare/references/tunnel/configuration.md +163 -0
- package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
- package/skills/cloudflare/references/tunnel/networking.md +174 -0
- package/skills/cloudflare/references/tunnel/patterns.md +199 -0
- package/skills/cloudflare/references/turn/README.md +86 -0
- package/skills/cloudflare/references/turn/api.md +236 -0
- package/skills/cloudflare/references/turn/configuration.md +181 -0
- package/skills/cloudflare/references/turn/gotchas.md +236 -0
- package/skills/cloudflare/references/turn/patterns.md +228 -0
- package/skills/cloudflare/references/turnstile/README.md +102 -0
- package/skills/cloudflare/references/turnstile/api.md +253 -0
- package/skills/cloudflare/references/turnstile/configuration.md +242 -0
- package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
- package/skills/cloudflare/references/turnstile/patterns.md +195 -0
- package/skills/cloudflare/references/vectorize/README.md +133 -0
- package/skills/cloudflare/references/vectorize/api.md +89 -0
- package/skills/cloudflare/references/vectorize/configuration.md +91 -0
- package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
- package/skills/cloudflare/references/vectorize/patterns.md +92 -0
- package/skills/cloudflare/references/waf/README.md +125 -0
- package/skills/cloudflare/references/waf/api.md +203 -0
- package/skills/cloudflare/references/waf/configuration.md +215 -0
- package/skills/cloudflare/references/waf/gotchas.md +208 -0
- package/skills/cloudflare/references/waf/patterns.md +236 -0
- package/skills/cloudflare/references/web-analytics/README.md +149 -0
- package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
- package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
- package/skills/cloudflare/references/web-analytics/integration.md +63 -0
- package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
- package/skills/cloudflare/references/workerd/README.md +85 -0
- package/skills/cloudflare/references/workerd/api.md +219 -0
- package/skills/cloudflare/references/workerd/configuration.md +200 -0
- package/skills/cloudflare/references/workerd/gotchas.md +151 -0
- package/skills/cloudflare/references/workerd/patterns.md +205 -0
- package/skills/cloudflare/references/workers/README.md +110 -0
- package/skills/cloudflare/references/workers/api.md +197 -0
- package/skills/cloudflare/references/workers/configuration.md +184 -0
- package/skills/cloudflare/references/workers/frameworks.md +200 -0
- package/skills/cloudflare/references/workers/gotchas.md +145 -0
- package/skills/cloudflare/references/workers/patterns.md +220 -0
- package/skills/cloudflare/references/workers-ai/README.md +206 -0
- package/skills/cloudflare/references/workers-ai/api.md +115 -0
- package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
- package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
- package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
- package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
- package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
- package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
- package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
- package/skills/cloudflare/references/workers-playground/README.md +131 -0
- package/skills/cloudflare/references/workers-playground/api.md +101 -0
- package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
- package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
- package/skills/cloudflare/references/workers-vpc/README.md +130 -0
- package/skills/cloudflare/references/workers-vpc/api.md +196 -0
- package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
- package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
- package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
- package/skills/cloudflare/references/workflows/README.md +72 -0
- package/skills/cloudflare/references/workflows/api.md +237 -0
- package/skills/cloudflare/references/workflows/configuration.md +158 -0
- package/skills/cloudflare/references/workflows/gotchas.md +97 -0
- package/skills/cloudflare/references/workflows/patterns.md +245 -0
- package/skills/cloudflare/references/wrangler/README.md +143 -0
- package/skills/cloudflare/references/wrangler/api.md +188 -0
- package/skills/cloudflare/references/wrangler/configuration.md +198 -0
- package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
- package/skills/cloudflare/references/wrangler/patterns.md +211 -0
- package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
- package/skills/cloudflare/references/zaraz/README.md +114 -0
- package/skills/cloudflare/references/zaraz/api.md +118 -0
- package/skills/cloudflare/references/zaraz/configuration.md +94 -0
- package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
- package/skills/cloudflare/references/zaraz/patterns.md +77 -0
- package/skills/docker/SKILL.md +7 -101
- package/skills/docker/references/advanced-examples.md +71 -0
- package/skills/docker/references/templates.md +34 -0
- package/skills/docs-marketer/SKILL.md +178 -0
- package/skills/docs-marketer/references/audit-categories.md +328 -0
- package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
- package/skills/docs-marketer/references/copilot-usage.md +16 -0
- package/skills/docs-marketer/references/feedback-loop.md +155 -0
- package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
- package/skills/drizzle-orm/SKILL.md +82 -0
- package/skills/durable-objects/SKILL.md +167 -0
- package/skills/durable-objects/references/advanced_features.md +29 -0
- package/skills/durable-objects/references/rules.md +300 -0
- package/skills/durable-objects/references/testing.md +261 -0
- package/skills/durable-objects/references/workers.md +336 -0
- package/skills/gcp/SKILL.md +37 -0
- package/skills/github-actions/SKILL.md +5 -58
- package/skills/github-actions/references/templates.md +65 -0
- package/skills/github-commander/SKILL.md +13 -21
- package/skills/github-commander/workflows/copilot-audit.md +12 -12
- package/skills/github-copilot-cli/SKILL.md +21 -26
- package/skills/github-repo-setup/SKILL.md +136 -0
- package/skills/github-repo-setup/references/community-standards.md +136 -0
- package/skills/github-repo-setup/references/github-automation.md +490 -0
- package/skills/github-repo-setup/references/inline-templates.md +205 -0
- package/skills/github-repo-setup/references/project-config.md +320 -0
- package/skills/gitlab/SKILL.md +7 -2
- package/skills/gitlab/package-lock.json +389 -389
- package/skills/golang/SKILL.md +8 -1
- package/skills/graphql/SKILL.md +30 -0
- package/skills/hono/SKILL.md +82 -0
- package/skills/journal-optimizer/SKILL.md +206 -0
- package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
- package/skills/llm-app-engineering/SKILL.md +18 -0
- package/skills/monorepo/SKILL.md +56 -0
- package/skills/multi-agent-orchestration/SKILL.md +14 -0
- package/skills/mysql/SKILL.md +6 -2
- package/skills/next-best-practices/SKILL.md +86 -0
- package/skills/next-best-practices/references/cache-components-examples.md +234 -0
- package/skills/next-best-practices/references/cache-components.md +210 -0
- package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
- package/skills/next-best-practices/references/upgrade.md +43 -0
- package/skills/next-cache-components/SKILL.md +441 -0
- package/skills/next-upgrade/SKILL.md +43 -0
- package/skills/next-upgrade/references/decision-tree.md +33 -0
- package/skills/nodejs/SKILL.md +46 -0
- package/skills/opentelemetry/SKILL.md +62 -0
- package/skills/package.json +39 -4
- package/skills/playwright-standard/SKILL.md +6 -11
- package/skills/playwright-standard/references/locators.md +7 -0
- package/skills/postgres/SKILL.md +6 -1
- package/skills/python/SKILL.md +8 -70
- package/skills/python/references/advanced-patterns.md +37 -0
- package/skills/python/references/config-templates.md +48 -0
- package/skills/rag-pipelines/SKILL.md +14 -0
- package/skills/redis/SKILL.md +31 -0
- package/skills/render/SKILL.md +35 -0
- package/skills/rust/SKILL.md +15 -25
- package/skills/rust/references/borrow-checker.md +13 -0
- package/skills/rust/references/ecosystem.md +11 -0
- package/skills/sandbox-sdk/SKILL.md +186 -0
- package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
- package/skills/sandbox-sdk/references/examples.md +52 -0
- package/skills/shadcn-ui/SKILL.md +22 -57
- package/skills/skill-builder/SKILL.md +23 -424
- package/skills/skill-builder/references/tutorial.md +457 -0
- package/skills/sqlite/SKILL.md +16 -5
- package/skills/table.md +59 -0
- package/skills/tailwind-css/SKILL.md +11 -60
- package/skills/tailwind-css/references/component-patterns.md +52 -0
- package/skills/trpc/SKILL.md +56 -0
- package/skills/typescript/SKILL.md +30 -433
- package/skills/typescript/references/tutorial.md +453 -0
- package/skills/vercel-ai-sdk/SKILL.md +48 -0
- package/skills/vitest-standard/SKILL.md +5 -11
- package/skills/vitest-standard/references/assertions.md +11 -0
- package/skills/web-perf/SKILL.md +207 -0
- package/skills/workers-best-practices/SKILL.md +120 -0
- package/skills/workers-best-practices/references/anti-patterns.md +18 -0
- package/skills/workers-best-practices/references/review.md +174 -0
- package/skills/workers-best-practices/references/rules.md +485 -0
- package/skills/wrangler/SKILL.md +43 -0
- package/skills/wrangler/references/cli-commands.md +861 -0
- package/skills/zod/SKILL.md +48 -0
- package/dist/tools-P4VGG4FH.js +0 -1
- package/skills/react-best-practices/AGENTS.md +0 -2883
- package/skills/react-best-practices/SKILL.md +0 -138
- /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Wrangler Programmatic API
|
|
2
|
+
|
|
3
|
+
Node.js APIs for testing and development.
|
|
4
|
+
|
|
5
|
+
## startWorker (Testing)
|
|
6
|
+
|
|
7
|
+
Starts Worker with real local bindings for integration tests. Stable API (replaces `unstable_startWorker`).
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import { startWorker } from 'wrangler'
|
|
11
|
+
import { describe, it, before, after } from 'node:test'
|
|
12
|
+
import assert from 'node:assert'
|
|
13
|
+
|
|
14
|
+
describe('worker', () => {
|
|
15
|
+
let worker
|
|
16
|
+
|
|
17
|
+
before(async () => {
|
|
18
|
+
worker = await startWorker({
|
|
19
|
+
config: 'wrangler.jsonc',
|
|
20
|
+
environment: 'development',
|
|
21
|
+
})
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
after(async () => {
|
|
25
|
+
await worker.dispose()
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
it('responds with 200', async () => {
|
|
29
|
+
const response = await worker.fetch('http://example.com')
|
|
30
|
+
assert.strictEqual(response.status, 200)
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Options
|
|
36
|
+
|
|
37
|
+
| Option | Type | Description |
|
|
38
|
+
| ------------- | ----------------------------- | -------------------------------------------------------------------------------------- |
|
|
39
|
+
| `config` | `string` | Path to wrangler.jsonc |
|
|
40
|
+
| `environment` | `string` | Environment name from config |
|
|
41
|
+
| `persist` | `boolean \| { path: string }` | Enable persistent state |
|
|
42
|
+
| `bundle` | `boolean` | Enable bundling (default: true) |
|
|
43
|
+
| `remote` | `false \| true \| "minimal"` | Remote mode: `false` (local), `true` (full remote), `"minimal"` (remote bindings only) |
|
|
44
|
+
|
|
45
|
+
### Remote Mode
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
// Local mode (default) - fast, simulated
|
|
49
|
+
const worker = await startWorker({ config: 'wrangler.jsonc' })
|
|
50
|
+
|
|
51
|
+
// Full remote mode - production-like, slower
|
|
52
|
+
const worker = await startWorker({
|
|
53
|
+
config: 'wrangler.jsonc',
|
|
54
|
+
remote: true,
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
// Minimal remote mode - remote bindings, local Worker
|
|
58
|
+
const worker = await startWorker({
|
|
59
|
+
config: 'wrangler.jsonc',
|
|
60
|
+
remote: 'minimal',
|
|
61
|
+
})
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## getPlatformProxy
|
|
65
|
+
|
|
66
|
+
Emulate bindings in Node.js without starting Worker.
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import { getPlatformProxy } from 'wrangler'
|
|
70
|
+
|
|
71
|
+
const { env, dispose, caches } = await getPlatformProxy<Env>({
|
|
72
|
+
configPath: 'wrangler.jsonc',
|
|
73
|
+
environment: 'production',
|
|
74
|
+
persist: { path: '.wrangler/state' },
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
// Use bindings
|
|
78
|
+
const value = await env.MY_KV.get('key')
|
|
79
|
+
await env.DB.prepare('SELECT * FROM users').all()
|
|
80
|
+
await env.ASSETS.put('file.txt', 'content')
|
|
81
|
+
|
|
82
|
+
// Platform APIs
|
|
83
|
+
await caches.default.put('https://example.com', new Response('cached'))
|
|
84
|
+
|
|
85
|
+
await dispose()
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Use for unit tests (test functions, not full Worker) or scripts that need bindings.
|
|
89
|
+
|
|
90
|
+
## Type Generation
|
|
91
|
+
|
|
92
|
+
Generate types from config: `wrangler types` → creates `worker-configuration.d.ts`
|
|
93
|
+
|
|
94
|
+
## Event System
|
|
95
|
+
|
|
96
|
+
Listen to Worker lifecycle events for advanced workflows.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
import { startWorker } from 'wrangler'
|
|
100
|
+
|
|
101
|
+
const worker = await startWorker({
|
|
102
|
+
config: 'wrangler.jsonc',
|
|
103
|
+
bundle: true,
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
// Bundle events
|
|
107
|
+
worker.on('bundleStart', (details) => {
|
|
108
|
+
console.log('Bundling started:', details.config)
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
worker.on('bundleComplete', (details) => {
|
|
112
|
+
console.log('Bundle ready:', details.duration)
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
// Reconfiguration events
|
|
116
|
+
worker.on('reloadStart', () => {
|
|
117
|
+
console.log('Worker reloading...')
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
worker.on('reloadComplete', () => {
|
|
121
|
+
console.log('Worker reloaded')
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
await worker.dispose()
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Dynamic Reconfiguration
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { startWorker } from 'wrangler'
|
|
131
|
+
|
|
132
|
+
const worker = await startWorker({ config: 'wrangler.jsonc' })
|
|
133
|
+
|
|
134
|
+
// Replace entire config
|
|
135
|
+
await worker.setConfig({
|
|
136
|
+
config: 'wrangler.staging.jsonc',
|
|
137
|
+
environment: 'staging',
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
// Patch specific fields
|
|
141
|
+
await worker.patchConfig({
|
|
142
|
+
vars: { DEBUG: 'true' },
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
await worker.dispose()
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## unstable_dev (Deprecated)
|
|
149
|
+
|
|
150
|
+
Use `startWorker` instead.
|
|
151
|
+
|
|
152
|
+
## Multi-Worker Registry
|
|
153
|
+
|
|
154
|
+
Test multiple Workers with service bindings.
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
import { startWorker } from 'wrangler'
|
|
158
|
+
|
|
159
|
+
const auth = await startWorker({ config: './auth/wrangler.jsonc' })
|
|
160
|
+
const api = await startWorker({
|
|
161
|
+
config: './api/wrangler.jsonc',
|
|
162
|
+
bindings: { AUTH: auth }, // Service binding
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
const response = await api.fetch('http://example.com/api/login')
|
|
166
|
+
// API Worker calls AUTH Worker via env.AUTH.fetch()
|
|
167
|
+
|
|
168
|
+
await api.dispose()
|
|
169
|
+
await auth.dispose()
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Best Practices
|
|
173
|
+
|
|
174
|
+
- Use `startWorker` for integration tests (tests full Worker)
|
|
175
|
+
- Use `getPlatformProxy` for unit tests (tests individual functions)
|
|
176
|
+
- Use `remote: true` when debugging production-specific issues
|
|
177
|
+
- Use `remote: "minimal"` for faster tests with real bindings
|
|
178
|
+
- Enable `persist: true` for debugging (state survives runs)
|
|
179
|
+
- Run `wrangler types` after config changes
|
|
180
|
+
- Always `dispose()` to prevent resource leaks
|
|
181
|
+
- Listen to bundle events for build monitoring
|
|
182
|
+
- Use multi-worker registry for testing service bindings
|
|
183
|
+
|
|
184
|
+
## See Also
|
|
185
|
+
|
|
186
|
+
- [README.md](./README.md) - CLI commands
|
|
187
|
+
- [configuration.md](./configuration.md) - Config
|
|
188
|
+
- [patterns.md](./patterns.md) - Testing patterns
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Wrangler Configuration
|
|
2
|
+
|
|
3
|
+
Configuration reference for wrangler.jsonc (recommended).
|
|
4
|
+
|
|
5
|
+
## Config Format
|
|
6
|
+
|
|
7
|
+
**wrangler.jsonc recommended** (v3.91.0+) - provides schema validation.
|
|
8
|
+
|
|
9
|
+
```jsonc
|
|
10
|
+
{
|
|
11
|
+
"$schema": "./node_modules/wrangler/config-schema.json",
|
|
12
|
+
"name": "my-worker",
|
|
13
|
+
"main": "src/index.ts",
|
|
14
|
+
"compatibility_date": "2025-01-01", // Use current date
|
|
15
|
+
"vars": { "API_KEY": "dev-key" },
|
|
16
|
+
"kv_namespaces": [{ "binding": "MY_KV", "id": "abc123" }],
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Field Inheritance
|
|
21
|
+
|
|
22
|
+
Inheritable: `name`, `main`, `compatibility_date`, `routes`, `triggers`
|
|
23
|
+
Non-inheritable (define per env): `vars`, bindings (KV, D1, R2, etc.)
|
|
24
|
+
|
|
25
|
+
## Environments
|
|
26
|
+
|
|
27
|
+
```jsonc
|
|
28
|
+
{
|
|
29
|
+
"name": "my-worker",
|
|
30
|
+
"vars": { "ENV": "dev" },
|
|
31
|
+
"env": {
|
|
32
|
+
"production": {
|
|
33
|
+
"name": "my-worker-prod",
|
|
34
|
+
"vars": { "ENV": "prod" },
|
|
35
|
+
"route": { "pattern": "example.com/*", "zone_name": "example.com" },
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Deploy: `wrangler deploy --env production`
|
|
42
|
+
|
|
43
|
+
## Routing
|
|
44
|
+
|
|
45
|
+
```jsonc
|
|
46
|
+
// Custom domain (recommended)
|
|
47
|
+
{ "routes": [{ "pattern": "api.example.com", "custom_domain": true }] }
|
|
48
|
+
|
|
49
|
+
// Zone-based
|
|
50
|
+
{ "routes": [{ "pattern": "api.example.com/*", "zone_name": "example.com" }] }
|
|
51
|
+
|
|
52
|
+
// workers.dev
|
|
53
|
+
{ "workers_dev": true }
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Bindings
|
|
57
|
+
|
|
58
|
+
```jsonc
|
|
59
|
+
// Variables
|
|
60
|
+
{ "vars": { "API_URL": "https://api.example.com" } }
|
|
61
|
+
|
|
62
|
+
// KV
|
|
63
|
+
{ "kv_namespaces": [{ "binding": "CACHE", "id": "abc123" }] }
|
|
64
|
+
|
|
65
|
+
// D1
|
|
66
|
+
{ "d1_databases": [{ "binding": "DB", "database_id": "abc-123" }] }
|
|
67
|
+
|
|
68
|
+
// R2
|
|
69
|
+
{ "r2_buckets": [{ "binding": "ASSETS", "bucket_name": "my-assets" }] }
|
|
70
|
+
|
|
71
|
+
// Durable Objects
|
|
72
|
+
{ "durable_objects": {
|
|
73
|
+
"bindings": [{
|
|
74
|
+
"name": "COUNTER",
|
|
75
|
+
"class_name": "Counter",
|
|
76
|
+
"script_name": "my-worker" // Required for external DOs
|
|
77
|
+
}]
|
|
78
|
+
} }
|
|
79
|
+
{ "migrations": [{ "tag": "v1", "new_sqlite_classes": ["Counter"] }] }
|
|
80
|
+
|
|
81
|
+
// Service Bindings
|
|
82
|
+
{ "services": [{ "binding": "AUTH", "service": "auth-worker" }] }
|
|
83
|
+
|
|
84
|
+
// Queues
|
|
85
|
+
{ "queues": {
|
|
86
|
+
"producers": [{ "binding": "TASKS", "queue": "task-queue" }],
|
|
87
|
+
"consumers": [{ "queue": "task-queue", "max_batch_size": 10 }]
|
|
88
|
+
} }
|
|
89
|
+
|
|
90
|
+
// Vectorize
|
|
91
|
+
{ "vectorize": [{ "binding": "VECTORS", "index_name": "embeddings" }] }
|
|
92
|
+
|
|
93
|
+
// Hyperdrive (requires nodejs_compat_v2 for pg/postgres)
|
|
94
|
+
{ "hyperdrive": [{ "binding": "HYPERDRIVE", "id": "hyper-id" }] }
|
|
95
|
+
{ "compatibility_flags": ["nodejs_compat_v2"] } // For pg/postgres
|
|
96
|
+
|
|
97
|
+
// Workers AI
|
|
98
|
+
{ "ai": { "binding": "AI" } }
|
|
99
|
+
|
|
100
|
+
// Workflows
|
|
101
|
+
{ "workflows": [{ "binding": "WORKFLOW", "name": "my-workflow", "class_name": "MyWorkflow" }] }
|
|
102
|
+
|
|
103
|
+
// Secrets Store (centralized secrets)
|
|
104
|
+
{ "secrets_store": [{ "binding": "SECRETS", "id": "store-id" }] }
|
|
105
|
+
|
|
106
|
+
// Constellation (AI inference)
|
|
107
|
+
{ "constellation": [{ "binding": "MODEL", "project_id": "proj-id" }] }
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Workers Assets (Static Files)
|
|
111
|
+
|
|
112
|
+
Recommended for serving static files (replaces old `site` config).
|
|
113
|
+
|
|
114
|
+
```jsonc
|
|
115
|
+
{
|
|
116
|
+
"assets": {
|
|
117
|
+
"directory": "./public",
|
|
118
|
+
"binding": "ASSETS",
|
|
119
|
+
"html_handling": "auto-trailing-slash", // or "none", "force-trailing-slash"
|
|
120
|
+
"not_found_handling": "single-page-application", // or "404-page", "none"
|
|
121
|
+
},
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Access in Worker:
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
export default {
|
|
129
|
+
async fetch(request, env) {
|
|
130
|
+
// Try serving static asset first
|
|
131
|
+
const asset = await env.ASSETS.fetch(request)
|
|
132
|
+
if (asset.status !== 404) return asset
|
|
133
|
+
|
|
134
|
+
// Custom logic for non-assets
|
|
135
|
+
return new Response('API response')
|
|
136
|
+
},
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Placement
|
|
141
|
+
|
|
142
|
+
Control where Workers run geographically.
|
|
143
|
+
|
|
144
|
+
```jsonc
|
|
145
|
+
{
|
|
146
|
+
"placement": {
|
|
147
|
+
"mode": "smart", // or "off"
|
|
148
|
+
},
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
- `"smart"`: Run Worker near data sources (D1, Durable Objects) to reduce latency
|
|
153
|
+
- `"off"`: Default distribution (run everywhere)
|
|
154
|
+
|
|
155
|
+
## Auto-Provisioning (Beta)
|
|
156
|
+
|
|
157
|
+
Omit resource IDs - Wrangler creates them and writes back to config on deploy.
|
|
158
|
+
|
|
159
|
+
```jsonc
|
|
160
|
+
{ "kv_namespaces": [{ "binding": "MY_KV" }] } // No id - auto-provisioned
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
After deploy, ID is added to config automatically.
|
|
164
|
+
|
|
165
|
+
## Advanced
|
|
166
|
+
|
|
167
|
+
```jsonc
|
|
168
|
+
// Cron Triggers
|
|
169
|
+
{ "triggers": { "crons": ["0 0 * * *"] } }
|
|
170
|
+
|
|
171
|
+
// Observability (tracing)
|
|
172
|
+
{ "observability": { "enabled": true, "head_sampling_rate": 0.1 } }
|
|
173
|
+
|
|
174
|
+
// Runtime Limits
|
|
175
|
+
{ "limits": { "cpu_ms": 100 } }
|
|
176
|
+
|
|
177
|
+
// Browser Rendering
|
|
178
|
+
{ "browser": { "binding": "BROWSER" } }
|
|
179
|
+
|
|
180
|
+
// mTLS Certificates
|
|
181
|
+
{ "mtls_certificates": [{ "binding": "CERT", "certificate_id": "cert-uuid" }] }
|
|
182
|
+
|
|
183
|
+
// Logpush (stream logs to R2/S3)
|
|
184
|
+
{ "logpush": true }
|
|
185
|
+
|
|
186
|
+
// Tail Consumers (process logs with another Worker)
|
|
187
|
+
{ "tail_consumers": [{ "service": "log-worker" }] }
|
|
188
|
+
|
|
189
|
+
// Unsafe bindings (access to arbitrary bindings)
|
|
190
|
+
{ "unsafe": { "bindings": [{ "name": "MY_BINDING", "type": "plain_text", "text": "value" }] } }
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## See Also
|
|
194
|
+
|
|
195
|
+
- [README.md](./README.md) - Overview and commands
|
|
196
|
+
- [api.md](./api.md) - Programmatic API
|
|
197
|
+
- [patterns.md](./patterns.md) - Workflows
|
|
198
|
+
- [gotchas.md](./gotchas.md) - Common issues
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Wrangler Common Issues
|
|
2
|
+
|
|
3
|
+
## Common Errors
|
|
4
|
+
|
|
5
|
+
### "Binding ID vs name mismatch"
|
|
6
|
+
|
|
7
|
+
**Cause:** Confusion between binding name (code) and resource ID
|
|
8
|
+
**Solution:** Bindings use `binding` (code name) and `id`/`database_id`/`bucket_name` (resource ID). Preview bindings need separate IDs: `preview_id`, `preview_database_id`
|
|
9
|
+
|
|
10
|
+
### "Environment not inheriting config"
|
|
11
|
+
|
|
12
|
+
**Cause:** Non-inheritable keys not redefined per environment
|
|
13
|
+
**Solution:** Non-inheritable keys (bindings, vars) must be redefined per environment. Inheritable keys (routes, compatibility_date) can be overridden
|
|
14
|
+
|
|
15
|
+
### "Local dev behavior differs from production"
|
|
16
|
+
|
|
17
|
+
**Cause:** Using local simulation instead of remote execution
|
|
18
|
+
**Solution:** Choose appropriate remote mode:
|
|
19
|
+
|
|
20
|
+
- `wrangler dev` (default): Local simulation, fast, limited accuracy
|
|
21
|
+
- `wrangler dev --remote`: Full remote execution, production-accurate, slower
|
|
22
|
+
- Use `remote: "minimal"` in tests for fast tests with real remote bindings
|
|
23
|
+
|
|
24
|
+
### "startWorker doesn't match production"
|
|
25
|
+
|
|
26
|
+
**Cause:** Using local mode when remote resources needed
|
|
27
|
+
**Solution:** Use `remote` option:
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
const worker = await startWorker({
|
|
31
|
+
config: 'wrangler.jsonc',
|
|
32
|
+
remote: true, // or "minimal" for faster tests
|
|
33
|
+
})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### "Unexpected runtime changes"
|
|
37
|
+
|
|
38
|
+
**Cause:** Missing compatibility_date
|
|
39
|
+
**Solution:** Always set `compatibility_date`:
|
|
40
|
+
|
|
41
|
+
```jsonc
|
|
42
|
+
{ "compatibility_date": "2025-01-01" }
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### "Durable Object binding not working"
|
|
46
|
+
|
|
47
|
+
**Cause:** Missing script_name for external DOs
|
|
48
|
+
**Solution:** Always specify `script_name` for external Durable Objects:
|
|
49
|
+
|
|
50
|
+
```jsonc
|
|
51
|
+
{
|
|
52
|
+
"durable_objects": {
|
|
53
|
+
"bindings": [{ "name": "MY_DO", "class_name": "MyDO", "script_name": "my-worker" }],
|
|
54
|
+
},
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
For local DOs in same Worker, `script_name` is optional.
|
|
59
|
+
|
|
60
|
+
### "Auto-provisioned resources not appearing"
|
|
61
|
+
|
|
62
|
+
**Cause:** IDs written back to config on first deploy, but config not reloaded
|
|
63
|
+
**Solution:** After first deploy with auto-provisioning, config file is updated with IDs. Commit the updated config. On subsequent deploys, existing resources are reused.
|
|
64
|
+
|
|
65
|
+
### "Secrets not available in local dev"
|
|
66
|
+
|
|
67
|
+
**Cause:** Secrets set with `wrangler secret put` only work in deployed Workers
|
|
68
|
+
**Solution:** For local dev, use `.dev.vars`
|
|
69
|
+
|
|
70
|
+
### "Node.js compatibility error"
|
|
71
|
+
|
|
72
|
+
**Cause:** Missing Node.js compatibility flag
|
|
73
|
+
**Solution:** Some bindings (Hyperdrive with `pg`) require:
|
|
74
|
+
|
|
75
|
+
```jsonc
|
|
76
|
+
{ "compatibility_flags": ["nodejs_compat_v2"] }
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### "Workers Assets 404 errors"
|
|
80
|
+
|
|
81
|
+
**Cause:** Asset path mismatch or incorrect `html_handling`
|
|
82
|
+
**Solution:**
|
|
83
|
+
|
|
84
|
+
- Check `assets.directory` points to correct build output
|
|
85
|
+
- Set `html_handling: "auto-trailing-slash"` for SPAs
|
|
86
|
+
- Use `not_found_handling: "single-page-application"` to serve index.html for 404s
|
|
87
|
+
|
|
88
|
+
```jsonc
|
|
89
|
+
{
|
|
90
|
+
"assets": {
|
|
91
|
+
"directory": "./dist",
|
|
92
|
+
"html_handling": "auto-trailing-slash",
|
|
93
|
+
"not_found_handling": "single-page-application",
|
|
94
|
+
},
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### "Placement not reducing latency"
|
|
99
|
+
|
|
100
|
+
**Cause:** Misunderstanding of Smart Placement
|
|
101
|
+
**Solution:** Smart Placement only helps when Worker accesses D1 or Durable Objects. It doesn't affect KV, R2, or external API latency.
|
|
102
|
+
|
|
103
|
+
```jsonc
|
|
104
|
+
{ "placement": { "mode": "smart" } } // Only beneficial with D1/DOs
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### "unstable_startWorker not found"
|
|
108
|
+
|
|
109
|
+
**Cause:** Using outdated API
|
|
110
|
+
**Solution:** Use stable `startWorker` instead:
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
import { startWorker } from 'wrangler' // Not unstable_startWorker
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### "outboundService not mocking fetch"
|
|
117
|
+
|
|
118
|
+
**Cause:** Mock function not returning Response
|
|
119
|
+
**Solution:** Always return Response, use `fetch(req)` for passthrough:
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
const worker = await startWorker({
|
|
123
|
+
outboundService: (req) => {
|
|
124
|
+
if (shouldMock(req)) {
|
|
125
|
+
return new Response('mocked')
|
|
126
|
+
}
|
|
127
|
+
return fetch(req) // Required for non-mocked requests
|
|
128
|
+
},
|
|
129
|
+
})
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Limits
|
|
133
|
+
|
|
134
|
+
| Resource/Limit | Value | Notes |
|
|
135
|
+
| ------------------------ | --------- | ---------------------- |
|
|
136
|
+
| Bindings per Worker | 64 | Total across all types |
|
|
137
|
+
| Environments | Unlimited | Named envs in config |
|
|
138
|
+
| Config file size | ~1MB | Keep reasonable |
|
|
139
|
+
| Workers Assets size | 25 MB | Per deployment |
|
|
140
|
+
| Workers Assets files | 20,000 | Max number of files |
|
|
141
|
+
| Script size (compressed) | 1 MB | Free, 10 MB paid |
|
|
142
|
+
| CPU time | 10-50ms | Free, 50-500ms paid |
|
|
143
|
+
| Subrequest limit | 50 | Free, 10,000 paid |
|
|
144
|
+
|
|
145
|
+
## Troubleshooting
|
|
146
|
+
|
|
147
|
+
### Authentication Issues
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
wrangler logout
|
|
151
|
+
wrangler login
|
|
152
|
+
wrangler whoami
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Configuration Errors
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
wrangler check # Validate config
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Use wrangler.jsonc with `$schema` for validation.
|
|
162
|
+
|
|
163
|
+
### Binding Not Available
|
|
164
|
+
|
|
165
|
+
- Check binding exists in config
|
|
166
|
+
- For environments, ensure binding defined for that env
|
|
167
|
+
- Local dev: some bindings need `--remote`
|
|
168
|
+
|
|
169
|
+
### Deployment Failures
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
wrangler tail # Check logs
|
|
173
|
+
wrangler deploy --dry-run # Validate
|
|
174
|
+
wrangler whoami # Check account limits
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Local Development Issues
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
rm -rf .wrangler/state # Clear local state
|
|
181
|
+
wrangler dev --remote # Use remote bindings
|
|
182
|
+
wrangler dev --persist-to ./local-state # Custom persist location
|
|
183
|
+
wrangler dev --inspector-port 9229 # Enable debugging
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Testing Issues
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# If tests hang, ensure dispose() is called
|
|
190
|
+
worker.dispose() // Always cleanup
|
|
191
|
+
|
|
192
|
+
# If bindings don't work in tests
|
|
193
|
+
const worker = await startWorker({
|
|
194
|
+
config: "wrangler.jsonc",
|
|
195
|
+
remote: "minimal" // Use remote bindings
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Resources
|
|
200
|
+
|
|
201
|
+
- Docs: https://developers.cloudflare.com/workers/wrangler/
|
|
202
|
+
- Config: https://developers.cloudflare.com/workers/wrangler/configuration/
|
|
203
|
+
- Commands: https://developers.cloudflare.com/workers/wrangler/commands/
|
|
204
|
+
- Examples: https://github.com/cloudflare/workers-sdk/tree/main/templates
|
|
205
|
+
- Discord: https://discord.gg/cloudflaredev
|
|
206
|
+
|
|
207
|
+
## See Also
|
|
208
|
+
|
|
209
|
+
- [README.md](./README.md) - Commands
|
|
210
|
+
- [configuration.md](./configuration.md) - Config
|
|
211
|
+
- [api.md](./api.md) - Programmatic API
|
|
212
|
+
- [patterns.md](./patterns.md) - Workflows
|