@mohanscodex/spectra-code 0.4.8 → 0.5.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 +42 -2
- package/dist/package.json +8 -5
- package/dist/src/agents/definitions/build.d.ts +3 -0
- package/dist/src/agents/definitions/build.d.ts.map +1 -0
- package/dist/src/agents/definitions/build.js +51 -0
- package/dist/src/agents/definitions/build.js.map +1 -0
- package/dist/src/agents/definitions/debug.d.ts +3 -0
- package/dist/src/agents/definitions/debug.d.ts.map +1 -0
- package/dist/src/agents/definitions/debug.js +45 -0
- package/dist/src/agents/definitions/debug.js.map +1 -0
- package/dist/src/agents/definitions/explore.d.ts +3 -0
- package/dist/src/agents/definitions/explore.d.ts.map +1 -0
- package/dist/src/agents/definitions/explore.js +34 -0
- package/dist/src/agents/definitions/explore.js.map +1 -0
- package/dist/src/agents/definitions/index.d.ts +5 -0
- package/dist/src/agents/definitions/index.d.ts.map +1 -0
- package/dist/src/agents/definitions/index.js +19 -0
- package/dist/src/agents/definitions/index.js.map +1 -0
- package/dist/src/agents/definitions/plan.d.ts +3 -0
- package/dist/src/agents/definitions/plan.d.ts.map +1 -0
- package/dist/src/agents/definitions/plan.js +44 -0
- package/dist/src/agents/definitions/plan.js.map +1 -0
- package/dist/src/agents/definitions/title.d.ts +3 -0
- package/dist/src/agents/definitions/title.d.ts.map +1 -0
- package/dist/src/agents/definitions/title.js +34 -0
- package/dist/src/agents/definitions/title.js.map +1 -0
- package/dist/src/agents/index.d.ts +6 -0
- package/dist/src/agents/index.d.ts.map +1 -0
- package/dist/src/agents/index.js +10 -0
- package/dist/src/agents/index.js.map +1 -0
- package/dist/src/agents/types.d.ts +15 -0
- package/dist/src/agents/types.d.ts.map +1 -0
- package/dist/src/agents/types.js +2 -0
- package/dist/src/agents/types.js.map +1 -0
- package/dist/src/cli.js +2 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/session.js +1 -1
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/integrations/acp/server.js +1 -1
- package/dist/src/integrations/acp/server.js.map +1 -1
- package/dist/src/services/prompt-history.d.ts +32 -0
- package/dist/src/services/prompt-history.d.ts.map +1 -0
- package/dist/src/services/prompt-history.js +144 -0
- package/dist/src/services/prompt-history.js.map +1 -0
- package/dist/src/services/snapshot-manager.d.ts +32 -32
- package/dist/src/services/snapshot-manager.d.ts.map +1 -1
- package/dist/src/services/snapshot-manager.js +308 -155
- package/dist/src/services/snapshot-manager.js.map +1 -1
- package/dist/src/tools/edit.d.ts.map +1 -1
- package/dist/src/tools/edit.js +5 -22
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.d.ts.map +1 -1
- package/dist/src/tools/glob.js +2 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.js +2 -2
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/index.d.ts +5 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +30 -1
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/task.js +1 -1
- package/dist/src/tools/task.js.map +1 -1
- package/dist/src/tools/write.d.ts.map +1 -1
- package/dist/src/tools/write.js +7 -4
- package/dist/src/tools/write.js.map +1 -1
- package/dist/src/tui/app-constants.js +1 -1
- package/dist/src/tui/app-constants.js.map +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +35 -15
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/commands.d.ts +15 -0
- package/dist/src/tui/commands.d.ts.map +1 -1
- package/dist/src/tui/commands.js +252 -1
- package/dist/src/tui/commands.js.map +1 -1
- package/dist/src/tui/components/chat-area.d.ts.map +1 -1
- package/dist/src/tui/components/chat-area.js +1 -1
- package/dist/src/tui/components/chat-area.js.map +1 -1
- package/dist/src/tui/components/message.d.ts.map +1 -1
- package/dist/src/tui/components/message.js +79 -4
- package/dist/src/tui/components/message.js.map +1 -1
- package/dist/src/tui/hooks/use-agent.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-agent.js +17 -4
- package/dist/src/tui/hooks/use-agent.js.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.d.ts +4 -5
- package/dist/src/tui/hooks/use-app-keyboard.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.js +23 -24
- package/dist/src/tui/hooks/use-app-keyboard.js.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.d.ts +2 -2
- package/dist/src/tui/hooks/use-chat-submit.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.js +143 -20
- package/dist/src/tui/hooks/use-chat-submit.js.map +1 -1
- package/dist/src/tui/hooks/use-revert.d.ts +3 -5
- package/dist/src/tui/hooks/use-revert.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-revert.js +83 -34
- package/dist/src/tui/hooks/use-revert.js.map +1 -1
- package/dist/src/tui/hooks/use-title-agent.d.ts +13 -0
- package/dist/src/tui/hooks/use-title-agent.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-title-agent.js +50 -0
- package/dist/src/tui/hooks/use-title-agent.js.map +1 -0
- package/dist/src/tui/prompt-bar.d.ts.map +1 -1
- package/dist/src/tui/prompt-bar.js +27 -33
- package/dist/src/tui/prompt-bar.js.map +1 -1
- package/dist/src/tui/theme.d.ts +2 -0
- package/dist/src/tui/theme.d.ts.map +1 -1
- package/dist/src/tui/theme.js +2 -0
- package/dist/src/tui/theme.js.map +1 -1
- package/dist/src/tui/types.d.ts +5 -0
- package/dist/src/tui/types.d.ts.map +1 -1
- package/dist/src/tui/ui/agent-switcher.js +1 -1
- package/dist/src/tui/ui/agent-switcher.js.map +1 -1
- package/dist/src/tui/ui/cost-dialog.d.ts +14 -0
- package/dist/src/tui/ui/cost-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/cost-dialog.js +28 -0
- package/dist/src/tui/ui/cost-dialog.js.map +1 -0
- package/dist/src/tui/ui/debug-dialog.js +1 -1
- package/dist/src/tui/ui/debug-dialog.js.map +1 -1
- package/dist/src/tui/ui/session-list.js +1 -1
- package/dist/src/tui/ui/session-list.js.map +1 -1
- package/dist/src/tui/utils/terminal-title.d.ts +3 -0
- package/dist/src/tui/utils/terminal-title.d.ts.map +1 -0
- package/dist/src/tui/utils/terminal-title.js +14 -0
- package/dist/src/tui/utils/terminal-title.js.map +1 -0
- package/dist/src/tui/utils/version.d.ts +1 -1
- package/dist/src/tui/utils/version.d.ts.map +1 -1
- package/dist/src/tui/utils/version.js +4 -22
- package/dist/src/tui/utils/version.js.map +1 -1
- package/dist/src/utils/paths.d.ts +1 -0
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +13 -0
- package/dist/src/utils/paths.js.map +1 -1
- package/package.json +9 -6
- package/skills/REQUESTS.md +36 -0
- package/skills/architecture/ABOUT.md +20 -0
- package/skills/architecture/preserving-productive-tensions/SKILL.md +152 -0
- package/skills/aspnet-core/LICENSE.txt +202 -0
- package/skills/aspnet-core/SKILL.md +61 -0
- package/skills/aspnet-core/agents/openai.yaml +5 -0
- package/skills/aspnet-core/assets/dotnet-logo.png +0 -0
- package/skills/aspnet-core/references/_sections.md +40 -0
- package/skills/aspnet-core/references/apis-minimal-and-controllers.md +81 -0
- package/skills/aspnet-core/references/data-state-and-services.md +69 -0
- package/skills/aspnet-core/references/program-and-pipeline.md +103 -0
- package/skills/aspnet-core/references/realtime-grpc-and-background-work.md +58 -0
- package/skills/aspnet-core/references/security-and-identity.md +75 -0
- package/skills/aspnet-core/references/source-map.md +43 -0
- package/skills/aspnet-core/references/stack-selection.md +63 -0
- package/skills/aspnet-core/references/testing-performance-and-operations.md +92 -0
- package/skills/aspnet-core/references/ui-blazor.md +53 -0
- package/skills/aspnet-core/references/ui-mvc.md +56 -0
- package/skills/aspnet-core/references/ui-razor-pages.md +55 -0
- package/skills/aspnet-core/references/versioning-and-upgrades.md +51 -0
- package/skills/chatgpt-apps/LICENSE.txt +201 -0
- package/skills/chatgpt-apps/SKILL.md +320 -0
- package/skills/chatgpt-apps/agents/openai.yaml +13 -0
- package/skills/chatgpt-apps/references/app-archetypes.md +132 -0
- package/skills/chatgpt-apps/references/apps-sdk-docs-workflow.md +135 -0
- package/skills/chatgpt-apps/references/interactive-state-sync-patterns.md +113 -0
- package/skills/chatgpt-apps/references/repo-contract-and-validation.md +93 -0
- package/skills/chatgpt-apps/references/search-fetch-standard.md +67 -0
- package/skills/chatgpt-apps/references/upstream-example-workflow.md +79 -0
- package/skills/chatgpt-apps/references/window-openai-patterns.md +70 -0
- package/skills/chatgpt-apps/scripts/scaffold_node_ext_apps.mjs +606 -0
- package/skills/cloudflare-deploy/LICENSE.txt +201 -0
- package/skills/cloudflare-deploy/SKILL.md +224 -0
- package/skills/cloudflare-deploy/agents/openai.yaml +6 -0
- package/skills/cloudflare-deploy/assets/cloudflare-small.svg +3 -0
- package/skills/cloudflare-deploy/assets/cloudflare.png +0 -0
- package/skills/cloudflare-deploy/references/agents-sdk/README.md +89 -0
- package/skills/cloudflare-deploy/references/agents-sdk/api.md +190 -0
- package/skills/cloudflare-deploy/references/agents-sdk/configuration.md +182 -0
- package/skills/cloudflare-deploy/references/agents-sdk/gotchas.md +158 -0
- package/skills/cloudflare-deploy/references/agents-sdk/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/ai-gateway/README.md +175 -0
- package/skills/cloudflare-deploy/references/ai-gateway/configuration.md +111 -0
- package/skills/cloudflare-deploy/references/ai-gateway/dynamic-routing.md +82 -0
- package/skills/cloudflare-deploy/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare-deploy/references/ai-gateway/sdk-integration.md +114 -0
- package/skills/cloudflare-deploy/references/ai-gateway/troubleshooting.md +88 -0
- package/skills/cloudflare-deploy/references/ai-search/README.md +138 -0
- package/skills/cloudflare-deploy/references/ai-search/api.md +87 -0
- package/skills/cloudflare-deploy/references/ai-search/configuration.md +88 -0
- package/skills/cloudflare-deploy/references/ai-search/gotchas.md +81 -0
- package/skills/cloudflare-deploy/references/ai-search/patterns.md +85 -0
- package/skills/cloudflare-deploy/references/analytics-engine/README.md +92 -0
- package/skills/cloudflare-deploy/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare-deploy/references/analytics-engine/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/analytics-engine/gotchas.md +85 -0
- package/skills/cloudflare-deploy/references/analytics-engine/patterns.md +83 -0
- package/skills/cloudflare-deploy/references/api/README.md +65 -0
- package/skills/cloudflare-deploy/references/api/api.md +204 -0
- package/skills/cloudflare-deploy/references/api/configuration.md +160 -0
- package/skills/cloudflare-deploy/references/api/gotchas.md +225 -0
- package/skills/cloudflare-deploy/references/api/patterns.md +204 -0
- package/skills/cloudflare-deploy/references/api-shield/README.md +44 -0
- package/skills/cloudflare-deploy/references/api-shield/api.md +141 -0
- package/skills/cloudflare-deploy/references/api-shield/configuration.md +192 -0
- package/skills/cloudflare-deploy/references/api-shield/gotchas.md +125 -0
- package/skills/cloudflare-deploy/references/api-shield/patterns.md +180 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/README.md +90 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/api.md +240 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/gotchas.md +111 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/patterns.md +104 -0
- package/skills/cloudflare-deploy/references/bindings/README.md +122 -0
- package/skills/cloudflare-deploy/references/bindings/api.md +203 -0
- package/skills/cloudflare-deploy/references/bindings/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/bindings/gotchas.md +208 -0
- package/skills/cloudflare-deploy/references/bindings/patterns.md +200 -0
- package/skills/cloudflare-deploy/references/bot-management/README.md +94 -0
- package/skills/cloudflare-deploy/references/bot-management/api.md +169 -0
- package/skills/cloudflare-deploy/references/bot-management/configuration.md +163 -0
- package/skills/cloudflare-deploy/references/bot-management/gotchas.md +114 -0
- package/skills/cloudflare-deploy/references/bot-management/patterns.md +182 -0
- package/skills/cloudflare-deploy/references/browser-rendering/README.md +78 -0
- package/skills/cloudflare-deploy/references/browser-rendering/api.md +108 -0
- package/skills/cloudflare-deploy/references/browser-rendering/configuration.md +78 -0
- package/skills/cloudflare-deploy/references/browser-rendering/gotchas.md +88 -0
- package/skills/cloudflare-deploy/references/browser-rendering/patterns.md +91 -0
- package/skills/cloudflare-deploy/references/c3/README.md +111 -0
- package/skills/cloudflare-deploy/references/c3/api.md +71 -0
- package/skills/cloudflare-deploy/references/c3/configuration.md +81 -0
- package/skills/cloudflare-deploy/references/c3/gotchas.md +92 -0
- package/skills/cloudflare-deploy/references/c3/patterns.md +82 -0
- package/skills/cloudflare-deploy/references/cache-reserve/README.md +147 -0
- package/skills/cloudflare-deploy/references/cache-reserve/api.md +194 -0
- package/skills/cloudflare-deploy/references/cache-reserve/configuration.md +169 -0
- package/skills/cloudflare-deploy/references/cache-reserve/gotchas.md +132 -0
- package/skills/cloudflare-deploy/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare-deploy/references/containers/README.md +85 -0
- package/skills/cloudflare-deploy/references/containers/api.md +187 -0
- package/skills/cloudflare-deploy/references/containers/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/containers/gotchas.md +178 -0
- package/skills/cloudflare-deploy/references/containers/patterns.md +202 -0
- package/skills/cloudflare-deploy/references/cron-triggers/README.md +99 -0
- package/skills/cloudflare-deploy/references/cron-triggers/api.md +196 -0
- package/skills/cloudflare-deploy/references/cron-triggers/configuration.md +180 -0
- package/skills/cloudflare-deploy/references/cron-triggers/gotchas.md +199 -0
- package/skills/cloudflare-deploy/references/cron-triggers/patterns.md +190 -0
- package/skills/cloudflare-deploy/references/d1/README.md +133 -0
- package/skills/cloudflare-deploy/references/d1/api.md +196 -0
- package/skills/cloudflare-deploy/references/d1/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/d1/gotchas.md +98 -0
- package/skills/cloudflare-deploy/references/d1/patterns.md +189 -0
- package/skills/cloudflare-deploy/references/ddos/README.md +41 -0
- package/skills/cloudflare-deploy/references/ddos/api.md +164 -0
- package/skills/cloudflare-deploy/references/ddos/configuration.md +93 -0
- package/skills/cloudflare-deploy/references/ddos/gotchas.md +107 -0
- package/skills/cloudflare-deploy/references/ddos/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/do-storage/README.md +75 -0
- package/skills/cloudflare-deploy/references/do-storage/api.md +102 -0
- package/skills/cloudflare-deploy/references/do-storage/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/do-storage/gotchas.md +150 -0
- package/skills/cloudflare-deploy/references/do-storage/patterns.md +182 -0
- package/skills/cloudflare-deploy/references/do-storage/testing.md +183 -0
- package/skills/cloudflare-deploy/references/durable-objects/README.md +185 -0
- package/skills/cloudflare-deploy/references/durable-objects/api.md +187 -0
- package/skills/cloudflare-deploy/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare-deploy/references/durable-objects/gotchas.md +197 -0
- package/skills/cloudflare-deploy/references/durable-objects/patterns.md +201 -0
- package/skills/cloudflare-deploy/references/email-routing/README.md +89 -0
- package/skills/cloudflare-deploy/references/email-routing/api.md +195 -0
- package/skills/cloudflare-deploy/references/email-routing/configuration.md +186 -0
- package/skills/cloudflare-deploy/references/email-routing/gotchas.md +196 -0
- package/skills/cloudflare-deploy/references/email-routing/patterns.md +229 -0
- package/skills/cloudflare-deploy/references/email-workers/README.md +151 -0
- package/skills/cloudflare-deploy/references/email-workers/api.md +237 -0
- package/skills/cloudflare-deploy/references/email-workers/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/email-workers/gotchas.md +125 -0
- package/skills/cloudflare-deploy/references/email-workers/patterns.md +102 -0
- package/skills/cloudflare-deploy/references/hyperdrive/README.md +82 -0
- package/skills/cloudflare-deploy/references/hyperdrive/api.md +143 -0
- package/skills/cloudflare-deploy/references/hyperdrive/configuration.md +159 -0
- package/skills/cloudflare-deploy/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare-deploy/references/hyperdrive/patterns.md +190 -0
- package/skills/cloudflare-deploy/references/images/README.md +61 -0
- package/skills/cloudflare-deploy/references/images/api.md +96 -0
- package/skills/cloudflare-deploy/references/images/configuration.md +211 -0
- package/skills/cloudflare-deploy/references/images/gotchas.md +99 -0
- package/skills/cloudflare-deploy/references/images/patterns.md +115 -0
- package/skills/cloudflare-deploy/references/kv/README.md +89 -0
- package/skills/cloudflare-deploy/references/kv/api.md +160 -0
- package/skills/cloudflare-deploy/references/kv/configuration.md +144 -0
- package/skills/cloudflare-deploy/references/kv/gotchas.md +131 -0
- package/skills/cloudflare-deploy/references/kv/patterns.md +196 -0
- package/skills/cloudflare-deploy/references/miniflare/README.md +105 -0
- package/skills/cloudflare-deploy/references/miniflare/api.md +187 -0
- package/skills/cloudflare-deploy/references/miniflare/configuration.md +173 -0
- package/skills/cloudflare-deploy/references/miniflare/gotchas.md +160 -0
- package/skills/cloudflare-deploy/references/miniflare/patterns.md +181 -0
- package/skills/cloudflare-deploy/references/network-interconnect/README.md +99 -0
- package/skills/cloudflare-deploy/references/network-interconnect/api.md +199 -0
- package/skills/cloudflare-deploy/references/network-interconnect/configuration.md +114 -0
- package/skills/cloudflare-deploy/references/network-interconnect/gotchas.md +165 -0
- package/skills/cloudflare-deploy/references/network-interconnect/patterns.md +166 -0
- package/skills/cloudflare-deploy/references/observability/README.md +87 -0
- package/skills/cloudflare-deploy/references/observability/api.md +164 -0
- package/skills/cloudflare-deploy/references/observability/configuration.md +169 -0
- package/skills/cloudflare-deploy/references/observability/gotchas.md +115 -0
- package/skills/cloudflare-deploy/references/observability/patterns.md +105 -0
- package/skills/cloudflare-deploy/references/pages/README.md +88 -0
- package/skills/cloudflare-deploy/references/pages/api.md +204 -0
- package/skills/cloudflare-deploy/references/pages/configuration.md +201 -0
- package/skills/cloudflare-deploy/references/pages/gotchas.md +203 -0
- package/skills/cloudflare-deploy/references/pages/patterns.md +204 -0
- package/skills/cloudflare-deploy/references/pages-functions/README.md +98 -0
- package/skills/cloudflare-deploy/references/pages-functions/api.md +143 -0
- package/skills/cloudflare-deploy/references/pages-functions/configuration.md +122 -0
- package/skills/cloudflare-deploy/references/pages-functions/gotchas.md +94 -0
- package/skills/cloudflare-deploy/references/pages-functions/patterns.md +137 -0
- package/skills/cloudflare-deploy/references/pipelines/README.md +105 -0
- package/skills/cloudflare-deploy/references/pipelines/api.md +208 -0
- package/skills/cloudflare-deploy/references/pipelines/configuration.md +98 -0
- package/skills/cloudflare-deploy/references/pipelines/gotchas.md +80 -0
- package/skills/cloudflare-deploy/references/pipelines/patterns.md +87 -0
- package/skills/cloudflare-deploy/references/pulumi/README.md +100 -0
- package/skills/cloudflare-deploy/references/pulumi/api.md +200 -0
- package/skills/cloudflare-deploy/references/pulumi/configuration.md +198 -0
- package/skills/cloudflare-deploy/references/pulumi/gotchas.md +181 -0
- package/skills/cloudflare-deploy/references/pulumi/patterns.md +191 -0
- package/skills/cloudflare-deploy/references/queues/README.md +96 -0
- package/skills/cloudflare-deploy/references/queues/api.md +206 -0
- package/skills/cloudflare-deploy/references/queues/configuration.md +144 -0
- package/skills/cloudflare-deploy/references/queues/gotchas.md +206 -0
- package/skills/cloudflare-deploy/references/queues/patterns.md +220 -0
- package/skills/cloudflare-deploy/references/r2/README.md +95 -0
- package/skills/cloudflare-deploy/references/r2/api.md +200 -0
- package/skills/cloudflare-deploy/references/r2/configuration.md +165 -0
- package/skills/cloudflare-deploy/references/r2/gotchas.md +190 -0
- package/skills/cloudflare-deploy/references/r2/patterns.md +193 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/README.md +149 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/api.md +199 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/configuration.md +198 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/gotchas.md +170 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/patterns.md +191 -0
- package/skills/cloudflare-deploy/references/r2-sql/README.md +128 -0
- package/skills/cloudflare-deploy/references/r2-sql/api.md +158 -0
- package/skills/cloudflare-deploy/references/r2-sql/configuration.md +147 -0
- package/skills/cloudflare-deploy/references/r2-sql/gotchas.md +212 -0
- package/skills/cloudflare-deploy/references/r2-sql/patterns.md +222 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/README.md +65 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/api.md +158 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/configuration.md +137 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/gotchas.md +133 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/realtimekit/README.md +113 -0
- package/skills/cloudflare-deploy/references/realtimekit/api.md +212 -0
- package/skills/cloudflare-deploy/references/realtimekit/configuration.md +203 -0
- package/skills/cloudflare-deploy/references/realtimekit/gotchas.md +169 -0
- package/skills/cloudflare-deploy/references/realtimekit/patterns.md +223 -0
- package/skills/cloudflare-deploy/references/sandbox/README.md +96 -0
- package/skills/cloudflare-deploy/references/sandbox/api.md +198 -0
- package/skills/cloudflare-deploy/references/sandbox/configuration.md +143 -0
- package/skills/cloudflare-deploy/references/sandbox/gotchas.md +194 -0
- package/skills/cloudflare-deploy/references/sandbox/patterns.md +201 -0
- package/skills/cloudflare-deploy/references/secrets-store/README.md +74 -0
- package/skills/cloudflare-deploy/references/secrets-store/api.md +200 -0
- package/skills/cloudflare-deploy/references/secrets-store/configuration.md +185 -0
- package/skills/cloudflare-deploy/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare-deploy/references/secrets-store/patterns.md +207 -0
- package/skills/cloudflare-deploy/references/smart-placement/README.md +138 -0
- package/skills/cloudflare-deploy/references/smart-placement/api.md +183 -0
- package/skills/cloudflare-deploy/references/smart-placement/configuration.md +196 -0
- package/skills/cloudflare-deploy/references/smart-placement/gotchas.md +174 -0
- package/skills/cloudflare-deploy/references/smart-placement/patterns.md +183 -0
- package/skills/cloudflare-deploy/references/snippets/README.md +68 -0
- package/skills/cloudflare-deploy/references/snippets/api.md +198 -0
- package/skills/cloudflare-deploy/references/snippets/configuration.md +227 -0
- package/skills/cloudflare-deploy/references/snippets/gotchas.md +86 -0
- package/skills/cloudflare-deploy/references/snippets/patterns.md +135 -0
- package/skills/cloudflare-deploy/references/spectrum/README.md +52 -0
- package/skills/cloudflare-deploy/references/spectrum/api.md +181 -0
- package/skills/cloudflare-deploy/references/spectrum/configuration.md +194 -0
- package/skills/cloudflare-deploy/references/spectrum/gotchas.md +145 -0
- package/skills/cloudflare-deploy/references/spectrum/patterns.md +196 -0
- package/skills/cloudflare-deploy/references/static-assets/README.md +65 -0
- package/skills/cloudflare-deploy/references/static-assets/api.md +199 -0
- package/skills/cloudflare-deploy/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare-deploy/references/static-assets/gotchas.md +162 -0
- package/skills/cloudflare-deploy/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare-deploy/references/stream/README.md +114 -0
- package/skills/cloudflare-deploy/references/stream/api-live.md +195 -0
- package/skills/cloudflare-deploy/references/stream/api.md +199 -0
- package/skills/cloudflare-deploy/references/stream/configuration.md +141 -0
- package/skills/cloudflare-deploy/references/stream/gotchas.md +130 -0
- package/skills/cloudflare-deploy/references/stream/patterns.md +184 -0
- package/skills/cloudflare-deploy/references/tail-workers/README.md +89 -0
- package/skills/cloudflare-deploy/references/tail-workers/api.md +200 -0
- package/skills/cloudflare-deploy/references/tail-workers/configuration.md +176 -0
- package/skills/cloudflare-deploy/references/tail-workers/gotchas.md +192 -0
- package/skills/cloudflare-deploy/references/tail-workers/patterns.md +180 -0
- package/skills/cloudflare-deploy/references/terraform/README.md +102 -0
- package/skills/cloudflare-deploy/references/terraform/api.md +178 -0
- package/skills/cloudflare-deploy/references/terraform/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/terraform/gotchas.md +150 -0
- package/skills/cloudflare-deploy/references/terraform/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/tunnel/README.md +129 -0
- package/skills/cloudflare-deploy/references/tunnel/api.md +193 -0
- package/skills/cloudflare-deploy/references/tunnel/configuration.md +157 -0
- package/skills/cloudflare-deploy/references/tunnel/gotchas.md +147 -0
- package/skills/cloudflare-deploy/references/tunnel/networking.md +168 -0
- package/skills/cloudflare-deploy/references/tunnel/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/turn/README.md +82 -0
- package/skills/cloudflare-deploy/references/turn/api.md +239 -0
- package/skills/cloudflare-deploy/references/turn/configuration.md +179 -0
- package/skills/cloudflare-deploy/references/turn/gotchas.md +231 -0
- package/skills/cloudflare-deploy/references/turn/patterns.md +213 -0
- package/skills/cloudflare-deploy/references/turnstile/README.md +99 -0
- package/skills/cloudflare-deploy/references/turnstile/api.md +240 -0
- package/skills/cloudflare-deploy/references/turnstile/configuration.md +222 -0
- package/skills/cloudflare-deploy/references/turnstile/gotchas.md +218 -0
- package/skills/cloudflare-deploy/references/turnstile/patterns.md +193 -0
- package/skills/cloudflare-deploy/references/vectorize/README.md +133 -0
- package/skills/cloudflare-deploy/references/vectorize/api.md +88 -0
- package/skills/cloudflare-deploy/references/vectorize/configuration.md +88 -0
- package/skills/cloudflare-deploy/references/vectorize/gotchas.md +76 -0
- package/skills/cloudflare-deploy/references/vectorize/patterns.md +90 -0
- package/skills/cloudflare-deploy/references/waf/README.md +113 -0
- package/skills/cloudflare-deploy/references/waf/api.md +202 -0
- package/skills/cloudflare-deploy/references/waf/configuration.md +203 -0
- package/skills/cloudflare-deploy/references/waf/gotchas.md +204 -0
- package/skills/cloudflare-deploy/references/waf/patterns.md +197 -0
- package/skills/cloudflare-deploy/references/web-analytics/README.md +140 -0
- package/skills/cloudflare-deploy/references/web-analytics/configuration.md +76 -0
- package/skills/cloudflare-deploy/references/web-analytics/gotchas.md +82 -0
- package/skills/cloudflare-deploy/references/web-analytics/integration.md +60 -0
- package/skills/cloudflare-deploy/references/web-analytics/patterns.md +91 -0
- package/skills/cloudflare-deploy/references/workerd/README.md +78 -0
- package/skills/cloudflare-deploy/references/workerd/api.md +185 -0
- package/skills/cloudflare-deploy/references/workerd/configuration.md +183 -0
- package/skills/cloudflare-deploy/references/workerd/gotchas.md +139 -0
- package/skills/cloudflare-deploy/references/workerd/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/workers/README.md +108 -0
- package/skills/cloudflare-deploy/references/workers/api.md +195 -0
- package/skills/cloudflare-deploy/references/workers/configuration.md +185 -0
- package/skills/cloudflare-deploy/references/workers/frameworks.md +197 -0
- package/skills/cloudflare-deploy/references/workers/gotchas.md +136 -0
- package/skills/cloudflare-deploy/references/workers/patterns.md +198 -0
- package/skills/cloudflare-deploy/references/workers-ai/README.md +197 -0
- package/skills/cloudflare-deploy/references/workers-ai/api.md +112 -0
- package/skills/cloudflare-deploy/references/workers-ai/configuration.md +97 -0
- package/skills/cloudflare-deploy/references/workers-ai/gotchas.md +114 -0
- package/skills/cloudflare-deploy/references/workers-ai/patterns.md +120 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/README.md +89 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/api.md +196 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/configuration.md +167 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/patterns.md +188 -0
- package/skills/cloudflare-deploy/references/workers-playground/README.md +127 -0
- package/skills/cloudflare-deploy/references/workers-playground/api.md +101 -0
- package/skills/cloudflare-deploy/references/workers-playground/configuration.md +163 -0
- package/skills/cloudflare-deploy/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare-deploy/references/workers-playground/patterns.md +132 -0
- package/skills/cloudflare-deploy/references/workers-vpc/README.md +127 -0
- package/skills/cloudflare-deploy/references/workers-vpc/api.md +202 -0
- package/skills/cloudflare-deploy/references/workers-vpc/configuration.md +147 -0
- package/skills/cloudflare-deploy/references/workers-vpc/gotchas.md +167 -0
- package/skills/cloudflare-deploy/references/workers-vpc/patterns.md +209 -0
- package/skills/cloudflare-deploy/references/workflows/README.md +69 -0
- package/skills/cloudflare-deploy/references/workflows/api.md +185 -0
- package/skills/cloudflare-deploy/references/workflows/configuration.md +151 -0
- package/skills/cloudflare-deploy/references/workflows/gotchas.md +97 -0
- package/skills/cloudflare-deploy/references/workflows/patterns.md +175 -0
- package/skills/cloudflare-deploy/references/wrangler/README.md +141 -0
- package/skills/cloudflare-deploy/references/wrangler/api.md +188 -0
- package/skills/cloudflare-deploy/references/wrangler/auth.md +73 -0
- package/skills/cloudflare-deploy/references/wrangler/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/wrangler/gotchas.md +197 -0
- package/skills/cloudflare-deploy/references/wrangler/patterns.md +209 -0
- package/skills/cloudflare-deploy/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
- package/skills/cloudflare-deploy/references/zaraz/README.md +111 -0
- package/skills/cloudflare-deploy/references/zaraz/api.md +112 -0
- package/skills/cloudflare-deploy/references/zaraz/configuration.md +90 -0
- package/skills/cloudflare-deploy/references/zaraz/gotchas.md +81 -0
- package/skills/cloudflare-deploy/references/zaraz/patterns.md +74 -0
- package/skills/collaboration/brainstorming/SKILL.md +75 -0
- package/skills/collaboration/dispatching-parallel-agents/SKILL.md +184 -0
- package/skills/collaboration/executing-plans/SKILL.md +78 -0
- package/skills/collaboration/finishing-a-development-branch/SKILL.md +202 -0
- package/skills/collaboration/phase-prompting/SKILL.md +292 -0
- package/skills/collaboration/receiving-code-review/SKILL.md +211 -0
- package/skills/collaboration/requesting-code-review/SKILL.md +107 -0
- package/skills/collaboration/requesting-code-review/code-reviewer.md +146 -0
- package/skills/collaboration/subagent-driven-development/SKILL.md +188 -0
- package/skills/collaboration/using-git-worktrees/SKILL.md +215 -0
- package/skills/collaboration/writing-plans/SKILL.md +118 -0
- package/skills/debugging/defense-in-depth/SKILL.md +130 -0
- package/skills/debugging/root-cause-tracing/SKILL.md +177 -0
- package/skills/debugging/root-cause-tracing/find-polluter.sh +63 -0
- package/skills/debugging/systematic-debugging/SKILL.md +295 -0
- package/skills/debugging/systematic-debugging/test-academic.md +14 -0
- package/skills/debugging/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/debugging/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/debugging/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/debugging/verification-before-completion/SKILL.md +142 -0
- package/skills/develop-web-game/LICENSE.txt +201 -0
- package/skills/develop-web-game/SKILL.md +149 -0
- package/skills/develop-web-game/agents/openai.yaml +6 -0
- package/skills/develop-web-game/assets/game-small.svg +4 -0
- package/skills/develop-web-game/assets/game.png +0 -0
- package/skills/develop-web-game/references/action_payloads.json +7 -0
- package/skills/develop-web-game/scripts/web_game_playwright_client.js +356 -0
- package/skills/doc/LICENSE.txt +201 -0
- package/skills/doc/SKILL.md +80 -0
- package/skills/doc/agents/openai.yaml +6 -0
- package/skills/doc/assets/doc-small.svg +3 -0
- package/skills/doc/assets/doc.png +0 -0
- package/skills/doc/scripts/render_docx.py +296 -0
- package/skills/figma/LICENSE.txt +202 -0
- package/skills/figma/SKILL.md +42 -0
- package/skills/figma/agents/openai.yaml +14 -0
- package/skills/figma/assets/figma-small.svg +3 -0
- package/skills/figma/assets/figma.png +0 -0
- package/skills/figma/assets/icon.svg +28 -0
- package/skills/figma/references/figma-mcp-config.md +35 -0
- package/skills/figma/references/figma-tools-and-prompts.md +34 -0
- package/skills/figma-implement-design/LICENSE.txt +202 -0
- package/skills/figma-implement-design/SKILL.md +264 -0
- package/skills/figma-implement-design/agents/openai.yaml +14 -0
- package/skills/figma-implement-design/assets/figma-small.svg +3 -0
- package/skills/figma-implement-design/assets/figma.png +0 -0
- package/skills/figma-implement-design/assets/icon.svg +28 -0
- package/skills/gh-address-comments/LICENSE.txt +202 -0
- package/skills/gh-address-comments/SKILL.md +25 -0
- package/skills/gh-address-comments/agents/openai.yaml +6 -0
- package/skills/gh-address-comments/assets/github-small.svg +3 -0
- package/skills/gh-address-comments/assets/github.png +0 -0
- package/skills/gh-address-comments/scripts/fetch_comments.py +237 -0
- package/skills/gh-fix-ci/LICENSE.txt +201 -0
- package/skills/gh-fix-ci/SKILL.md +69 -0
- package/skills/gh-fix-ci/agents/openai.yaml +6 -0
- package/skills/gh-fix-ci/assets/github-small.svg +3 -0
- package/skills/gh-fix-ci/assets/github.png +0 -0
- package/skills/gh-fix-ci/scripts/inspect_pr_checks.py +509 -0
- package/skills/goal-driven-project-loop/SKILL.md +217 -0
- package/skills/goal-driven-project-loop/references/goal-contract-template.md +42 -0
- package/skills/imagegen/LICENSE.txt +201 -0
- package/skills/imagegen/SKILL.md +174 -0
- package/skills/imagegen/agents/openai.yaml +6 -0
- package/skills/imagegen/assets/imagegen-small.svg +5 -0
- package/skills/imagegen/assets/imagegen.png +0 -0
- package/skills/imagegen/references/cli.md +132 -0
- package/skills/imagegen/references/codex-network.md +28 -0
- package/skills/imagegen/references/image-api.md +36 -0
- package/skills/imagegen/references/prompting.md +81 -0
- package/skills/imagegen/references/sample-prompts.md +384 -0
- package/skills/imagegen/scripts/image_gen.py +876 -0
- package/skills/jupyter-notebook/LICENSE.txt +201 -0
- package/skills/jupyter-notebook/SKILL.md +107 -0
- package/skills/jupyter-notebook/agents/openai.yaml +6 -0
- package/skills/jupyter-notebook/assets/experiment-template.ipynb +110 -0
- package/skills/jupyter-notebook/assets/jupyter-small.svg +3 -0
- package/skills/jupyter-notebook/assets/jupyter.png +0 -0
- package/skills/jupyter-notebook/assets/tutorial-template.ipynb +107 -0
- package/skills/jupyter-notebook/references/experiment-patterns.md +10 -0
- package/skills/jupyter-notebook/references/notebook-structure.md +17 -0
- package/skills/jupyter-notebook/references/quality-checklist.md +11 -0
- package/skills/jupyter-notebook/references/tutorial-patterns.md +9 -0
- package/skills/jupyter-notebook/scripts/new_notebook.py +130 -0
- package/skills/linear/LICENSE.txt +202 -0
- package/skills/linear/SKILL.md +87 -0
- package/skills/linear/agents/openai.yaml +14 -0
- package/skills/linear/assets/linear-small.svg +5 -0
- package/skills/linear/assets/linear.png +0 -0
- package/skills/netlify-deploy/LICENSE.txt +201 -0
- package/skills/netlify-deploy/SKILL.md +247 -0
- package/skills/netlify-deploy/agents/openai.yaml +6 -0
- package/skills/netlify-deploy/assets/netlify-small.svg +11 -0
- package/skills/netlify-deploy/assets/netlify.png +0 -0
- package/skills/netlify-deploy/references/cli-commands.md +162 -0
- package/skills/netlify-deploy/references/deployment-patterns.md +303 -0
- package/skills/netlify-deploy/references/netlify-toml.md +259 -0
- package/skills/notion-knowledge-capture/LICENSE.txt +7 -0
- package/skills/notion-knowledge-capture/SKILL.md +56 -0
- package/skills/notion-knowledge-capture/agents/openai.yaml +14 -0
- package/skills/notion-knowledge-capture/assets/notion-small.svg +11 -0
- package/skills/notion-knowledge-capture/assets/notion.png +0 -0
- package/skills/notion-knowledge-capture/evaluations/README.md +95 -0
- package/skills/notion-knowledge-capture/evaluations/conversation-to-wiki.json +31 -0
- package/skills/notion-knowledge-capture/evaluations/decision-record.json +31 -0
- package/skills/notion-knowledge-capture/examples/conversation-to-faq.md +226 -0
- package/skills/notion-knowledge-capture/examples/decision-capture.md +126 -0
- package/skills/notion-knowledge-capture/examples/how-to-guide.md +118 -0
- package/skills/notion-knowledge-capture/reference/database-best-practices.md +112 -0
- package/skills/notion-knowledge-capture/reference/decision-log-database.md +58 -0
- package/skills/notion-knowledge-capture/reference/documentation-database.md +93 -0
- package/skills/notion-knowledge-capture/reference/faq-database.md +57 -0
- package/skills/notion-knowledge-capture/reference/how-to-guide-database.md +38 -0
- package/skills/notion-knowledge-capture/reference/learning-database.md +35 -0
- package/skills/notion-knowledge-capture/reference/team-wiki-database.md +27 -0
- package/skills/notion-meeting-intelligence/LICENSE.txt +7 -0
- package/skills/notion-meeting-intelligence/SKILL.md +60 -0
- package/skills/notion-meeting-intelligence/agents/openai.yaml +14 -0
- package/skills/notion-meeting-intelligence/assets/notion-small.svg +11 -0
- package/skills/notion-meeting-intelligence/assets/notion.png +0 -0
- package/skills/notion-meeting-intelligence/evaluations/README.md +101 -0
- package/skills/notion-meeting-intelligence/evaluations/decision-meeting-prep.json +35 -0
- package/skills/notion-meeting-intelligence/evaluations/status-meeting-prep.json +35 -0
- package/skills/notion-meeting-intelligence/examples/customer-meeting.md +125 -0
- package/skills/notion-meeting-intelligence/examples/executive-review.md +78 -0
- package/skills/notion-meeting-intelligence/examples/project-decision.md +431 -0
- package/skills/notion-meeting-intelligence/examples/sprint-planning.md +80 -0
- package/skills/notion-meeting-intelligence/reference/brainstorming-template.md +81 -0
- package/skills/notion-meeting-intelligence/reference/decision-meeting-template.md +94 -0
- package/skills/notion-meeting-intelligence/reference/one-on-one-template.md +58 -0
- package/skills/notion-meeting-intelligence/reference/retrospective-template.md +58 -0
- package/skills/notion-meeting-intelligence/reference/sprint-planning-template.md +68 -0
- package/skills/notion-meeting-intelligence/reference/status-update-template.md +74 -0
- package/skills/notion-meeting-intelligence/reference/template-selection-guide.md +56 -0
- package/skills/notion-research-documentation/LICENSE.txt +7 -0
- package/skills/notion-research-documentation/SKILL.md +59 -0
- package/skills/notion-research-documentation/agents/openai.yaml +14 -0
- package/skills/notion-research-documentation/assets/notion-small.svg +11 -0
- package/skills/notion-research-documentation/assets/notion.png +0 -0
- package/skills/notion-research-documentation/evaluations/README.md +109 -0
- package/skills/notion-research-documentation/evaluations/basic-research.json +28 -0
- package/skills/notion-research-documentation/evaluations/research-to-database.json +29 -0
- package/skills/notion-research-documentation/examples/competitor-analysis.md +283 -0
- package/skills/notion-research-documentation/examples/market-research.md +62 -0
- package/skills/notion-research-documentation/examples/technical-investigation.md +233 -0
- package/skills/notion-research-documentation/examples/trip-planning.md +128 -0
- package/skills/notion-research-documentation/reference/advanced-search.md +212 -0
- package/skills/notion-research-documentation/reference/citations.md +190 -0
- package/skills/notion-research-documentation/reference/comparison-format.md +37 -0
- package/skills/notion-research-documentation/reference/comparison-template.md +44 -0
- package/skills/notion-research-documentation/reference/comprehensive-report-format.md +41 -0
- package/skills/notion-research-documentation/reference/comprehensive-report-template.md +64 -0
- package/skills/notion-research-documentation/reference/format-selection-guide.md +95 -0
- package/skills/notion-research-documentation/reference/quick-brief-format.md +37 -0
- package/skills/notion-research-documentation/reference/quick-brief-template.md +25 -0
- package/skills/notion-research-documentation/reference/research-summary-format.md +33 -0
- package/skills/notion-research-documentation/reference/research-summary-template.md +49 -0
- package/skills/notion-spec-to-implementation/LICENSE.txt +7 -0
- package/skills/notion-spec-to-implementation/SKILL.md +58 -0
- package/skills/notion-spec-to-implementation/agents/openai.yaml +14 -0
- package/skills/notion-spec-to-implementation/assets/notion-small.svg +11 -0
- package/skills/notion-spec-to-implementation/assets/notion.png +0 -0
- package/skills/notion-spec-to-implementation/evaluations/README.md +120 -0
- package/skills/notion-spec-to-implementation/evaluations/basic-spec-implementation.json +32 -0
- package/skills/notion-spec-to-implementation/evaluations/spec-to-tasks.json +35 -0
- package/skills/notion-spec-to-implementation/examples/api-feature.md +461 -0
- package/skills/notion-spec-to-implementation/examples/database-migration.md +81 -0
- package/skills/notion-spec-to-implementation/examples/ui-component.md +68 -0
- package/skills/notion-spec-to-implementation/reference/milestone-summary-template.md +27 -0
- package/skills/notion-spec-to-implementation/reference/progress-tracking.md +458 -0
- package/skills/notion-spec-to-implementation/reference/progress-update-template.md +25 -0
- package/skills/notion-spec-to-implementation/reference/quick-implementation-plan.md +26 -0
- package/skills/notion-spec-to-implementation/reference/spec-parsing.md +383 -0
- package/skills/notion-spec-to-implementation/reference/standard-implementation-plan.md +146 -0
- package/skills/notion-spec-to-implementation/reference/task-creation-template.md +34 -0
- package/skills/notion-spec-to-implementation/reference/task-creation.md +441 -0
- package/skills/openai-docs/LICENSE.txt +201 -0
- package/skills/openai-docs/SKILL.md +68 -0
- package/skills/openai-docs/agents/openai.yaml +14 -0
- package/skills/openai-docs/assets/openai-small.svg +3 -0
- package/skills/openai-docs/assets/openai.png +0 -0
- package/skills/openai-docs/references/gpt-5p4-prompting-guide.md +433 -0
- package/skills/openai-docs/references/latest-model.md +35 -0
- package/skills/openai-docs/references/upgrading-to-gpt-5p4.md +164 -0
- package/skills/pdf/LICENSE.txt +201 -0
- package/skills/pdf/SKILL.md +67 -0
- package/skills/pdf/agents/openai.yaml +5 -0
- package/skills/pdf/assets/pdf.png +0 -0
- package/skills/phase-prompting/SKILL.md +162 -0
- package/skills/playwright/LICENSE.txt +201 -0
- package/skills/playwright/NOTICE.txt +14 -0
- package/skills/playwright/SKILL.md +147 -0
- package/skills/playwright/agents/openai.yaml +6 -0
- package/skills/playwright/assets/playwright-small.svg +3 -0
- package/skills/playwright/assets/playwright.png +0 -0
- package/skills/playwright/references/cli.md +116 -0
- package/skills/playwright/references/workflows.md +95 -0
- package/skills/playwright/scripts/playwright_cli.sh +25 -0
- package/skills/playwright-interactive/LICENSE.txt +201 -0
- package/skills/playwright-interactive/NOTICE.txt +13 -0
- package/skills/playwright-interactive/SKILL.md +693 -0
- package/skills/playwright-interactive/agents/openai.yaml +6 -0
- package/skills/playwright-interactive/assets/playwright-small.svg +3 -0
- package/skills/playwright-interactive/assets/playwright.png +0 -0
- package/skills/problem-solving/ABOUT.md +40 -0
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -0
- package/skills/problem-solving/inversion-exercise/SKILL.md +58 -0
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -0
- package/skills/problem-solving/scale-game/SKILL.md +63 -0
- package/skills/problem-solving/simplification-cascades/SKILL.md +76 -0
- package/skills/problem-solving/when-stuck/SKILL.md +88 -0
- package/skills/render-deploy/LICENSE.txt +201 -0
- package/skills/render-deploy/SKILL.md +479 -0
- package/skills/render-deploy/agents/openai.yaml +14 -0
- package/skills/render-deploy/assets/docker.yaml +62 -0
- package/skills/render-deploy/assets/go-api.yaml +35 -0
- package/skills/render-deploy/assets/nextjs-postgres.yaml +35 -0
- package/skills/render-deploy/assets/node-express.yaml +25 -0
- package/skills/render-deploy/assets/python-django.yaml +89 -0
- package/skills/render-deploy/assets/render-small.svg +3 -0
- package/skills/render-deploy/assets/render.png +0 -0
- package/skills/render-deploy/assets/static-site.yaml +54 -0
- package/skills/render-deploy/references/blueprint-spec.md +718 -0
- package/skills/render-deploy/references/codebase-analysis.md +49 -0
- package/skills/render-deploy/references/configuration-guide.md +603 -0
- package/skills/render-deploy/references/deployment-details.md +224 -0
- package/skills/render-deploy/references/direct-creation.md +113 -0
- package/skills/render-deploy/references/error-patterns.md +13 -0
- package/skills/render-deploy/references/post-deploy-checks.md +36 -0
- package/skills/render-deploy/references/runtimes.md +473 -0
- package/skills/render-deploy/references/service-types.md +450 -0
- package/skills/render-deploy/references/troubleshooting-basics.md +36 -0
- package/skills/research/ABOUT.md +20 -0
- package/skills/research/tracing-knowledge-lineages/SKILL.md +203 -0
- package/skills/round-prompting/SKILL.md +148 -0
- package/skills/screenshot/LICENSE.txt +201 -0
- package/skills/screenshot/SKILL.md +267 -0
- package/skills/screenshot/agents/openai.yaml +6 -0
- package/skills/screenshot/assets/screenshot-small.svg +5 -0
- package/skills/screenshot/assets/screenshot.png +0 -0
- package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
- package/skills/screenshot/scripts/macos_display_info.swift +22 -0
- package/skills/screenshot/scripts/macos_permissions.swift +40 -0
- package/skills/screenshot/scripts/macos_window_info.swift +126 -0
- package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
- package/skills/screenshot/scripts/take_screenshot.py +585 -0
- package/skills/security-best-practices/LICENSE.txt +201 -0
- package/skills/security-best-practices/SKILL.md +86 -0
- package/skills/security-best-practices/agents/openai.yaml +4 -0
- package/skills/security-best-practices/references/golang-general-backend-security.md +826 -0
- package/skills/security-best-practices/references/javascript-express-web-server-security.md +1158 -0
- package/skills/security-best-practices/references/javascript-general-web-frontend-security.md +747 -0
- package/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +678 -0
- package/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
- package/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +990 -0
- package/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +791 -0
- package/skills/security-best-practices/references/python-django-web-server-security.md +882 -0
- package/skills/security-best-practices/references/python-fastapi-web-server-security.md +1036 -0
- package/skills/security-best-practices/references/python-flask-web-server-security.md +705 -0
- package/skills/security-ownership-map/LICENSE.txt +201 -0
- package/skills/security-ownership-map/SKILL.md +206 -0
- package/skills/security-ownership-map/agents/openai.yaml +4 -0
- package/skills/security-ownership-map/references/neo4j-import.md +60 -0
- package/skills/security-ownership-map/scripts/build_ownership_map.py +956 -0
- package/skills/security-ownership-map/scripts/community_maintainers.py +544 -0
- package/skills/security-ownership-map/scripts/query_ownership.py +483 -0
- package/skills/security-ownership-map/scripts/run_ownership_map.py +200 -0
- package/skills/security-threat-model/LICENSE.txt +201 -0
- package/skills/security-threat-model/SKILL.md +81 -0
- package/skills/security-threat-model/agents/openai.yaml +4 -0
- package/skills/security-threat-model/references/prompt-template.md +255 -0
- package/skills/security-threat-model/references/security-controls-and-assets.md +32 -0
- package/skills/sentry/LICENSE.txt +201 -0
- package/skills/sentry/SKILL.md +123 -0
- package/skills/sentry/agents/openai.yaml +6 -0
- package/skills/sentry/assets/sentry-small.svg +3 -0
- package/skills/sentry/assets/sentry.png +0 -0
- package/skills/sentry/scripts/sentry_api.py +238 -0
- package/skills/slides/LICENSE.txt +201 -0
- package/skills/slides/SKILL.md +71 -0
- package/skills/slides/agents/openai.yaml +6 -0
- package/skills/slides/assets/pptxgenjs_helpers/code.js +104 -0
- package/skills/slides/assets/pptxgenjs_helpers/image.js +333 -0
- package/skills/slides/assets/pptxgenjs_helpers/index.js +33 -0
- package/skills/slides/assets/pptxgenjs_helpers/latex.js +51 -0
- package/skills/slides/assets/pptxgenjs_helpers/layout.js +643 -0
- package/skills/slides/assets/pptxgenjs_helpers/layout_builders.js +358 -0
- package/skills/slides/assets/pptxgenjs_helpers/svg.js +36 -0
- package/skills/slides/assets/pptxgenjs_helpers/text.js +789 -0
- package/skills/slides/assets/pptxgenjs_helpers/util.js +24 -0
- package/skills/slides/assets/slides-small.svg +3 -0
- package/skills/slides/assets/slides.png +0 -0
- package/skills/slides/references/pptxgenjs-helpers.md +61 -0
- package/skills/slides/scripts/create_montage.py +300 -0
- package/skills/slides/scripts/detect_font.py +873 -0
- package/skills/slides/scripts/ensure_raster_image.py +202 -0
- package/skills/slides/scripts/render_slides.py +273 -0
- package/skills/slides/scripts/slides_test.py +201 -0
- package/skills/sora/LICENSE.txt +201 -0
- package/skills/sora/SKILL.md +153 -0
- package/skills/sora/agents/openai.yaml +6 -0
- package/skills/sora/assets/sora-small.svg +4 -0
- package/skills/sora/assets/sora.png +0 -0
- package/skills/sora/references/cinematic-shots.md +53 -0
- package/skills/sora/references/cli.md +248 -0
- package/skills/sora/references/codex-network.md +28 -0
- package/skills/sora/references/prompting.md +137 -0
- package/skills/sora/references/sample-prompts.md +95 -0
- package/skills/sora/references/social-ads.md +42 -0
- package/skills/sora/references/troubleshooting.md +58 -0
- package/skills/sora/references/video-api.md +45 -0
- package/skills/sora/scripts/sora.py +970 -0
- package/skills/speech/LICENSE.txt +201 -0
- package/skills/speech/SKILL.md +144 -0
- package/skills/speech/agents/openai.yaml +6 -0
- package/skills/speech/assets/speech-small.svg +3 -0
- package/skills/speech/assets/speech.png +0 -0
- package/skills/speech/references/accessibility.md +32 -0
- package/skills/speech/references/audio-api.md +31 -0
- package/skills/speech/references/cli.md +99 -0
- package/skills/speech/references/codex-network.md +28 -0
- package/skills/speech/references/ivr.md +32 -0
- package/skills/speech/references/narration.md +31 -0
- package/skills/speech/references/prompting.md +38 -0
- package/skills/speech/references/sample-prompts.md +44 -0
- package/skills/speech/references/voice-directions.md +80 -0
- package/skills/speech/references/voiceover.md +31 -0
- package/skills/speech/scripts/text_to_speech.py +528 -0
- package/skills/spreadsheet/LICENSE.txt +201 -0
- package/skills/spreadsheet/SKILL.md +145 -0
- package/skills/spreadsheet/agents/openai.yaml +6 -0
- package/skills/spreadsheet/assets/spreadsheet-small.svg +3 -0
- package/skills/spreadsheet/assets/spreadsheet.png +0 -0
- package/skills/spreadsheet/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
- package/skills/spreadsheet/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
- package/skills/spreadsheet/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
- package/skills/spreadsheet/references/examples/openpyxl/styling_spreadsheet.py +79 -0
- package/skills/testing/condition-based-waiting/SKILL.md +123 -0
- package/skills/testing/condition-based-waiting/example.ts +158 -0
- package/skills/testing/test-driven-development/SKILL.md +367 -0
- package/skills/testing/testing-anti-patterns/SKILL.md +304 -0
- package/skills/transcribe/LICENSE.txt +201 -0
- package/skills/transcribe/SKILL.md +81 -0
- package/skills/transcribe/agents/openai.yaml +6 -0
- package/skills/transcribe/assets/transcribe-small.svg +3 -0
- package/skills/transcribe/assets/transcribe.png +0 -0
- package/skills/transcribe/references/api.md +8 -0
- package/skills/transcribe/scripts/transcribe_diarize.py +276 -0
- package/skills/using-skills/SKILL.md +102 -0
- package/skills/using-skills/find-skills +107 -0
- package/skills/using-skills/skill-run +44 -0
- package/skills/vercel-deploy/LICENSE.txt +21 -0
- package/skills/vercel-deploy/SKILL.md +77 -0
- package/skills/vercel-deploy/agents/openai.yaml +6 -0
- package/skills/vercel-deploy/assets/vercel-small.svg +5 -0
- package/skills/vercel-deploy/assets/vercel.png +0 -0
- package/skills/vercel-deploy/scripts/deploy.sh +301 -0
- package/skills/winui-app/LICENSE.txt +202 -0
- package/skills/winui-app/SKILL.md +94 -0
- package/skills/winui-app/agents/openai.yaml +5 -0
- package/skills/winui-app/assets/winui.png +0 -0
- package/skills/winui-app/config.yaml +50 -0
- package/skills/winui-app/references/_sections.md +96 -0
- package/skills/winui-app/references/accessibility-input-and-localization.md +51 -0
- package/skills/winui-app/references/build-run-and-launch-verification.md +72 -0
- package/skills/winui-app/references/community-toolkit-controls-and-helpers.md +57 -0
- package/skills/winui-app/references/controls-layout-and-adaptive-ui.md +84 -0
- package/skills/winui-app/references/foundation-environment-audit-and-remediation.md +82 -0
- package/skills/winui-app/references/foundation-setup-and-project-selection.md +67 -0
- package/skills/winui-app/references/foundation-template-first-recovery.md +62 -0
- package/skills/winui-app/references/foundation-winui-app-structure.md +62 -0
- package/skills/winui-app/references/motion-animations-and-polish.md +45 -0
- package/skills/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -0
- package/skills/winui-app/references/sample-source-map.md +37 -0
- package/skills/winui-app/references/shell-navigation-and-windowing.md +67 -0
- package/skills/winui-app/references/styling-theming-materials-and-icons.md +71 -0
- package/skills/winui-app/references/testing-debugging-and-review-checklists.md +77 -0
- package/skills/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -0
- package/skills/yeet/LICENSE.txt +201 -0
- package/skills/yeet/SKILL.md +28 -0
- package/skills/yeet/agents/openai.yaml +6 -0
- package/skills/yeet/assets/yeet-small.svg +3 -0
- package/skills/yeet/assets/yeet.png +0 -0
- package/dist/src/agents/definitions.d.ts +0 -16
- package/dist/src/agents/definitions.d.ts.map +0 -1
- package/dist/src/agents/definitions.js +0 -148
- package/dist/src/agents/definitions.js.map +0 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Multi-Tenant Patterns
|
|
2
|
+
|
|
3
|
+
## Billing by Plan
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
interface Env {
|
|
7
|
+
DISPATCHER: DispatchNamespace;
|
|
8
|
+
CUSTOMERS_KV: KVNamespace;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
async fetch(request: Request, env: Env): Promise<Response> {
|
|
13
|
+
const userWorkerName = new URL(request.url).hostname.split(".")[0];
|
|
14
|
+
const customerPlan = await env.CUSTOMERS_KV.get(userWorkerName);
|
|
15
|
+
|
|
16
|
+
const plans = {
|
|
17
|
+
enterprise: { cpuMs: 50, subRequests: 50 },
|
|
18
|
+
pro: { cpuMs: 20, subRequests: 20 },
|
|
19
|
+
free: { cpuMs: 10, subRequests: 5 },
|
|
20
|
+
};
|
|
21
|
+
const limits = plans[customerPlan as keyof typeof plans] || plans.free;
|
|
22
|
+
|
|
23
|
+
const userWorker = env.DISPATCHER.get(userWorkerName, {}, { limits });
|
|
24
|
+
return await userWorker.fetch(request);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Resource Isolation
|
|
30
|
+
|
|
31
|
+
**Complete isolation:** Create unique resources per customer
|
|
32
|
+
- KV namespace per customer
|
|
33
|
+
- D1 database per customer
|
|
34
|
+
- R2 bucket per customer
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
const bindings = [{
|
|
38
|
+
type: "kv_namespace",
|
|
39
|
+
name: "USER_KV",
|
|
40
|
+
namespace_id: `customer-${customerId}-kv`
|
|
41
|
+
}];
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Hostname Routing
|
|
45
|
+
|
|
46
|
+
### Wildcard Route (Recommended)
|
|
47
|
+
Configure `*/*` route on SaaS domain → dispatch Worker
|
|
48
|
+
|
|
49
|
+
**Benefits:**
|
|
50
|
+
- Supports subdomains + custom vanity domains
|
|
51
|
+
- No per-route limits (regular Workers limited to 100 routes)
|
|
52
|
+
- Programmatic control
|
|
53
|
+
- Works with any DNS proxy settings
|
|
54
|
+
|
|
55
|
+
**Setup:**
|
|
56
|
+
1. Cloudflare for SaaS custom hostnames
|
|
57
|
+
2. Fallback origin (dummy `A 192.0.2.0` if Worker is origin)
|
|
58
|
+
3. DNS CNAME to SaaS domain
|
|
59
|
+
4. `*/*` route → dispatch Worker
|
|
60
|
+
5. Routing logic in dispatch Worker
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
export default {
|
|
64
|
+
async fetch(request: Request, env: Env): Promise<Response> {
|
|
65
|
+
const hostname = new URL(request.url).hostname;
|
|
66
|
+
const hostnameData = await env.ROUTING_KV.get(`hostname:${hostname}`, { type: "json" });
|
|
67
|
+
|
|
68
|
+
if (!hostnameData?.workerName) {
|
|
69
|
+
return new Response("Hostname not configured", { status: 404 });
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const userWorker = env.DISPATCHER.get(hostnameData.workerName);
|
|
73
|
+
return await userWorker.fetch(request);
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Subdomain-Only
|
|
79
|
+
1. Wildcard DNS: `*.saas.com` → origin
|
|
80
|
+
2. Route: `*.saas.com/*` → dispatch Worker
|
|
81
|
+
3. Extract subdomain for routing
|
|
82
|
+
|
|
83
|
+
### Orange-to-Orange (O2O) Behavior
|
|
84
|
+
|
|
85
|
+
When customers use Cloudflare and CNAME to your Workers domain:
|
|
86
|
+
|
|
87
|
+
| Scenario | Behavior | Route Pattern |
|
|
88
|
+
|----------|----------|---------------|
|
|
89
|
+
| Customer not on Cloudflare | Standard routing | `*/*` or `*.domain.com/*` |
|
|
90
|
+
| Customer on Cloudflare (proxied CNAME) | Invokes Worker at edge | `*/*` required |
|
|
91
|
+
| Customer on Cloudflare (DNS-only CNAME) | Standard routing | Any route works |
|
|
92
|
+
|
|
93
|
+
**Recommendation:** Always use `*/*` wildcard for consistent O2O behavior.
|
|
94
|
+
|
|
95
|
+
### Custom Metadata Routing
|
|
96
|
+
|
|
97
|
+
For Cloudflare for SaaS: Store worker name in custom hostname `custom_metadata`, retrieve in dispatch worker to route requests. Requires custom hostnames as subdomains of your domain.
|
|
98
|
+
|
|
99
|
+
## Observability
|
|
100
|
+
|
|
101
|
+
### Logpush
|
|
102
|
+
- Enable on dispatch Worker → captures all user Worker logs
|
|
103
|
+
- Filter by `Outcome` or `Script Name`
|
|
104
|
+
|
|
105
|
+
### Tail Workers
|
|
106
|
+
- Real-time logs with custom formatting
|
|
107
|
+
- Receives HTTP status, `console.log()`, exceptions, diagnostics
|
|
108
|
+
|
|
109
|
+
### Analytics Engine
|
|
110
|
+
```typescript
|
|
111
|
+
// Track violations
|
|
112
|
+
env.ANALYTICS.writeDataPoint({
|
|
113
|
+
indexes: [customerName],
|
|
114
|
+
blobs: ["cpu_limit_exceeded"],
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### GraphQL
|
|
119
|
+
```graphql
|
|
120
|
+
query {
|
|
121
|
+
viewer {
|
|
122
|
+
accounts(filter: {accountTag: $accountId}) {
|
|
123
|
+
workersInvocationsAdaptive(filter: {dispatchNamespaceName: "production"}) {
|
|
124
|
+
sum { requests errors cpuTime }
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Use Case Implementations
|
|
132
|
+
|
|
133
|
+
### AI Code Execution
|
|
134
|
+
```typescript
|
|
135
|
+
async function deployGeneratedCode(name: string, code: string) {
|
|
136
|
+
const file = new File([code], `${name}.mjs`, { type: "application/javascript+module" });
|
|
137
|
+
await client.workersForPlatforms.dispatch.namespaces.scripts.update("production", name, {
|
|
138
|
+
account_id: accountId,
|
|
139
|
+
metadata: { main_module: `${name}.mjs`, tags: [name, "ai-generated"] },
|
|
140
|
+
files: [file],
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Short limits for untrusted code
|
|
145
|
+
const userWorker = env.DISPATCHER.get(sessionId, {}, { limits: { cpuMs: 5, subRequests: 3 } });
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**VibeSDK:** For AI-powered code generation + deployment platforms, see [VibeSDK](https://github.com/cloudflare/vibesdk) - handles AI generation, sandbox execution, live preview, and deployment.
|
|
149
|
+
|
|
150
|
+
Reference: [AI Vibe Coding Platform Architecture](https://developers.cloudflare.com/reference-architecture/diagrams/ai/ai-vibe-coding-platform/)
|
|
151
|
+
|
|
152
|
+
### Edge Functions Platform
|
|
153
|
+
```typescript
|
|
154
|
+
// Route: /customer-id/function-name
|
|
155
|
+
const [customerId, functionName] = new URL(request.url).pathname.split("/").filter(Boolean);
|
|
156
|
+
const workerName = `${customerId}-${functionName}`;
|
|
157
|
+
const userWorker = env.DISPATCHER.get(workerName);
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Website Builder
|
|
161
|
+
- Deploy static assets + Worker code
|
|
162
|
+
- See [api.md](./api.md#static-assets) for full implementation
|
|
163
|
+
- Salt hashes for asset isolation
|
|
164
|
+
|
|
165
|
+
## Best Practices
|
|
166
|
+
|
|
167
|
+
### Architecture
|
|
168
|
+
- One namespace per environment (production, staging)
|
|
169
|
+
- Platform logic in dispatch Worker (auth, rate limiting, validation)
|
|
170
|
+
- Isolation automatic (no shared cache, untrusted mode)
|
|
171
|
+
|
|
172
|
+
### Routing
|
|
173
|
+
- Use `*/*` wildcard routes
|
|
174
|
+
- Store mappings in KV
|
|
175
|
+
- Handle missing Workers gracefully
|
|
176
|
+
|
|
177
|
+
### Limits & Security
|
|
178
|
+
- Set custom limits by plan
|
|
179
|
+
- Track violations with Analytics Engine
|
|
180
|
+
- Use outbound Workers for egress control
|
|
181
|
+
- Sanitize responses
|
|
182
|
+
|
|
183
|
+
### Tags
|
|
184
|
+
- Tag all Workers: customer ID, plan, environment
|
|
185
|
+
- Enable bulk operations
|
|
186
|
+
- Filter efficiently
|
|
187
|
+
|
|
188
|
+
See [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [gotchas.md](./gotchas.md)
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Cloudflare Workers Playground Skill Reference
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Cloudflare Workers Playground is a browser-based sandbox for instantly experimenting with, testing, and deploying Cloudflare Workers without authentication or setup. This skill provides patterns, APIs, and best practices specifically for Workers Playground development.
|
|
6
|
+
|
|
7
|
+
**URL:** [workers.cloudflare.com/playground](https://workers.cloudflare.com/playground)
|
|
8
|
+
|
|
9
|
+
## ⚠️ Playground Constraints
|
|
10
|
+
|
|
11
|
+
**Playground is NOT production-equivalent:**
|
|
12
|
+
- ✅ Real Workers runtime, instant testing, shareable URLs
|
|
13
|
+
- ❌ No TypeScript (JavaScript only)
|
|
14
|
+
- ❌ No bindings (KV, D1, R2, Durable Objects)
|
|
15
|
+
- ❌ No environment variables or secrets
|
|
16
|
+
- ❌ ES modules only (no Service Worker format)
|
|
17
|
+
- ⚠️ Safari broken (use Chrome/Firefox)
|
|
18
|
+
|
|
19
|
+
**For production:** Use `wrangler` CLI. Playground is for rapid prototyping.
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
Minimal Worker:
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
export default {
|
|
27
|
+
async fetch(request, env, ctx) {
|
|
28
|
+
return new Response('Hello World');
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
JSON API:
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
export default {
|
|
37
|
+
async fetch(request, env, ctx) {
|
|
38
|
+
const data = { message: 'Hello', timestamp: Date.now() };
|
|
39
|
+
return Response.json(data);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Proxy with modification:
|
|
45
|
+
|
|
46
|
+
```javascript
|
|
47
|
+
export default {
|
|
48
|
+
async fetch(request, env, ctx) {
|
|
49
|
+
const response = await fetch('https://example.com');
|
|
50
|
+
const modified = new Response(response.body, response);
|
|
51
|
+
modified.headers.set('X-Custom-Header', 'added-by-worker');
|
|
52
|
+
return modified;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Import from CDN:
|
|
58
|
+
|
|
59
|
+
```javascript
|
|
60
|
+
import { Hono } from 'https://esm.sh/hono@3';
|
|
61
|
+
|
|
62
|
+
export default {
|
|
63
|
+
async fetch(request) {
|
|
64
|
+
const app = new Hono();
|
|
65
|
+
app.get('/', (c) => c.text('Hello Hono!'));
|
|
66
|
+
return app.fetch(request);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Reading Order
|
|
72
|
+
|
|
73
|
+
1. **[configuration.md](configuration.md)** - Start here: playground setup, constraints, deployment
|
|
74
|
+
2. **[api.md](api.md)** - Core APIs: Request, Response, ExecutionContext, fetch, Cache
|
|
75
|
+
3. **[patterns.md](patterns.md)** - Common use cases: routing, proxying, A/B testing, multi-module code
|
|
76
|
+
4. **[gotchas.md](gotchas.md)** - Troubleshooting: errors, browser issues, limits, best practices
|
|
77
|
+
|
|
78
|
+
## In This Reference
|
|
79
|
+
|
|
80
|
+
- **[configuration.md](configuration.md)** - Setup, deployment, configuration
|
|
81
|
+
- **[api.md](api.md)** - API endpoints, methods, interfaces
|
|
82
|
+
- **[patterns.md](patterns.md)** - Common patterns, use cases, examples
|
|
83
|
+
- **[gotchas.md](gotchas.md)** - Troubleshooting, best practices, limitations
|
|
84
|
+
|
|
85
|
+
## Key Features
|
|
86
|
+
|
|
87
|
+
**No Setup Required:**
|
|
88
|
+
- Open URL and start coding
|
|
89
|
+
- No CLI, no account, no config files
|
|
90
|
+
- Code executes in real Cloudflare Workers runtime
|
|
91
|
+
|
|
92
|
+
**Instant Preview:**
|
|
93
|
+
- Live preview pane with browser tab or HTTP tester
|
|
94
|
+
- Auto-reload on code changes
|
|
95
|
+
- DevTools integration (right-click → Inspect)
|
|
96
|
+
|
|
97
|
+
**Share & Deploy:**
|
|
98
|
+
- Copy Link generates permanent shareable URL
|
|
99
|
+
- Deploy button publishes to production in ~30 seconds
|
|
100
|
+
- Get `*.workers.dev` subdomain immediately
|
|
101
|
+
|
|
102
|
+
## Common Use Cases
|
|
103
|
+
|
|
104
|
+
- **API development:** Test endpoints before wrangler setup
|
|
105
|
+
- **Learning Workers:** Experiment with APIs without local environment
|
|
106
|
+
- **Prototyping:** Quick POCs for edge logic
|
|
107
|
+
- **Sharing examples:** Generate shareable links for bug reports or demos
|
|
108
|
+
- **Framework testing:** Import from CDN (Hono, itty-router, etc.)
|
|
109
|
+
|
|
110
|
+
## Limitations vs Production
|
|
111
|
+
|
|
112
|
+
| Feature | Playground | Production (wrangler) |
|
|
113
|
+
|---------|------------|----------------------|
|
|
114
|
+
| Language | JavaScript only | JS + TypeScript |
|
|
115
|
+
| Bindings | None | KV, D1, R2, DO, AI, etc. |
|
|
116
|
+
| Environment vars | None | Full support |
|
|
117
|
+
| Module format | ES only | ES + Service Worker |
|
|
118
|
+
| CPU time | 10ms (Free plan) | 10ms Free / 50ms Paid |
|
|
119
|
+
| Custom domains | No | Yes |
|
|
120
|
+
| Analytics | No | Yes |
|
|
121
|
+
|
|
122
|
+
## See Also
|
|
123
|
+
|
|
124
|
+
- [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
|
|
125
|
+
- [Workers Examples](https://developers.cloudflare.com/workers/examples/)
|
|
126
|
+
- [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/)
|
|
127
|
+
- [Workers API Reference](https://developers.cloudflare.com/workers/runtime-apis/)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Workers Playground API
|
|
2
|
+
|
|
3
|
+
## Handler
|
|
4
|
+
|
|
5
|
+
```javascript
|
|
6
|
+
export default {
|
|
7
|
+
async fetch(request, env, ctx) {
|
|
8
|
+
// request: Request, env: {} (empty in playground), ctx: ExecutionContext
|
|
9
|
+
return new Response('Hello');
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Request
|
|
15
|
+
|
|
16
|
+
```javascript
|
|
17
|
+
const method = request.method; // "GET", "POST"
|
|
18
|
+
const url = new URL(request.url); // Parse URL
|
|
19
|
+
const headers = request.headers; // Headers object
|
|
20
|
+
const body = await request.json(); // Read body (consumes stream)
|
|
21
|
+
const clone = request.clone(); // Clone before reading body
|
|
22
|
+
|
|
23
|
+
// Query params
|
|
24
|
+
url.searchParams.get('page'); // Single value
|
|
25
|
+
url.searchParams.getAll('tag'); // Array
|
|
26
|
+
|
|
27
|
+
// Cloudflare metadata
|
|
28
|
+
request.cf.country; // "US"
|
|
29
|
+
request.cf.colo; // "SFO"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Response
|
|
33
|
+
|
|
34
|
+
```javascript
|
|
35
|
+
// Text
|
|
36
|
+
return new Response('Hello', { status: 200 });
|
|
37
|
+
|
|
38
|
+
// JSON
|
|
39
|
+
return Response.json({ data }, { status: 200, headers: {...} });
|
|
40
|
+
|
|
41
|
+
// Redirect
|
|
42
|
+
return Response.redirect('/new-path', 301);
|
|
43
|
+
|
|
44
|
+
// Modify existing
|
|
45
|
+
const modified = new Response(response.body, response);
|
|
46
|
+
modified.headers.set('X-Custom', 'value');
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## ExecutionContext
|
|
50
|
+
|
|
51
|
+
```javascript
|
|
52
|
+
// Background work (after response sent)
|
|
53
|
+
ctx.waitUntil(fetch('https://logs.example.com', { method: 'POST', body: '...' }));
|
|
54
|
+
return new Response('OK'); // Returns immediately
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Fetch
|
|
58
|
+
|
|
59
|
+
```javascript
|
|
60
|
+
const response = await fetch('https://api.example.com');
|
|
61
|
+
const data = await response.json();
|
|
62
|
+
|
|
63
|
+
// With options
|
|
64
|
+
await fetch(url, {
|
|
65
|
+
method: 'POST',
|
|
66
|
+
headers: { 'Content-Type': 'application/json' },
|
|
67
|
+
body: JSON.stringify({ name: 'Alice' })
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Cache
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
const cache = caches.default;
|
|
75
|
+
|
|
76
|
+
// Check cache
|
|
77
|
+
let response = await cache.match(request);
|
|
78
|
+
if (!response) {
|
|
79
|
+
response = await fetch(origin);
|
|
80
|
+
await cache.put(request, response.clone()); // Clone before put!
|
|
81
|
+
}
|
|
82
|
+
return response;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Crypto
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
crypto.randomUUID(); // UUID v4
|
|
89
|
+
crypto.getRandomValues(new Uint8Array(16));
|
|
90
|
+
|
|
91
|
+
// SHA-256 hash
|
|
92
|
+
const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(data));
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Limits (Playground = Free Plan)
|
|
96
|
+
|
|
97
|
+
| Resource | Limit |
|
|
98
|
+
|----------|-------|
|
|
99
|
+
| CPU time | 10ms |
|
|
100
|
+
| Subrequests | 50 |
|
|
101
|
+
| Memory | 128 MB |
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
## Getting Started
|
|
4
|
+
|
|
5
|
+
Navigate to [workers.cloudflare.com/playground](https://workers.cloudflare.com/playground)
|
|
6
|
+
|
|
7
|
+
- **No account required** for testing
|
|
8
|
+
- **No CLI or local setup** needed
|
|
9
|
+
- Code executes in real Cloudflare Workers runtime
|
|
10
|
+
- Share code via URL (never expires)
|
|
11
|
+
|
|
12
|
+
## Playground Constraints
|
|
13
|
+
|
|
14
|
+
⚠️ **Important Limitations**
|
|
15
|
+
|
|
16
|
+
| Constraint | Playground | Production Workers |
|
|
17
|
+
|------------|------------|-------------------|
|
|
18
|
+
| **Module Format** | ES modules only | ES modules or Service Worker |
|
|
19
|
+
| **TypeScript** | Not supported (JS only) | Supported via build step |
|
|
20
|
+
| **Bindings** | Not available | KV, D1, R2, Durable Objects, etc. |
|
|
21
|
+
| **wrangler.toml** | Not used | Required for config |
|
|
22
|
+
| **Environment Variables** | Not available | Full support |
|
|
23
|
+
| **Secrets** | Not available | Full support |
|
|
24
|
+
| **Custom Domains** | Not available | Full support |
|
|
25
|
+
|
|
26
|
+
**Playground is for rapid prototyping only.** For production apps, use `wrangler` CLI.
|
|
27
|
+
|
|
28
|
+
## Code Editor
|
|
29
|
+
|
|
30
|
+
### Syntax Requirements
|
|
31
|
+
|
|
32
|
+
Must export default object with `fetch` handler:
|
|
33
|
+
|
|
34
|
+
```javascript
|
|
35
|
+
export default {
|
|
36
|
+
async fetch(request, env, ctx) {
|
|
37
|
+
return new Response('Hello World');
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Key Points:**
|
|
43
|
+
- Must use ES modules (`export default`)
|
|
44
|
+
- `fetch` method receives `(request, env, ctx)`
|
|
45
|
+
- Must return `Response` object
|
|
46
|
+
- TypeScript not supported (use plain JavaScript)
|
|
47
|
+
|
|
48
|
+
### Multi-Module Code
|
|
49
|
+
|
|
50
|
+
Import from external URLs or inline modules:
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
// Import from CDN
|
|
54
|
+
import { Hono } from 'https://esm.sh/hono@3';
|
|
55
|
+
|
|
56
|
+
// Or paste library code and import relatively
|
|
57
|
+
// (See patterns.md for multi-module examples)
|
|
58
|
+
|
|
59
|
+
export default {
|
|
60
|
+
async fetch(request) {
|
|
61
|
+
const app = new Hono();
|
|
62
|
+
app.get('/', (c) => c.text('Hello'));
|
|
63
|
+
return app.fetch(request);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Preview Panel
|
|
69
|
+
|
|
70
|
+
### Browser Tab
|
|
71
|
+
|
|
72
|
+
Default interactive preview with address bar:
|
|
73
|
+
- Enter custom URL paths
|
|
74
|
+
- Automatic reload on code changes
|
|
75
|
+
- DevTools available (right-click → Inspect)
|
|
76
|
+
|
|
77
|
+
### HTTP Test Panel
|
|
78
|
+
|
|
79
|
+
Switch to **HTTP** tab for raw HTTP testing:
|
|
80
|
+
- Change HTTP method (GET, POST, PUT, DELETE, PATCH, etc.)
|
|
81
|
+
- Add/edit request headers
|
|
82
|
+
- Modify request body (JSON, form data, text)
|
|
83
|
+
- View response headers and body
|
|
84
|
+
- Test different content types
|
|
85
|
+
|
|
86
|
+
Example HTTP test:
|
|
87
|
+
```
|
|
88
|
+
Method: POST
|
|
89
|
+
URL: /api/users
|
|
90
|
+
Headers:
|
|
91
|
+
Content-Type: application/json
|
|
92
|
+
Authorization: Bearer token123
|
|
93
|
+
Body:
|
|
94
|
+
{
|
|
95
|
+
"name": "Alice",
|
|
96
|
+
"email": "alice@example.com"
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Sharing Code
|
|
101
|
+
|
|
102
|
+
**Copy Link** button generates shareable URL:
|
|
103
|
+
- Code embedded in URL fragment
|
|
104
|
+
- Links never expire
|
|
105
|
+
- No account required
|
|
106
|
+
- Can be bookmarked for later
|
|
107
|
+
|
|
108
|
+
Example: `https://workers.cloudflare.com/playground#abc123...`
|
|
109
|
+
|
|
110
|
+
## Deploying from Playground
|
|
111
|
+
|
|
112
|
+
Click **Deploy** button to move code to production:
|
|
113
|
+
|
|
114
|
+
1. **Log in** to Cloudflare account (creates free account if needed)
|
|
115
|
+
2. **Review** Worker name and code
|
|
116
|
+
3. **Deploy** to global network (takes ~30 seconds)
|
|
117
|
+
4. **Get URL**: Deployed to `<name>.workers.dev` subdomain
|
|
118
|
+
5. **Manage** from dashboard: add bindings, custom domains, analytics
|
|
119
|
+
|
|
120
|
+
**After deploy:**
|
|
121
|
+
- Code runs on Cloudflare's global network (300+ cities)
|
|
122
|
+
- Can add KV, D1, R2, Durable Objects bindings
|
|
123
|
+
- Configure custom domains and routes
|
|
124
|
+
- View analytics and logs
|
|
125
|
+
- Set environment variables and secrets
|
|
126
|
+
|
|
127
|
+
**Note:** Deployed Workers are production-ready but start on Free plan (100k requests/day).
|
|
128
|
+
|
|
129
|
+
## Browser Compatibility
|
|
130
|
+
|
|
131
|
+
| Browser | Status | Notes |
|
|
132
|
+
|---------|--------|-------|
|
|
133
|
+
| Chrome/Edge | ✅ Full support | Recommended |
|
|
134
|
+
| Firefox | ✅ Full support | Works well |
|
|
135
|
+
| Safari | ⚠️ Broken | Preview fails with "PreviewRequestFailed" |
|
|
136
|
+
|
|
137
|
+
**Safari users:** Use Chrome, Firefox, or Edge for Workers Playground.
|
|
138
|
+
|
|
139
|
+
## DevTools Integration
|
|
140
|
+
|
|
141
|
+
1. **Open preview** in browser tab
|
|
142
|
+
2. **Right-click** → Inspect Element
|
|
143
|
+
3. **Console tab** shows Worker logs:
|
|
144
|
+
- `console.log()` output
|
|
145
|
+
- Uncaught errors
|
|
146
|
+
- Network requests (subrequests)
|
|
147
|
+
|
|
148
|
+
**Note:** DevTools show client-side console, not Worker execution logs. For production logging, use Logpush or Tail Workers.
|
|
149
|
+
|
|
150
|
+
## Limits in Playground
|
|
151
|
+
|
|
152
|
+
Same as production Free plan:
|
|
153
|
+
|
|
154
|
+
| Resource | Limit | Notes |
|
|
155
|
+
|----------|-------|-------|
|
|
156
|
+
| CPU time | 10ms | Per request |
|
|
157
|
+
| Memory | 128 MB | Per request |
|
|
158
|
+
| Script size | 1 MB | After compression |
|
|
159
|
+
| Subrequests | 50 | Outbound fetch calls |
|
|
160
|
+
| Request size | 100 MB | Incoming |
|
|
161
|
+
| Response size | Unlimited | Outgoing (streamed) |
|
|
162
|
+
|
|
163
|
+
**Exceeding CPU time** throws error immediately. Optimize hot paths or upgrade to Paid plan (50ms CPU).
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Workers Playground Gotchas
|
|
2
|
+
|
|
3
|
+
## Platform Limitations
|
|
4
|
+
|
|
5
|
+
| Limitation | Impact | Workaround |
|
|
6
|
+
|------------|--------|------------|
|
|
7
|
+
| Safari broken | Preview fails | Use Chrome/Firefox/Edge |
|
|
8
|
+
| TypeScript unsupported | TS syntax errors | Write plain JS or use JSDoc |
|
|
9
|
+
| No bindings | `env` always `{}` | Mock data or use external APIs |
|
|
10
|
+
| No env vars | Can't access secrets | Hardcode for testing |
|
|
11
|
+
|
|
12
|
+
## Common Runtime Errors
|
|
13
|
+
|
|
14
|
+
### "Response body already read"
|
|
15
|
+
|
|
16
|
+
```javascript
|
|
17
|
+
// ❌ Body consumed twice
|
|
18
|
+
const body = await request.text();
|
|
19
|
+
await fetch(url, { body: request.body }); // Error!
|
|
20
|
+
|
|
21
|
+
// ✅ Clone first
|
|
22
|
+
const clone = request.clone();
|
|
23
|
+
const body = await request.text();
|
|
24
|
+
await fetch(url, { body: clone.body });
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### "Worker exceeded CPU time"
|
|
28
|
+
|
|
29
|
+
**Limit:** 10ms (free), 50ms (paid)
|
|
30
|
+
|
|
31
|
+
```javascript
|
|
32
|
+
// ✅ Move slow work to background
|
|
33
|
+
ctx.waitUntil(fetch('https://analytics.example.com', {...}));
|
|
34
|
+
return new Response('OK'); // Return immediately
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### "Too many subrequests"
|
|
38
|
+
|
|
39
|
+
**Limit:** 50 (free), 1000 (paid)
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
// ❌ 100 individual fetches
|
|
43
|
+
// ✅ Batch into single API call
|
|
44
|
+
await fetch('https://api.example.com/batch', {
|
|
45
|
+
body: JSON.stringify({ ids: [...] })
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
```javascript
|
|
52
|
+
// Clone before caching
|
|
53
|
+
await cache.put(request, response.clone());
|
|
54
|
+
return response;
|
|
55
|
+
|
|
56
|
+
// Validate input early
|
|
57
|
+
if (request.method !== 'POST') return new Response('', { status: 405 });
|
|
58
|
+
|
|
59
|
+
// Handle errors
|
|
60
|
+
try { ... } catch (e) {
|
|
61
|
+
return Response.json({ error: e.message }, { status: 500 });
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Limits
|
|
66
|
+
|
|
67
|
+
| Resource | Free | Paid |
|
|
68
|
+
|----------|------|------|
|
|
69
|
+
| CPU time | 10ms | 50ms |
|
|
70
|
+
| Memory | 128 MB | 128 MB |
|
|
71
|
+
| Subrequests | 50 | 1000 |
|
|
72
|
+
|
|
73
|
+
## Browser Support
|
|
74
|
+
|
|
75
|
+
| Browser | Status |
|
|
76
|
+
|---------|--------|
|
|
77
|
+
| Chrome | ✅ Recommended |
|
|
78
|
+
| Firefox | ✅ Works |
|
|
79
|
+
| Edge | ✅ Works |
|
|
80
|
+
| Safari | ❌ Broken |
|
|
81
|
+
|
|
82
|
+
## Debugging
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
console.log('URL:', request.url); // View in browser DevTools Console
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Note:** `console.log` works in playground. For production, use Logpush or Tail Workers.
|