@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,191 @@
|
|
|
1
|
+
# Common Patterns
|
|
2
|
+
|
|
3
|
+
Practical patterns for R2 Data Catalog with PyIceberg.
|
|
4
|
+
|
|
5
|
+
## PyIceberg Connection
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
import os
|
|
9
|
+
from pyiceberg.catalog.rest import RestCatalog
|
|
10
|
+
from pyiceberg.exceptions import NamespaceAlreadyExistsError
|
|
11
|
+
|
|
12
|
+
catalog = RestCatalog(
|
|
13
|
+
name="r2_catalog",
|
|
14
|
+
warehouse=os.getenv("R2_WAREHOUSE"), # bucket name
|
|
15
|
+
uri=os.getenv("R2_CATALOG_URI"), # catalog endpoint
|
|
16
|
+
token=os.getenv("R2_TOKEN"), # API token
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
# Create namespace (idempotent)
|
|
20
|
+
try:
|
|
21
|
+
catalog.create_namespace("default")
|
|
22
|
+
except NamespaceAlreadyExistsError:
|
|
23
|
+
pass
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Pattern 1: Log Analytics Pipeline
|
|
27
|
+
|
|
28
|
+
Ingest logs incrementally, query by time/level.
|
|
29
|
+
|
|
30
|
+
```python
|
|
31
|
+
import pyarrow as pa
|
|
32
|
+
from datetime import datetime
|
|
33
|
+
from pyiceberg.schema import Schema
|
|
34
|
+
from pyiceberg.types import NestedField, TimestampType, StringType, IntegerType
|
|
35
|
+
from pyiceberg.partitioning import PartitionSpec, PartitionField
|
|
36
|
+
from pyiceberg.transforms import DayTransform
|
|
37
|
+
|
|
38
|
+
# Create partitioned table (once)
|
|
39
|
+
schema = Schema(
|
|
40
|
+
NestedField(1, "timestamp", TimestampType(), required=True),
|
|
41
|
+
NestedField(2, "level", StringType(), required=True),
|
|
42
|
+
NestedField(3, "service", StringType(), required=True),
|
|
43
|
+
NestedField(4, "message", StringType(), required=False),
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
partition_spec = PartitionSpec(
|
|
47
|
+
PartitionField(source_id=1, field_id=1000, transform=DayTransform(), name="day")
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
catalog.create_namespace("logs")
|
|
51
|
+
table = catalog.create_table(("logs", "app_logs"), schema=schema, partition_spec=partition_spec)
|
|
52
|
+
|
|
53
|
+
# Append logs (incremental)
|
|
54
|
+
data = pa.table({
|
|
55
|
+
"timestamp": [datetime(2026, 1, 27, 10, 30, 0)],
|
|
56
|
+
"level": ["ERROR"],
|
|
57
|
+
"service": ["auth-service"],
|
|
58
|
+
"message": ["Failed login"],
|
|
59
|
+
})
|
|
60
|
+
table.append(data)
|
|
61
|
+
|
|
62
|
+
# Query by time + level (leverages partitioning)
|
|
63
|
+
scan = table.scan(row_filter="level = 'ERROR' AND day = '2026-01-27'")
|
|
64
|
+
errors = scan.to_pandas()
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Pattern 2: Time-Travel Queries
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from datetime import datetime, timedelta
|
|
71
|
+
|
|
72
|
+
table = catalog.load_table(("logs", "app_logs"))
|
|
73
|
+
|
|
74
|
+
# Query specific snapshot
|
|
75
|
+
snapshot_id = table.current_snapshot().snapshot_id
|
|
76
|
+
data = table.scan(snapshot_id=snapshot_id).to_pandas()
|
|
77
|
+
|
|
78
|
+
# Query as of timestamp (yesterday)
|
|
79
|
+
yesterday_ms = int((datetime.now() - timedelta(days=1)).timestamp() * 1000)
|
|
80
|
+
data = table.scan(as_of_timestamp=yesterday_ms).to_pandas()
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Pattern 3: Schema Evolution
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from pyiceberg.types import StringType
|
|
87
|
+
|
|
88
|
+
table = catalog.load_table(("users", "profiles"))
|
|
89
|
+
|
|
90
|
+
with table.update_schema() as update:
|
|
91
|
+
update.add_column("email", StringType(), required=False)
|
|
92
|
+
update.rename_column("name", "full_name")
|
|
93
|
+
# Old readers ignore new columns, new readers see nulls for old data
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Pattern 4: Partitioned Tables
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from pyiceberg.partitioning import PartitionSpec, PartitionField
|
|
100
|
+
from pyiceberg.transforms import DayTransform, IdentityTransform
|
|
101
|
+
|
|
102
|
+
# Partition by day + country
|
|
103
|
+
partition_spec = PartitionSpec(
|
|
104
|
+
PartitionField(source_id=1, field_id=1000, transform=DayTransform(), name="day"),
|
|
105
|
+
PartitionField(source_id=2, field_id=1001, transform=IdentityTransform(), name="country"),
|
|
106
|
+
)
|
|
107
|
+
table = catalog.create_table(("events", "user_events"), schema=schema, partition_spec=partition_spec)
|
|
108
|
+
|
|
109
|
+
# Queries prune partitions automatically
|
|
110
|
+
scan = table.scan(row_filter="country = 'US' AND day = '2026-01-27'")
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Pattern 5: Table Maintenance
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
from datetime import datetime, timedelta
|
|
117
|
+
|
|
118
|
+
table = catalog.load_table(("logs", "app_logs"))
|
|
119
|
+
|
|
120
|
+
# Compact → expire → cleanup (in order)
|
|
121
|
+
table.rewrite_data_files(target_file_size_bytes=128 * 1024 * 1024)
|
|
122
|
+
seven_days_ms = int((datetime.now() - timedelta(days=7)).timestamp() * 1000)
|
|
123
|
+
table.expire_snapshots(older_than=seven_days_ms, retain_last=10)
|
|
124
|
+
three_days_ms = int((datetime.now() - timedelta(days=3)).timestamp() * 1000)
|
|
125
|
+
table.delete_orphan_files(older_than=three_days_ms)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
See [api.md](api.md#table-maintenance) for detailed parameters.
|
|
129
|
+
|
|
130
|
+
## Pattern 6: Concurrent Writes with Retry
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
from pyiceberg.exceptions import CommitFailedException
|
|
134
|
+
import time
|
|
135
|
+
|
|
136
|
+
def append_with_retry(table, data, max_retries=3):
|
|
137
|
+
for attempt in range(max_retries):
|
|
138
|
+
try:
|
|
139
|
+
table.append(data)
|
|
140
|
+
return
|
|
141
|
+
except CommitFailedException:
|
|
142
|
+
if attempt == max_retries - 1:
|
|
143
|
+
raise
|
|
144
|
+
time.sleep(2 ** attempt)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Pattern 7: Upsert Simulation
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
import pandas as pd
|
|
151
|
+
import pyarrow as pa
|
|
152
|
+
|
|
153
|
+
# Read → merge → overwrite (not atomic, use Spark MERGE INTO for production)
|
|
154
|
+
existing = table.scan().to_pandas()
|
|
155
|
+
new_data = pd.DataFrame({"id": [1, 3], "value": [100, 300]})
|
|
156
|
+
merged = pd.concat([existing, new_data]).drop_duplicates(subset=["id"], keep="last")
|
|
157
|
+
table.overwrite(pa.Table.from_pandas(merged))
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Pattern 8: DuckDB Integration
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
import duckdb
|
|
164
|
+
|
|
165
|
+
arrow_table = table.scan().to_arrow()
|
|
166
|
+
con = duckdb.connect()
|
|
167
|
+
con.register("logs", arrow_table)
|
|
168
|
+
result = con.execute("SELECT level, COUNT(*) FROM logs GROUP BY level").fetchdf()
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Pattern 9: Monitor Table Health
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
files = table.scan().plan_files()
|
|
175
|
+
avg_mb = sum(f.file_size_in_bytes for f in files) / len(files) / (1024**2)
|
|
176
|
+
print(f"Files: {len(files)}, Avg: {avg_mb:.1f}MB, Snapshots: {len(table.snapshots())}")
|
|
177
|
+
|
|
178
|
+
if avg_mb < 10 or len(files) > 1000:
|
|
179
|
+
print("⚠️ Needs compaction")
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Best Practices
|
|
183
|
+
|
|
184
|
+
| Area | Guideline |
|
|
185
|
+
|------|-----------|
|
|
186
|
+
| **Partitioning** | Use day/hour for time-series; 100-1000 partitions; avoid high cardinality |
|
|
187
|
+
| **File sizes** | Target 128-512MB; compact when avg <10MB or >10k files |
|
|
188
|
+
| **Schema** | Add columns as nullable (`required=False`); batch changes |
|
|
189
|
+
| **Maintenance** | Compact high-write daily/weekly; expire snapshots 7-30d; cleanup orphans after |
|
|
190
|
+
| **Concurrency** | Reads automatic; writes to different partitions safe; retry same partition |
|
|
191
|
+
| **Performance** | Filter on partitions; select only needed columns; batch appends 100MB+ |
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Cloudflare R2 SQL Skill Reference
|
|
2
|
+
|
|
3
|
+
Expert guidance for Cloudflare R2 SQL - serverless distributed query engine for Apache Iceberg tables.
|
|
4
|
+
|
|
5
|
+
## Reading Order
|
|
6
|
+
|
|
7
|
+
**New to R2 SQL?** Start here:
|
|
8
|
+
1. Read "What is R2 SQL?" and "When to Use" below
|
|
9
|
+
2. [configuration.md](configuration.md) - Enable catalog, create tokens
|
|
10
|
+
3. [patterns.md](patterns.md) - Wrangler CLI and integration examples
|
|
11
|
+
4. [api.md](api.md) - SQL syntax and query reference
|
|
12
|
+
5. [gotchas.md](gotchas.md) - Limitations and troubleshooting
|
|
13
|
+
|
|
14
|
+
**Quick reference?** Jump to:
|
|
15
|
+
- [Run a query via Wrangler](patterns.md#wrangler-cli-query)
|
|
16
|
+
- [SQL syntax reference](api.md#sql-syntax)
|
|
17
|
+
- [ORDER BY limitations](gotchas.md#order-by-limitations)
|
|
18
|
+
|
|
19
|
+
## What is R2 SQL?
|
|
20
|
+
|
|
21
|
+
R2 SQL is Cloudflare's **serverless distributed analytics query engine** for querying Apache Iceberg tables in R2 Data Catalog. Features:
|
|
22
|
+
|
|
23
|
+
- **Serverless** - No clusters to manage, no infrastructure
|
|
24
|
+
- **Distributed** - Leverages Cloudflare's global network for parallel execution
|
|
25
|
+
- **SQL interface** - Familiar SQL syntax for analytics queries
|
|
26
|
+
- **Zero egress fees** - Query from any cloud/region without data transfer costs
|
|
27
|
+
- **Open beta** - Free during beta (standard R2 storage costs apply)
|
|
28
|
+
|
|
29
|
+
### What is Apache Iceberg?
|
|
30
|
+
|
|
31
|
+
Open table format for large-scale analytics datasets in object storage:
|
|
32
|
+
- **ACID transactions** - Safe concurrent reads/writes
|
|
33
|
+
- **Metadata optimization** - Fast queries without full table scans
|
|
34
|
+
- **Schema evolution** - Add/rename/drop columns without rewrites
|
|
35
|
+
- **Partitioning** - Organize data for efficient pruning
|
|
36
|
+
|
|
37
|
+
## When to Use
|
|
38
|
+
|
|
39
|
+
**Use R2 SQL for:**
|
|
40
|
+
- **Log analytics** - Query application/system logs with WHERE filters and aggregations
|
|
41
|
+
- **BI dashboards** - Generate reports from large analytical datasets
|
|
42
|
+
- **Fraud detection** - Analyze transaction patterns with GROUP BY/HAVING
|
|
43
|
+
- **Multi-cloud analytics** - Query data from any cloud without egress fees
|
|
44
|
+
- **Ad-hoc exploration** - Run SQL queries on Iceberg tables via Wrangler CLI
|
|
45
|
+
|
|
46
|
+
**Don't use R2 SQL for:**
|
|
47
|
+
- **Workers/Pages runtime** - R2 SQL has no Workers binding, use HTTP API from external systems
|
|
48
|
+
- **Real-time queries (<100ms)** - Optimized for analytical batch queries, not OLTP
|
|
49
|
+
- **Complex joins/CTEs** - Limited SQL feature set (no JOINs, subqueries, CTEs currently)
|
|
50
|
+
- **Small datasets (<1GB)** - Setup overhead not justified
|
|
51
|
+
|
|
52
|
+
## Decision Tree: Need to Query R2 Data?
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
Do you need to query structured data in R2?
|
|
56
|
+
├─ YES, data is in Iceberg tables
|
|
57
|
+
│ ├─ Need SQL interface? → Use R2 SQL (this reference)
|
|
58
|
+
│ ├─ Need Python API? → See r2-data-catalog reference (PyIceberg)
|
|
59
|
+
│ └─ Need other engine? → See r2-data-catalog reference (Spark, Trino, etc.)
|
|
60
|
+
│
|
|
61
|
+
├─ YES, but not in Iceberg format
|
|
62
|
+
│ ├─ Streaming data? → Use Pipelines to write to Data Catalog, then R2 SQL
|
|
63
|
+
│ └─ Static files? → Use PyIceberg to create Iceberg tables, then R2 SQL
|
|
64
|
+
│
|
|
65
|
+
└─ NO, just need object storage → Use R2 reference (not R2 SQL)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Architecture Overview
|
|
69
|
+
|
|
70
|
+
**Query Planner:**
|
|
71
|
+
- Top-down metadata investigation with multi-layer pruning
|
|
72
|
+
- Partition-level, column-level, and row-group pruning
|
|
73
|
+
- Streaming pipeline - execution starts before planning completes
|
|
74
|
+
- Early termination with LIMIT - stops when result complete
|
|
75
|
+
|
|
76
|
+
**Query Execution:**
|
|
77
|
+
- Coordinator distributes work to workers across Cloudflare network
|
|
78
|
+
- Workers run Apache DataFusion for parallel query execution
|
|
79
|
+
- Parquet column pruning - reads only required columns
|
|
80
|
+
- Ranged reads from R2 for efficiency
|
|
81
|
+
|
|
82
|
+
**Aggregation Strategies:**
|
|
83
|
+
- Scatter-gather - simple aggregations (SUM, COUNT, AVG)
|
|
84
|
+
- Shuffling - ORDER BY/HAVING on aggregates via hash partitioning
|
|
85
|
+
|
|
86
|
+
## Quick Start
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 1. Enable R2 Data Catalog on bucket
|
|
90
|
+
npx wrangler r2 bucket catalog enable my-bucket
|
|
91
|
+
|
|
92
|
+
# 2. Create API token (Admin Read & Write)
|
|
93
|
+
# Dashboard: R2 → Manage API tokens → Create API token
|
|
94
|
+
|
|
95
|
+
# 3. Set environment variable
|
|
96
|
+
export WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
|
|
97
|
+
|
|
98
|
+
# 4. Run query
|
|
99
|
+
npx wrangler r2 sql query "my-bucket" "SELECT * FROM default.my_table LIMIT 10"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Important Limitations
|
|
103
|
+
|
|
104
|
+
**CRITICAL: No Workers Binding**
|
|
105
|
+
- R2 SQL cannot be called directly from Workers/Pages code
|
|
106
|
+
- For programmatic access, use HTTP API from external systems
|
|
107
|
+
- Or query via PyIceberg, Spark, etc. (see r2-data-catalog reference)
|
|
108
|
+
|
|
109
|
+
**SQL Feature Set:**
|
|
110
|
+
- No JOINs, CTEs, subqueries, window functions
|
|
111
|
+
- ORDER BY supports aggregation columns (not just partition keys)
|
|
112
|
+
- LIMIT max 10,000 (default 500)
|
|
113
|
+
- See [gotchas.md](gotchas.md) for complete limitations
|
|
114
|
+
|
|
115
|
+
## In This Reference
|
|
116
|
+
|
|
117
|
+
- **[configuration.md](configuration.md)** - Enable catalog, create API tokens
|
|
118
|
+
- **[api.md](api.md)** - SQL syntax, functions, operators, data types
|
|
119
|
+
- **[patterns.md](patterns.md)** - Wrangler CLI, HTTP API, Pipelines, PyIceberg
|
|
120
|
+
- **[gotchas.md](gotchas.md)** - Limitations, troubleshooting, performance tips
|
|
121
|
+
|
|
122
|
+
## See Also
|
|
123
|
+
|
|
124
|
+
- [r2-data-catalog](../r2-data-catalog/) - PyIceberg, REST API, external engines
|
|
125
|
+
- [pipelines](../pipelines/) - Streaming ingestion to Iceberg tables
|
|
126
|
+
- [r2](../r2/) - R2 object storage fundamentals
|
|
127
|
+
- [Cloudflare R2 SQL Docs](https://developers.cloudflare.com/r2-sql/)
|
|
128
|
+
- [R2 SQL Deep Dive Blog](https://blog.cloudflare.com/r2-sql-deep-dive/)
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# R2 SQL API Reference
|
|
2
|
+
|
|
3
|
+
SQL syntax, functions, operators, and data types for R2 SQL queries.
|
|
4
|
+
|
|
5
|
+
## SQL Syntax
|
|
6
|
+
|
|
7
|
+
```sql
|
|
8
|
+
SELECT column_list | aggregation_function
|
|
9
|
+
FROM [namespace.]table_name
|
|
10
|
+
WHERE conditions
|
|
11
|
+
[GROUP BY column_list]
|
|
12
|
+
[HAVING conditions]
|
|
13
|
+
[ORDER BY column | aggregation_function [DESC | ASC]]
|
|
14
|
+
[LIMIT number]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Schema Discovery
|
|
18
|
+
|
|
19
|
+
```sql
|
|
20
|
+
SHOW DATABASES; -- List namespaces
|
|
21
|
+
SHOW NAMESPACES; -- Alias for SHOW DATABASES
|
|
22
|
+
SHOW SCHEMAS; -- Alias for SHOW DATABASES
|
|
23
|
+
SHOW TABLES IN namespace; -- List tables in namespace
|
|
24
|
+
DESCRIBE namespace.table; -- Show table schema, partition keys
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## SELECT Clause
|
|
28
|
+
|
|
29
|
+
```sql
|
|
30
|
+
-- All columns
|
|
31
|
+
SELECT * FROM logs.http_requests;
|
|
32
|
+
|
|
33
|
+
-- Specific columns
|
|
34
|
+
SELECT user_id, timestamp, status FROM logs.http_requests;
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Limitations:** No column aliases, expressions, or nested column access
|
|
38
|
+
|
|
39
|
+
## WHERE Clause
|
|
40
|
+
|
|
41
|
+
### Operators
|
|
42
|
+
|
|
43
|
+
| Operator | Example |
|
|
44
|
+
|----------|---------|
|
|
45
|
+
| `=`, `!=`, `<`, `<=`, `>`, `>=` | `status = 200` |
|
|
46
|
+
| `LIKE` | `user_agent LIKE '%Chrome%'` |
|
|
47
|
+
| `BETWEEN` | `timestamp BETWEEN '2025-01-01T00:00:00Z' AND '2025-01-31T23:59:59Z'` |
|
|
48
|
+
| `IS NULL`, `IS NOT NULL` | `email IS NOT NULL` |
|
|
49
|
+
| `AND`, `OR` | `status = 200 AND method = 'GET'` |
|
|
50
|
+
|
|
51
|
+
Use parentheses for precedence: `(status = 404 OR status = 500) AND method = 'POST'`
|
|
52
|
+
|
|
53
|
+
## Aggregation Functions
|
|
54
|
+
|
|
55
|
+
| Function | Description |
|
|
56
|
+
|----------|-------------|
|
|
57
|
+
| `COUNT(*)` | Count all rows |
|
|
58
|
+
| `COUNT(column)` | Count non-null values |
|
|
59
|
+
| `COUNT(DISTINCT column)` | Count unique values |
|
|
60
|
+
| `SUM(column)`, `AVG(column)` | Numeric aggregations |
|
|
61
|
+
| `MIN(column)`, `MAX(column)` | Min/max values |
|
|
62
|
+
|
|
63
|
+
```sql
|
|
64
|
+
-- Multiple aggregations with GROUP BY
|
|
65
|
+
SELECT region, COUNT(*), SUM(amount), AVG(amount)
|
|
66
|
+
FROM sales.transactions
|
|
67
|
+
WHERE sale_date >= '2024-01-01'
|
|
68
|
+
GROUP BY region;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## HAVING Clause
|
|
72
|
+
|
|
73
|
+
Filter aggregated results (after GROUP BY):
|
|
74
|
+
|
|
75
|
+
```sql
|
|
76
|
+
SELECT category, SUM(amount)
|
|
77
|
+
FROM sales.transactions
|
|
78
|
+
GROUP BY category
|
|
79
|
+
HAVING SUM(amount) > 10000;
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## ORDER BY Clause
|
|
83
|
+
|
|
84
|
+
Sort results by:
|
|
85
|
+
- **Partition key columns** - Always supported
|
|
86
|
+
- **Aggregation functions** - Supported via shuffle strategy
|
|
87
|
+
|
|
88
|
+
```sql
|
|
89
|
+
-- Order by partition key
|
|
90
|
+
SELECT * FROM logs.requests ORDER BY timestamp DESC LIMIT 100;
|
|
91
|
+
|
|
92
|
+
-- Order by aggregation (repeat function, aliases not supported)
|
|
93
|
+
SELECT region, SUM(amount)
|
|
94
|
+
FROM sales.transactions
|
|
95
|
+
GROUP BY region
|
|
96
|
+
ORDER BY SUM(amount) DESC;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Limitations:** Cannot order by non-partition columns. See [gotchas.md](gotchas.md#order-by-limitations)
|
|
100
|
+
|
|
101
|
+
## LIMIT Clause
|
|
102
|
+
|
|
103
|
+
```sql
|
|
104
|
+
SELECT * FROM logs.requests LIMIT 100;
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
| Setting | Value |
|
|
108
|
+
|---------|-------|
|
|
109
|
+
| Min | 1 |
|
|
110
|
+
| Max | 10,000 |
|
|
111
|
+
| Default | 500 |
|
|
112
|
+
|
|
113
|
+
**Always use LIMIT** to enable early termination optimization.
|
|
114
|
+
|
|
115
|
+
## Data Types
|
|
116
|
+
|
|
117
|
+
| Type | SQL Literal | Example |
|
|
118
|
+
|------|-------------|---------|
|
|
119
|
+
| `integer` | Unquoted number | `42`, `-10` |
|
|
120
|
+
| `float` | Decimal number | `3.14`, `-0.5` |
|
|
121
|
+
| `string` | Single quotes | `'hello'`, `'GET'` |
|
|
122
|
+
| `boolean` | Keyword | `true`, `false` |
|
|
123
|
+
| `timestamp` | RFC3339 string | `'2025-01-01T00:00:00Z'` |
|
|
124
|
+
| `date` | ISO 8601 date | `'2025-01-01'` |
|
|
125
|
+
|
|
126
|
+
### Type Safety
|
|
127
|
+
|
|
128
|
+
- Quote strings with single quotes: `'value'`
|
|
129
|
+
- Timestamps must be RFC3339: `'2025-01-01T00:00:00Z'` (include timezone)
|
|
130
|
+
- Dates must be ISO 8601: `'2025-01-01'` (YYYY-MM-DD)
|
|
131
|
+
- No implicit conversions
|
|
132
|
+
|
|
133
|
+
```sql
|
|
134
|
+
-- ✅ Correct
|
|
135
|
+
WHERE status = 200 AND method = 'GET' AND timestamp > '2025-01-01T00:00:00Z'
|
|
136
|
+
|
|
137
|
+
-- ❌ Wrong
|
|
138
|
+
WHERE status = '200' -- string instead of integer
|
|
139
|
+
WHERE timestamp > '2025-01-01' -- missing time/timezone
|
|
140
|
+
WHERE method = GET -- unquoted string
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Query Result Format
|
|
144
|
+
|
|
145
|
+
JSON array of objects:
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
[
|
|
149
|
+
{"user_id": "user_123", "timestamp": "2025-01-15T10:30:00Z", "status": 200},
|
|
150
|
+
{"user_id": "user_456", "timestamp": "2025-01-15T10:31:00Z", "status": 404}
|
|
151
|
+
]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## See Also
|
|
155
|
+
|
|
156
|
+
- [patterns.md](patterns.md) - Query examples and use cases
|
|
157
|
+
- [gotchas.md](gotchas.md) - SQL limitations and error handling
|
|
158
|
+
- [configuration.md](configuration.md) - Setup and authentication
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# R2 SQL Configuration
|
|
2
|
+
|
|
3
|
+
Setup and configuration for R2 SQL queries.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- R2 bucket with Data Catalog enabled
|
|
8
|
+
- API token with R2 permissions
|
|
9
|
+
- Wrangler CLI installed (for CLI queries)
|
|
10
|
+
|
|
11
|
+
## Enable R2 Data Catalog
|
|
12
|
+
|
|
13
|
+
R2 SQL queries Apache Iceberg tables in R2 Data Catalog. Must enable catalog on bucket first.
|
|
14
|
+
|
|
15
|
+
### Via Wrangler CLI
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx wrangler r2 bucket catalog enable <bucket-name>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Output includes:
|
|
22
|
+
- **Warehouse name** - Typically same as bucket name
|
|
23
|
+
- **Catalog URI** - REST endpoint for catalog operations
|
|
24
|
+
|
|
25
|
+
Example output:
|
|
26
|
+
```
|
|
27
|
+
Catalog enabled successfully
|
|
28
|
+
Warehouse: my-bucket
|
|
29
|
+
Catalog URI: https://abc123.r2.cloudflarestorage.com/iceberg/my-bucket
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Via Dashboard
|
|
33
|
+
|
|
34
|
+
1. Navigate to **R2 Object Storage** → Select your bucket
|
|
35
|
+
2. Click **Settings** tab
|
|
36
|
+
3. Scroll to **R2 Data Catalog** section
|
|
37
|
+
4. Click **Enable**
|
|
38
|
+
5. Note the **Catalog URI** and **Warehouse** name
|
|
39
|
+
|
|
40
|
+
**Important:** Enabling catalog creates metadata directories in bucket but does not modify existing objects.
|
|
41
|
+
|
|
42
|
+
## Create API Token
|
|
43
|
+
|
|
44
|
+
R2 SQL requires API token with R2 permissions.
|
|
45
|
+
|
|
46
|
+
### Required Permission
|
|
47
|
+
|
|
48
|
+
**R2 Admin Read & Write** (includes R2 SQL Read permission)
|
|
49
|
+
|
|
50
|
+
### Via Dashboard
|
|
51
|
+
|
|
52
|
+
1. Navigate to **R2 Object Storage**
|
|
53
|
+
2. Click **Manage API tokens** (top right)
|
|
54
|
+
3. Click **Create API token**
|
|
55
|
+
4. Select **Admin Read & Write** permission
|
|
56
|
+
5. Click **Create API Token**
|
|
57
|
+
6. **Copy token value** - shown only once
|
|
58
|
+
|
|
59
|
+
### Permission Scope
|
|
60
|
+
|
|
61
|
+
| Permission | Grants Access To |
|
|
62
|
+
|------------|------------------|
|
|
63
|
+
| R2 Admin Read & Write | R2 storage operations + R2 SQL queries + Data Catalog operations |
|
|
64
|
+
| R2 SQL Read | SQL queries only (no storage writes) |
|
|
65
|
+
|
|
66
|
+
**Note:** R2 SQL Read permission not yet available via Dashboard - use Admin Read & Write.
|
|
67
|
+
|
|
68
|
+
## Configure Environment
|
|
69
|
+
|
|
70
|
+
### Wrangler CLI
|
|
71
|
+
|
|
72
|
+
Set environment variable for Wrangler to use:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
export WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Or create `.env` file in project directory:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
WRANGLER_R2_SQL_AUTH_TOKEN=<your-token>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Wrangler automatically loads `.env` file when running commands.
|
|
85
|
+
|
|
86
|
+
### HTTP API
|
|
87
|
+
|
|
88
|
+
For programmatic access (non-Wrangler), pass token in Authorization header:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
curl -X POST https://api.cloudflare.com/client/v4/accounts/{account_id}/r2/sql/query \
|
|
92
|
+
-H "Authorization: Bearer <your-token>" \
|
|
93
|
+
-H "Content-Type: application/json" \
|
|
94
|
+
-d '{
|
|
95
|
+
"warehouse": "my-bucket",
|
|
96
|
+
"query": "SELECT * FROM default.my_table LIMIT 10"
|
|
97
|
+
}'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Note:** HTTP API endpoint URL may vary - see [patterns.md](patterns.md#http-api-query) for current endpoint.
|
|
101
|
+
|
|
102
|
+
## Verify Setup
|
|
103
|
+
|
|
104
|
+
Test configuration by querying system tables:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# List namespaces
|
|
108
|
+
npx wrangler r2 sql query "my-bucket" "SHOW DATABASES"
|
|
109
|
+
|
|
110
|
+
# List tables in namespace
|
|
111
|
+
npx wrangler r2 sql query "my-bucket" "SHOW TABLES IN default"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
If successful, returns JSON array of results.
|
|
115
|
+
|
|
116
|
+
## Troubleshooting
|
|
117
|
+
|
|
118
|
+
### "Token authentication failed"
|
|
119
|
+
|
|
120
|
+
**Cause:** Invalid or missing token
|
|
121
|
+
|
|
122
|
+
**Solution:**
|
|
123
|
+
- Verify `WRANGLER_R2_SQL_AUTH_TOKEN` environment variable set
|
|
124
|
+
- Check token has Admin Read & Write permission
|
|
125
|
+
- Create new token if expired
|
|
126
|
+
|
|
127
|
+
### "Catalog not enabled on bucket"
|
|
128
|
+
|
|
129
|
+
**Cause:** Data Catalog not enabled
|
|
130
|
+
|
|
131
|
+
**Solution:**
|
|
132
|
+
- Run `npx wrangler r2 bucket catalog enable <bucket-name>`
|
|
133
|
+
- Or enable via Dashboard (R2 → bucket → Settings → R2 Data Catalog)
|
|
134
|
+
|
|
135
|
+
### "Permission denied"
|
|
136
|
+
|
|
137
|
+
**Cause:** Token lacks required permissions
|
|
138
|
+
|
|
139
|
+
**Solution:**
|
|
140
|
+
- Verify token has **Admin Read & Write** permission
|
|
141
|
+
- Create new token with correct permissions
|
|
142
|
+
|
|
143
|
+
## See Also
|
|
144
|
+
|
|
145
|
+
- [r2-data-catalog/configuration.md](../r2-data-catalog/configuration.md) - Detailed token setup and PyIceberg connection
|
|
146
|
+
- [patterns.md](patterns.md) - Query examples using configuration
|
|
147
|
+
- [gotchas.md](gotchas.md) - Common configuration errors
|