@mohanscodex/spectra-code 0.4.8 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -2
- package/dist/package.json +8 -5
- package/dist/src/agents/definitions/build.d.ts +3 -0
- package/dist/src/agents/definitions/build.d.ts.map +1 -0
- package/dist/src/agents/definitions/build.js +51 -0
- package/dist/src/agents/definitions/build.js.map +1 -0
- package/dist/src/agents/definitions/debug.d.ts +3 -0
- package/dist/src/agents/definitions/debug.d.ts.map +1 -0
- package/dist/src/agents/definitions/debug.js +45 -0
- package/dist/src/agents/definitions/debug.js.map +1 -0
- package/dist/src/agents/definitions/explore.d.ts +3 -0
- package/dist/src/agents/definitions/explore.d.ts.map +1 -0
- package/dist/src/agents/definitions/explore.js +34 -0
- package/dist/src/agents/definitions/explore.js.map +1 -0
- package/dist/src/agents/definitions/index.d.ts +5 -0
- package/dist/src/agents/definitions/index.d.ts.map +1 -0
- package/dist/src/agents/definitions/index.js +19 -0
- package/dist/src/agents/definitions/index.js.map +1 -0
- package/dist/src/agents/definitions/plan.d.ts +3 -0
- package/dist/src/agents/definitions/plan.d.ts.map +1 -0
- package/dist/src/agents/definitions/plan.js +44 -0
- package/dist/src/agents/definitions/plan.js.map +1 -0
- package/dist/src/agents/definitions/title.d.ts +3 -0
- package/dist/src/agents/definitions/title.d.ts.map +1 -0
- package/dist/src/agents/definitions/title.js +34 -0
- package/dist/src/agents/definitions/title.js.map +1 -0
- package/dist/src/agents/index.d.ts +6 -0
- package/dist/src/agents/index.d.ts.map +1 -0
- package/dist/src/agents/index.js +10 -0
- package/dist/src/agents/index.js.map +1 -0
- package/dist/src/agents/types.d.ts +15 -0
- package/dist/src/agents/types.d.ts.map +1 -0
- package/dist/src/agents/types.js +2 -0
- package/dist/src/agents/types.js.map +1 -0
- package/dist/src/cli.js +2 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/session.js +1 -1
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/integrations/acp/server.js +1 -1
- package/dist/src/integrations/acp/server.js.map +1 -1
- package/dist/src/services/prompt-history.d.ts +32 -0
- package/dist/src/services/prompt-history.d.ts.map +1 -0
- package/dist/src/services/prompt-history.js +144 -0
- package/dist/src/services/prompt-history.js.map +1 -0
- package/dist/src/services/snapshot-manager.d.ts +32 -32
- package/dist/src/services/snapshot-manager.d.ts.map +1 -1
- package/dist/src/services/snapshot-manager.js +308 -155
- package/dist/src/services/snapshot-manager.js.map +1 -1
- package/dist/src/tools/edit.d.ts.map +1 -1
- package/dist/src/tools/edit.js +5 -22
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.d.ts.map +1 -1
- package/dist/src/tools/glob.js +2 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.js +2 -2
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/index.d.ts +5 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +30 -1
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/task.js +1 -1
- package/dist/src/tools/task.js.map +1 -1
- package/dist/src/tools/write.d.ts.map +1 -1
- package/dist/src/tools/write.js +7 -4
- package/dist/src/tools/write.js.map +1 -1
- package/dist/src/tui/app-constants.js +1 -1
- package/dist/src/tui/app-constants.js.map +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +35 -15
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/commands.d.ts +15 -0
- package/dist/src/tui/commands.d.ts.map +1 -1
- package/dist/src/tui/commands.js +252 -1
- package/dist/src/tui/commands.js.map +1 -1
- package/dist/src/tui/components/chat-area.d.ts.map +1 -1
- package/dist/src/tui/components/chat-area.js +1 -1
- package/dist/src/tui/components/chat-area.js.map +1 -1
- package/dist/src/tui/components/message.d.ts.map +1 -1
- package/dist/src/tui/components/message.js +79 -4
- package/dist/src/tui/components/message.js.map +1 -1
- package/dist/src/tui/hooks/use-agent.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-agent.js +17 -4
- package/dist/src/tui/hooks/use-agent.js.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.d.ts +4 -5
- package/dist/src/tui/hooks/use-app-keyboard.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.js +23 -24
- package/dist/src/tui/hooks/use-app-keyboard.js.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.d.ts +2 -2
- package/dist/src/tui/hooks/use-chat-submit.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.js +143 -20
- package/dist/src/tui/hooks/use-chat-submit.js.map +1 -1
- package/dist/src/tui/hooks/use-revert.d.ts +3 -5
- package/dist/src/tui/hooks/use-revert.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-revert.js +83 -34
- package/dist/src/tui/hooks/use-revert.js.map +1 -1
- package/dist/src/tui/hooks/use-title-agent.d.ts +13 -0
- package/dist/src/tui/hooks/use-title-agent.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-title-agent.js +50 -0
- package/dist/src/tui/hooks/use-title-agent.js.map +1 -0
- package/dist/src/tui/prompt-bar.d.ts.map +1 -1
- package/dist/src/tui/prompt-bar.js +27 -33
- package/dist/src/tui/prompt-bar.js.map +1 -1
- package/dist/src/tui/theme.d.ts +2 -0
- package/dist/src/tui/theme.d.ts.map +1 -1
- package/dist/src/tui/theme.js +2 -0
- package/dist/src/tui/theme.js.map +1 -1
- package/dist/src/tui/types.d.ts +5 -0
- package/dist/src/tui/types.d.ts.map +1 -1
- package/dist/src/tui/ui/agent-switcher.js +1 -1
- package/dist/src/tui/ui/agent-switcher.js.map +1 -1
- package/dist/src/tui/ui/cost-dialog.d.ts +14 -0
- package/dist/src/tui/ui/cost-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/cost-dialog.js +28 -0
- package/dist/src/tui/ui/cost-dialog.js.map +1 -0
- package/dist/src/tui/ui/debug-dialog.js +1 -1
- package/dist/src/tui/ui/debug-dialog.js.map +1 -1
- package/dist/src/tui/ui/session-list.js +1 -1
- package/dist/src/tui/ui/session-list.js.map +1 -1
- package/dist/src/tui/utils/terminal-title.d.ts +3 -0
- package/dist/src/tui/utils/terminal-title.d.ts.map +1 -0
- package/dist/src/tui/utils/terminal-title.js +14 -0
- package/dist/src/tui/utils/terminal-title.js.map +1 -0
- package/dist/src/tui/utils/version.d.ts +1 -1
- package/dist/src/tui/utils/version.d.ts.map +1 -1
- package/dist/src/tui/utils/version.js +4 -22
- package/dist/src/tui/utils/version.js.map +1 -1
- package/dist/src/utils/paths.d.ts +1 -0
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +13 -0
- package/dist/src/utils/paths.js.map +1 -1
- package/package.json +9 -6
- package/skills/REQUESTS.md +36 -0
- package/skills/architecture/ABOUT.md +20 -0
- package/skills/architecture/preserving-productive-tensions/SKILL.md +152 -0
- package/skills/aspnet-core/LICENSE.txt +202 -0
- package/skills/aspnet-core/SKILL.md +61 -0
- package/skills/aspnet-core/agents/openai.yaml +5 -0
- package/skills/aspnet-core/assets/dotnet-logo.png +0 -0
- package/skills/aspnet-core/references/_sections.md +40 -0
- package/skills/aspnet-core/references/apis-minimal-and-controllers.md +81 -0
- package/skills/aspnet-core/references/data-state-and-services.md +69 -0
- package/skills/aspnet-core/references/program-and-pipeline.md +103 -0
- package/skills/aspnet-core/references/realtime-grpc-and-background-work.md +58 -0
- package/skills/aspnet-core/references/security-and-identity.md +75 -0
- package/skills/aspnet-core/references/source-map.md +43 -0
- package/skills/aspnet-core/references/stack-selection.md +63 -0
- package/skills/aspnet-core/references/testing-performance-and-operations.md +92 -0
- package/skills/aspnet-core/references/ui-blazor.md +53 -0
- package/skills/aspnet-core/references/ui-mvc.md +56 -0
- package/skills/aspnet-core/references/ui-razor-pages.md +55 -0
- package/skills/aspnet-core/references/versioning-and-upgrades.md +51 -0
- package/skills/chatgpt-apps/LICENSE.txt +201 -0
- package/skills/chatgpt-apps/SKILL.md +320 -0
- package/skills/chatgpt-apps/agents/openai.yaml +13 -0
- package/skills/chatgpt-apps/references/app-archetypes.md +132 -0
- package/skills/chatgpt-apps/references/apps-sdk-docs-workflow.md +135 -0
- package/skills/chatgpt-apps/references/interactive-state-sync-patterns.md +113 -0
- package/skills/chatgpt-apps/references/repo-contract-and-validation.md +93 -0
- package/skills/chatgpt-apps/references/search-fetch-standard.md +67 -0
- package/skills/chatgpt-apps/references/upstream-example-workflow.md +79 -0
- package/skills/chatgpt-apps/references/window-openai-patterns.md +70 -0
- package/skills/chatgpt-apps/scripts/scaffold_node_ext_apps.mjs +606 -0
- package/skills/cloudflare-deploy/LICENSE.txt +201 -0
- package/skills/cloudflare-deploy/SKILL.md +224 -0
- package/skills/cloudflare-deploy/agents/openai.yaml +6 -0
- package/skills/cloudflare-deploy/assets/cloudflare-small.svg +3 -0
- package/skills/cloudflare-deploy/assets/cloudflare.png +0 -0
- package/skills/cloudflare-deploy/references/agents-sdk/README.md +89 -0
- package/skills/cloudflare-deploy/references/agents-sdk/api.md +190 -0
- package/skills/cloudflare-deploy/references/agents-sdk/configuration.md +182 -0
- package/skills/cloudflare-deploy/references/agents-sdk/gotchas.md +158 -0
- package/skills/cloudflare-deploy/references/agents-sdk/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/ai-gateway/README.md +175 -0
- package/skills/cloudflare-deploy/references/ai-gateway/configuration.md +111 -0
- package/skills/cloudflare-deploy/references/ai-gateway/dynamic-routing.md +82 -0
- package/skills/cloudflare-deploy/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare-deploy/references/ai-gateway/sdk-integration.md +114 -0
- package/skills/cloudflare-deploy/references/ai-gateway/troubleshooting.md +88 -0
- package/skills/cloudflare-deploy/references/ai-search/README.md +138 -0
- package/skills/cloudflare-deploy/references/ai-search/api.md +87 -0
- package/skills/cloudflare-deploy/references/ai-search/configuration.md +88 -0
- package/skills/cloudflare-deploy/references/ai-search/gotchas.md +81 -0
- package/skills/cloudflare-deploy/references/ai-search/patterns.md +85 -0
- package/skills/cloudflare-deploy/references/analytics-engine/README.md +92 -0
- package/skills/cloudflare-deploy/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare-deploy/references/analytics-engine/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/analytics-engine/gotchas.md +85 -0
- package/skills/cloudflare-deploy/references/analytics-engine/patterns.md +83 -0
- package/skills/cloudflare-deploy/references/api/README.md +65 -0
- package/skills/cloudflare-deploy/references/api/api.md +204 -0
- package/skills/cloudflare-deploy/references/api/configuration.md +160 -0
- package/skills/cloudflare-deploy/references/api/gotchas.md +225 -0
- package/skills/cloudflare-deploy/references/api/patterns.md +204 -0
- package/skills/cloudflare-deploy/references/api-shield/README.md +44 -0
- package/skills/cloudflare-deploy/references/api-shield/api.md +141 -0
- package/skills/cloudflare-deploy/references/api-shield/configuration.md +192 -0
- package/skills/cloudflare-deploy/references/api-shield/gotchas.md +125 -0
- package/skills/cloudflare-deploy/references/api-shield/patterns.md +180 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/README.md +90 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/api.md +240 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/gotchas.md +111 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/patterns.md +104 -0
- package/skills/cloudflare-deploy/references/bindings/README.md +122 -0
- package/skills/cloudflare-deploy/references/bindings/api.md +203 -0
- package/skills/cloudflare-deploy/references/bindings/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/bindings/gotchas.md +208 -0
- package/skills/cloudflare-deploy/references/bindings/patterns.md +200 -0
- package/skills/cloudflare-deploy/references/bot-management/README.md +94 -0
- package/skills/cloudflare-deploy/references/bot-management/api.md +169 -0
- package/skills/cloudflare-deploy/references/bot-management/configuration.md +163 -0
- package/skills/cloudflare-deploy/references/bot-management/gotchas.md +114 -0
- package/skills/cloudflare-deploy/references/bot-management/patterns.md +182 -0
- package/skills/cloudflare-deploy/references/browser-rendering/README.md +78 -0
- package/skills/cloudflare-deploy/references/browser-rendering/api.md +108 -0
- package/skills/cloudflare-deploy/references/browser-rendering/configuration.md +78 -0
- package/skills/cloudflare-deploy/references/browser-rendering/gotchas.md +88 -0
- package/skills/cloudflare-deploy/references/browser-rendering/patterns.md +91 -0
- package/skills/cloudflare-deploy/references/c3/README.md +111 -0
- package/skills/cloudflare-deploy/references/c3/api.md +71 -0
- package/skills/cloudflare-deploy/references/c3/configuration.md +81 -0
- package/skills/cloudflare-deploy/references/c3/gotchas.md +92 -0
- package/skills/cloudflare-deploy/references/c3/patterns.md +82 -0
- package/skills/cloudflare-deploy/references/cache-reserve/README.md +147 -0
- package/skills/cloudflare-deploy/references/cache-reserve/api.md +194 -0
- package/skills/cloudflare-deploy/references/cache-reserve/configuration.md +169 -0
- package/skills/cloudflare-deploy/references/cache-reserve/gotchas.md +132 -0
- package/skills/cloudflare-deploy/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare-deploy/references/containers/README.md +85 -0
- package/skills/cloudflare-deploy/references/containers/api.md +187 -0
- package/skills/cloudflare-deploy/references/containers/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/containers/gotchas.md +178 -0
- package/skills/cloudflare-deploy/references/containers/patterns.md +202 -0
- package/skills/cloudflare-deploy/references/cron-triggers/README.md +99 -0
- package/skills/cloudflare-deploy/references/cron-triggers/api.md +196 -0
- package/skills/cloudflare-deploy/references/cron-triggers/configuration.md +180 -0
- package/skills/cloudflare-deploy/references/cron-triggers/gotchas.md +199 -0
- package/skills/cloudflare-deploy/references/cron-triggers/patterns.md +190 -0
- package/skills/cloudflare-deploy/references/d1/README.md +133 -0
- package/skills/cloudflare-deploy/references/d1/api.md +196 -0
- package/skills/cloudflare-deploy/references/d1/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/d1/gotchas.md +98 -0
- package/skills/cloudflare-deploy/references/d1/patterns.md +189 -0
- package/skills/cloudflare-deploy/references/ddos/README.md +41 -0
- package/skills/cloudflare-deploy/references/ddos/api.md +164 -0
- package/skills/cloudflare-deploy/references/ddos/configuration.md +93 -0
- package/skills/cloudflare-deploy/references/ddos/gotchas.md +107 -0
- package/skills/cloudflare-deploy/references/ddos/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/do-storage/README.md +75 -0
- package/skills/cloudflare-deploy/references/do-storage/api.md +102 -0
- package/skills/cloudflare-deploy/references/do-storage/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/do-storage/gotchas.md +150 -0
- package/skills/cloudflare-deploy/references/do-storage/patterns.md +182 -0
- package/skills/cloudflare-deploy/references/do-storage/testing.md +183 -0
- package/skills/cloudflare-deploy/references/durable-objects/README.md +185 -0
- package/skills/cloudflare-deploy/references/durable-objects/api.md +187 -0
- package/skills/cloudflare-deploy/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare-deploy/references/durable-objects/gotchas.md +197 -0
- package/skills/cloudflare-deploy/references/durable-objects/patterns.md +201 -0
- package/skills/cloudflare-deploy/references/email-routing/README.md +89 -0
- package/skills/cloudflare-deploy/references/email-routing/api.md +195 -0
- package/skills/cloudflare-deploy/references/email-routing/configuration.md +186 -0
- package/skills/cloudflare-deploy/references/email-routing/gotchas.md +196 -0
- package/skills/cloudflare-deploy/references/email-routing/patterns.md +229 -0
- package/skills/cloudflare-deploy/references/email-workers/README.md +151 -0
- package/skills/cloudflare-deploy/references/email-workers/api.md +237 -0
- package/skills/cloudflare-deploy/references/email-workers/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/email-workers/gotchas.md +125 -0
- package/skills/cloudflare-deploy/references/email-workers/patterns.md +102 -0
- package/skills/cloudflare-deploy/references/hyperdrive/README.md +82 -0
- package/skills/cloudflare-deploy/references/hyperdrive/api.md +143 -0
- package/skills/cloudflare-deploy/references/hyperdrive/configuration.md +159 -0
- package/skills/cloudflare-deploy/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare-deploy/references/hyperdrive/patterns.md +190 -0
- package/skills/cloudflare-deploy/references/images/README.md +61 -0
- package/skills/cloudflare-deploy/references/images/api.md +96 -0
- package/skills/cloudflare-deploy/references/images/configuration.md +211 -0
- package/skills/cloudflare-deploy/references/images/gotchas.md +99 -0
- package/skills/cloudflare-deploy/references/images/patterns.md +115 -0
- package/skills/cloudflare-deploy/references/kv/README.md +89 -0
- package/skills/cloudflare-deploy/references/kv/api.md +160 -0
- package/skills/cloudflare-deploy/references/kv/configuration.md +144 -0
- package/skills/cloudflare-deploy/references/kv/gotchas.md +131 -0
- package/skills/cloudflare-deploy/references/kv/patterns.md +196 -0
- package/skills/cloudflare-deploy/references/miniflare/README.md +105 -0
- package/skills/cloudflare-deploy/references/miniflare/api.md +187 -0
- package/skills/cloudflare-deploy/references/miniflare/configuration.md +173 -0
- package/skills/cloudflare-deploy/references/miniflare/gotchas.md +160 -0
- package/skills/cloudflare-deploy/references/miniflare/patterns.md +181 -0
- package/skills/cloudflare-deploy/references/network-interconnect/README.md +99 -0
- package/skills/cloudflare-deploy/references/network-interconnect/api.md +199 -0
- package/skills/cloudflare-deploy/references/network-interconnect/configuration.md +114 -0
- package/skills/cloudflare-deploy/references/network-interconnect/gotchas.md +165 -0
- package/skills/cloudflare-deploy/references/network-interconnect/patterns.md +166 -0
- package/skills/cloudflare-deploy/references/observability/README.md +87 -0
- package/skills/cloudflare-deploy/references/observability/api.md +164 -0
- package/skills/cloudflare-deploy/references/observability/configuration.md +169 -0
- package/skills/cloudflare-deploy/references/observability/gotchas.md +115 -0
- package/skills/cloudflare-deploy/references/observability/patterns.md +105 -0
- package/skills/cloudflare-deploy/references/pages/README.md +88 -0
- package/skills/cloudflare-deploy/references/pages/api.md +204 -0
- package/skills/cloudflare-deploy/references/pages/configuration.md +201 -0
- package/skills/cloudflare-deploy/references/pages/gotchas.md +203 -0
- package/skills/cloudflare-deploy/references/pages/patterns.md +204 -0
- package/skills/cloudflare-deploy/references/pages-functions/README.md +98 -0
- package/skills/cloudflare-deploy/references/pages-functions/api.md +143 -0
- package/skills/cloudflare-deploy/references/pages-functions/configuration.md +122 -0
- package/skills/cloudflare-deploy/references/pages-functions/gotchas.md +94 -0
- package/skills/cloudflare-deploy/references/pages-functions/patterns.md +137 -0
- package/skills/cloudflare-deploy/references/pipelines/README.md +105 -0
- package/skills/cloudflare-deploy/references/pipelines/api.md +208 -0
- package/skills/cloudflare-deploy/references/pipelines/configuration.md +98 -0
- package/skills/cloudflare-deploy/references/pipelines/gotchas.md +80 -0
- package/skills/cloudflare-deploy/references/pipelines/patterns.md +87 -0
- package/skills/cloudflare-deploy/references/pulumi/README.md +100 -0
- package/skills/cloudflare-deploy/references/pulumi/api.md +200 -0
- package/skills/cloudflare-deploy/references/pulumi/configuration.md +198 -0
- package/skills/cloudflare-deploy/references/pulumi/gotchas.md +181 -0
- package/skills/cloudflare-deploy/references/pulumi/patterns.md +191 -0
- package/skills/cloudflare-deploy/references/queues/README.md +96 -0
- package/skills/cloudflare-deploy/references/queues/api.md +206 -0
- package/skills/cloudflare-deploy/references/queues/configuration.md +144 -0
- package/skills/cloudflare-deploy/references/queues/gotchas.md +206 -0
- package/skills/cloudflare-deploy/references/queues/patterns.md +220 -0
- package/skills/cloudflare-deploy/references/r2/README.md +95 -0
- package/skills/cloudflare-deploy/references/r2/api.md +200 -0
- package/skills/cloudflare-deploy/references/r2/configuration.md +165 -0
- package/skills/cloudflare-deploy/references/r2/gotchas.md +190 -0
- package/skills/cloudflare-deploy/references/r2/patterns.md +193 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/README.md +149 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/api.md +199 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/configuration.md +198 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/gotchas.md +170 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/patterns.md +191 -0
- package/skills/cloudflare-deploy/references/r2-sql/README.md +128 -0
- package/skills/cloudflare-deploy/references/r2-sql/api.md +158 -0
- package/skills/cloudflare-deploy/references/r2-sql/configuration.md +147 -0
- package/skills/cloudflare-deploy/references/r2-sql/gotchas.md +212 -0
- package/skills/cloudflare-deploy/references/r2-sql/patterns.md +222 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/README.md +65 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/api.md +158 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/configuration.md +137 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/gotchas.md +133 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/realtimekit/README.md +113 -0
- package/skills/cloudflare-deploy/references/realtimekit/api.md +212 -0
- package/skills/cloudflare-deploy/references/realtimekit/configuration.md +203 -0
- package/skills/cloudflare-deploy/references/realtimekit/gotchas.md +169 -0
- package/skills/cloudflare-deploy/references/realtimekit/patterns.md +223 -0
- package/skills/cloudflare-deploy/references/sandbox/README.md +96 -0
- package/skills/cloudflare-deploy/references/sandbox/api.md +198 -0
- package/skills/cloudflare-deploy/references/sandbox/configuration.md +143 -0
- package/skills/cloudflare-deploy/references/sandbox/gotchas.md +194 -0
- package/skills/cloudflare-deploy/references/sandbox/patterns.md +201 -0
- package/skills/cloudflare-deploy/references/secrets-store/README.md +74 -0
- package/skills/cloudflare-deploy/references/secrets-store/api.md +200 -0
- package/skills/cloudflare-deploy/references/secrets-store/configuration.md +185 -0
- package/skills/cloudflare-deploy/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare-deploy/references/secrets-store/patterns.md +207 -0
- package/skills/cloudflare-deploy/references/smart-placement/README.md +138 -0
- package/skills/cloudflare-deploy/references/smart-placement/api.md +183 -0
- package/skills/cloudflare-deploy/references/smart-placement/configuration.md +196 -0
- package/skills/cloudflare-deploy/references/smart-placement/gotchas.md +174 -0
- package/skills/cloudflare-deploy/references/smart-placement/patterns.md +183 -0
- package/skills/cloudflare-deploy/references/snippets/README.md +68 -0
- package/skills/cloudflare-deploy/references/snippets/api.md +198 -0
- package/skills/cloudflare-deploy/references/snippets/configuration.md +227 -0
- package/skills/cloudflare-deploy/references/snippets/gotchas.md +86 -0
- package/skills/cloudflare-deploy/references/snippets/patterns.md +135 -0
- package/skills/cloudflare-deploy/references/spectrum/README.md +52 -0
- package/skills/cloudflare-deploy/references/spectrum/api.md +181 -0
- package/skills/cloudflare-deploy/references/spectrum/configuration.md +194 -0
- package/skills/cloudflare-deploy/references/spectrum/gotchas.md +145 -0
- package/skills/cloudflare-deploy/references/spectrum/patterns.md +196 -0
- package/skills/cloudflare-deploy/references/static-assets/README.md +65 -0
- package/skills/cloudflare-deploy/references/static-assets/api.md +199 -0
- package/skills/cloudflare-deploy/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare-deploy/references/static-assets/gotchas.md +162 -0
- package/skills/cloudflare-deploy/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare-deploy/references/stream/README.md +114 -0
- package/skills/cloudflare-deploy/references/stream/api-live.md +195 -0
- package/skills/cloudflare-deploy/references/stream/api.md +199 -0
- package/skills/cloudflare-deploy/references/stream/configuration.md +141 -0
- package/skills/cloudflare-deploy/references/stream/gotchas.md +130 -0
- package/skills/cloudflare-deploy/references/stream/patterns.md +184 -0
- package/skills/cloudflare-deploy/references/tail-workers/README.md +89 -0
- package/skills/cloudflare-deploy/references/tail-workers/api.md +200 -0
- package/skills/cloudflare-deploy/references/tail-workers/configuration.md +176 -0
- package/skills/cloudflare-deploy/references/tail-workers/gotchas.md +192 -0
- package/skills/cloudflare-deploy/references/tail-workers/patterns.md +180 -0
- package/skills/cloudflare-deploy/references/terraform/README.md +102 -0
- package/skills/cloudflare-deploy/references/terraform/api.md +178 -0
- package/skills/cloudflare-deploy/references/terraform/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/terraform/gotchas.md +150 -0
- package/skills/cloudflare-deploy/references/terraform/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/tunnel/README.md +129 -0
- package/skills/cloudflare-deploy/references/tunnel/api.md +193 -0
- package/skills/cloudflare-deploy/references/tunnel/configuration.md +157 -0
- package/skills/cloudflare-deploy/references/tunnel/gotchas.md +147 -0
- package/skills/cloudflare-deploy/references/tunnel/networking.md +168 -0
- package/skills/cloudflare-deploy/references/tunnel/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/turn/README.md +82 -0
- package/skills/cloudflare-deploy/references/turn/api.md +239 -0
- package/skills/cloudflare-deploy/references/turn/configuration.md +179 -0
- package/skills/cloudflare-deploy/references/turn/gotchas.md +231 -0
- package/skills/cloudflare-deploy/references/turn/patterns.md +213 -0
- package/skills/cloudflare-deploy/references/turnstile/README.md +99 -0
- package/skills/cloudflare-deploy/references/turnstile/api.md +240 -0
- package/skills/cloudflare-deploy/references/turnstile/configuration.md +222 -0
- package/skills/cloudflare-deploy/references/turnstile/gotchas.md +218 -0
- package/skills/cloudflare-deploy/references/turnstile/patterns.md +193 -0
- package/skills/cloudflare-deploy/references/vectorize/README.md +133 -0
- package/skills/cloudflare-deploy/references/vectorize/api.md +88 -0
- package/skills/cloudflare-deploy/references/vectorize/configuration.md +88 -0
- package/skills/cloudflare-deploy/references/vectorize/gotchas.md +76 -0
- package/skills/cloudflare-deploy/references/vectorize/patterns.md +90 -0
- package/skills/cloudflare-deploy/references/waf/README.md +113 -0
- package/skills/cloudflare-deploy/references/waf/api.md +202 -0
- package/skills/cloudflare-deploy/references/waf/configuration.md +203 -0
- package/skills/cloudflare-deploy/references/waf/gotchas.md +204 -0
- package/skills/cloudflare-deploy/references/waf/patterns.md +197 -0
- package/skills/cloudflare-deploy/references/web-analytics/README.md +140 -0
- package/skills/cloudflare-deploy/references/web-analytics/configuration.md +76 -0
- package/skills/cloudflare-deploy/references/web-analytics/gotchas.md +82 -0
- package/skills/cloudflare-deploy/references/web-analytics/integration.md +60 -0
- package/skills/cloudflare-deploy/references/web-analytics/patterns.md +91 -0
- package/skills/cloudflare-deploy/references/workerd/README.md +78 -0
- package/skills/cloudflare-deploy/references/workerd/api.md +185 -0
- package/skills/cloudflare-deploy/references/workerd/configuration.md +183 -0
- package/skills/cloudflare-deploy/references/workerd/gotchas.md +139 -0
- package/skills/cloudflare-deploy/references/workerd/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/workers/README.md +108 -0
- package/skills/cloudflare-deploy/references/workers/api.md +195 -0
- package/skills/cloudflare-deploy/references/workers/configuration.md +185 -0
- package/skills/cloudflare-deploy/references/workers/frameworks.md +197 -0
- package/skills/cloudflare-deploy/references/workers/gotchas.md +136 -0
- package/skills/cloudflare-deploy/references/workers/patterns.md +198 -0
- package/skills/cloudflare-deploy/references/workers-ai/README.md +197 -0
- package/skills/cloudflare-deploy/references/workers-ai/api.md +112 -0
- package/skills/cloudflare-deploy/references/workers-ai/configuration.md +97 -0
- package/skills/cloudflare-deploy/references/workers-ai/gotchas.md +114 -0
- package/skills/cloudflare-deploy/references/workers-ai/patterns.md +120 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/README.md +89 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/api.md +196 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/configuration.md +167 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/patterns.md +188 -0
- package/skills/cloudflare-deploy/references/workers-playground/README.md +127 -0
- package/skills/cloudflare-deploy/references/workers-playground/api.md +101 -0
- package/skills/cloudflare-deploy/references/workers-playground/configuration.md +163 -0
- package/skills/cloudflare-deploy/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare-deploy/references/workers-playground/patterns.md +132 -0
- package/skills/cloudflare-deploy/references/workers-vpc/README.md +127 -0
- package/skills/cloudflare-deploy/references/workers-vpc/api.md +202 -0
- package/skills/cloudflare-deploy/references/workers-vpc/configuration.md +147 -0
- package/skills/cloudflare-deploy/references/workers-vpc/gotchas.md +167 -0
- package/skills/cloudflare-deploy/references/workers-vpc/patterns.md +209 -0
- package/skills/cloudflare-deploy/references/workflows/README.md +69 -0
- package/skills/cloudflare-deploy/references/workflows/api.md +185 -0
- package/skills/cloudflare-deploy/references/workflows/configuration.md +151 -0
- package/skills/cloudflare-deploy/references/workflows/gotchas.md +97 -0
- package/skills/cloudflare-deploy/references/workflows/patterns.md +175 -0
- package/skills/cloudflare-deploy/references/wrangler/README.md +141 -0
- package/skills/cloudflare-deploy/references/wrangler/api.md +188 -0
- package/skills/cloudflare-deploy/references/wrangler/auth.md +73 -0
- package/skills/cloudflare-deploy/references/wrangler/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/wrangler/gotchas.md +197 -0
- package/skills/cloudflare-deploy/references/wrangler/patterns.md +209 -0
- package/skills/cloudflare-deploy/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
- package/skills/cloudflare-deploy/references/zaraz/README.md +111 -0
- package/skills/cloudflare-deploy/references/zaraz/api.md +112 -0
- package/skills/cloudflare-deploy/references/zaraz/configuration.md +90 -0
- package/skills/cloudflare-deploy/references/zaraz/gotchas.md +81 -0
- package/skills/cloudflare-deploy/references/zaraz/patterns.md +74 -0
- package/skills/collaboration/brainstorming/SKILL.md +75 -0
- package/skills/collaboration/dispatching-parallel-agents/SKILL.md +184 -0
- package/skills/collaboration/executing-plans/SKILL.md +78 -0
- package/skills/collaboration/finishing-a-development-branch/SKILL.md +202 -0
- package/skills/collaboration/phase-prompting/SKILL.md +292 -0
- package/skills/collaboration/receiving-code-review/SKILL.md +211 -0
- package/skills/collaboration/requesting-code-review/SKILL.md +107 -0
- package/skills/collaboration/requesting-code-review/code-reviewer.md +146 -0
- package/skills/collaboration/subagent-driven-development/SKILL.md +188 -0
- package/skills/collaboration/using-git-worktrees/SKILL.md +215 -0
- package/skills/collaboration/writing-plans/SKILL.md +118 -0
- package/skills/debugging/defense-in-depth/SKILL.md +130 -0
- package/skills/debugging/root-cause-tracing/SKILL.md +177 -0
- package/skills/debugging/root-cause-tracing/find-polluter.sh +63 -0
- package/skills/debugging/systematic-debugging/SKILL.md +295 -0
- package/skills/debugging/systematic-debugging/test-academic.md +14 -0
- package/skills/debugging/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/debugging/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/debugging/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/debugging/verification-before-completion/SKILL.md +142 -0
- package/skills/develop-web-game/LICENSE.txt +201 -0
- package/skills/develop-web-game/SKILL.md +149 -0
- package/skills/develop-web-game/agents/openai.yaml +6 -0
- package/skills/develop-web-game/assets/game-small.svg +4 -0
- package/skills/develop-web-game/assets/game.png +0 -0
- package/skills/develop-web-game/references/action_payloads.json +7 -0
- package/skills/develop-web-game/scripts/web_game_playwright_client.js +356 -0
- package/skills/doc/LICENSE.txt +201 -0
- package/skills/doc/SKILL.md +80 -0
- package/skills/doc/agents/openai.yaml +6 -0
- package/skills/doc/assets/doc-small.svg +3 -0
- package/skills/doc/assets/doc.png +0 -0
- package/skills/doc/scripts/render_docx.py +296 -0
- package/skills/figma/LICENSE.txt +202 -0
- package/skills/figma/SKILL.md +42 -0
- package/skills/figma/agents/openai.yaml +14 -0
- package/skills/figma/assets/figma-small.svg +3 -0
- package/skills/figma/assets/figma.png +0 -0
- package/skills/figma/assets/icon.svg +28 -0
- package/skills/figma/references/figma-mcp-config.md +35 -0
- package/skills/figma/references/figma-tools-and-prompts.md +34 -0
- package/skills/figma-implement-design/LICENSE.txt +202 -0
- package/skills/figma-implement-design/SKILL.md +264 -0
- package/skills/figma-implement-design/agents/openai.yaml +14 -0
- package/skills/figma-implement-design/assets/figma-small.svg +3 -0
- package/skills/figma-implement-design/assets/figma.png +0 -0
- package/skills/figma-implement-design/assets/icon.svg +28 -0
- package/skills/gh-address-comments/LICENSE.txt +202 -0
- package/skills/gh-address-comments/SKILL.md +25 -0
- package/skills/gh-address-comments/agents/openai.yaml +6 -0
- package/skills/gh-address-comments/assets/github-small.svg +3 -0
- package/skills/gh-address-comments/assets/github.png +0 -0
- package/skills/gh-address-comments/scripts/fetch_comments.py +237 -0
- package/skills/gh-fix-ci/LICENSE.txt +201 -0
- package/skills/gh-fix-ci/SKILL.md +69 -0
- package/skills/gh-fix-ci/agents/openai.yaml +6 -0
- package/skills/gh-fix-ci/assets/github-small.svg +3 -0
- package/skills/gh-fix-ci/assets/github.png +0 -0
- package/skills/gh-fix-ci/scripts/inspect_pr_checks.py +509 -0
- package/skills/goal-driven-project-loop/SKILL.md +217 -0
- package/skills/goal-driven-project-loop/references/goal-contract-template.md +42 -0
- package/skills/imagegen/LICENSE.txt +201 -0
- package/skills/imagegen/SKILL.md +174 -0
- package/skills/imagegen/agents/openai.yaml +6 -0
- package/skills/imagegen/assets/imagegen-small.svg +5 -0
- package/skills/imagegen/assets/imagegen.png +0 -0
- package/skills/imagegen/references/cli.md +132 -0
- package/skills/imagegen/references/codex-network.md +28 -0
- package/skills/imagegen/references/image-api.md +36 -0
- package/skills/imagegen/references/prompting.md +81 -0
- package/skills/imagegen/references/sample-prompts.md +384 -0
- package/skills/imagegen/scripts/image_gen.py +876 -0
- package/skills/jupyter-notebook/LICENSE.txt +201 -0
- package/skills/jupyter-notebook/SKILL.md +107 -0
- package/skills/jupyter-notebook/agents/openai.yaml +6 -0
- package/skills/jupyter-notebook/assets/experiment-template.ipynb +110 -0
- package/skills/jupyter-notebook/assets/jupyter-small.svg +3 -0
- package/skills/jupyter-notebook/assets/jupyter.png +0 -0
- package/skills/jupyter-notebook/assets/tutorial-template.ipynb +107 -0
- package/skills/jupyter-notebook/references/experiment-patterns.md +10 -0
- package/skills/jupyter-notebook/references/notebook-structure.md +17 -0
- package/skills/jupyter-notebook/references/quality-checklist.md +11 -0
- package/skills/jupyter-notebook/references/tutorial-patterns.md +9 -0
- package/skills/jupyter-notebook/scripts/new_notebook.py +130 -0
- package/skills/linear/LICENSE.txt +202 -0
- package/skills/linear/SKILL.md +87 -0
- package/skills/linear/agents/openai.yaml +14 -0
- package/skills/linear/assets/linear-small.svg +5 -0
- package/skills/linear/assets/linear.png +0 -0
- package/skills/netlify-deploy/LICENSE.txt +201 -0
- package/skills/netlify-deploy/SKILL.md +247 -0
- package/skills/netlify-deploy/agents/openai.yaml +6 -0
- package/skills/netlify-deploy/assets/netlify-small.svg +11 -0
- package/skills/netlify-deploy/assets/netlify.png +0 -0
- package/skills/netlify-deploy/references/cli-commands.md +162 -0
- package/skills/netlify-deploy/references/deployment-patterns.md +303 -0
- package/skills/netlify-deploy/references/netlify-toml.md +259 -0
- package/skills/notion-knowledge-capture/LICENSE.txt +7 -0
- package/skills/notion-knowledge-capture/SKILL.md +56 -0
- package/skills/notion-knowledge-capture/agents/openai.yaml +14 -0
- package/skills/notion-knowledge-capture/assets/notion-small.svg +11 -0
- package/skills/notion-knowledge-capture/assets/notion.png +0 -0
- package/skills/notion-knowledge-capture/evaluations/README.md +95 -0
- package/skills/notion-knowledge-capture/evaluations/conversation-to-wiki.json +31 -0
- package/skills/notion-knowledge-capture/evaluations/decision-record.json +31 -0
- package/skills/notion-knowledge-capture/examples/conversation-to-faq.md +226 -0
- package/skills/notion-knowledge-capture/examples/decision-capture.md +126 -0
- package/skills/notion-knowledge-capture/examples/how-to-guide.md +118 -0
- package/skills/notion-knowledge-capture/reference/database-best-practices.md +112 -0
- package/skills/notion-knowledge-capture/reference/decision-log-database.md +58 -0
- package/skills/notion-knowledge-capture/reference/documentation-database.md +93 -0
- package/skills/notion-knowledge-capture/reference/faq-database.md +57 -0
- package/skills/notion-knowledge-capture/reference/how-to-guide-database.md +38 -0
- package/skills/notion-knowledge-capture/reference/learning-database.md +35 -0
- package/skills/notion-knowledge-capture/reference/team-wiki-database.md +27 -0
- package/skills/notion-meeting-intelligence/LICENSE.txt +7 -0
- package/skills/notion-meeting-intelligence/SKILL.md +60 -0
- package/skills/notion-meeting-intelligence/agents/openai.yaml +14 -0
- package/skills/notion-meeting-intelligence/assets/notion-small.svg +11 -0
- package/skills/notion-meeting-intelligence/assets/notion.png +0 -0
- package/skills/notion-meeting-intelligence/evaluations/README.md +101 -0
- package/skills/notion-meeting-intelligence/evaluations/decision-meeting-prep.json +35 -0
- package/skills/notion-meeting-intelligence/evaluations/status-meeting-prep.json +35 -0
- package/skills/notion-meeting-intelligence/examples/customer-meeting.md +125 -0
- package/skills/notion-meeting-intelligence/examples/executive-review.md +78 -0
- package/skills/notion-meeting-intelligence/examples/project-decision.md +431 -0
- package/skills/notion-meeting-intelligence/examples/sprint-planning.md +80 -0
- package/skills/notion-meeting-intelligence/reference/brainstorming-template.md +81 -0
- package/skills/notion-meeting-intelligence/reference/decision-meeting-template.md +94 -0
- package/skills/notion-meeting-intelligence/reference/one-on-one-template.md +58 -0
- package/skills/notion-meeting-intelligence/reference/retrospective-template.md +58 -0
- package/skills/notion-meeting-intelligence/reference/sprint-planning-template.md +68 -0
- package/skills/notion-meeting-intelligence/reference/status-update-template.md +74 -0
- package/skills/notion-meeting-intelligence/reference/template-selection-guide.md +56 -0
- package/skills/notion-research-documentation/LICENSE.txt +7 -0
- package/skills/notion-research-documentation/SKILL.md +59 -0
- package/skills/notion-research-documentation/agents/openai.yaml +14 -0
- package/skills/notion-research-documentation/assets/notion-small.svg +11 -0
- package/skills/notion-research-documentation/assets/notion.png +0 -0
- package/skills/notion-research-documentation/evaluations/README.md +109 -0
- package/skills/notion-research-documentation/evaluations/basic-research.json +28 -0
- package/skills/notion-research-documentation/evaluations/research-to-database.json +29 -0
- package/skills/notion-research-documentation/examples/competitor-analysis.md +283 -0
- package/skills/notion-research-documentation/examples/market-research.md +62 -0
- package/skills/notion-research-documentation/examples/technical-investigation.md +233 -0
- package/skills/notion-research-documentation/examples/trip-planning.md +128 -0
- package/skills/notion-research-documentation/reference/advanced-search.md +212 -0
- package/skills/notion-research-documentation/reference/citations.md +190 -0
- package/skills/notion-research-documentation/reference/comparison-format.md +37 -0
- package/skills/notion-research-documentation/reference/comparison-template.md +44 -0
- package/skills/notion-research-documentation/reference/comprehensive-report-format.md +41 -0
- package/skills/notion-research-documentation/reference/comprehensive-report-template.md +64 -0
- package/skills/notion-research-documentation/reference/format-selection-guide.md +95 -0
- package/skills/notion-research-documentation/reference/quick-brief-format.md +37 -0
- package/skills/notion-research-documentation/reference/quick-brief-template.md +25 -0
- package/skills/notion-research-documentation/reference/research-summary-format.md +33 -0
- package/skills/notion-research-documentation/reference/research-summary-template.md +49 -0
- package/skills/notion-spec-to-implementation/LICENSE.txt +7 -0
- package/skills/notion-spec-to-implementation/SKILL.md +58 -0
- package/skills/notion-spec-to-implementation/agents/openai.yaml +14 -0
- package/skills/notion-spec-to-implementation/assets/notion-small.svg +11 -0
- package/skills/notion-spec-to-implementation/assets/notion.png +0 -0
- package/skills/notion-spec-to-implementation/evaluations/README.md +120 -0
- package/skills/notion-spec-to-implementation/evaluations/basic-spec-implementation.json +32 -0
- package/skills/notion-spec-to-implementation/evaluations/spec-to-tasks.json +35 -0
- package/skills/notion-spec-to-implementation/examples/api-feature.md +461 -0
- package/skills/notion-spec-to-implementation/examples/database-migration.md +81 -0
- package/skills/notion-spec-to-implementation/examples/ui-component.md +68 -0
- package/skills/notion-spec-to-implementation/reference/milestone-summary-template.md +27 -0
- package/skills/notion-spec-to-implementation/reference/progress-tracking.md +458 -0
- package/skills/notion-spec-to-implementation/reference/progress-update-template.md +25 -0
- package/skills/notion-spec-to-implementation/reference/quick-implementation-plan.md +26 -0
- package/skills/notion-spec-to-implementation/reference/spec-parsing.md +383 -0
- package/skills/notion-spec-to-implementation/reference/standard-implementation-plan.md +146 -0
- package/skills/notion-spec-to-implementation/reference/task-creation-template.md +34 -0
- package/skills/notion-spec-to-implementation/reference/task-creation.md +441 -0
- package/skills/openai-docs/LICENSE.txt +201 -0
- package/skills/openai-docs/SKILL.md +68 -0
- package/skills/openai-docs/agents/openai.yaml +14 -0
- package/skills/openai-docs/assets/openai-small.svg +3 -0
- package/skills/openai-docs/assets/openai.png +0 -0
- package/skills/openai-docs/references/gpt-5p4-prompting-guide.md +433 -0
- package/skills/openai-docs/references/latest-model.md +35 -0
- package/skills/openai-docs/references/upgrading-to-gpt-5p4.md +164 -0
- package/skills/pdf/LICENSE.txt +201 -0
- package/skills/pdf/SKILL.md +67 -0
- package/skills/pdf/agents/openai.yaml +5 -0
- package/skills/pdf/assets/pdf.png +0 -0
- package/skills/phase-prompting/SKILL.md +162 -0
- package/skills/playwright/LICENSE.txt +201 -0
- package/skills/playwright/NOTICE.txt +14 -0
- package/skills/playwright/SKILL.md +147 -0
- package/skills/playwright/agents/openai.yaml +6 -0
- package/skills/playwright/assets/playwright-small.svg +3 -0
- package/skills/playwright/assets/playwright.png +0 -0
- package/skills/playwright/references/cli.md +116 -0
- package/skills/playwright/references/workflows.md +95 -0
- package/skills/playwright/scripts/playwright_cli.sh +25 -0
- package/skills/playwright-interactive/LICENSE.txt +201 -0
- package/skills/playwright-interactive/NOTICE.txt +13 -0
- package/skills/playwright-interactive/SKILL.md +693 -0
- package/skills/playwright-interactive/agents/openai.yaml +6 -0
- package/skills/playwright-interactive/assets/playwright-small.svg +3 -0
- package/skills/playwright-interactive/assets/playwright.png +0 -0
- package/skills/problem-solving/ABOUT.md +40 -0
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -0
- package/skills/problem-solving/inversion-exercise/SKILL.md +58 -0
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -0
- package/skills/problem-solving/scale-game/SKILL.md +63 -0
- package/skills/problem-solving/simplification-cascades/SKILL.md +76 -0
- package/skills/problem-solving/when-stuck/SKILL.md +88 -0
- package/skills/render-deploy/LICENSE.txt +201 -0
- package/skills/render-deploy/SKILL.md +479 -0
- package/skills/render-deploy/agents/openai.yaml +14 -0
- package/skills/render-deploy/assets/docker.yaml +62 -0
- package/skills/render-deploy/assets/go-api.yaml +35 -0
- package/skills/render-deploy/assets/nextjs-postgres.yaml +35 -0
- package/skills/render-deploy/assets/node-express.yaml +25 -0
- package/skills/render-deploy/assets/python-django.yaml +89 -0
- package/skills/render-deploy/assets/render-small.svg +3 -0
- package/skills/render-deploy/assets/render.png +0 -0
- package/skills/render-deploy/assets/static-site.yaml +54 -0
- package/skills/render-deploy/references/blueprint-spec.md +718 -0
- package/skills/render-deploy/references/codebase-analysis.md +49 -0
- package/skills/render-deploy/references/configuration-guide.md +603 -0
- package/skills/render-deploy/references/deployment-details.md +224 -0
- package/skills/render-deploy/references/direct-creation.md +113 -0
- package/skills/render-deploy/references/error-patterns.md +13 -0
- package/skills/render-deploy/references/post-deploy-checks.md +36 -0
- package/skills/render-deploy/references/runtimes.md +473 -0
- package/skills/render-deploy/references/service-types.md +450 -0
- package/skills/render-deploy/references/troubleshooting-basics.md +36 -0
- package/skills/research/ABOUT.md +20 -0
- package/skills/research/tracing-knowledge-lineages/SKILL.md +203 -0
- package/skills/round-prompting/SKILL.md +148 -0
- package/skills/screenshot/LICENSE.txt +201 -0
- package/skills/screenshot/SKILL.md +267 -0
- package/skills/screenshot/agents/openai.yaml +6 -0
- package/skills/screenshot/assets/screenshot-small.svg +5 -0
- package/skills/screenshot/assets/screenshot.png +0 -0
- package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
- package/skills/screenshot/scripts/macos_display_info.swift +22 -0
- package/skills/screenshot/scripts/macos_permissions.swift +40 -0
- package/skills/screenshot/scripts/macos_window_info.swift +126 -0
- package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
- package/skills/screenshot/scripts/take_screenshot.py +585 -0
- package/skills/security-best-practices/LICENSE.txt +201 -0
- package/skills/security-best-practices/SKILL.md +86 -0
- package/skills/security-best-practices/agents/openai.yaml +4 -0
- package/skills/security-best-practices/references/golang-general-backend-security.md +826 -0
- package/skills/security-best-practices/references/javascript-express-web-server-security.md +1158 -0
- package/skills/security-best-practices/references/javascript-general-web-frontend-security.md +747 -0
- package/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +678 -0
- package/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
- package/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +990 -0
- package/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +791 -0
- package/skills/security-best-practices/references/python-django-web-server-security.md +882 -0
- package/skills/security-best-practices/references/python-fastapi-web-server-security.md +1036 -0
- package/skills/security-best-practices/references/python-flask-web-server-security.md +705 -0
- package/skills/security-ownership-map/LICENSE.txt +201 -0
- package/skills/security-ownership-map/SKILL.md +206 -0
- package/skills/security-ownership-map/agents/openai.yaml +4 -0
- package/skills/security-ownership-map/references/neo4j-import.md +60 -0
- package/skills/security-ownership-map/scripts/build_ownership_map.py +956 -0
- package/skills/security-ownership-map/scripts/community_maintainers.py +544 -0
- package/skills/security-ownership-map/scripts/query_ownership.py +483 -0
- package/skills/security-ownership-map/scripts/run_ownership_map.py +200 -0
- package/skills/security-threat-model/LICENSE.txt +201 -0
- package/skills/security-threat-model/SKILL.md +81 -0
- package/skills/security-threat-model/agents/openai.yaml +4 -0
- package/skills/security-threat-model/references/prompt-template.md +255 -0
- package/skills/security-threat-model/references/security-controls-and-assets.md +32 -0
- package/skills/sentry/LICENSE.txt +201 -0
- package/skills/sentry/SKILL.md +123 -0
- package/skills/sentry/agents/openai.yaml +6 -0
- package/skills/sentry/assets/sentry-small.svg +3 -0
- package/skills/sentry/assets/sentry.png +0 -0
- package/skills/sentry/scripts/sentry_api.py +238 -0
- package/skills/slides/LICENSE.txt +201 -0
- package/skills/slides/SKILL.md +71 -0
- package/skills/slides/agents/openai.yaml +6 -0
- package/skills/slides/assets/pptxgenjs_helpers/code.js +104 -0
- package/skills/slides/assets/pptxgenjs_helpers/image.js +333 -0
- package/skills/slides/assets/pptxgenjs_helpers/index.js +33 -0
- package/skills/slides/assets/pptxgenjs_helpers/latex.js +51 -0
- package/skills/slides/assets/pptxgenjs_helpers/layout.js +643 -0
- package/skills/slides/assets/pptxgenjs_helpers/layout_builders.js +358 -0
- package/skills/slides/assets/pptxgenjs_helpers/svg.js +36 -0
- package/skills/slides/assets/pptxgenjs_helpers/text.js +789 -0
- package/skills/slides/assets/pptxgenjs_helpers/util.js +24 -0
- package/skills/slides/assets/slides-small.svg +3 -0
- package/skills/slides/assets/slides.png +0 -0
- package/skills/slides/references/pptxgenjs-helpers.md +61 -0
- package/skills/slides/scripts/create_montage.py +300 -0
- package/skills/slides/scripts/detect_font.py +873 -0
- package/skills/slides/scripts/ensure_raster_image.py +202 -0
- package/skills/slides/scripts/render_slides.py +273 -0
- package/skills/slides/scripts/slides_test.py +201 -0
- package/skills/sora/LICENSE.txt +201 -0
- package/skills/sora/SKILL.md +153 -0
- package/skills/sora/agents/openai.yaml +6 -0
- package/skills/sora/assets/sora-small.svg +4 -0
- package/skills/sora/assets/sora.png +0 -0
- package/skills/sora/references/cinematic-shots.md +53 -0
- package/skills/sora/references/cli.md +248 -0
- package/skills/sora/references/codex-network.md +28 -0
- package/skills/sora/references/prompting.md +137 -0
- package/skills/sora/references/sample-prompts.md +95 -0
- package/skills/sora/references/social-ads.md +42 -0
- package/skills/sora/references/troubleshooting.md +58 -0
- package/skills/sora/references/video-api.md +45 -0
- package/skills/sora/scripts/sora.py +970 -0
- package/skills/speech/LICENSE.txt +201 -0
- package/skills/speech/SKILL.md +144 -0
- package/skills/speech/agents/openai.yaml +6 -0
- package/skills/speech/assets/speech-small.svg +3 -0
- package/skills/speech/assets/speech.png +0 -0
- package/skills/speech/references/accessibility.md +32 -0
- package/skills/speech/references/audio-api.md +31 -0
- package/skills/speech/references/cli.md +99 -0
- package/skills/speech/references/codex-network.md +28 -0
- package/skills/speech/references/ivr.md +32 -0
- package/skills/speech/references/narration.md +31 -0
- package/skills/speech/references/prompting.md +38 -0
- package/skills/speech/references/sample-prompts.md +44 -0
- package/skills/speech/references/voice-directions.md +80 -0
- package/skills/speech/references/voiceover.md +31 -0
- package/skills/speech/scripts/text_to_speech.py +528 -0
- package/skills/spreadsheet/LICENSE.txt +201 -0
- package/skills/spreadsheet/SKILL.md +145 -0
- package/skills/spreadsheet/agents/openai.yaml +6 -0
- package/skills/spreadsheet/assets/spreadsheet-small.svg +3 -0
- package/skills/spreadsheet/assets/spreadsheet.png +0 -0
- package/skills/spreadsheet/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
- package/skills/spreadsheet/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
- package/skills/spreadsheet/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
- package/skills/spreadsheet/references/examples/openpyxl/styling_spreadsheet.py +79 -0
- package/skills/testing/condition-based-waiting/SKILL.md +123 -0
- package/skills/testing/condition-based-waiting/example.ts +158 -0
- package/skills/testing/test-driven-development/SKILL.md +367 -0
- package/skills/testing/testing-anti-patterns/SKILL.md +304 -0
- package/skills/transcribe/LICENSE.txt +201 -0
- package/skills/transcribe/SKILL.md +81 -0
- package/skills/transcribe/agents/openai.yaml +6 -0
- package/skills/transcribe/assets/transcribe-small.svg +3 -0
- package/skills/transcribe/assets/transcribe.png +0 -0
- package/skills/transcribe/references/api.md +8 -0
- package/skills/transcribe/scripts/transcribe_diarize.py +276 -0
- package/skills/using-skills/SKILL.md +102 -0
- package/skills/using-skills/find-skills +107 -0
- package/skills/using-skills/skill-run +44 -0
- package/skills/vercel-deploy/LICENSE.txt +21 -0
- package/skills/vercel-deploy/SKILL.md +77 -0
- package/skills/vercel-deploy/agents/openai.yaml +6 -0
- package/skills/vercel-deploy/assets/vercel-small.svg +5 -0
- package/skills/vercel-deploy/assets/vercel.png +0 -0
- package/skills/vercel-deploy/scripts/deploy.sh +301 -0
- package/skills/winui-app/LICENSE.txt +202 -0
- package/skills/winui-app/SKILL.md +94 -0
- package/skills/winui-app/agents/openai.yaml +5 -0
- package/skills/winui-app/assets/winui.png +0 -0
- package/skills/winui-app/config.yaml +50 -0
- package/skills/winui-app/references/_sections.md +96 -0
- package/skills/winui-app/references/accessibility-input-and-localization.md +51 -0
- package/skills/winui-app/references/build-run-and-launch-verification.md +72 -0
- package/skills/winui-app/references/community-toolkit-controls-and-helpers.md +57 -0
- package/skills/winui-app/references/controls-layout-and-adaptive-ui.md +84 -0
- package/skills/winui-app/references/foundation-environment-audit-and-remediation.md +82 -0
- package/skills/winui-app/references/foundation-setup-and-project-selection.md +67 -0
- package/skills/winui-app/references/foundation-template-first-recovery.md +62 -0
- package/skills/winui-app/references/foundation-winui-app-structure.md +62 -0
- package/skills/winui-app/references/motion-animations-and-polish.md +45 -0
- package/skills/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -0
- package/skills/winui-app/references/sample-source-map.md +37 -0
- package/skills/winui-app/references/shell-navigation-and-windowing.md +67 -0
- package/skills/winui-app/references/styling-theming-materials-and-icons.md +71 -0
- package/skills/winui-app/references/testing-debugging-and-review-checklists.md +77 -0
- package/skills/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -0
- package/skills/yeet/LICENSE.txt +201 -0
- package/skills/yeet/SKILL.md +28 -0
- package/skills/yeet/agents/openai.yaml +6 -0
- package/skills/yeet/assets/yeet-small.svg +3 -0
- package/skills/yeet/assets/yeet.png +0 -0
- package/dist/src/agents/definitions.d.ts +0 -16
- package/dist/src/agents/definitions.d.ts.map +0 -1
- package/dist/src/agents/definitions.js +0 -148
- package/dist/src/agents/definitions.js.map +0 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# CNI Patterns
|
|
2
|
+
|
|
3
|
+
See [README.md](README.md) for overview.
|
|
4
|
+
|
|
5
|
+
## High Availability
|
|
6
|
+
|
|
7
|
+
**Critical:** Design for resilience from day one.
|
|
8
|
+
|
|
9
|
+
**Requirements:**
|
|
10
|
+
- Device-level diversity (separate hardware)
|
|
11
|
+
- Backup Internet connectivity (no SLA on CNI)
|
|
12
|
+
- Network-resilient locations preferred
|
|
13
|
+
- Regular failover testing
|
|
14
|
+
|
|
15
|
+
**Architecture:**
|
|
16
|
+
```
|
|
17
|
+
Your Network A ──10G CNI v2──> CF CCR Device 1
|
|
18
|
+
│
|
|
19
|
+
Your Network B ──10G CNI v2──> CF CCR Device 2
|
|
20
|
+
│
|
|
21
|
+
CF Global Network (AS13335)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Capacity Planning:**
|
|
25
|
+
- Plan across all links
|
|
26
|
+
- Account for failover scenarios
|
|
27
|
+
- Your responsibility
|
|
28
|
+
|
|
29
|
+
## Pattern: Magic Transit + CNI v2
|
|
30
|
+
|
|
31
|
+
**Use Case:** DDoS protection, private connectivity, no GRE overhead.
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// 1. Create interconnect
|
|
35
|
+
const ic = await client.networkInterconnects.interconnects.create({
|
|
36
|
+
account_id: id,
|
|
37
|
+
type: 'direct',
|
|
38
|
+
facility: 'EWR1',
|
|
39
|
+
speed: '10G',
|
|
40
|
+
name: 'magic-transit-primary',
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// 2. Poll until active
|
|
44
|
+
const status = await pollUntilActive(id, ic.id);
|
|
45
|
+
|
|
46
|
+
// 3. Configure Magic Transit tunnel via Dashboard/API
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Benefits:** 1500 MTU both ways, simplified routing.
|
|
50
|
+
|
|
51
|
+
## Pattern: Multi-Cloud Hybrid
|
|
52
|
+
|
|
53
|
+
**Use Case:** AWS/GCP workloads with Cloudflare.
|
|
54
|
+
|
|
55
|
+
**AWS Direct Connect:**
|
|
56
|
+
```typescript
|
|
57
|
+
// 1. Order Direct Connect in AWS Console
|
|
58
|
+
// 2. Get LOA + VLAN from AWS
|
|
59
|
+
// 3. Send to CF account team (no API)
|
|
60
|
+
// 4. Configure static routes in Magic WAN
|
|
61
|
+
|
|
62
|
+
await configureStaticRoutes(id, {
|
|
63
|
+
prefix: '10.0.0.0/8',
|
|
64
|
+
nexthop: 'aws-direct-connect',
|
|
65
|
+
});
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**GCP Cloud Interconnect:**
|
|
69
|
+
```
|
|
70
|
+
1. Get VLAN attachment pairing key from GCP Console
|
|
71
|
+
2. Create via Dashboard: Interconnects → Create → Cloud Interconnect → Google
|
|
72
|
+
- Enter pairing key, name, MTU, speed
|
|
73
|
+
3. Configure static routes in Magic WAN (BGP routes from GCP ignored)
|
|
74
|
+
4. Configure custom learned routes in GCP Cloud Router
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Note:** Dashboard-only. No API/SDK support yet.
|
|
78
|
+
|
|
79
|
+
## Pattern: Multi-Location HA
|
|
80
|
+
|
|
81
|
+
**Use Case:** 99.99%+ uptime.
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
// Primary (NY)
|
|
85
|
+
const primary = await client.networkInterconnects.interconnects.create({
|
|
86
|
+
account_id: id,
|
|
87
|
+
type: 'direct',
|
|
88
|
+
facility: 'EWR1',
|
|
89
|
+
speed: '10G',
|
|
90
|
+
name: 'primary-ewr1',
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Secondary (NY, different hardware)
|
|
94
|
+
const secondary = await client.networkInterconnects.interconnects.create({
|
|
95
|
+
account_id: id,
|
|
96
|
+
type: 'direct',
|
|
97
|
+
facility: 'EWR2',
|
|
98
|
+
speed: '10G',
|
|
99
|
+
name: 'secondary-ewr2',
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// Tertiary (LA, different geography)
|
|
103
|
+
const tertiary = await client.networkInterconnects.interconnects.create({
|
|
104
|
+
account_id: id,
|
|
105
|
+
type: 'partner',
|
|
106
|
+
facility: 'LAX1',
|
|
107
|
+
speed: '10G',
|
|
108
|
+
name: 'tertiary-lax1',
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// BGP local preferences:
|
|
112
|
+
// Primary: 200
|
|
113
|
+
// Secondary: 150
|
|
114
|
+
// Tertiary: 100
|
|
115
|
+
// Internet: Last resort
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Pattern: Partner Interconnect (Equinix)
|
|
119
|
+
|
|
120
|
+
**Use Case:** Quick deployment, no colocation.
|
|
121
|
+
|
|
122
|
+
**Setup:**
|
|
123
|
+
1. Order virtual circuit in Equinix Fabric Portal
|
|
124
|
+
2. Select Cloudflare as destination
|
|
125
|
+
3. Choose facility
|
|
126
|
+
4. Send details to CF account team
|
|
127
|
+
5. CF accepts in portal
|
|
128
|
+
6. Configure BGP
|
|
129
|
+
|
|
130
|
+
**No API automation** – partner portals managed separately.
|
|
131
|
+
|
|
132
|
+
## Failover & Security
|
|
133
|
+
|
|
134
|
+
**Failover Best Practices:**
|
|
135
|
+
- Use BGP local preferences for priority
|
|
136
|
+
- Configure BFD for fast detection (v1)
|
|
137
|
+
- Test regularly with traffic shift
|
|
138
|
+
- Document runbooks
|
|
139
|
+
|
|
140
|
+
**Security:**
|
|
141
|
+
- BGP password authentication
|
|
142
|
+
- BGP route filtering
|
|
143
|
+
- Monitor unexpected routes
|
|
144
|
+
- Magic Firewall for DDoS/threats
|
|
145
|
+
- Minimum API token permissions
|
|
146
|
+
- Rotate credentials periodically
|
|
147
|
+
|
|
148
|
+
## Decision Matrix
|
|
149
|
+
|
|
150
|
+
| Requirement | Recommended |
|
|
151
|
+
|-------------|-------------|
|
|
152
|
+
| Collocated with CF | Direct |
|
|
153
|
+
| Not collocated | Partner |
|
|
154
|
+
| AWS/GCP workloads | Cloud |
|
|
155
|
+
| 1500 MTU both ways | v2 |
|
|
156
|
+
| VLAN tagging | v1 |
|
|
157
|
+
| Public peering | v1 |
|
|
158
|
+
| Simplest config | v2 |
|
|
159
|
+
| BFD fast failover | v1 |
|
|
160
|
+
| LACP bundling | v1 |
|
|
161
|
+
|
|
162
|
+
## Resources
|
|
163
|
+
|
|
164
|
+
- [Magic Transit Docs](https://developers.cloudflare.com/magic-transit/)
|
|
165
|
+
- [Magic WAN Docs](https://developers.cloudflare.com/magic-wan/)
|
|
166
|
+
- [Argo Smart Routing](https://developers.cloudflare.com/argo/)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Cloudflare Observability Skill Reference
|
|
2
|
+
|
|
3
|
+
**Purpose**: Comprehensive guidance for implementing observability in Cloudflare Workers, covering traces, logs, metrics, and analytics.
|
|
4
|
+
|
|
5
|
+
**Scope**: Cloudflare Observability features ONLY - Workers Logs, Traces, Analytics Engine, Logpush, Metrics & Analytics, and OpenTelemetry exports.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Decision Tree: Which File to Load?
|
|
10
|
+
|
|
11
|
+
Use this to route to the correct file without loading all content:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
├─ "How do I enable/configure X?" → configuration.md
|
|
15
|
+
├─ "What's the API/method/binding for X?" → api.md
|
|
16
|
+
├─ "How do I implement X pattern?" → patterns.md
|
|
17
|
+
│ ├─ Usage tracking/billing → patterns.md
|
|
18
|
+
│ ├─ Error tracking → patterns.md
|
|
19
|
+
│ ├─ Performance monitoring → patterns.md
|
|
20
|
+
│ ├─ Multi-tenant tracking → patterns.md
|
|
21
|
+
│ ├─ Tail Worker filtering → patterns.md
|
|
22
|
+
│ └─ OpenTelemetry export → patterns.md
|
|
23
|
+
└─ "Why isn't X working?" / "Limits?" → gotchas.md
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Reading Order
|
|
27
|
+
|
|
28
|
+
Load files in this order based on task:
|
|
29
|
+
|
|
30
|
+
| Task Type | Load Order | Reason |
|
|
31
|
+
|-----------|------------|--------|
|
|
32
|
+
| **Initial setup** | configuration.md → gotchas.md | Setup first, avoid pitfalls |
|
|
33
|
+
| **Implement feature** | patterns.md → api.md → gotchas.md | Pattern → API details → edge cases |
|
|
34
|
+
| **Debug issue** | gotchas.md → configuration.md | Common issues first |
|
|
35
|
+
| **Query data** | api.md → patterns.md | API syntax → query examples |
|
|
36
|
+
|
|
37
|
+
## Product Overview
|
|
38
|
+
|
|
39
|
+
### Workers Logs
|
|
40
|
+
- **What:** Console output from Workers (console.log/warn/error)
|
|
41
|
+
- **Access:** Dashboard (Real-time Logs), Logpush, Tail Workers
|
|
42
|
+
- **Cost:** Free (included with all Workers)
|
|
43
|
+
- **Retention:** Real-time only (no historical storage in dashboard)
|
|
44
|
+
|
|
45
|
+
### Workers Traces
|
|
46
|
+
- **What:** Execution traces with timing, CPU usage, outcome
|
|
47
|
+
- **Access:** Dashboard (Workers Analytics → Traces), Logpush
|
|
48
|
+
- **Cost:** $0.10/1M spans (GA pricing starts March 1, 2026), 10M free/month
|
|
49
|
+
- **Retention:** 14 days included
|
|
50
|
+
|
|
51
|
+
### Analytics Engine
|
|
52
|
+
- **What:** High-cardinality event storage and SQL queries
|
|
53
|
+
- **Access:** SQL API, Dashboard (Analytics → Analytics Engine)
|
|
54
|
+
- **Cost:** $0.25/1M writes beyond 10M free/month
|
|
55
|
+
- **Retention:** 90 days (configurable up to 1 year)
|
|
56
|
+
|
|
57
|
+
### Tail Workers
|
|
58
|
+
- **What:** Workers that receive logs/traces from other Workers
|
|
59
|
+
- **Use Cases:** Log filtering, transformation, external export
|
|
60
|
+
- **Cost:** Standard Workers pricing
|
|
61
|
+
|
|
62
|
+
### Logpush
|
|
63
|
+
- **What:** Stream logs to external storage (S3, R2, Datadog, etc.)
|
|
64
|
+
- **Access:** Dashboard, API
|
|
65
|
+
- **Cost:** Requires Business/Enterprise plan
|
|
66
|
+
|
|
67
|
+
## Pricing Summary (2026)
|
|
68
|
+
|
|
69
|
+
| Feature | Free Tier | Cost Beyond Free Tier | Plan Requirement |
|
|
70
|
+
|---------|-----------|----------------------|------------------|
|
|
71
|
+
| Workers Logs | Unlimited | Free | Any |
|
|
72
|
+
| Workers Traces | 10M spans/month | $0.10/1M spans | Paid Workers (GA: March 1, 2026) |
|
|
73
|
+
| Analytics Engine | 10M writes/month | $0.25/1M writes | Paid Workers |
|
|
74
|
+
| Logpush | N/A | Included in plan | Business/Enterprise |
|
|
75
|
+
|
|
76
|
+
## In This Reference
|
|
77
|
+
|
|
78
|
+
- **[configuration.md](configuration.md)** - Setup, deployment, configuration (Logs, Traces, Analytics Engine, Tail Workers, Logpush)
|
|
79
|
+
- **[api.md](api.md)** - API endpoints, methods, interfaces (GraphQL, SQL, bindings, types)
|
|
80
|
+
- **[patterns.md](patterns.md)** - Common patterns, use cases, examples (billing, monitoring, error tracking, exports)
|
|
81
|
+
- **[gotchas.md](gotchas.md)** - Troubleshooting, best practices, limitations (common errors, performance gotchas, pricing)
|
|
82
|
+
|
|
83
|
+
## See Also
|
|
84
|
+
|
|
85
|
+
- [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
|
|
86
|
+
- [Analytics Engine Docs](https://developers.cloudflare.com/analytics/analytics-engine/)
|
|
87
|
+
- [Workers Traces Docs](https://developers.cloudflare.com/workers/observability/traces/)
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
## API Reference
|
|
2
|
+
|
|
3
|
+
### GraphQL Analytics API
|
|
4
|
+
|
|
5
|
+
**Endpoint**: `https://api.cloudflare.com/client/v4/graphql`
|
|
6
|
+
|
|
7
|
+
**Query Workers Metrics**:
|
|
8
|
+
```graphql
|
|
9
|
+
query {
|
|
10
|
+
viewer {
|
|
11
|
+
accounts(filter: { accountTag: $accountId }) {
|
|
12
|
+
workersInvocationsAdaptive(
|
|
13
|
+
limit: 100
|
|
14
|
+
filter: {
|
|
15
|
+
datetime_geq: "2025-01-01T00:00:00Z"
|
|
16
|
+
datetime_leq: "2025-01-31T23:59:59Z"
|
|
17
|
+
scriptName: "my-worker"
|
|
18
|
+
}
|
|
19
|
+
) {
|
|
20
|
+
sum {
|
|
21
|
+
requests
|
|
22
|
+
errors
|
|
23
|
+
subrequests
|
|
24
|
+
}
|
|
25
|
+
quantiles {
|
|
26
|
+
cpuTimeP50
|
|
27
|
+
cpuTimeP99
|
|
28
|
+
wallTimeP50
|
|
29
|
+
wallTimeP99
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Analytics Engine SQL API
|
|
38
|
+
|
|
39
|
+
**Endpoint**: `https://api.cloudflare.com/client/v4/accounts/{account_id}/analytics_engine/sql`
|
|
40
|
+
|
|
41
|
+
**Authentication**: `Authorization: Bearer <API_TOKEN>` (Account Analytics Read permission)
|
|
42
|
+
|
|
43
|
+
**Common Queries**:
|
|
44
|
+
|
|
45
|
+
```sql
|
|
46
|
+
-- List all datasets
|
|
47
|
+
SHOW TABLES;
|
|
48
|
+
|
|
49
|
+
-- Time-series aggregation (5-minute buckets)
|
|
50
|
+
SELECT
|
|
51
|
+
intDiv(toUInt32(timestamp), 300) * 300 AS time_bucket,
|
|
52
|
+
blob1 AS endpoint,
|
|
53
|
+
SUM(_sample_interval) AS total_requests,
|
|
54
|
+
AVG(double1) AS avg_response_time_ms
|
|
55
|
+
FROM api_metrics
|
|
56
|
+
WHERE timestamp >= NOW() - INTERVAL '24' HOUR
|
|
57
|
+
GROUP BY time_bucket, endpoint
|
|
58
|
+
ORDER BY time_bucket DESC;
|
|
59
|
+
|
|
60
|
+
-- Top customers by usage
|
|
61
|
+
SELECT
|
|
62
|
+
index1 AS customer_id,
|
|
63
|
+
SUM(_sample_interval * double1) AS total_api_calls,
|
|
64
|
+
AVG(double2) AS avg_response_time_ms
|
|
65
|
+
FROM api_usage
|
|
66
|
+
WHERE timestamp >= NOW() - INTERVAL '7' DAY
|
|
67
|
+
GROUP BY customer_id
|
|
68
|
+
ORDER BY total_api_calls DESC
|
|
69
|
+
LIMIT 100;
|
|
70
|
+
|
|
71
|
+
-- Error rate analysis
|
|
72
|
+
SELECT
|
|
73
|
+
blob1 AS error_type,
|
|
74
|
+
COUNT(*) AS occurrences,
|
|
75
|
+
MAX(timestamp) AS last_seen
|
|
76
|
+
FROM error_tracking
|
|
77
|
+
WHERE timestamp >= NOW() - INTERVAL '1' HOUR
|
|
78
|
+
GROUP BY error_type
|
|
79
|
+
ORDER BY occurrences DESC;
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Console Logging API
|
|
83
|
+
|
|
84
|
+
**Methods**:
|
|
85
|
+
```typescript
|
|
86
|
+
// Standard methods (all appear in Workers Logs)
|
|
87
|
+
console.log('info message');
|
|
88
|
+
console.info('info message');
|
|
89
|
+
console.warn('warning message');
|
|
90
|
+
console.error('error message');
|
|
91
|
+
console.debug('debug message');
|
|
92
|
+
|
|
93
|
+
// Structured logging (recommended)
|
|
94
|
+
console.log({
|
|
95
|
+
level: 'info',
|
|
96
|
+
user_id: '123',
|
|
97
|
+
action: 'checkout',
|
|
98
|
+
amount: 99.99,
|
|
99
|
+
currency: 'USD'
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Log Levels**: All console methods produce logs; use structured fields for filtering:
|
|
104
|
+
```typescript
|
|
105
|
+
console.log({
|
|
106
|
+
level: 'error',
|
|
107
|
+
message: 'Payment failed',
|
|
108
|
+
error_code: 'CARD_DECLINED'
|
|
109
|
+
});
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Analytics Engine Binding Types
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
interface AnalyticsEngineDataset {
|
|
116
|
+
writeDataPoint(event: AnalyticsEngineDataPoint): void;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
interface AnalyticsEngineDataPoint {
|
|
120
|
+
// Indexed strings (use for filtering/grouping)
|
|
121
|
+
indexes?: string[];
|
|
122
|
+
|
|
123
|
+
// Non-indexed strings (metadata, IDs, URLs)
|
|
124
|
+
blobs?: string[];
|
|
125
|
+
|
|
126
|
+
// Numeric values (counts, durations, amounts)
|
|
127
|
+
doubles?: number[];
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Field Limits**:
|
|
132
|
+
- Max 20 indexes
|
|
133
|
+
- Max 20 blobs
|
|
134
|
+
- Max 20 doubles
|
|
135
|
+
- Max 25 `writeDataPoint` calls per request
|
|
136
|
+
|
|
137
|
+
### Tail Consumer Event Type
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
interface TraceItem {
|
|
141
|
+
event: TraceEvent;
|
|
142
|
+
logs: TraceLog[];
|
|
143
|
+
exceptions: TraceException[];
|
|
144
|
+
scriptName?: string;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
interface TraceEvent {
|
|
148
|
+
outcome: 'ok' | 'exception' | 'exceededCpu' | 'exceededMemory' | 'unknown';
|
|
149
|
+
cpuTime: number; // microseconds
|
|
150
|
+
wallTime: number; // microseconds
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
interface TraceLog {
|
|
154
|
+
timestamp: number;
|
|
155
|
+
level: 'log' | 'info' | 'debug' | 'warn' | 'error';
|
|
156
|
+
message: any; // string or structured object
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
interface TraceException {
|
|
160
|
+
name: string;
|
|
161
|
+
message: string;
|
|
162
|
+
timestamp: number;
|
|
163
|
+
}
|
|
164
|
+
```
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
## Configuration Patterns
|
|
2
|
+
|
|
3
|
+
### Enable Workers Logs
|
|
4
|
+
|
|
5
|
+
```jsonc
|
|
6
|
+
{
|
|
7
|
+
"observability": {
|
|
8
|
+
"enabled": true,
|
|
9
|
+
"head_sampling_rate": 1 // 100% sampling (default)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**Best Practice**: Use structured JSON logging for better indexing
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Good - structured logging
|
|
18
|
+
console.log({
|
|
19
|
+
user_id: 123,
|
|
20
|
+
action: "login",
|
|
21
|
+
status: "success",
|
|
22
|
+
duration_ms: 45
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Avoid - unstructured string
|
|
26
|
+
console.log("user_id: 123 logged in successfully in 45ms");
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Enable Workers Traces
|
|
30
|
+
|
|
31
|
+
```jsonc
|
|
32
|
+
{
|
|
33
|
+
"observability": {
|
|
34
|
+
"traces": {
|
|
35
|
+
"enabled": true,
|
|
36
|
+
"head_sampling_rate": 0.05 // 5% sampling
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Note**: Default sampling is 100%. For high-traffic Workers, use lower sampling (0.01-0.1).
|
|
43
|
+
|
|
44
|
+
### Configure Analytics Engine
|
|
45
|
+
|
|
46
|
+
**Bind to Worker**:
|
|
47
|
+
```toml
|
|
48
|
+
# wrangler.toml
|
|
49
|
+
analytics_engine_datasets = [
|
|
50
|
+
{ binding = "ANALYTICS", dataset = "api_metrics" }
|
|
51
|
+
]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Write Data Points**:
|
|
55
|
+
```typescript
|
|
56
|
+
export interface Env {
|
|
57
|
+
ANALYTICS: AnalyticsEngineDataset;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default {
|
|
61
|
+
async fetch(request: Request, env: Env): Promise<Response> {
|
|
62
|
+
// Track metrics
|
|
63
|
+
env.ANALYTICS.writeDataPoint({
|
|
64
|
+
blobs: ['customer_123', 'POST', '/api/v1/users'],
|
|
65
|
+
doubles: [1, 245.5], // request_count, response_time_ms
|
|
66
|
+
indexes: ['customer_123'] // for efficient filtering
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
return new Response('OK');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Configure Tail Workers
|
|
75
|
+
|
|
76
|
+
Tail Workers receive logs/traces from other Workers for filtering, transformation, or export.
|
|
77
|
+
|
|
78
|
+
**Setup**:
|
|
79
|
+
```toml
|
|
80
|
+
# wrangler.toml
|
|
81
|
+
name = "log-processor"
|
|
82
|
+
main = "src/tail.ts"
|
|
83
|
+
|
|
84
|
+
[[tail_consumers]]
|
|
85
|
+
service = "my-worker" # Worker to tail
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Tail Worker Example**:
|
|
89
|
+
```typescript
|
|
90
|
+
export default {
|
|
91
|
+
async tail(events: TraceItem[], env: Env, ctx: ExecutionContext) {
|
|
92
|
+
// Filter errors only
|
|
93
|
+
const errors = events.filter(event =>
|
|
94
|
+
event.outcome === 'exception' || event.outcome === 'exceededCpu'
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
if (errors.length > 0) {
|
|
98
|
+
// Send to external monitoring
|
|
99
|
+
ctx.waitUntil(
|
|
100
|
+
fetch('https://monitoring.example.com/errors', {
|
|
101
|
+
method: 'POST',
|
|
102
|
+
body: JSON.stringify(errors)
|
|
103
|
+
})
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Configure Logpush
|
|
111
|
+
|
|
112
|
+
Send logs to external storage (S3, R2, GCS, Azure, Datadog, etc.). Requires Business/Enterprise plan.
|
|
113
|
+
|
|
114
|
+
**Via Dashboard**:
|
|
115
|
+
1. Navigate to Analytics → Logs → Logpush
|
|
116
|
+
2. Select destination type
|
|
117
|
+
3. Provide credentials and bucket/endpoint
|
|
118
|
+
4. Choose dataset (e.g., Workers Trace Events)
|
|
119
|
+
5. Configure filters and fields
|
|
120
|
+
|
|
121
|
+
**Via API**:
|
|
122
|
+
```bash
|
|
123
|
+
curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/logpush/jobs" \
|
|
124
|
+
-H "Authorization: Bearer <API_TOKEN>" \
|
|
125
|
+
-H "Content-Type: application/json" \
|
|
126
|
+
-d '{
|
|
127
|
+
"name": "workers-logs-to-s3",
|
|
128
|
+
"destination_conf": "s3://my-bucket/logs?region=us-east-1",
|
|
129
|
+
"dataset": "workers_trace_events",
|
|
130
|
+
"enabled": true,
|
|
131
|
+
"frequency": "high",
|
|
132
|
+
"filter": "{\"where\":{\"and\":[{\"key\":\"ScriptName\",\"operator\":\"eq\",\"value\":\"my-worker\"}]}}"
|
|
133
|
+
}'
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Environment-Specific Configuration
|
|
137
|
+
|
|
138
|
+
**Development** (verbose logs, full sampling):
|
|
139
|
+
```jsonc
|
|
140
|
+
// wrangler.dev.jsonc
|
|
141
|
+
{
|
|
142
|
+
"observability": {
|
|
143
|
+
"enabled": true,
|
|
144
|
+
"head_sampling_rate": 1.0,
|
|
145
|
+
"traces": {
|
|
146
|
+
"enabled": true
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Production** (reduced sampling, structured logs):
|
|
153
|
+
```jsonc
|
|
154
|
+
// wrangler.prod.jsonc
|
|
155
|
+
{
|
|
156
|
+
"observability": {
|
|
157
|
+
"enabled": true,
|
|
158
|
+
"head_sampling_rate": 0.1, // 10% sampling
|
|
159
|
+
"traces": {
|
|
160
|
+
"enabled": true
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Deploy with env-specific config:
|
|
167
|
+
```bash
|
|
168
|
+
wrangler deploy --config wrangler.prod.jsonc --env production
|
|
169
|
+
```
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
## Common Errors
|
|
2
|
+
|
|
3
|
+
### "Logs not appearing"
|
|
4
|
+
|
|
5
|
+
**Cause:** Observability disabled, Worker not redeployed, no traffic, low sampling rate, or log size exceeds 256 KB
|
|
6
|
+
**Solution:**
|
|
7
|
+
```bash
|
|
8
|
+
# Verify config
|
|
9
|
+
cat wrangler.jsonc | jq '.observability'
|
|
10
|
+
|
|
11
|
+
# Check deployment
|
|
12
|
+
wrangler deployments list <WORKER_NAME>
|
|
13
|
+
|
|
14
|
+
# Test with curl
|
|
15
|
+
curl https://your-worker.workers.dev
|
|
16
|
+
```
|
|
17
|
+
Ensure `observability.enabled = true`, redeploy Worker, check `head_sampling_rate`, verify traffic
|
|
18
|
+
|
|
19
|
+
### "Traces not being captured"
|
|
20
|
+
|
|
21
|
+
**Cause:** Traces not enabled, incorrect sampling rate, Worker not redeployed, or destination unavailable
|
|
22
|
+
**Solution:**
|
|
23
|
+
```jsonc
|
|
24
|
+
// Temporarily set to 100% sampling for debugging
|
|
25
|
+
{
|
|
26
|
+
"observability": {
|
|
27
|
+
"enabled": true,
|
|
28
|
+
"head_sampling_rate": 1.0,
|
|
29
|
+
"traces": {
|
|
30
|
+
"enabled": true
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
Ensure `observability.traces.enabled = true`, set `head_sampling_rate` to 1.0 for testing, redeploy, check destination status
|
|
36
|
+
|
|
37
|
+
## Limits
|
|
38
|
+
|
|
39
|
+
| Resource/Limit | Value | Notes |
|
|
40
|
+
|----------------|-------|-------|
|
|
41
|
+
| Max log size | 256 KB | Logs exceeding this are truncated |
|
|
42
|
+
| Default sampling rate | 1.0 (100%) | Reduce for high-traffic Workers |
|
|
43
|
+
| Max destinations | Varies by plan | Check dashboard |
|
|
44
|
+
| Trace context propagation | 100 spans max | Deep call chains may lose spans |
|
|
45
|
+
| Analytics Engine write rate | 25 writes/request | Excess writes dropped silently |
|
|
46
|
+
|
|
47
|
+
## Performance Gotchas
|
|
48
|
+
|
|
49
|
+
### Spectre Mitigation Timing
|
|
50
|
+
|
|
51
|
+
**Problem:** `Date.now()` and `performance.now()` have reduced precision (coarsened to 100μs)
|
|
52
|
+
**Cause:** Spectre vulnerability mitigation in V8
|
|
53
|
+
**Solution:** Accept reduced precision or use Workers Traces for accurate timing
|
|
54
|
+
```typescript
|
|
55
|
+
// Date.now() is coarsened - trace spans are accurate
|
|
56
|
+
export default {
|
|
57
|
+
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
|
|
58
|
+
// For user-facing timing, Date.now() is fine
|
|
59
|
+
const start = Date.now();
|
|
60
|
+
const response = await processRequest(request);
|
|
61
|
+
const duration = Date.now() - start;
|
|
62
|
+
|
|
63
|
+
// For detailed performance analysis, use Workers Traces instead
|
|
64
|
+
return response;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Analytics Engine _sample_interval Aggregation
|
|
70
|
+
|
|
71
|
+
**Problem:** Queries return incorrect totals when not multiplying by `_sample_interval`
|
|
72
|
+
**Cause:** Analytics Engine stores sampled data points, each representing multiple events
|
|
73
|
+
**Solution:** Always multiply counts/sums by `_sample_interval` in aggregations
|
|
74
|
+
```sql
|
|
75
|
+
-- WRONG: Undercounts actual events
|
|
76
|
+
SELECT blob1 AS customer_id, COUNT(*) AS total_calls
|
|
77
|
+
FROM api_usage GROUP BY customer_id;
|
|
78
|
+
|
|
79
|
+
-- CORRECT: Accounts for sampling
|
|
80
|
+
SELECT blob1 AS customer_id, SUM(_sample_interval) AS total_calls
|
|
81
|
+
FROM api_usage GROUP BY customer_id;
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Trace Context Propagation Limits
|
|
85
|
+
|
|
86
|
+
**Problem:** Deep call chains lose trace context after 100 spans
|
|
87
|
+
**Cause:** Cloudflare limits trace depth to prevent performance impact
|
|
88
|
+
**Solution:** Design for flatter architectures or use custom correlation IDs for deep chains
|
|
89
|
+
```typescript
|
|
90
|
+
// For deep call chains, add custom correlation ID
|
|
91
|
+
const correlationId = crypto.randomUUID();
|
|
92
|
+
console.log({ correlationId, event: 'request_start' });
|
|
93
|
+
|
|
94
|
+
// Pass correlationId through headers to downstream services
|
|
95
|
+
await fetch('https://api.example.com', {
|
|
96
|
+
headers: { 'X-Correlation-ID': correlationId }
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Pricing (2026)
|
|
101
|
+
|
|
102
|
+
### Workers Traces
|
|
103
|
+
- **GA Pricing (starts March 1, 2026):**
|
|
104
|
+
- $0.10 per 1M trace spans captured
|
|
105
|
+
- Retention: 14 days included
|
|
106
|
+
- **Free tier:** 10M trace spans/month
|
|
107
|
+
- **Note:** Beta usage (before March 1, 2026) is free
|
|
108
|
+
|
|
109
|
+
### Workers Logs
|
|
110
|
+
- **Included:** Free for all Workers
|
|
111
|
+
- **Logpush:** Requires Business/Enterprise plan
|
|
112
|
+
|
|
113
|
+
### Analytics Engine
|
|
114
|
+
- **Included:** 10M writes/month on Paid Workers plan
|
|
115
|
+
- **Additional:** $0.25 per 1M writes beyond included quota
|