@mohanscodex/spectra-code 0.4.9 → 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,204 @@
|
|
|
1
|
+
# Common Patterns
|
|
2
|
+
|
|
3
|
+
## List All with Auto-Pagination
|
|
4
|
+
|
|
5
|
+
**Problem:** API returns paginated results. Default page size is 20.
|
|
6
|
+
|
|
7
|
+
**Solution:** Use SDK auto-pagination to iterate all results.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
// TypeScript
|
|
11
|
+
for await (const zone of client.zones.list()) {
|
|
12
|
+
console.log(zone.name);
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
# Python
|
|
18
|
+
for zone in client.zones.list():
|
|
19
|
+
print(zone.name)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```go
|
|
23
|
+
// Go
|
|
24
|
+
iter := client.Zones.ListAutoPaging(ctx, cloudflare.ZoneListParams{})
|
|
25
|
+
for iter.Next() {
|
|
26
|
+
fmt.Println(iter.Current().Name)
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Error Handling with Retry
|
|
31
|
+
|
|
32
|
+
**Problem:** Rate limits (429) and transient errors need retry.
|
|
33
|
+
|
|
34
|
+
**Solution:** SDKs auto-retry with exponential backoff. Customize as needed.
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
// Increase retries for rate-limit-heavy operations
|
|
38
|
+
const client = new Cloudflare({ maxRetries: 5 });
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
const zone = await client.zones.create({ /* ... */ });
|
|
42
|
+
} catch (err) {
|
|
43
|
+
if (err instanceof Cloudflare.RateLimitError) {
|
|
44
|
+
// Already retried 5 times with backoff
|
|
45
|
+
const retryAfter = err.headers['retry-after'];
|
|
46
|
+
console.log(`Rate limited. Retry after ${retryAfter}s`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Batch Parallel Operations
|
|
52
|
+
|
|
53
|
+
**Problem:** Need to create multiple resources quickly.
|
|
54
|
+
|
|
55
|
+
**Solution:** Use `Promise.all()` for parallel requests (respect rate limits).
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
// Create multiple DNS records in parallel
|
|
59
|
+
const records = ['www', 'api', 'cdn'].map(subdomain =>
|
|
60
|
+
client.dns.records.create({
|
|
61
|
+
zone_id: 'zone-id',
|
|
62
|
+
type: 'A',
|
|
63
|
+
name: `${subdomain}.example.com`,
|
|
64
|
+
content: '192.0.2.1',
|
|
65
|
+
})
|
|
66
|
+
);
|
|
67
|
+
await Promise.all(records);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Controlled concurrency** (avoid rate limits):
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
import pLimit from 'p-limit';
|
|
74
|
+
const limit = pLimit(10); // Max 10 concurrent
|
|
75
|
+
|
|
76
|
+
const subdomains = ['www', 'api', 'cdn', /* many more */];
|
|
77
|
+
const records = subdomains.map(subdomain =>
|
|
78
|
+
limit(() => client.dns.records.create({
|
|
79
|
+
zone_id: 'zone-id',
|
|
80
|
+
type: 'A',
|
|
81
|
+
name: `${subdomain}.example.com`,
|
|
82
|
+
content: '192.0.2.1',
|
|
83
|
+
}))
|
|
84
|
+
);
|
|
85
|
+
await Promise.all(records);
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Zone CRUD Workflow
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
// Create
|
|
92
|
+
const zone = await client.zones.create({
|
|
93
|
+
account: { id: 'account-id' },
|
|
94
|
+
name: 'example.com',
|
|
95
|
+
type: 'full',
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// Read
|
|
99
|
+
const fetched = await client.zones.get({ zone_id: zone.id });
|
|
100
|
+
|
|
101
|
+
// Update
|
|
102
|
+
await client.zones.edit(zone.id, { paused: false });
|
|
103
|
+
|
|
104
|
+
// Delete
|
|
105
|
+
await client.zones.delete(zone.id);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## DNS Bulk Update
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
// Fetch all A records
|
|
112
|
+
const records = [];
|
|
113
|
+
for await (const record of client.dns.records.list({
|
|
114
|
+
zone_id: 'zone-id',
|
|
115
|
+
type: 'A',
|
|
116
|
+
})) {
|
|
117
|
+
records.push(record);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Update all to new IP
|
|
121
|
+
await Promise.all(records.map(record =>
|
|
122
|
+
client.dns.records.update({
|
|
123
|
+
zone_id: 'zone-id',
|
|
124
|
+
dns_record_id: record.id,
|
|
125
|
+
type: 'A',
|
|
126
|
+
name: record.name,
|
|
127
|
+
content: '203.0.113.1', // New IP
|
|
128
|
+
proxied: record.proxied,
|
|
129
|
+
ttl: record.ttl,
|
|
130
|
+
})
|
|
131
|
+
));
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Filter and Collect Results
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// Find all proxied A records
|
|
138
|
+
const proxiedRecords = [];
|
|
139
|
+
for await (const record of client.dns.records.list({
|
|
140
|
+
zone_id: 'zone-id',
|
|
141
|
+
type: 'A',
|
|
142
|
+
})) {
|
|
143
|
+
if (record.proxied) {
|
|
144
|
+
proxiedRecords.push(record);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Error Recovery Pattern
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
async function createZoneWithRetry(name: string, maxAttempts = 3) {
|
|
153
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
154
|
+
try {
|
|
155
|
+
return await client.zones.create({
|
|
156
|
+
account: { id: 'account-id' },
|
|
157
|
+
name,
|
|
158
|
+
type: 'full',
|
|
159
|
+
});
|
|
160
|
+
} catch (err) {
|
|
161
|
+
if (err instanceof Cloudflare.RateLimitError && attempt < maxAttempts) {
|
|
162
|
+
const retryAfter = parseInt(err.headers['retry-after'] || '5');
|
|
163
|
+
console.log(`Rate limited, waiting ${retryAfter}s (retry ${attempt}/${maxAttempts})`);
|
|
164
|
+
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
|
|
165
|
+
} else {
|
|
166
|
+
throw err;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Conditional Update Pattern
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
// Only update if zone is active
|
|
177
|
+
const zone = await client.zones.get({ zone_id: 'zone-id' });
|
|
178
|
+
if (zone.status === 'active') {
|
|
179
|
+
await client.zones.edit(zone.id, { paused: false });
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Batch with Error Handling
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
// Process multiple zones, continue on errors
|
|
187
|
+
const results = await Promise.allSettled(
|
|
188
|
+
zoneIds.map(id => client.zones.get({ zone_id: id }))
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
results.forEach((result, i) => {
|
|
192
|
+
if (result.status === 'fulfilled') {
|
|
193
|
+
console.log(`Zone ${i}: ${result.value.name}`);
|
|
194
|
+
} else {
|
|
195
|
+
console.error(`Zone ${i} failed:`, result.reason.message);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## See Also
|
|
201
|
+
|
|
202
|
+
- [api.md](./api.md) - SDK client initialization, basic operations
|
|
203
|
+
- [gotchas.md](./gotchas.md) - Rate limits, common errors
|
|
204
|
+
- [configuration.md](./configuration.md) - SDK configuration options
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Cloudflare API Shield Reference
|
|
2
|
+
|
|
3
|
+
Expert guidance for API Shield - comprehensive API security suite for discovery, protection, and monitoring.
|
|
4
|
+
|
|
5
|
+
## Reading Order
|
|
6
|
+
|
|
7
|
+
| Task | Files to Read |
|
|
8
|
+
|------|---------------|
|
|
9
|
+
| Initial setup | README → configuration.md |
|
|
10
|
+
| Implement JWT validation | configuration.md → api.md |
|
|
11
|
+
| Add schema validation | configuration.md → patterns.md |
|
|
12
|
+
| Detect API attacks | patterns.md → api.md |
|
|
13
|
+
| Debug issues | gotchas.md |
|
|
14
|
+
|
|
15
|
+
## Feature Selection
|
|
16
|
+
|
|
17
|
+
What protection do you need?
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
├─ Validate request/response structure → Schema Validation 2.0 (configuration.md)
|
|
21
|
+
├─ Verify auth tokens → JWT Validation (configuration.md)
|
|
22
|
+
├─ Client certificates → mTLS (configuration.md)
|
|
23
|
+
├─ Detect BOLA attacks → BOLA Detection (patterns.md)
|
|
24
|
+
├─ Track auth coverage → Auth Posture (patterns.md)
|
|
25
|
+
├─ Stop volumetric abuse → Abuse Detection (patterns.md)
|
|
26
|
+
└─ Discover shadow APIs → API Discovery (api.md)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## In This Reference
|
|
30
|
+
|
|
31
|
+
- **[configuration.md](configuration.md)** - Setup, session identifiers, rules, token/mTLS configs
|
|
32
|
+
- **[api.md](api.md)** - Endpoint management, discovery, validation APIs, GraphQL operations
|
|
33
|
+
- **[patterns.md](patterns.md)** - Common patterns, progressive rollout, OWASP mappings, workflows
|
|
34
|
+
- **[gotchas.md](gotchas.md)** - Troubleshooting, false positives, performance, best practices
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
API Shield: Enterprise-grade API security (Discovery, Schema Validation 2.0, JWT, mTLS, BOLA Detection, Auth Posture). Available as Enterprise add-on with preview access.
|
|
39
|
+
|
|
40
|
+
## See Also
|
|
41
|
+
|
|
42
|
+
- [API Shield Docs](https://developers.cloudflare.com/api-shield/)
|
|
43
|
+
- [API Reference](https://developers.cloudflare.com/api/resources/api_gateway/)
|
|
44
|
+
- [OWASP API Security Top 10](https://owasp.org/www-project-api-security/)
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# API Reference
|
|
2
|
+
|
|
3
|
+
Base: `/zones/{zone_id}/api_gateway`
|
|
4
|
+
|
|
5
|
+
## Endpoints
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
GET /operations # List
|
|
9
|
+
GET /operations/{op_id} # Get single
|
|
10
|
+
POST /operations/item # Create: {endpoint,host,method}
|
|
11
|
+
POST /operations # Bulk: {operations:[{endpoint,host,method}]}
|
|
12
|
+
DELETE /operations/{op_id} # Delete
|
|
13
|
+
DELETE /operations # Bulk delete: {operation_ids:[...]}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Discovery
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
GET /discovery/operations # List discovered
|
|
20
|
+
PATCH /discovery/operations/{op_id} # Update: {state:"saved"|"ignored"}
|
|
21
|
+
PATCH /discovery/operations # Bulk: {operation_ids:{id:{state}}}
|
|
22
|
+
GET /discovery # OpenAPI export
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Config
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
GET /configuration # Get session ID config
|
|
29
|
+
PUT /configuration # Update: {auth_id_characteristics:[{name,type:"header"|"cookie"}]}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Token Validation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
GET /token_validation # List
|
|
36
|
+
POST /token_validation # Create: {name,location:{header:"..."},jwks:"..."}
|
|
37
|
+
POST /jwt_validation_rules # Rule: {name,hostname,token_validation_id,action:"block"}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Workers Integration
|
|
41
|
+
|
|
42
|
+
### Access JWT Claims
|
|
43
|
+
```js
|
|
44
|
+
export default {
|
|
45
|
+
async fetch(req, env) {
|
|
46
|
+
// Access validated JWT payload
|
|
47
|
+
const jwt = req.cf?.jwt?.payload?.[env.JWT_CONFIG_ID]?.[0];
|
|
48
|
+
if (jwt) {
|
|
49
|
+
const userId = jwt.sub;
|
|
50
|
+
const role = jwt.role;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Access mTLS Info
|
|
57
|
+
```js
|
|
58
|
+
export default {
|
|
59
|
+
async fetch(req, env) {
|
|
60
|
+
const tls = req.cf?.tlsClientAuth;
|
|
61
|
+
if (tls?.certVerified === 'SUCCESS') {
|
|
62
|
+
const fingerprint = tls.certFingerprintSHA256;
|
|
63
|
+
// Authenticated client
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Dynamic JWKS Update
|
|
70
|
+
```js
|
|
71
|
+
export default {
|
|
72
|
+
async scheduled(event, env) {
|
|
73
|
+
const jwks = await (await fetch('https://auth.example.com/.well-known/jwks.json')).json();
|
|
74
|
+
await fetch(`https://api.cloudflare.com/client/v4/zones/${env.ZONE_ID}/api_gateway/token_validation/${env.CONFIG_ID}`, {
|
|
75
|
+
method: 'PATCH',
|
|
76
|
+
headers: {'Authorization': `Bearer ${env.CF_API_TOKEN}`, 'Content-Type': 'application/json'},
|
|
77
|
+
body: JSON.stringify({jwks: JSON.stringify(jwks)})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Firewall Fields
|
|
84
|
+
|
|
85
|
+
### Core Fields
|
|
86
|
+
```js
|
|
87
|
+
cf.api_gateway.auth_id_present // Session ID present
|
|
88
|
+
cf.api_gateway.request_violates_schema // Schema violation
|
|
89
|
+
cf.api_gateway.fallthrough_triggered // No endpoint match
|
|
90
|
+
cf.tls_client_auth.cert_verified // mTLS cert valid
|
|
91
|
+
cf.tls_client_auth.cert_fingerprint_sha256
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### JWT Validation (2026)
|
|
95
|
+
```js
|
|
96
|
+
// Modern validation syntax
|
|
97
|
+
is_jwt_valid(http.request.jwt.payload["{config_id}"][0])
|
|
98
|
+
|
|
99
|
+
// Legacy (still supported)
|
|
100
|
+
cf.api_gateway.jwt_claims_valid
|
|
101
|
+
|
|
102
|
+
// Extract claims
|
|
103
|
+
lookup_json_string(http.request.jwt.payload["{config_id}"][0], "claim_name")
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Risk Labels (2026)
|
|
107
|
+
```js
|
|
108
|
+
// BOLA detection
|
|
109
|
+
cf.api_gateway.cf-risk-bola-enumeration // Sequential resource access detected
|
|
110
|
+
cf.api_gateway.cf-risk-bola-pollution // Parameter pollution detected
|
|
111
|
+
|
|
112
|
+
// Authentication posture
|
|
113
|
+
cf.api_gateway.cf-risk-missing-auth // Endpoint lacks authentication
|
|
114
|
+
cf.api_gateway.cf-risk-mixed-auth // Inconsistent auth patterns
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## BOLA Detection
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
GET /user_schemas/{schema_id}/bola # Get BOLA config
|
|
121
|
+
PATCH /user_schemas/{schema_id}/bola # Update: {enabled:true}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Auth Posture
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
GET /discovery/authentication_posture # List unprotected endpoints
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## GraphQL Protection
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
GET /settings/graphql_protection # Get limits
|
|
134
|
+
PUT /settings/graphql_protection # Set: {max_depth,max_size}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## See Also
|
|
138
|
+
|
|
139
|
+
- [configuration.md](configuration.md) - Setup guides for all features
|
|
140
|
+
- [patterns.md](patterns.md) - Firewall rules and common patterns
|
|
141
|
+
- [API Gateway API Docs](https://developers.cloudflare.com/api/resources/api_gateway/)
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
## Schema Validation 2.0 Setup
|
|
4
|
+
|
|
5
|
+
> ⚠️ **Classic Schema Validation deprecated.** Use Schema Validation 2.0.
|
|
6
|
+
|
|
7
|
+
**Upload schema (Dashboard):**
|
|
8
|
+
```
|
|
9
|
+
Security > API Shield > Schema Validation > Add validation
|
|
10
|
+
- Upload .yml/.yaml/.json (OpenAPI v3.0)
|
|
11
|
+
- Endpoints auto-added to Endpoint Management
|
|
12
|
+
- Action: Log | Block | None
|
|
13
|
+
- Body inspection: JSON payloads
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Change validation action:**
|
|
17
|
+
```
|
|
18
|
+
Security > API Shield > Settings > Schema Validation
|
|
19
|
+
Per-endpoint: Filter → ellipses → Change action
|
|
20
|
+
Default action: Set global mitigation action
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Migration from Classic:**
|
|
24
|
+
```
|
|
25
|
+
1. Export existing schema (if available)
|
|
26
|
+
2. Delete all Classic schema validation rules
|
|
27
|
+
3. Wait 5 min for cache clear
|
|
28
|
+
4. Re-upload via Schema Validation 2.0 interface
|
|
29
|
+
5. Verify in Security > Events
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Fallthrough rule** (catch-all unknown endpoints):
|
|
33
|
+
```
|
|
34
|
+
Security > API Shield > Settings > Fallthrough > Use Template
|
|
35
|
+
- Select hostnames
|
|
36
|
+
- Create rule with cf.api_gateway.fallthrough_triggered
|
|
37
|
+
- Action: Log (discover) or Block (strict)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Body inspection:** Supports `application/json`, `*/*`, `application/*`. Disable origin MIME sniffing to prevent bypasses.
|
|
41
|
+
|
|
42
|
+
## JWT Validation
|
|
43
|
+
|
|
44
|
+
**Setup token config:**
|
|
45
|
+
```
|
|
46
|
+
Security > API Shield > Settings > JWT Settings > Add configuration
|
|
47
|
+
- Name: "Auth0 JWT Config"
|
|
48
|
+
- Location: Header/Cookie + name (e.g., "Authorization")
|
|
49
|
+
- JWKS: Paste public keys from IdP
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Create validation rule:**
|
|
53
|
+
```
|
|
54
|
+
Security > API Shield > API Rules > Add rule
|
|
55
|
+
- Hostname: api.example.com
|
|
56
|
+
- Deselect endpoints to ignore
|
|
57
|
+
- Token config: Select config
|
|
58
|
+
- Enforce presence: Ignore or Mark as non-compliant
|
|
59
|
+
- Action: Log/Block/Challenge
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Rate limit by JWT claim:**
|
|
63
|
+
```wirefilter
|
|
64
|
+
lookup_json_string(http.request.jwt.claims["{config_id}"][0], "sub")
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Special cases:**
|
|
68
|
+
- Two JWTs, different IdPs: Create 2 configs, select both, "Validate all"
|
|
69
|
+
- IdP migration: 2 configs + 2 rules, adjust actions per state
|
|
70
|
+
- Bearer prefix: API Shield handles with/without
|
|
71
|
+
- Nested claims: Dot notation `user.email`
|
|
72
|
+
|
|
73
|
+
## Mutual TLS (mTLS)
|
|
74
|
+
|
|
75
|
+
**Setup:**
|
|
76
|
+
```
|
|
77
|
+
SSL/TLS > Client Certificates > Create Certificate
|
|
78
|
+
- Generate CF-managed CA (all plans)
|
|
79
|
+
- Upload custom CA (Enterprise, max 5)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Configure mTLS rule:**
|
|
83
|
+
```
|
|
84
|
+
Security > API Shield > mTLS
|
|
85
|
+
- Select hostname(s)
|
|
86
|
+
- Choose certificate(s)
|
|
87
|
+
- Action: Block/Log/Challenge
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Test:**
|
|
91
|
+
```bash
|
|
92
|
+
openssl req -x509 -newkey rsa:4096 -keyout client-key.pem -out client-cert.pem -days 365
|
|
93
|
+
curl https://api.example.com/endpoint --cert client-cert.pem --key client-key.pem
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Session Identifiers
|
|
97
|
+
|
|
98
|
+
Critical for BOLA Detection, Sequence Mitigation, and analytics. Configure header/cookie that uniquely IDs API users.
|
|
99
|
+
|
|
100
|
+
**Examples:** JWT sub claim, session token, API key, custom user ID header
|
|
101
|
+
|
|
102
|
+
**Configure:**
|
|
103
|
+
```
|
|
104
|
+
Security > API Shield > Settings > Session Identifiers
|
|
105
|
+
- Type: Header/Cookie
|
|
106
|
+
- Name: "X-User-ID" or "Authorization"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## BOLA Detection
|
|
110
|
+
|
|
111
|
+
Detects Broken Object Level Authorization attacks (enumeration + parameter pollution).
|
|
112
|
+
|
|
113
|
+
**Enable:**
|
|
114
|
+
```
|
|
115
|
+
Security > API Shield > Schema Validation > [Select Schema] > BOLA Detection
|
|
116
|
+
- Enable detection
|
|
117
|
+
- Threshold: Sensitivity level (Low/Medium/High)
|
|
118
|
+
- Action: Log or Block
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Requirements:**
|
|
122
|
+
- Schema Validation 2.0 enabled
|
|
123
|
+
- Session identifiers configured
|
|
124
|
+
- Minimum traffic: 1000+ requests/day per endpoint
|
|
125
|
+
|
|
126
|
+
## Authentication Posture
|
|
127
|
+
|
|
128
|
+
Identifies unprotected or inconsistently protected endpoints.
|
|
129
|
+
|
|
130
|
+
**View report:**
|
|
131
|
+
```
|
|
132
|
+
Security > API Shield > Authentication Posture
|
|
133
|
+
- Shows endpoints lacking JWT/mTLS
|
|
134
|
+
- Highlights mixed authentication patterns
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Remediate:**
|
|
138
|
+
1. Review flagged endpoints
|
|
139
|
+
2. Add JWT validation rules
|
|
140
|
+
3. Configure mTLS for sensitive endpoints
|
|
141
|
+
4. Monitor posture score
|
|
142
|
+
|
|
143
|
+
## Volumetric Abuse + GraphQL
|
|
144
|
+
|
|
145
|
+
**Volumetric Abuse Detection:**
|
|
146
|
+
`Security > API Shield > Settings > Volumetric Abuse Detection`
|
|
147
|
+
- Enable per-endpoint monitoring, set thresholds, action: Log | Challenge | Block
|
|
148
|
+
|
|
149
|
+
**GraphQL Protection:**
|
|
150
|
+
`Security > API Shield > Settings > GraphQL Protection`
|
|
151
|
+
- Max query depth: 10, max size: 100KB, block introspection (production)
|
|
152
|
+
|
|
153
|
+
## Terraform
|
|
154
|
+
|
|
155
|
+
```hcl
|
|
156
|
+
# Session identifier
|
|
157
|
+
resource "cloudflare_api_shield" "main" {
|
|
158
|
+
zone_id = var.zone_id
|
|
159
|
+
auth_id_characteristics {
|
|
160
|
+
type = "header"
|
|
161
|
+
name = "Authorization"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
# Add endpoint
|
|
166
|
+
resource "cloudflare_api_shield_operation" "users_get" {
|
|
167
|
+
zone_id = var.zone_id
|
|
168
|
+
method = "GET"
|
|
169
|
+
host = "api.example.com"
|
|
170
|
+
endpoint = "/api/users/{id}"
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
# JWT validation rule
|
|
174
|
+
resource "cloudflare_ruleset" "jwt_validation" {
|
|
175
|
+
zone_id = var.zone_id
|
|
176
|
+
name = "API JWT Validation"
|
|
177
|
+
kind = "zone"
|
|
178
|
+
phase = "http_request_firewall_custom"
|
|
179
|
+
|
|
180
|
+
rules {
|
|
181
|
+
action = "block"
|
|
182
|
+
expression = "(http.host eq \"api.example.com\" and not is_jwt_valid(http.request.jwt.payload[\"{config_id}\"][0]))"
|
|
183
|
+
description = "Block invalid JWTs"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## See Also
|
|
189
|
+
|
|
190
|
+
- [api.md](api.md) - API endpoints and Workers integration
|
|
191
|
+
- [patterns.md](patterns.md) - Firewall rules and deployment patterns
|
|
192
|
+
- [gotchas.md](gotchas.md) - Troubleshooting and limits
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Gotchas & Troubleshooting
|
|
2
|
+
|
|
3
|
+
## Common Errors
|
|
4
|
+
|
|
5
|
+
### "Schema Validation 2.0 not working after migration"
|
|
6
|
+
|
|
7
|
+
**Cause:** Classic rules still active, conflicting with new system
|
|
8
|
+
**Solution:**
|
|
9
|
+
1. Delete ALL Classic schema validation rules
|
|
10
|
+
2. Clear Cloudflare cache (wait 5 min)
|
|
11
|
+
3. Re-upload schema via new Schema Validation 2.0 interface
|
|
12
|
+
4. Verify in Security > Events
|
|
13
|
+
5. Check action is set (Log/Block)
|
|
14
|
+
|
|
15
|
+
### "Schema validation blocking valid requests"
|
|
16
|
+
|
|
17
|
+
**Cause:** Schema too restrictive, missing fields, or incorrect types
|
|
18
|
+
**Solution:**
|
|
19
|
+
1. Check Firewall Events for violation details
|
|
20
|
+
2. Review schema in Settings
|
|
21
|
+
3. Test schema in Swagger Editor
|
|
22
|
+
4. Use Log mode to validate before blocking
|
|
23
|
+
5. Update schema with correct specifications
|
|
24
|
+
6. Ensure Schema Validation 2.0 (not Classic)
|
|
25
|
+
|
|
26
|
+
### "JWT validation failing"
|
|
27
|
+
|
|
28
|
+
**Cause:** JWKS mismatch with IdP, expired token, wrong header/cookie name, or clock skew
|
|
29
|
+
**Solution:**
|
|
30
|
+
1. Verify JWKS matches IdP configuration
|
|
31
|
+
2. Check token `exp` claim is valid
|
|
32
|
+
3. Confirm header/cookie name matches config
|
|
33
|
+
4. Test token at jwt.io
|
|
34
|
+
5. Account for clock skew (±5 min tolerance)
|
|
35
|
+
6. Use modern syntax: `is_jwt_valid(http.request.jwt.payload["{config_id}"][0])`
|
|
36
|
+
|
|
37
|
+
### "BOLA detection false positives"
|
|
38
|
+
|
|
39
|
+
**Cause:** Legitimate sequential access patterns, bulk operations, or sensitivity too high
|
|
40
|
+
**Solution:**
|
|
41
|
+
1. Review BOLA events in Security > Events
|
|
42
|
+
2. Lower sensitivity threshold (High → Medium → Low)
|
|
43
|
+
3. Exclude legitimate bulk operations from detection
|
|
44
|
+
4. Ensure session identifiers uniquely identify users
|
|
45
|
+
5. Verify minimum traffic requirements met (1000+ req/day)
|
|
46
|
+
|
|
47
|
+
### "Risk labels not appearing in firewall rules"
|
|
48
|
+
|
|
49
|
+
**Cause:** Feature not enabled, insufficient traffic, or missing session identifiers
|
|
50
|
+
**Solution:**
|
|
51
|
+
1. Verify Schema Validation 2.0 enabled
|
|
52
|
+
2. Enable BOLA Detection in schema settings
|
|
53
|
+
3. Configure session identifiers (required for BOLA)
|
|
54
|
+
4. Wait 24-48h for ML model training
|
|
55
|
+
5. Check minimum traffic thresholds met
|
|
56
|
+
|
|
57
|
+
### "Endpoint discovery not finding APIs"
|
|
58
|
+
|
|
59
|
+
**Cause:** Insufficient traffic (<500 reqs/10d), non-2xx responses, Worker direct requests, or incorrect session ID config
|
|
60
|
+
**Solution:** Ensure 500+ requests in 10 days, 2xx responses from edge (not Workers direct), configure session IDs correctly. ML updates daily.
|
|
61
|
+
|
|
62
|
+
### "Sequence detection false positives"
|
|
63
|
+
|
|
64
|
+
**Cause:** Lookback window issues, non-unique session IDs, or model sensitivity
|
|
65
|
+
**Solution:**
|
|
66
|
+
1. Review lookback settings (10 reqs to managed endpoints, 10min window)
|
|
67
|
+
2. Ensure session ID uniqueness per user (not shared tokens)
|
|
68
|
+
3. Adjust positive/negative model balance
|
|
69
|
+
4. Exclude legitimate workflows from detection
|
|
70
|
+
|
|
71
|
+
### "GraphQL protection blocking valid queries"
|
|
72
|
+
|
|
73
|
+
**Cause:** Query depth/size limits too restrictive, complex but legitimate queries
|
|
74
|
+
**Solution:**
|
|
75
|
+
1. Review blocked query patterns in Security > Events
|
|
76
|
+
2. Increase max_depth (default: 10) if needed
|
|
77
|
+
3. Increase max_size (default: 100KB) for complex queries
|
|
78
|
+
4. Whitelist specific query signatures
|
|
79
|
+
5. Use Log mode to tune before blocking
|
|
80
|
+
|
|
81
|
+
### "Token invalid"
|
|
82
|
+
|
|
83
|
+
**Cause:** Configuration error, JWKS mismatch, or expired token
|
|
84
|
+
**Solution:** Verify config matches IdP, update JWKS, check token expiration
|
|
85
|
+
|
|
86
|
+
### "Schema violation"
|
|
87
|
+
|
|
88
|
+
**Cause:** Missing required fields, wrong data types, or spec mismatch
|
|
89
|
+
**Solution:** Review schema against actual requests, ensure all required fields present, validate types match spec
|
|
90
|
+
|
|
91
|
+
### "Fallthrough"
|
|
92
|
+
|
|
93
|
+
**Cause:** Unknown endpoint or pattern mismatch
|
|
94
|
+
**Solution:** Update schema with all endpoints, check path pattern matching
|
|
95
|
+
|
|
96
|
+
### "mTLS failed"
|
|
97
|
+
|
|
98
|
+
**Cause:** Certificate untrusted/expired or wrong CA
|
|
99
|
+
**Solution:** Verify cert chain, check expiration, confirm correct CA uploaded
|
|
100
|
+
|
|
101
|
+
## Limits (2026)
|
|
102
|
+
|
|
103
|
+
| Resource/Limit | Value | Notes |
|
|
104
|
+
|----------------|-------|-------|
|
|
105
|
+
| OpenAPI version | v3.0.x only | No external refs, must be valid |
|
|
106
|
+
| Schema operations | 10K (Enterprise) | Contact for higher limits |
|
|
107
|
+
| JWT validation sources | Headers/cookies only | No query params/body |
|
|
108
|
+
| Endpoint discovery | 500+ reqs/10d | Minimum for ML model |
|
|
109
|
+
| Path normalization | Automatic | `/profile/238` → `/profile/{var1}` |
|
|
110
|
+
| Schema parameters | No `content` field | No object param validation |
|
|
111
|
+
| BOLA detection | 1000+ reqs/day/endpoint | Per-endpoint minimum |
|
|
112
|
+
| Session ID uniqueness | Required | BOLA/Sequence need unique IDs |
|
|
113
|
+
| GraphQL max depth | 1-50 | Default: 10 |
|
|
114
|
+
| GraphQL max size | 1KB-1MB | Default: 100KB |
|
|
115
|
+
| JWT claim nesting | 10 levels max | Use dot notation |
|
|
116
|
+
| mTLS CA certificates | 5 custom max | CF-managed unlimited |
|
|
117
|
+
| Schema upload size | 5MB max | Compressed OpenAPI spec |
|
|
118
|
+
| Volumetric abuse baseline | 7 days training | Initial ML period |
|
|
119
|
+
| Auth Posture refresh | Daily | Updated nightly |
|
|
120
|
+
|
|
121
|
+
## See Also
|
|
122
|
+
|
|
123
|
+
- [configuration.md](configuration.md) - Setup guides to avoid common issues
|
|
124
|
+
- [patterns.md](patterns.md) - Best practices and progressive rollout
|
|
125
|
+
- [API Shield Docs](https://developers.cloudflare.com/api-shield/)
|