[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-inngest-inngest-cli":3,"mdc-5ahezz-key":41,"related-repo-inngest-inngest-cli":5756,"related-org-inngest-inngest-cli":5851},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":36,"sourceUrl":39,"mdContent":40},"inngest-cli","configure Inngest CLI and dev server","Use when installing or running the Inngest CLI and Dev Server for local development, local testing, serve endpoint debugging, Docker or Docker Compose setup, MCP configuration, self-hosted `inngest start`, or deployment workflow checks. Covers `inngest dev`, `inngest start`, auto-discovery, config files, environment variables, `@inngest\u002Ftest`, local event sending, platform gotchas, and production\u002Fself-hosted server flags.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"inngest","Inngest","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Finngest.png",[12,14,17,20],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Local Development","local-development",{"name":18,"slug":19,"type":13},"CLI","cli",{"name":21,"slug":22,"type":13},"Docker","docker",26,"https:\u002F\u002Fgithub.com\u002Finngest\u002Finngest-skills","2026-07-12T07:36:40.694652",null,5,[29,30,31,32,33,34,35],"agent-skill-repository","agent-skills","agentic-skills","ai-agents","claude-code-skills","cursor-skills","openclaw-skills",{"repoUrl":24,"stars":23,"forks":27,"topics":37,"description":38},[29,30,31,32,33,34,35],"Agent Skills for building with Inngest","https:\u002F\u002Fgithub.com\u002Finngest\u002Finngest-skills\u002Ftree\u002FHEAD\u002Fskills\u002Finngest-cli","---\nname: inngest-cli\ndescription: Use when installing or running the Inngest CLI and Dev Server for local development, local testing, serve endpoint debugging, Docker or Docker Compose setup, MCP configuration, self-hosted `inngest start`, or deployment workflow checks. Covers `inngest dev`, `inngest start`, auto-discovery, config files, environment variables, `@inngest\u002Ftest`, local event sending, platform gotchas, and production\u002Fself-hosted server flags.\n---\n\n# Inngest CLI\n\nMaster the Inngest CLI for local development, testing, and self-hosted production. The CLI provides the Dev Server — a fully-featured, open-source local version of the Inngest Platform.\n\n> **These skills are focused on TypeScript.** For Python or Go, refer to the [Inngest documentation](https:\u002F\u002Fwww.inngest.com\u002Fllms.txt) for language-specific guidance. Core concepts apply across all languages.\n\nUse this skill for CLI setup, Dev Server workflows, local testing, Docker, MCP, and self-hosted server operations. For run\u002Ftrace inspection through `inngest api`, use `inngest-api-cli` when available.\n\n## Installation\n\n```bash\n# npx (recommended — always latest)\nnpx inngest-cli@latest dev\n\n# yarn\nyarn dlx inngest-cli@latest dev\n\n# pnpm\npnpm dlx inngest-cli@latest dev\n\n# Global install\nnpm install -g inngest-cli\n\n# Docker\ndocker pull inngest\u002Finngest\n```\n\nIf your npm configuration disables lifecycle scripts and the binary is missing, retry with `npx --ignore-scripts=false inngest-cli@latest dev`. Bun does not support lifecycle scripts by default, so prefer `npx` for the CLI even in Bun projects.\n\n## `inngest dev` — Local Dev Server\n\nStarts an in-memory local version of Inngest with a browser UI at `http:\u002F\u002Flocalhost:8288`.\n\n```bash\n# Auto-discover apps on common ports\u002Fendpoints\nnpx inngest-cli@latest dev\n\n# Specify your app URL\nnpx inngest-cli@latest dev -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\n\n# Custom port\nnpx inngest-cli@latest dev -p 9999\n\n# Multiple apps\nnpx inngest-cli@latest dev \\\n  -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest \\\n  -u http:\u002F\u002Flocalhost:4000\u002Fapi\u002Finngest\n\n# Disable auto-discovery (use with -u)\nnpx inngest-cli@latest dev --no-discovery -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\n```\n\n### CLI Flags\n\n| Flag | Short | Default | Description |\n|---|---|---|---|\n| `--sdk-url` | `-u` | `http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest` | App serve endpoint URL(s) |\n| `--port` | `-p` | `8288` | Dev Server port |\n| `--host` | | | Dev Server host |\n| `--no-discovery` | | `false` | Disable auto-discovery of apps |\n| `--no-poll` | | `false` | Disable polling apps for changes |\n| `--config` | | | Path to configuration file |\n| `--connect-gateway-port` | | `8289` | Connect gateway endpoint port |\n| `--persist` | | `false` | Persist data between restarts |\n| `--poll-interval` | | `5` | Seconds between app polling checks |\n| `--queue-workers` | | `100` | Number of executor workers |\n| `--retry-interval` | | `0` | Linear retry interval in seconds |\n| `--tick` | | `150` | Executor queue polling interval in milliseconds |\n\n### Auto-Discovery\n\nWithout `--no-discovery`, the Dev Server scans common ports and endpoints automatically:\n\n**Ports scanned:** Common development ports including 3000, 3030, and others\n\n**Endpoints scanned:**\n- `\u002Fapi\u002Finngest`\n- `\u002Fx\u002Finngest`\n- `\u002F.netlify\u002Ffunctions\u002Finngest`\n- `\u002F.redwood\u002Ffunctions\u002Finngest`\n\n## Configuration File\n\nCreate an `inngest.json` (or `.yaml`, `.toml`) in your project root. The CLI walks up directories to find it.\n\n```json\n{\n  \"sdk-url\": [\n    \"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\",\n    \"http:\u002F\u002Flocalhost:3030\u002Fapi\u002Finngest\"\n  ],\n  \"no-discovery\": true\n}\n```\n\n```yaml\n# inngest.yaml\nsdk-url:\n  - \"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\"\n  - \"http:\u002F\u002Flocalhost:3030\u002Fapi\u002Finngest\"\nno-discovery: true\n```\n\n## Environment Variables\n\n| Variable | Description |\n|---|---|\n| `INNGEST_DEV` | `=1` enables Dev Mode (disables signature verification). `=0` forces Cloud mode. Accepts a URL (e.g., `http:\u002F\u002Flocalhost:8288`). **Defaults to Cloud mode if unset.** |\n| `INNGEST_BASE_URL` | Host for SDK-to-Inngest communication (e.g., `http:\u002F\u002Flocalhost:8288`). Leave unset in most cases. |\n| `INNGEST_EVENT_KEY` | Authentication key for sending events. **Use any dummy value locally** — Dev Server does not validate. |\n| `INNGEST_SIGNING_KEY` | Secures requests between Inngest and your app. **Required in production.** Determines which Inngest environment receives syncs. |\n| `INNGEST_SIGNING_KEY_FALLBACK` | Fallback key for signing key rotation (v3.18.0+). |\n| `INNGEST_SERVE_ORIGIN` | Full origin URL for Inngest to reach your app (e.g., `https:\u002F\u002Fmy-app.com`). Auto-inferred from request headers; **set explicitly for AWS Lambda, proxies, or tunnels.** |\n| `INNGEST_SERVE_PATH` | URL path to your serve endpoint (e.g., `\u002Fapi\u002Finngest`). Auto-inferred in most cases. |\n| `INNGEST_STREAMING` | Enable response streaming (`true`\u002F`false`). Extends timeout limits on Vercel and edge runtimes. |\n| `INNGEST_ENV` | Target Inngest Environment. Auto-detected on some platforms. |\n\n## Debugging Your Serve Endpoint\n\nVerify your `serve()` endpoint is configured correctly:\n\n```bash\ncurl -s http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest | jq\n```\n\n```json\n{\n  \"message\": \"Inngest endpoint configured correctly.\",\n  \"hasEventKey\": false,\n  \"hasSigningKey\": false,\n  \"functionsFound\": 3\n}\n```\n\nIf `functionsFound` is `0`, check that your functions are passed to the `serve()` call.\n\n## Testing Functions Locally\n\n### Send Events via SDK\n\n```typescript\nimport { Inngest } from \"inngest\";\n\nconst inngest = new Inngest({ id: \"my-app\" });\n\nawait inngest.send({\n  name: \"user\u002Fsignup.completed\",\n  data: {\n    userId: \"user_123\",\n    email: \"user@example.com\",\n  },\n});\n```\n\n### Send Events via curl\n\n```bash\ncurl -X POST \"http:\u002F\u002Flocalhost:8288\u002Fe\u002Ftest\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"user\u002Fsignup.completed\",\n    \"data\": {\n      \"userId\": \"user_123\",\n      \"email\": \"user@example.com\"\n    }\n  }'\n```\n\nThe event key in the URL path (`test` above) can be any value locally.\n\n### Unit Testing with `@inngest\u002Ftest`\n\nRequires `inngest@>=4.0.0`.\n\n```bash\nnpm install -D @inngest\u002Ftest\n```\n\n```typescript\nimport { InngestTestEngine } from \"@inngest\u002Ftest\";\nimport { helloWorld } from \".\u002Ffunctions\";\n\n\u002F\u002F Execute full function\nconst t = new InngestTestEngine({ function: helloWorld });\nconst { result } = await t.execute();\nexpect(result).toEqual(\"Hello World!\");\n\n\u002F\u002F Test a single step\nconst { result: stepResult } = await t.executeStep(\"calculate-price\");\nexpect(stepResult).toEqual(123);\n\n\u002F\u002F Assert step state\nconst { state } = await t.execute();\nawait expect(state[\"my-step\"]).resolves.toEqual(\"output\");\nawait expect(state[\"risky-step\"]).rejects.toThrowError(\"failed\");\n\n\u002F\u002F Mock events\nconst { result: eventResult } = await t.execute({\n  events: [{ name: \"demo\u002Fevent.sent\", data: { message: \"Hi!\" } }],\n});\n\n\u002F\u002F Mock step responses\nconst { result: mockResult } = await t.execute({\n  steps: [{ id: \"external-api-call\", handler() { return { status: \"ok\" }; } }],\n});\n\n\u002F\u002F Mock sleep\u002FwaitForEvent (pause-inducing steps require mocking)\nawait t.execute({\n  steps: [{ id: \"wait-one-day\", handler() {} }],\n});\n```\n\n**Mock external dependencies** with your test framework's standard mocking (`jest.mock`, `vi.mock`, etc.) — `@inngest\u002Ftest` handles only Inngest-specific mocking.\n\n## Docker Setup\n\n### Standalone\n\n```bash\ndocker run -p 8288:8288 -p 8289:8289 \\\n  inngest\u002Finngest \\\n  inngest dev -u http:\u002F\u002Fhost.docker.internal:3000\u002Fapi\u002Finngest\n```\n\nUse `host.docker.internal` to reach your app running on the host machine (works out of the box on Docker Desktop). On Linux, add `--add-host=host.docker.internal:host-gateway` or use an equivalent host-access method.\n\n### Docker Compose\n\n```yaml\nservices:\n  app:\n    build: .\u002Fapp\n    environment:\n      - INNGEST_DEV=1\n      - INNGEST_BASE_URL=http:\u002F\u002Finngest:8288\n    ports:\n      - \"3000:3000\"\n  inngest:\n    image: inngest\u002Finngest\n    command: \"inngest dev -u http:\u002F\u002Fapp:3000\u002Fapi\u002Finngest\"\n    ports:\n      - \"8288:8288\"\n      - \"8289:8289\"\n```\n\n**Port 8288** is the main server and UI. **Port 8289** is the `connect()` WebSocket gateway.\n\n**Critical:** Set `INNGEST_DEV=1` on your app — the TypeScript SDK defaults to Cloud mode, which will skip the Dev Server.\n\n## MCP Server (AI Dev Tools)\n\nThe Dev Server exposes an MCP server at `http:\u002F\u002F127.0.0.1:8288\u002Fmcp` (HTTP transport).\n\n```bash\n# Claude Code\nclaude mcp add --transport http inngest-dev http:\u002F\u002F127.0.0.1:8288\u002Fmcp\n```\n\n```json\n\u002F\u002F .cursor\u002Fmcp.json or another MCP-capable client config\n{\n  \"mcpServers\": {\n    \"inngest-dev\": {\n      \"url\": \"http:\u002F\u002F127.0.0.1:8288\u002Fmcp\"\n    }\n  }\n}\n```\n\n### Available MCP Tools\n\n| Tool | Description |\n|---|---|\n| `send_event` | Send events to trigger functions |\n| `list_functions` | List all registered functions and triggers |\n| `invoke_function` | Execute a function synchronously (default 30s timeout) |\n| `get_run_status` | Get detailed status of a function run |\n| `poll_run_status` | Poll multiple runs until completion |\n| `grep_docs` | Search Inngest documentation by regex pattern |\n| `read_doc` | Read a specific documentation page |\n| `list_docs` | List available documentation structure |\n\n## `inngest start` — Self-Hosted Production\n\nRuns Inngest as a self-hosted production server. **Not the same as `inngest dev`** — this is for production workloads.\n\n```bash\ninngest start --event-key \u003Ckey> --signing-key \u003Ckey>\n```\n\n| Flag | Short | Default | Description |\n|---|---|---|---|\n| `--port` | `-p` | `8288` | Server port |\n| `--signing-key` | | | Hex key for request signing (even character count) |\n| `--event-key` | | | Authentication key for apps (repeatable) |\n| `--sdk-url` | `-u` | | App serve URLs (repeatable) |\n| `--redis-uri` | | | External Redis connection |\n| `--postgres-uri` | | | External PostgreSQL connection |\n| `--sqlite-dir` | | | SQLite database directory |\n| `--poll-interval` | | `0` | App sync polling interval (seconds) |\n| `--queue-workers` | | `100` | Number of executor workers |\n| `--connect-gateway-port` | | `8289` | Connect gateway port |\n| `--retry-interval` | | `0` | Linear retry interval in seconds |\n| `--tick` | | `150` | Executor queue polling interval in milliseconds |\n| `--no-ui` | | | Disable web UI and GraphQL API |\n| `--postgres-conn-max-idle-time` | | `5` | PostgreSQL idle connection lifetime in minutes |\n| `--postgres-conn-max-lifetime` | | `30` | PostgreSQL maximum connection reuse time in minutes |\n| `--postgres-max-idle-conns` | | `10` | PostgreSQL max idle connections |\n| `--postgres-max-open-conns` | | `100` | PostgreSQL max open connections |\n\nGlobal flags such as `--log-level`, `--verbose`, and `--json` are also available. For environment variables, follow the current CLI and deployment docs; do not assume every flag has an `INNGEST_` environment variable equivalent.\n\nDefault persistence: in-memory Redis + SQLite at `.\u002F.inngest\u002Fmain.db`. For production, use external Redis and PostgreSQL.\n\n## Deployment Workflow\n\n### Local Development → Production\n\n1. **Develop locally** with `inngest dev` — no keys needed, no code changes for production\n2. **Deploy your app** to your hosting platform\n3. **Sync with Inngest** using one of three methods:\n\n```bash\n# Option 1: Curl from CI\u002FCD\ncurl -X PUT https:\u002F\u002Fyour-app.com\u002Fapi\u002Finngest --fail-with-body\n\n# Option 2: Vercel\u002FNetlify integrations (automatic on deploy)\n\n# Option 3: Manual sync via Inngest Cloud dashboard\n```\n\n4. **Set environment variables** in production:\n\n```bash\nINNGEST_EVENT_KEY=\u003Cyour-event-key>\nINNGEST_SIGNING_KEY=\u003Cyour-signing-key>\n```\n\n**No code changes** are needed when moving from local dev to production. The SDK automatically detects the environment.\n\n## Platform-Specific Gotchas\n\n| Platform | Gotcha |\n|---|---|\n| **Express** | Requires `express.json()` middleware; default body limit is `100kb` — increase to handle Inngest payloads (up to 4MB) |\n| **AWS Lambda** | Set `INNGEST_SERVE_ORIGIN` and `INNGEST_SERVE_PATH` explicitly — auto-inference fails |\n| **Firebase Cloud Functions** | Must set `INNGEST_SERVE_PATH` env var |\n| **DigitalOcean Functions** | Both `serveOrigin` and `servePath` required in `serve()` config |\n| **Cloudflare Workers (Wrangler `--remote`)** | Requires tunnel (ngrok\u002Flocaltunnel) for Dev Server connection |\n| **Supabase Edge Functions** | `servePath` must match function name — Supabase rewrites request paths |\n| **Google Cloud Run (1st gen)** | Not officially supported; may cause signature verification errors |\n| **Docker** | Must set `INNGEST_DEV=1` — SDK defaults to Cloud mode |\n| **External webhooks (Stripe, Clerk)** | Require tunnel solution (ngrok, localtunnel) for local testing |\n\n## Quick Reference\n\n```bash\n# Start dev server with auto-discovery\nnpx inngest-cli@latest dev\n\n# Start with explicit app URL\nnpx inngest-cli@latest dev -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\n\n# Check serve endpoint health\ncurl -s http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest | jq\n\n# Send test event via curl\ncurl -X POST http:\u002F\u002Flocalhost:8288\u002Fe\u002Ftest -d '{\"name\": \"test\u002Fevent\", \"data\": {}}'\n\n# Sync after deploy (CI\u002FCD)\ncurl -X PUT https:\u002F\u002Fyour-app.com\u002Fapi\u002Finngest --fail-with-body\n\n# Self-hosted production\ninngest start --event-key \u003Ckey> --signing-key \u003Ckey>\n```\n\n## Troubleshooting\n\n| Issue | Cause | Solution |\n|---|---|---|\n| Dev Server doesn't find functions | App not running or wrong port | Start your app first; use `-u` to specify the correct URL |\n| `functionsFound: 0` in debug output | Functions not passed to `serve()` | Verify all functions are in the array passed to `serve()` |\n| SDK connects to Cloud instead of Dev Server | `INNGEST_DEV` not set | Set `INNGEST_DEV=1` in your environment |\n| Functions sync to wrong Inngest environment | Wrong signing key | Check `INNGEST_SIGNING_KEY` matches target environment |\n| Duplicate app in Inngest dashboard | App `id` was changed | Keep the `id` in `new Inngest({ id })` stable across deploys |\n| Webhook events not reaching Dev Server | No tunnel configured | Use ngrok or localtunnel for external webhook sources |\n| \"Unattached sync\" in dashboard | Auto-sync failed silently | Check integration logs; resync manually |\n\nSee [inngest-setup](..\u002Finngest-setup\u002FSKILL.md) for SDK installation and [inngest-durable-functions](..\u002Finngest-durable-functions\u002FSKILL.md) for function configuration.\n",{"data":42,"body":43},{"name":4,"description":6},{"type":44,"children":45},"root",[46,54,60,86,108,115,313,333,345,358,580,587,971,977,989,999,1007,1048,1054,1083,1209,1295,1301,1557,1563,1576,1610,1742,1768,1774,1780,2080,2086,2222,2235,2247,2259,2287,3412,3444,3450,3456,3530,3551,3557,3777,3802,3820,3826,3839,3892,4017,4023,4180,4192,4209,4275,4746,4782,4795,4801,4807,4848,4919,4932,4980,4990,4996,5237,5243,5506,5512,5729,5750],{"type":47,"tag":48,"props":49,"children":50},"element","h1",{"id":4},[51],{"type":52,"value":53},"text","Inngest CLI",{"type":47,"tag":55,"props":56,"children":57},"p",{},[58],{"type":52,"value":59},"Master the Inngest CLI for local development, testing, and self-hosted production. The CLI provides the Dev Server — a fully-featured, open-source local version of the Inngest Platform.",{"type":47,"tag":61,"props":62,"children":63},"blockquote",{},[64],{"type":47,"tag":55,"props":65,"children":66},{},[67,73,75,84],{"type":47,"tag":68,"props":69,"children":70},"strong",{},[71],{"type":52,"value":72},"These skills are focused on TypeScript.",{"type":52,"value":74}," For Python or Go, refer to the ",{"type":47,"tag":76,"props":77,"children":81},"a",{"href":78,"rel":79},"https:\u002F\u002Fwww.inngest.com\u002Fllms.txt",[80],"nofollow",[82],{"type":52,"value":83},"Inngest documentation",{"type":52,"value":85}," for language-specific guidance. Core concepts apply across all languages.",{"type":47,"tag":55,"props":87,"children":88},{},[89,91,98,100,106],{"type":52,"value":90},"Use this skill for CLI setup, Dev Server workflows, local testing, Docker, MCP, and self-hosted server operations. For run\u002Ftrace inspection through ",{"type":47,"tag":92,"props":93,"children":95},"code",{"className":94},[],[96],{"type":52,"value":97},"inngest api",{"type":52,"value":99},", use ",{"type":47,"tag":92,"props":101,"children":103},{"className":102},[],[104],{"type":52,"value":105},"inngest-api-cli",{"type":52,"value":107}," when available.",{"type":47,"tag":109,"props":110,"children":112},"h2",{"id":111},"installation",[113],{"type":52,"value":114},"Installation",{"type":47,"tag":116,"props":117,"children":122},"pre",{"className":118,"code":119,"language":120,"meta":121,"style":121},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# npx (recommended — always latest)\nnpx inngest-cli@latest dev\n\n# yarn\nyarn dlx inngest-cli@latest dev\n\n# pnpm\npnpm dlx inngest-cli@latest dev\n\n# Global install\nnpm install -g inngest-cli\n\n# Docker\ndocker pull inngest\u002Finngest\n","bash","",[123],{"type":47,"tag":92,"props":124,"children":125},{"__ignoreMap":121},[126,138,159,169,178,199,207,216,237,245,254,278,286,295],{"type":47,"tag":127,"props":128,"children":131},"span",{"class":129,"line":130},"line",1,[132],{"type":47,"tag":127,"props":133,"children":135},{"style":134},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[136],{"type":52,"value":137},"# npx (recommended — always latest)\n",{"type":47,"tag":127,"props":139,"children":141},{"class":129,"line":140},2,[142,148,154],{"type":47,"tag":127,"props":143,"children":145},{"style":144},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[146],{"type":52,"value":147},"npx",{"type":47,"tag":127,"props":149,"children":151},{"style":150},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[152],{"type":52,"value":153}," inngest-cli@latest",{"type":47,"tag":127,"props":155,"children":156},{"style":150},[157],{"type":52,"value":158}," dev\n",{"type":47,"tag":127,"props":160,"children":162},{"class":129,"line":161},3,[163],{"type":47,"tag":127,"props":164,"children":166},{"emptyLinePlaceholder":165},true,[167],{"type":52,"value":168},"\n",{"type":47,"tag":127,"props":170,"children":172},{"class":129,"line":171},4,[173],{"type":47,"tag":127,"props":174,"children":175},{"style":134},[176],{"type":52,"value":177},"# yarn\n",{"type":47,"tag":127,"props":179,"children":180},{"class":129,"line":27},[181,186,191,195],{"type":47,"tag":127,"props":182,"children":183},{"style":144},[184],{"type":52,"value":185},"yarn",{"type":47,"tag":127,"props":187,"children":188},{"style":150},[189],{"type":52,"value":190}," dlx",{"type":47,"tag":127,"props":192,"children":193},{"style":150},[194],{"type":52,"value":153},{"type":47,"tag":127,"props":196,"children":197},{"style":150},[198],{"type":52,"value":158},{"type":47,"tag":127,"props":200,"children":202},{"class":129,"line":201},6,[203],{"type":47,"tag":127,"props":204,"children":205},{"emptyLinePlaceholder":165},[206],{"type":52,"value":168},{"type":47,"tag":127,"props":208,"children":210},{"class":129,"line":209},7,[211],{"type":47,"tag":127,"props":212,"children":213},{"style":134},[214],{"type":52,"value":215},"# pnpm\n",{"type":47,"tag":127,"props":217,"children":219},{"class":129,"line":218},8,[220,225,229,233],{"type":47,"tag":127,"props":221,"children":222},{"style":144},[223],{"type":52,"value":224},"pnpm",{"type":47,"tag":127,"props":226,"children":227},{"style":150},[228],{"type":52,"value":190},{"type":47,"tag":127,"props":230,"children":231},{"style":150},[232],{"type":52,"value":153},{"type":47,"tag":127,"props":234,"children":235},{"style":150},[236],{"type":52,"value":158},{"type":47,"tag":127,"props":238,"children":240},{"class":129,"line":239},9,[241],{"type":47,"tag":127,"props":242,"children":243},{"emptyLinePlaceholder":165},[244],{"type":52,"value":168},{"type":47,"tag":127,"props":246,"children":248},{"class":129,"line":247},10,[249],{"type":47,"tag":127,"props":250,"children":251},{"style":134},[252],{"type":52,"value":253},"# Global install\n",{"type":47,"tag":127,"props":255,"children":257},{"class":129,"line":256},11,[258,263,268,273],{"type":47,"tag":127,"props":259,"children":260},{"style":144},[261],{"type":52,"value":262},"npm",{"type":47,"tag":127,"props":264,"children":265},{"style":150},[266],{"type":52,"value":267}," install",{"type":47,"tag":127,"props":269,"children":270},{"style":150},[271],{"type":52,"value":272}," -g",{"type":47,"tag":127,"props":274,"children":275},{"style":150},[276],{"type":52,"value":277}," inngest-cli\n",{"type":47,"tag":127,"props":279,"children":281},{"class":129,"line":280},12,[282],{"type":47,"tag":127,"props":283,"children":284},{"emptyLinePlaceholder":165},[285],{"type":52,"value":168},{"type":47,"tag":127,"props":287,"children":289},{"class":129,"line":288},13,[290],{"type":47,"tag":127,"props":291,"children":292},{"style":134},[293],{"type":52,"value":294},"# Docker\n",{"type":47,"tag":127,"props":296,"children":298},{"class":129,"line":297},14,[299,303,308],{"type":47,"tag":127,"props":300,"children":301},{"style":144},[302],{"type":52,"value":22},{"type":47,"tag":127,"props":304,"children":305},{"style":150},[306],{"type":52,"value":307}," pull",{"type":47,"tag":127,"props":309,"children":310},{"style":150},[311],{"type":52,"value":312}," inngest\u002Finngest\n",{"type":47,"tag":55,"props":314,"children":315},{},[316,318,324,326,331],{"type":52,"value":317},"If your npm configuration disables lifecycle scripts and the binary is missing, retry with ",{"type":47,"tag":92,"props":319,"children":321},{"className":320},[],[322],{"type":52,"value":323},"npx --ignore-scripts=false inngest-cli@latest dev",{"type":52,"value":325},". Bun does not support lifecycle scripts by default, so prefer ",{"type":47,"tag":92,"props":327,"children":329},{"className":328},[],[330],{"type":52,"value":147},{"type":52,"value":332}," for the CLI even in Bun projects.",{"type":47,"tag":109,"props":334,"children":336},{"id":335},"inngest-dev-local-dev-server",[337,343],{"type":47,"tag":92,"props":338,"children":340},{"className":339},[],[341],{"type":52,"value":342},"inngest dev",{"type":52,"value":344}," — Local Dev Server",{"type":47,"tag":55,"props":346,"children":347},{},[348,350,356],{"type":52,"value":349},"Starts an in-memory local version of Inngest with a browser UI at ",{"type":47,"tag":92,"props":351,"children":353},{"className":352},[],[354],{"type":52,"value":355},"http:\u002F\u002Flocalhost:8288",{"type":52,"value":357},".",{"type":47,"tag":116,"props":359,"children":361},{"className":118,"code":360,"language":120,"meta":121,"style":121},"# Auto-discover apps on common ports\u002Fendpoints\nnpx inngest-cli@latest dev\n\n# Specify your app URL\nnpx inngest-cli@latest dev -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\n\n# Custom port\nnpx inngest-cli@latest dev -p 9999\n\n# Multiple apps\nnpx inngest-cli@latest dev \\\n  -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest \\\n  -u http:\u002F\u002Flocalhost:4000\u002Fapi\u002Finngest\n\n# Disable auto-discovery (use with -u)\nnpx inngest-cli@latest dev --no-discovery -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\n",[362],{"type":47,"tag":92,"props":363,"children":364},{"__ignoreMap":121},[365,373,388,395,403,429,436,444,470,477,485,506,523,535,542,551],{"type":47,"tag":127,"props":366,"children":367},{"class":129,"line":130},[368],{"type":47,"tag":127,"props":369,"children":370},{"style":134},[371],{"type":52,"value":372},"# Auto-discover apps on common ports\u002Fendpoints\n",{"type":47,"tag":127,"props":374,"children":375},{"class":129,"line":140},[376,380,384],{"type":47,"tag":127,"props":377,"children":378},{"style":144},[379],{"type":52,"value":147},{"type":47,"tag":127,"props":381,"children":382},{"style":150},[383],{"type":52,"value":153},{"type":47,"tag":127,"props":385,"children":386},{"style":150},[387],{"type":52,"value":158},{"type":47,"tag":127,"props":389,"children":390},{"class":129,"line":161},[391],{"type":47,"tag":127,"props":392,"children":393},{"emptyLinePlaceholder":165},[394],{"type":52,"value":168},{"type":47,"tag":127,"props":396,"children":397},{"class":129,"line":171},[398],{"type":47,"tag":127,"props":399,"children":400},{"style":134},[401],{"type":52,"value":402},"# Specify your app URL\n",{"type":47,"tag":127,"props":404,"children":405},{"class":129,"line":27},[406,410,414,419,424],{"type":47,"tag":127,"props":407,"children":408},{"style":144},[409],{"type":52,"value":147},{"type":47,"tag":127,"props":411,"children":412},{"style":150},[413],{"type":52,"value":153},{"type":47,"tag":127,"props":415,"children":416},{"style":150},[417],{"type":52,"value":418}," dev",{"type":47,"tag":127,"props":420,"children":421},{"style":150},[422],{"type":52,"value":423}," -u",{"type":47,"tag":127,"props":425,"children":426},{"style":150},[427],{"type":52,"value":428}," http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\n",{"type":47,"tag":127,"props":430,"children":431},{"class":129,"line":201},[432],{"type":47,"tag":127,"props":433,"children":434},{"emptyLinePlaceholder":165},[435],{"type":52,"value":168},{"type":47,"tag":127,"props":437,"children":438},{"class":129,"line":209},[439],{"type":47,"tag":127,"props":440,"children":441},{"style":134},[442],{"type":52,"value":443},"# Custom port\n",{"type":47,"tag":127,"props":445,"children":446},{"class":129,"line":218},[447,451,455,459,464],{"type":47,"tag":127,"props":448,"children":449},{"style":144},[450],{"type":52,"value":147},{"type":47,"tag":127,"props":452,"children":453},{"style":150},[454],{"type":52,"value":153},{"type":47,"tag":127,"props":456,"children":457},{"style":150},[458],{"type":52,"value":418},{"type":47,"tag":127,"props":460,"children":461},{"style":150},[462],{"type":52,"value":463}," -p",{"type":47,"tag":127,"props":465,"children":467},{"style":466},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[468],{"type":52,"value":469}," 9999\n",{"type":47,"tag":127,"props":471,"children":472},{"class":129,"line":239},[473],{"type":47,"tag":127,"props":474,"children":475},{"emptyLinePlaceholder":165},[476],{"type":52,"value":168},{"type":47,"tag":127,"props":478,"children":479},{"class":129,"line":247},[480],{"type":47,"tag":127,"props":481,"children":482},{"style":134},[483],{"type":52,"value":484},"# Multiple apps\n",{"type":47,"tag":127,"props":486,"children":487},{"class":129,"line":256},[488,492,496,500],{"type":47,"tag":127,"props":489,"children":490},{"style":144},[491],{"type":52,"value":147},{"type":47,"tag":127,"props":493,"children":494},{"style":150},[495],{"type":52,"value":153},{"type":47,"tag":127,"props":497,"children":498},{"style":150},[499],{"type":52,"value":418},{"type":47,"tag":127,"props":501,"children":503},{"style":502},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[504],{"type":52,"value":505}," \\\n",{"type":47,"tag":127,"props":507,"children":508},{"class":129,"line":280},[509,514,519],{"type":47,"tag":127,"props":510,"children":511},{"style":150},[512],{"type":52,"value":513},"  -u",{"type":47,"tag":127,"props":515,"children":516},{"style":150},[517],{"type":52,"value":518}," http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest",{"type":47,"tag":127,"props":520,"children":521},{"style":502},[522],{"type":52,"value":505},{"type":47,"tag":127,"props":524,"children":525},{"class":129,"line":288},[526,530],{"type":47,"tag":127,"props":527,"children":528},{"style":150},[529],{"type":52,"value":513},{"type":47,"tag":127,"props":531,"children":532},{"style":150},[533],{"type":52,"value":534}," http:\u002F\u002Flocalhost:4000\u002Fapi\u002Finngest\n",{"type":47,"tag":127,"props":536,"children":537},{"class":129,"line":297},[538],{"type":47,"tag":127,"props":539,"children":540},{"emptyLinePlaceholder":165},[541],{"type":52,"value":168},{"type":47,"tag":127,"props":543,"children":545},{"class":129,"line":544},15,[546],{"type":47,"tag":127,"props":547,"children":548},{"style":134},[549],{"type":52,"value":550},"# Disable auto-discovery (use with -u)\n",{"type":47,"tag":127,"props":552,"children":554},{"class":129,"line":553},16,[555,559,563,567,572,576],{"type":47,"tag":127,"props":556,"children":557},{"style":144},[558],{"type":52,"value":147},{"type":47,"tag":127,"props":560,"children":561},{"style":150},[562],{"type":52,"value":153},{"type":47,"tag":127,"props":564,"children":565},{"style":150},[566],{"type":52,"value":418},{"type":47,"tag":127,"props":568,"children":569},{"style":150},[570],{"type":52,"value":571}," --no-discovery",{"type":47,"tag":127,"props":573,"children":574},{"style":150},[575],{"type":52,"value":423},{"type":47,"tag":127,"props":577,"children":578},{"style":150},[579],{"type":52,"value":428},{"type":47,"tag":581,"props":582,"children":584},"h3",{"id":583},"cli-flags",[585],{"type":52,"value":586},"CLI Flags",{"type":47,"tag":588,"props":589,"children":590},"table",{},[591,620],{"type":47,"tag":592,"props":593,"children":594},"thead",{},[595],{"type":47,"tag":596,"props":597,"children":598},"tr",{},[599,605,610,615],{"type":47,"tag":600,"props":601,"children":602},"th",{},[603],{"type":52,"value":604},"Flag",{"type":47,"tag":600,"props":606,"children":607},{},[608],{"type":52,"value":609},"Short",{"type":47,"tag":600,"props":611,"children":612},{},[613],{"type":52,"value":614},"Default",{"type":47,"tag":600,"props":616,"children":617},{},[618],{"type":52,"value":619},"Description",{"type":47,"tag":621,"props":622,"children":623},"tbody",{},[624,660,695,718,747,775,798,827,855,884,913,942],{"type":47,"tag":596,"props":625,"children":626},{},[627,637,646,655],{"type":47,"tag":628,"props":629,"children":630},"td",{},[631],{"type":47,"tag":92,"props":632,"children":634},{"className":633},[],[635],{"type":52,"value":636},"--sdk-url",{"type":47,"tag":628,"props":638,"children":639},{},[640],{"type":47,"tag":92,"props":641,"children":643},{"className":642},[],[644],{"type":52,"value":645},"-u",{"type":47,"tag":628,"props":647,"children":648},{},[649],{"type":47,"tag":92,"props":650,"children":652},{"className":651},[],[653],{"type":52,"value":654},"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest",{"type":47,"tag":628,"props":656,"children":657},{},[658],{"type":52,"value":659},"App serve endpoint URL(s)",{"type":47,"tag":596,"props":661,"children":662},{},[663,672,681,690],{"type":47,"tag":628,"props":664,"children":665},{},[666],{"type":47,"tag":92,"props":667,"children":669},{"className":668},[],[670],{"type":52,"value":671},"--port",{"type":47,"tag":628,"props":673,"children":674},{},[675],{"type":47,"tag":92,"props":676,"children":678},{"className":677},[],[679],{"type":52,"value":680},"-p",{"type":47,"tag":628,"props":682,"children":683},{},[684],{"type":47,"tag":92,"props":685,"children":687},{"className":686},[],[688],{"type":52,"value":689},"8288",{"type":47,"tag":628,"props":691,"children":692},{},[693],{"type":52,"value":694},"Dev Server port",{"type":47,"tag":596,"props":696,"children":697},{},[698,707,710,713],{"type":47,"tag":628,"props":699,"children":700},{},[701],{"type":47,"tag":92,"props":702,"children":704},{"className":703},[],[705],{"type":52,"value":706},"--host",{"type":47,"tag":628,"props":708,"children":709},{},[],{"type":47,"tag":628,"props":711,"children":712},{},[],{"type":47,"tag":628,"props":714,"children":715},{},[716],{"type":52,"value":717},"Dev Server host",{"type":47,"tag":596,"props":719,"children":720},{},[721,730,733,742],{"type":47,"tag":628,"props":722,"children":723},{},[724],{"type":47,"tag":92,"props":725,"children":727},{"className":726},[],[728],{"type":52,"value":729},"--no-discovery",{"type":47,"tag":628,"props":731,"children":732},{},[],{"type":47,"tag":628,"props":734,"children":735},{},[736],{"type":47,"tag":92,"props":737,"children":739},{"className":738},[],[740],{"type":52,"value":741},"false",{"type":47,"tag":628,"props":743,"children":744},{},[745],{"type":52,"value":746},"Disable auto-discovery of apps",{"type":47,"tag":596,"props":748,"children":749},{},[750,759,762,770],{"type":47,"tag":628,"props":751,"children":752},{},[753],{"type":47,"tag":92,"props":754,"children":756},{"className":755},[],[757],{"type":52,"value":758},"--no-poll",{"type":47,"tag":628,"props":760,"children":761},{},[],{"type":47,"tag":628,"props":763,"children":764},{},[765],{"type":47,"tag":92,"props":766,"children":768},{"className":767},[],[769],{"type":52,"value":741},{"type":47,"tag":628,"props":771,"children":772},{},[773],{"type":52,"value":774},"Disable polling apps for changes",{"type":47,"tag":596,"props":776,"children":777},{},[778,787,790,793],{"type":47,"tag":628,"props":779,"children":780},{},[781],{"type":47,"tag":92,"props":782,"children":784},{"className":783},[],[785],{"type":52,"value":786},"--config",{"type":47,"tag":628,"props":788,"children":789},{},[],{"type":47,"tag":628,"props":791,"children":792},{},[],{"type":47,"tag":628,"props":794,"children":795},{},[796],{"type":52,"value":797},"Path to configuration file",{"type":47,"tag":596,"props":799,"children":800},{},[801,810,813,822],{"type":47,"tag":628,"props":802,"children":803},{},[804],{"type":47,"tag":92,"props":805,"children":807},{"className":806},[],[808],{"type":52,"value":809},"--connect-gateway-port",{"type":47,"tag":628,"props":811,"children":812},{},[],{"type":47,"tag":628,"props":814,"children":815},{},[816],{"type":47,"tag":92,"props":817,"children":819},{"className":818},[],[820],{"type":52,"value":821},"8289",{"type":47,"tag":628,"props":823,"children":824},{},[825],{"type":52,"value":826},"Connect gateway endpoint port",{"type":47,"tag":596,"props":828,"children":829},{},[830,839,842,850],{"type":47,"tag":628,"props":831,"children":832},{},[833],{"type":47,"tag":92,"props":834,"children":836},{"className":835},[],[837],{"type":52,"value":838},"--persist",{"type":47,"tag":628,"props":840,"children":841},{},[],{"type":47,"tag":628,"props":843,"children":844},{},[845],{"type":47,"tag":92,"props":846,"children":848},{"className":847},[],[849],{"type":52,"value":741},{"type":47,"tag":628,"props":851,"children":852},{},[853],{"type":52,"value":854},"Persist data between restarts",{"type":47,"tag":596,"props":856,"children":857},{},[858,867,870,879],{"type":47,"tag":628,"props":859,"children":860},{},[861],{"type":47,"tag":92,"props":862,"children":864},{"className":863},[],[865],{"type":52,"value":866},"--poll-interval",{"type":47,"tag":628,"props":868,"children":869},{},[],{"type":47,"tag":628,"props":871,"children":872},{},[873],{"type":47,"tag":92,"props":874,"children":876},{"className":875},[],[877],{"type":52,"value":878},"5",{"type":47,"tag":628,"props":880,"children":881},{},[882],{"type":52,"value":883},"Seconds between app polling checks",{"type":47,"tag":596,"props":885,"children":886},{},[887,896,899,908],{"type":47,"tag":628,"props":888,"children":889},{},[890],{"type":47,"tag":92,"props":891,"children":893},{"className":892},[],[894],{"type":52,"value":895},"--queue-workers",{"type":47,"tag":628,"props":897,"children":898},{},[],{"type":47,"tag":628,"props":900,"children":901},{},[902],{"type":47,"tag":92,"props":903,"children":905},{"className":904},[],[906],{"type":52,"value":907},"100",{"type":47,"tag":628,"props":909,"children":910},{},[911],{"type":52,"value":912},"Number of executor workers",{"type":47,"tag":596,"props":914,"children":915},{},[916,925,928,937],{"type":47,"tag":628,"props":917,"children":918},{},[919],{"type":47,"tag":92,"props":920,"children":922},{"className":921},[],[923],{"type":52,"value":924},"--retry-interval",{"type":47,"tag":628,"props":926,"children":927},{},[],{"type":47,"tag":628,"props":929,"children":930},{},[931],{"type":47,"tag":92,"props":932,"children":934},{"className":933},[],[935],{"type":52,"value":936},"0",{"type":47,"tag":628,"props":938,"children":939},{},[940],{"type":52,"value":941},"Linear retry interval in seconds",{"type":47,"tag":596,"props":943,"children":944},{},[945,954,957,966],{"type":47,"tag":628,"props":946,"children":947},{},[948],{"type":47,"tag":92,"props":949,"children":951},{"className":950},[],[952],{"type":52,"value":953},"--tick",{"type":47,"tag":628,"props":955,"children":956},{},[],{"type":47,"tag":628,"props":958,"children":959},{},[960],{"type":47,"tag":92,"props":961,"children":963},{"className":962},[],[964],{"type":52,"value":965},"150",{"type":47,"tag":628,"props":967,"children":968},{},[969],{"type":52,"value":970},"Executor queue polling interval in milliseconds",{"type":47,"tag":581,"props":972,"children":974},{"id":973},"auto-discovery",[975],{"type":52,"value":976},"Auto-Discovery",{"type":47,"tag":55,"props":978,"children":979},{},[980,982,987],{"type":52,"value":981},"Without ",{"type":47,"tag":92,"props":983,"children":985},{"className":984},[],[986],{"type":52,"value":729},{"type":52,"value":988},", the Dev Server scans common ports and endpoints automatically:",{"type":47,"tag":55,"props":990,"children":991},{},[992,997],{"type":47,"tag":68,"props":993,"children":994},{},[995],{"type":52,"value":996},"Ports scanned:",{"type":52,"value":998}," Common development ports including 3000, 3030, and others",{"type":47,"tag":55,"props":1000,"children":1001},{},[1002],{"type":47,"tag":68,"props":1003,"children":1004},{},[1005],{"type":52,"value":1006},"Endpoints scanned:",{"type":47,"tag":1008,"props":1009,"children":1010},"ul",{},[1011,1021,1030,1039],{"type":47,"tag":1012,"props":1013,"children":1014},"li",{},[1015],{"type":47,"tag":92,"props":1016,"children":1018},{"className":1017},[],[1019],{"type":52,"value":1020},"\u002Fapi\u002Finngest",{"type":47,"tag":1012,"props":1022,"children":1023},{},[1024],{"type":47,"tag":92,"props":1025,"children":1027},{"className":1026},[],[1028],{"type":52,"value":1029},"\u002Fx\u002Finngest",{"type":47,"tag":1012,"props":1031,"children":1032},{},[1033],{"type":47,"tag":92,"props":1034,"children":1036},{"className":1035},[],[1037],{"type":52,"value":1038},"\u002F.netlify\u002Ffunctions\u002Finngest",{"type":47,"tag":1012,"props":1040,"children":1041},{},[1042],{"type":47,"tag":92,"props":1043,"children":1045},{"className":1044},[],[1046],{"type":52,"value":1047},"\u002F.redwood\u002Ffunctions\u002Finngest",{"type":47,"tag":109,"props":1049,"children":1051},{"id":1050},"configuration-file",[1052],{"type":52,"value":1053},"Configuration File",{"type":47,"tag":55,"props":1055,"children":1056},{},[1057,1059,1065,1067,1073,1075,1081],{"type":52,"value":1058},"Create an ",{"type":47,"tag":92,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":52,"value":1064},"inngest.json",{"type":52,"value":1066}," (or ",{"type":47,"tag":92,"props":1068,"children":1070},{"className":1069},[],[1071],{"type":52,"value":1072},".yaml",{"type":52,"value":1074},", ",{"type":47,"tag":92,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":52,"value":1080},".toml",{"type":52,"value":1082},") in your project root. The CLI walks up directories to find it.",{"type":47,"tag":116,"props":1084,"children":1088},{"className":1085,"code":1086,"language":1087,"meta":121,"style":121},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"sdk-url\": [\n    \"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\",\n    \"http:\u002F\u002Flocalhost:3030\u002Fapi\u002Finngest\"\n  ],\n  \"no-discovery\": true\n}\n","json",[1089],{"type":47,"tag":92,"props":1090,"children":1091},{"__ignoreMap":121},[1092,1101,1130,1151,1168,1176,1201],{"type":47,"tag":127,"props":1093,"children":1094},{"class":129,"line":130},[1095],{"type":47,"tag":127,"props":1096,"children":1098},{"style":1097},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1099],{"type":52,"value":1100},"{\n",{"type":47,"tag":127,"props":1102,"children":1103},{"class":129,"line":140},[1104,1109,1115,1120,1125],{"type":47,"tag":127,"props":1105,"children":1106},{"style":1097},[1107],{"type":52,"value":1108},"  \"",{"type":47,"tag":127,"props":1110,"children":1112},{"style":1111},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1113],{"type":52,"value":1114},"sdk-url",{"type":47,"tag":127,"props":1116,"children":1117},{"style":1097},[1118],{"type":52,"value":1119},"\"",{"type":47,"tag":127,"props":1121,"children":1122},{"style":1097},[1123],{"type":52,"value":1124},":",{"type":47,"tag":127,"props":1126,"children":1127},{"style":1097},[1128],{"type":52,"value":1129}," [\n",{"type":47,"tag":127,"props":1131,"children":1132},{"class":129,"line":161},[1133,1138,1142,1146],{"type":47,"tag":127,"props":1134,"children":1135},{"style":1097},[1136],{"type":52,"value":1137},"    \"",{"type":47,"tag":127,"props":1139,"children":1140},{"style":150},[1141],{"type":52,"value":654},{"type":47,"tag":127,"props":1143,"children":1144},{"style":1097},[1145],{"type":52,"value":1119},{"type":47,"tag":127,"props":1147,"children":1148},{"style":1097},[1149],{"type":52,"value":1150},",\n",{"type":47,"tag":127,"props":1152,"children":1153},{"class":129,"line":171},[1154,1158,1163],{"type":47,"tag":127,"props":1155,"children":1156},{"style":1097},[1157],{"type":52,"value":1137},{"type":47,"tag":127,"props":1159,"children":1160},{"style":150},[1161],{"type":52,"value":1162},"http:\u002F\u002Flocalhost:3030\u002Fapi\u002Finngest",{"type":47,"tag":127,"props":1164,"children":1165},{"style":1097},[1166],{"type":52,"value":1167},"\"\n",{"type":47,"tag":127,"props":1169,"children":1170},{"class":129,"line":27},[1171],{"type":47,"tag":127,"props":1172,"children":1173},{"style":1097},[1174],{"type":52,"value":1175},"  ],\n",{"type":47,"tag":127,"props":1177,"children":1178},{"class":129,"line":201},[1179,1183,1188,1192,1196],{"type":47,"tag":127,"props":1180,"children":1181},{"style":1097},[1182],{"type":52,"value":1108},{"type":47,"tag":127,"props":1184,"children":1185},{"style":1111},[1186],{"type":52,"value":1187},"no-discovery",{"type":47,"tag":127,"props":1189,"children":1190},{"style":1097},[1191],{"type":52,"value":1119},{"type":47,"tag":127,"props":1193,"children":1194},{"style":1097},[1195],{"type":52,"value":1124},{"type":47,"tag":127,"props":1197,"children":1198},{"style":1097},[1199],{"type":52,"value":1200}," true\n",{"type":47,"tag":127,"props":1202,"children":1203},{"class":129,"line":209},[1204],{"type":47,"tag":127,"props":1205,"children":1206},{"style":1097},[1207],{"type":52,"value":1208},"}\n",{"type":47,"tag":116,"props":1210,"children":1214},{"className":1211,"code":1212,"language":1213,"meta":121,"style":121},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# inngest.yaml\nsdk-url:\n  - \"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\"\n  - \"http:\u002F\u002Flocalhost:3030\u002Fapi\u002Finngest\"\nno-discovery: true\n","yaml",[1215],{"type":47,"tag":92,"props":1216,"children":1217},{"__ignoreMap":121},[1218,1226,1239,1260,1279],{"type":47,"tag":127,"props":1219,"children":1220},{"class":129,"line":130},[1221],{"type":47,"tag":127,"props":1222,"children":1223},{"style":134},[1224],{"type":52,"value":1225},"# inngest.yaml\n",{"type":47,"tag":127,"props":1227,"children":1228},{"class":129,"line":140},[1229,1234],{"type":47,"tag":127,"props":1230,"children":1232},{"style":1231},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1233],{"type":52,"value":1114},{"type":47,"tag":127,"props":1235,"children":1236},{"style":1097},[1237],{"type":52,"value":1238},":\n",{"type":47,"tag":127,"props":1240,"children":1241},{"class":129,"line":161},[1242,1247,1252,1256],{"type":47,"tag":127,"props":1243,"children":1244},{"style":1097},[1245],{"type":52,"value":1246},"  -",{"type":47,"tag":127,"props":1248,"children":1249},{"style":1097},[1250],{"type":52,"value":1251}," \"",{"type":47,"tag":127,"props":1253,"children":1254},{"style":150},[1255],{"type":52,"value":654},{"type":47,"tag":127,"props":1257,"children":1258},{"style":1097},[1259],{"type":52,"value":1167},{"type":47,"tag":127,"props":1261,"children":1262},{"class":129,"line":171},[1263,1267,1271,1275],{"type":47,"tag":127,"props":1264,"children":1265},{"style":1097},[1266],{"type":52,"value":1246},{"type":47,"tag":127,"props":1268,"children":1269},{"style":1097},[1270],{"type":52,"value":1251},{"type":47,"tag":127,"props":1272,"children":1273},{"style":150},[1274],{"type":52,"value":1162},{"type":47,"tag":127,"props":1276,"children":1277},{"style":1097},[1278],{"type":52,"value":1167},{"type":47,"tag":127,"props":1280,"children":1281},{"class":129,"line":27},[1282,1286,1290],{"type":47,"tag":127,"props":1283,"children":1284},{"style":1231},[1285],{"type":52,"value":1187},{"type":47,"tag":127,"props":1287,"children":1288},{"style":1097},[1289],{"type":52,"value":1124},{"type":47,"tag":127,"props":1291,"children":1293},{"style":1292},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1294],{"type":52,"value":1200},{"type":47,"tag":109,"props":1296,"children":1298},{"id":1297},"environment-variables",[1299],{"type":52,"value":1300},"Environment Variables",{"type":47,"tag":588,"props":1302,"children":1303},{},[1304,1319],{"type":47,"tag":592,"props":1305,"children":1306},{},[1307],{"type":47,"tag":596,"props":1308,"children":1309},{},[1310,1315],{"type":47,"tag":600,"props":1311,"children":1312},{},[1313],{"type":52,"value":1314},"Variable",{"type":47,"tag":600,"props":1316,"children":1317},{},[1318],{"type":52,"value":619},{"type":47,"tag":621,"props":1320,"children":1321},{},[1322,1365,1389,1413,1437,1454,1484,1508,1540],{"type":47,"tag":596,"props":1323,"children":1324},{},[1325,1334],{"type":47,"tag":628,"props":1326,"children":1327},{},[1328],{"type":47,"tag":92,"props":1329,"children":1331},{"className":1330},[],[1332],{"type":52,"value":1333},"INNGEST_DEV",{"type":47,"tag":628,"props":1335,"children":1336},{},[1337,1343,1345,1351,1353,1358,1360],{"type":47,"tag":92,"props":1338,"children":1340},{"className":1339},[],[1341],{"type":52,"value":1342},"=1",{"type":52,"value":1344}," enables Dev Mode (disables signature verification). ",{"type":47,"tag":92,"props":1346,"children":1348},{"className":1347},[],[1349],{"type":52,"value":1350},"=0",{"type":52,"value":1352}," forces Cloud mode. Accepts a URL (e.g., ",{"type":47,"tag":92,"props":1354,"children":1356},{"className":1355},[],[1357],{"type":52,"value":355},{"type":52,"value":1359},"). ",{"type":47,"tag":68,"props":1361,"children":1362},{},[1363],{"type":52,"value":1364},"Defaults to Cloud mode if unset.",{"type":47,"tag":596,"props":1366,"children":1367},{},[1368,1377],{"type":47,"tag":628,"props":1369,"children":1370},{},[1371],{"type":47,"tag":92,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":52,"value":1376},"INNGEST_BASE_URL",{"type":47,"tag":628,"props":1378,"children":1379},{},[1380,1382,1387],{"type":52,"value":1381},"Host for SDK-to-Inngest communication (e.g., ",{"type":47,"tag":92,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":52,"value":355},{"type":52,"value":1388},"). Leave unset in most cases.",{"type":47,"tag":596,"props":1390,"children":1391},{},[1392,1401],{"type":47,"tag":628,"props":1393,"children":1394},{},[1395],{"type":47,"tag":92,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":52,"value":1400},"INNGEST_EVENT_KEY",{"type":47,"tag":628,"props":1402,"children":1403},{},[1404,1406,1411],{"type":52,"value":1405},"Authentication key for sending events. ",{"type":47,"tag":68,"props":1407,"children":1408},{},[1409],{"type":52,"value":1410},"Use any dummy value locally",{"type":52,"value":1412}," — Dev Server does not validate.",{"type":47,"tag":596,"props":1414,"children":1415},{},[1416,1425],{"type":47,"tag":628,"props":1417,"children":1418},{},[1419],{"type":47,"tag":92,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":52,"value":1424},"INNGEST_SIGNING_KEY",{"type":47,"tag":628,"props":1426,"children":1427},{},[1428,1430,1435],{"type":52,"value":1429},"Secures requests between Inngest and your app. ",{"type":47,"tag":68,"props":1431,"children":1432},{},[1433],{"type":52,"value":1434},"Required in production.",{"type":52,"value":1436}," Determines which Inngest environment receives syncs.",{"type":47,"tag":596,"props":1438,"children":1439},{},[1440,1449],{"type":47,"tag":628,"props":1441,"children":1442},{},[1443],{"type":47,"tag":92,"props":1444,"children":1446},{"className":1445},[],[1447],{"type":52,"value":1448},"INNGEST_SIGNING_KEY_FALLBACK",{"type":47,"tag":628,"props":1450,"children":1451},{},[1452],{"type":52,"value":1453},"Fallback key for signing key rotation (v3.18.0+).",{"type":47,"tag":596,"props":1455,"children":1456},{},[1457,1466],{"type":47,"tag":628,"props":1458,"children":1459},{},[1460],{"type":47,"tag":92,"props":1461,"children":1463},{"className":1462},[],[1464],{"type":52,"value":1465},"INNGEST_SERVE_ORIGIN",{"type":47,"tag":628,"props":1467,"children":1468},{},[1469,1471,1477,1479],{"type":52,"value":1470},"Full origin URL for Inngest to reach your app (e.g., ",{"type":47,"tag":92,"props":1472,"children":1474},{"className":1473},[],[1475],{"type":52,"value":1476},"https:\u002F\u002Fmy-app.com",{"type":52,"value":1478},"). Auto-inferred from request headers; ",{"type":47,"tag":68,"props":1480,"children":1481},{},[1482],{"type":52,"value":1483},"set explicitly for AWS Lambda, proxies, or tunnels.",{"type":47,"tag":596,"props":1485,"children":1486},{},[1487,1496],{"type":47,"tag":628,"props":1488,"children":1489},{},[1490],{"type":47,"tag":92,"props":1491,"children":1493},{"className":1492},[],[1494],{"type":52,"value":1495},"INNGEST_SERVE_PATH",{"type":47,"tag":628,"props":1497,"children":1498},{},[1499,1501,1506],{"type":52,"value":1500},"URL path to your serve endpoint (e.g., ",{"type":47,"tag":92,"props":1502,"children":1504},{"className":1503},[],[1505],{"type":52,"value":1020},{"type":52,"value":1507},"). Auto-inferred in most cases.",{"type":47,"tag":596,"props":1509,"children":1510},{},[1511,1520],{"type":47,"tag":628,"props":1512,"children":1513},{},[1514],{"type":47,"tag":92,"props":1515,"children":1517},{"className":1516},[],[1518],{"type":52,"value":1519},"INNGEST_STREAMING",{"type":47,"tag":628,"props":1521,"children":1522},{},[1523,1525,1531,1533,1538],{"type":52,"value":1524},"Enable response streaming (",{"type":47,"tag":92,"props":1526,"children":1528},{"className":1527},[],[1529],{"type":52,"value":1530},"true",{"type":52,"value":1532},"\u002F",{"type":47,"tag":92,"props":1534,"children":1536},{"className":1535},[],[1537],{"type":52,"value":741},{"type":52,"value":1539},"). Extends timeout limits on Vercel and edge runtimes.",{"type":47,"tag":596,"props":1541,"children":1542},{},[1543,1552],{"type":47,"tag":628,"props":1544,"children":1545},{},[1546],{"type":47,"tag":92,"props":1547,"children":1549},{"className":1548},[],[1550],{"type":52,"value":1551},"INNGEST_ENV",{"type":47,"tag":628,"props":1553,"children":1554},{},[1555],{"type":52,"value":1556},"Target Inngest Environment. Auto-detected on some platforms.",{"type":47,"tag":109,"props":1558,"children":1560},{"id":1559},"debugging-your-serve-endpoint",[1561],{"type":52,"value":1562},"Debugging Your Serve Endpoint",{"type":47,"tag":55,"props":1564,"children":1565},{},[1566,1568,1574],{"type":52,"value":1567},"Verify your ",{"type":47,"tag":92,"props":1569,"children":1571},{"className":1570},[],[1572],{"type":52,"value":1573},"serve()",{"type":52,"value":1575}," endpoint is configured correctly:",{"type":47,"tag":116,"props":1577,"children":1579},{"className":118,"code":1578,"language":120,"meta":121,"style":121},"curl -s http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest | jq\n",[1580],{"type":47,"tag":92,"props":1581,"children":1582},{"__ignoreMap":121},[1583],{"type":47,"tag":127,"props":1584,"children":1585},{"class":129,"line":130},[1586,1591,1596,1600,1605],{"type":47,"tag":127,"props":1587,"children":1588},{"style":144},[1589],{"type":52,"value":1590},"curl",{"type":47,"tag":127,"props":1592,"children":1593},{"style":150},[1594],{"type":52,"value":1595}," -s",{"type":47,"tag":127,"props":1597,"children":1598},{"style":150},[1599],{"type":52,"value":518},{"type":47,"tag":127,"props":1601,"children":1602},{"style":1097},[1603],{"type":52,"value":1604}," |",{"type":47,"tag":127,"props":1606,"children":1607},{"style":144},[1608],{"type":52,"value":1609}," jq\n",{"type":47,"tag":116,"props":1611,"children":1613},{"className":1085,"code":1612,"language":1087,"meta":121,"style":121},"{\n  \"message\": \"Inngest endpoint configured correctly.\",\n  \"hasEventKey\": false,\n  \"hasSigningKey\": false,\n  \"functionsFound\": 3\n}\n",[1614],{"type":47,"tag":92,"props":1615,"children":1616},{"__ignoreMap":121},[1617,1624,1661,1686,1710,1735],{"type":47,"tag":127,"props":1618,"children":1619},{"class":129,"line":130},[1620],{"type":47,"tag":127,"props":1621,"children":1622},{"style":1097},[1623],{"type":52,"value":1100},{"type":47,"tag":127,"props":1625,"children":1626},{"class":129,"line":140},[1627,1631,1636,1640,1644,1648,1653,1657],{"type":47,"tag":127,"props":1628,"children":1629},{"style":1097},[1630],{"type":52,"value":1108},{"type":47,"tag":127,"props":1632,"children":1633},{"style":1111},[1634],{"type":52,"value":1635},"message",{"type":47,"tag":127,"props":1637,"children":1638},{"style":1097},[1639],{"type":52,"value":1119},{"type":47,"tag":127,"props":1641,"children":1642},{"style":1097},[1643],{"type":52,"value":1124},{"type":47,"tag":127,"props":1645,"children":1646},{"style":1097},[1647],{"type":52,"value":1251},{"type":47,"tag":127,"props":1649,"children":1650},{"style":150},[1651],{"type":52,"value":1652},"Inngest endpoint configured correctly.",{"type":47,"tag":127,"props":1654,"children":1655},{"style":1097},[1656],{"type":52,"value":1119},{"type":47,"tag":127,"props":1658,"children":1659},{"style":1097},[1660],{"type":52,"value":1150},{"type":47,"tag":127,"props":1662,"children":1663},{"class":129,"line":161},[1664,1668,1673,1677,1681],{"type":47,"tag":127,"props":1665,"children":1666},{"style":1097},[1667],{"type":52,"value":1108},{"type":47,"tag":127,"props":1669,"children":1670},{"style":1111},[1671],{"type":52,"value":1672},"hasEventKey",{"type":47,"tag":127,"props":1674,"children":1675},{"style":1097},[1676],{"type":52,"value":1119},{"type":47,"tag":127,"props":1678,"children":1679},{"style":1097},[1680],{"type":52,"value":1124},{"type":47,"tag":127,"props":1682,"children":1683},{"style":1097},[1684],{"type":52,"value":1685}," false,\n",{"type":47,"tag":127,"props":1687,"children":1688},{"class":129,"line":171},[1689,1693,1698,1702,1706],{"type":47,"tag":127,"props":1690,"children":1691},{"style":1097},[1692],{"type":52,"value":1108},{"type":47,"tag":127,"props":1694,"children":1695},{"style":1111},[1696],{"type":52,"value":1697},"hasSigningKey",{"type":47,"tag":127,"props":1699,"children":1700},{"style":1097},[1701],{"type":52,"value":1119},{"type":47,"tag":127,"props":1703,"children":1704},{"style":1097},[1705],{"type":52,"value":1124},{"type":47,"tag":127,"props":1707,"children":1708},{"style":1097},[1709],{"type":52,"value":1685},{"type":47,"tag":127,"props":1711,"children":1712},{"class":129,"line":27},[1713,1717,1722,1726,1730],{"type":47,"tag":127,"props":1714,"children":1715},{"style":1097},[1716],{"type":52,"value":1108},{"type":47,"tag":127,"props":1718,"children":1719},{"style":1111},[1720],{"type":52,"value":1721},"functionsFound",{"type":47,"tag":127,"props":1723,"children":1724},{"style":1097},[1725],{"type":52,"value":1119},{"type":47,"tag":127,"props":1727,"children":1728},{"style":1097},[1729],{"type":52,"value":1124},{"type":47,"tag":127,"props":1731,"children":1732},{"style":466},[1733],{"type":52,"value":1734}," 3\n",{"type":47,"tag":127,"props":1736,"children":1737},{"class":129,"line":201},[1738],{"type":47,"tag":127,"props":1739,"children":1740},{"style":1097},[1741],{"type":52,"value":1208},{"type":47,"tag":55,"props":1743,"children":1744},{},[1745,1747,1752,1754,1759,1761,1766],{"type":52,"value":1746},"If ",{"type":47,"tag":92,"props":1748,"children":1750},{"className":1749},[],[1751],{"type":52,"value":1721},{"type":52,"value":1753}," is ",{"type":47,"tag":92,"props":1755,"children":1757},{"className":1756},[],[1758],{"type":52,"value":936},{"type":52,"value":1760},", check that your functions are passed to the ",{"type":47,"tag":92,"props":1762,"children":1764},{"className":1763},[],[1765],{"type":52,"value":1573},{"type":52,"value":1767}," call.",{"type":47,"tag":109,"props":1769,"children":1771},{"id":1770},"testing-functions-locally",[1772],{"type":52,"value":1773},"Testing Functions Locally",{"type":47,"tag":581,"props":1775,"children":1777},{"id":1776},"send-events-via-sdk",[1778],{"type":52,"value":1779},"Send Events via SDK",{"type":47,"tag":116,"props":1781,"children":1785},{"className":1782,"code":1783,"language":1784,"meta":121,"style":121},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Inngest } from \"inngest\";\n\nconst inngest = new Inngest({ id: \"my-app\" });\n\nawait inngest.send({\n  name: \"user\u002Fsignup.completed\",\n  data: {\n    userId: \"user_123\",\n    email: \"user@example.com\",\n  },\n});\n","typescript",[1786],{"type":47,"tag":92,"props":1787,"children":1788},{"__ignoreMap":121},[1789,1835,1842,1915,1922,1952,1981,1998,2027,2056,2064],{"type":47,"tag":127,"props":1790,"children":1791},{"class":129,"line":130},[1792,1798,1803,1808,1813,1818,1822,1826,1830],{"type":47,"tag":127,"props":1793,"children":1795},{"style":1794},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1796],{"type":52,"value":1797},"import",{"type":47,"tag":127,"props":1799,"children":1800},{"style":1097},[1801],{"type":52,"value":1802}," {",{"type":47,"tag":127,"props":1804,"children":1805},{"style":502},[1806],{"type":52,"value":1807}," Inngest",{"type":47,"tag":127,"props":1809,"children":1810},{"style":1097},[1811],{"type":52,"value":1812}," }",{"type":47,"tag":127,"props":1814,"children":1815},{"style":1794},[1816],{"type":52,"value":1817}," from",{"type":47,"tag":127,"props":1819,"children":1820},{"style":1097},[1821],{"type":52,"value":1251},{"type":47,"tag":127,"props":1823,"children":1824},{"style":150},[1825],{"type":52,"value":8},{"type":47,"tag":127,"props":1827,"children":1828},{"style":1097},[1829],{"type":52,"value":1119},{"type":47,"tag":127,"props":1831,"children":1832},{"style":1097},[1833],{"type":52,"value":1834},";\n",{"type":47,"tag":127,"props":1836,"children":1837},{"class":129,"line":140},[1838],{"type":47,"tag":127,"props":1839,"children":1840},{"emptyLinePlaceholder":165},[1841],{"type":52,"value":168},{"type":47,"tag":127,"props":1843,"children":1844},{"class":129,"line":161},[1845,1850,1855,1860,1865,1870,1875,1880,1885,1889,1893,1898,1902,1906,1911],{"type":47,"tag":127,"props":1846,"children":1847},{"style":1111},[1848],{"type":52,"value":1849},"const",{"type":47,"tag":127,"props":1851,"children":1852},{"style":502},[1853],{"type":52,"value":1854}," inngest ",{"type":47,"tag":127,"props":1856,"children":1857},{"style":1097},[1858],{"type":52,"value":1859},"=",{"type":47,"tag":127,"props":1861,"children":1862},{"style":1097},[1863],{"type":52,"value":1864}," new",{"type":47,"tag":127,"props":1866,"children":1868},{"style":1867},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1869],{"type":52,"value":1807},{"type":47,"tag":127,"props":1871,"children":1872},{"style":502},[1873],{"type":52,"value":1874},"(",{"type":47,"tag":127,"props":1876,"children":1877},{"style":1097},[1878],{"type":52,"value":1879},"{",{"type":47,"tag":127,"props":1881,"children":1882},{"style":1231},[1883],{"type":52,"value":1884}," id",{"type":47,"tag":127,"props":1886,"children":1887},{"style":1097},[1888],{"type":52,"value":1124},{"type":47,"tag":127,"props":1890,"children":1891},{"style":1097},[1892],{"type":52,"value":1251},{"type":47,"tag":127,"props":1894,"children":1895},{"style":150},[1896],{"type":52,"value":1897},"my-app",{"type":47,"tag":127,"props":1899,"children":1900},{"style":1097},[1901],{"type":52,"value":1119},{"type":47,"tag":127,"props":1903,"children":1904},{"style":1097},[1905],{"type":52,"value":1812},{"type":47,"tag":127,"props":1907,"children":1908},{"style":502},[1909],{"type":52,"value":1910},")",{"type":47,"tag":127,"props":1912,"children":1913},{"style":1097},[1914],{"type":52,"value":1834},{"type":47,"tag":127,"props":1916,"children":1917},{"class":129,"line":171},[1918],{"type":47,"tag":127,"props":1919,"children":1920},{"emptyLinePlaceholder":165},[1921],{"type":52,"value":168},{"type":47,"tag":127,"props":1923,"children":1924},{"class":129,"line":27},[1925,1930,1935,1939,1944,1948],{"type":47,"tag":127,"props":1926,"children":1927},{"style":1794},[1928],{"type":52,"value":1929},"await",{"type":47,"tag":127,"props":1931,"children":1932},{"style":502},[1933],{"type":52,"value":1934}," inngest",{"type":47,"tag":127,"props":1936,"children":1937},{"style":1097},[1938],{"type":52,"value":357},{"type":47,"tag":127,"props":1940,"children":1941},{"style":1867},[1942],{"type":52,"value":1943},"send",{"type":47,"tag":127,"props":1945,"children":1946},{"style":502},[1947],{"type":52,"value":1874},{"type":47,"tag":127,"props":1949,"children":1950},{"style":1097},[1951],{"type":52,"value":1100},{"type":47,"tag":127,"props":1953,"children":1954},{"class":129,"line":201},[1955,1960,1964,1968,1973,1977],{"type":47,"tag":127,"props":1956,"children":1957},{"style":1231},[1958],{"type":52,"value":1959},"  name",{"type":47,"tag":127,"props":1961,"children":1962},{"style":1097},[1963],{"type":52,"value":1124},{"type":47,"tag":127,"props":1965,"children":1966},{"style":1097},[1967],{"type":52,"value":1251},{"type":47,"tag":127,"props":1969,"children":1970},{"style":150},[1971],{"type":52,"value":1972},"user\u002Fsignup.completed",{"type":47,"tag":127,"props":1974,"children":1975},{"style":1097},[1976],{"type":52,"value":1119},{"type":47,"tag":127,"props":1978,"children":1979},{"style":1097},[1980],{"type":52,"value":1150},{"type":47,"tag":127,"props":1982,"children":1983},{"class":129,"line":209},[1984,1989,1993],{"type":47,"tag":127,"props":1985,"children":1986},{"style":1231},[1987],{"type":52,"value":1988},"  data",{"type":47,"tag":127,"props":1990,"children":1991},{"style":1097},[1992],{"type":52,"value":1124},{"type":47,"tag":127,"props":1994,"children":1995},{"style":1097},[1996],{"type":52,"value":1997}," {\n",{"type":47,"tag":127,"props":1999,"children":2000},{"class":129,"line":218},[2001,2006,2010,2014,2019,2023],{"type":47,"tag":127,"props":2002,"children":2003},{"style":1231},[2004],{"type":52,"value":2005},"    userId",{"type":47,"tag":127,"props":2007,"children":2008},{"style":1097},[2009],{"type":52,"value":1124},{"type":47,"tag":127,"props":2011,"children":2012},{"style":1097},[2013],{"type":52,"value":1251},{"type":47,"tag":127,"props":2015,"children":2016},{"style":150},[2017],{"type":52,"value":2018},"user_123",{"type":47,"tag":127,"props":2020,"children":2021},{"style":1097},[2022],{"type":52,"value":1119},{"type":47,"tag":127,"props":2024,"children":2025},{"style":1097},[2026],{"type":52,"value":1150},{"type":47,"tag":127,"props":2028,"children":2029},{"class":129,"line":239},[2030,2035,2039,2043,2048,2052],{"type":47,"tag":127,"props":2031,"children":2032},{"style":1231},[2033],{"type":52,"value":2034},"    email",{"type":47,"tag":127,"props":2036,"children":2037},{"style":1097},[2038],{"type":52,"value":1124},{"type":47,"tag":127,"props":2040,"children":2041},{"style":1097},[2042],{"type":52,"value":1251},{"type":47,"tag":127,"props":2044,"children":2045},{"style":150},[2046],{"type":52,"value":2047},"user@example.com",{"type":47,"tag":127,"props":2049,"children":2050},{"style":1097},[2051],{"type":52,"value":1119},{"type":47,"tag":127,"props":2053,"children":2054},{"style":1097},[2055],{"type":52,"value":1150},{"type":47,"tag":127,"props":2057,"children":2058},{"class":129,"line":247},[2059],{"type":47,"tag":127,"props":2060,"children":2061},{"style":1097},[2062],{"type":52,"value":2063},"  },\n",{"type":47,"tag":127,"props":2065,"children":2066},{"class":129,"line":256},[2067,2072,2076],{"type":47,"tag":127,"props":2068,"children":2069},{"style":1097},[2070],{"type":52,"value":2071},"}",{"type":47,"tag":127,"props":2073,"children":2074},{"style":502},[2075],{"type":52,"value":1910},{"type":47,"tag":127,"props":2077,"children":2078},{"style":1097},[2079],{"type":52,"value":1834},{"type":47,"tag":581,"props":2081,"children":2083},{"id":2082},"send-events-via-curl",[2084],{"type":52,"value":2085},"Send Events via curl",{"type":47,"tag":116,"props":2087,"children":2089},{"className":118,"code":2088,"language":120,"meta":121,"style":121},"curl -X POST \"http:\u002F\u002Flocalhost:8288\u002Fe\u002Ftest\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"user\u002Fsignup.completed\",\n    \"data\": {\n      \"userId\": \"user_123\",\n      \"email\": \"user@example.com\"\n    }\n  }'\n",[2090],{"type":47,"tag":92,"props":2091,"children":2092},{"__ignoreMap":121},[2093,2127,2152,2169,2177,2185,2193,2201,2209],{"type":47,"tag":127,"props":2094,"children":2095},{"class":129,"line":130},[2096,2100,2105,2110,2114,2119,2123],{"type":47,"tag":127,"props":2097,"children":2098},{"style":144},[2099],{"type":52,"value":1590},{"type":47,"tag":127,"props":2101,"children":2102},{"style":150},[2103],{"type":52,"value":2104}," -X",{"type":47,"tag":127,"props":2106,"children":2107},{"style":150},[2108],{"type":52,"value":2109}," POST",{"type":47,"tag":127,"props":2111,"children":2112},{"style":1097},[2113],{"type":52,"value":1251},{"type":47,"tag":127,"props":2115,"children":2116},{"style":150},[2117],{"type":52,"value":2118},"http:\u002F\u002Flocalhost:8288\u002Fe\u002Ftest",{"type":47,"tag":127,"props":2120,"children":2121},{"style":1097},[2122],{"type":52,"value":1119},{"type":47,"tag":127,"props":2124,"children":2125},{"style":502},[2126],{"type":52,"value":505},{"type":47,"tag":127,"props":2128,"children":2129},{"class":129,"line":140},[2130,2135,2139,2144,2148],{"type":47,"tag":127,"props":2131,"children":2132},{"style":150},[2133],{"type":52,"value":2134},"  -H",{"type":47,"tag":127,"props":2136,"children":2137},{"style":1097},[2138],{"type":52,"value":1251},{"type":47,"tag":127,"props":2140,"children":2141},{"style":150},[2142],{"type":52,"value":2143},"Content-Type: application\u002Fjson",{"type":47,"tag":127,"props":2145,"children":2146},{"style":1097},[2147],{"type":52,"value":1119},{"type":47,"tag":127,"props":2149,"children":2150},{"style":502},[2151],{"type":52,"value":505},{"type":47,"tag":127,"props":2153,"children":2154},{"class":129,"line":161},[2155,2160,2165],{"type":47,"tag":127,"props":2156,"children":2157},{"style":150},[2158],{"type":52,"value":2159},"  -d",{"type":47,"tag":127,"props":2161,"children":2162},{"style":1097},[2163],{"type":52,"value":2164}," '",{"type":47,"tag":127,"props":2166,"children":2167},{"style":150},[2168],{"type":52,"value":1100},{"type":47,"tag":127,"props":2170,"children":2171},{"class":129,"line":171},[2172],{"type":47,"tag":127,"props":2173,"children":2174},{"style":150},[2175],{"type":52,"value":2176},"    \"name\": \"user\u002Fsignup.completed\",\n",{"type":47,"tag":127,"props":2178,"children":2179},{"class":129,"line":27},[2180],{"type":47,"tag":127,"props":2181,"children":2182},{"style":150},[2183],{"type":52,"value":2184},"    \"data\": {\n",{"type":47,"tag":127,"props":2186,"children":2187},{"class":129,"line":201},[2188],{"type":47,"tag":127,"props":2189,"children":2190},{"style":150},[2191],{"type":52,"value":2192},"      \"userId\": \"user_123\",\n",{"type":47,"tag":127,"props":2194,"children":2195},{"class":129,"line":209},[2196],{"type":47,"tag":127,"props":2197,"children":2198},{"style":150},[2199],{"type":52,"value":2200},"      \"email\": \"user@example.com\"\n",{"type":47,"tag":127,"props":2202,"children":2203},{"class":129,"line":218},[2204],{"type":47,"tag":127,"props":2205,"children":2206},{"style":150},[2207],{"type":52,"value":2208},"    }\n",{"type":47,"tag":127,"props":2210,"children":2211},{"class":129,"line":239},[2212,2217],{"type":47,"tag":127,"props":2213,"children":2214},{"style":150},[2215],{"type":52,"value":2216},"  }",{"type":47,"tag":127,"props":2218,"children":2219},{"style":1097},[2220],{"type":52,"value":2221},"'\n",{"type":47,"tag":55,"props":2223,"children":2224},{},[2225,2227,2233],{"type":52,"value":2226},"The event key in the URL path (",{"type":47,"tag":92,"props":2228,"children":2230},{"className":2229},[],[2231],{"type":52,"value":2232},"test",{"type":52,"value":2234}," above) can be any value locally.",{"type":47,"tag":581,"props":2236,"children":2238},{"id":2237},"unit-testing-with-inngesttest",[2239,2241],{"type":52,"value":2240},"Unit Testing with ",{"type":47,"tag":92,"props":2242,"children":2244},{"className":2243},[],[2245],{"type":52,"value":2246},"@inngest\u002Ftest",{"type":47,"tag":55,"props":2248,"children":2249},{},[2250,2252,2258],{"type":52,"value":2251},"Requires ",{"type":47,"tag":92,"props":2253,"children":2255},{"className":2254},[],[2256],{"type":52,"value":2257},"inngest@>=4.0.0",{"type":52,"value":357},{"type":47,"tag":116,"props":2260,"children":2262},{"className":118,"code":2261,"language":120,"meta":121,"style":121},"npm install -D @inngest\u002Ftest\n",[2263],{"type":47,"tag":92,"props":2264,"children":2265},{"__ignoreMap":121},[2266],{"type":47,"tag":127,"props":2267,"children":2268},{"class":129,"line":130},[2269,2273,2277,2282],{"type":47,"tag":127,"props":2270,"children":2271},{"style":144},[2272],{"type":52,"value":262},{"type":47,"tag":127,"props":2274,"children":2275},{"style":150},[2276],{"type":52,"value":267},{"type":47,"tag":127,"props":2278,"children":2279},{"style":150},[2280],{"type":52,"value":2281}," -D",{"type":47,"tag":127,"props":2283,"children":2284},{"style":150},[2285],{"type":52,"value":2286}," @inngest\u002Ftest\n",{"type":47,"tag":116,"props":2288,"children":2290},{"className":1782,"code":2289,"language":1784,"meta":121,"style":121},"import { InngestTestEngine } from \"@inngest\u002Ftest\";\nimport { helloWorld } from \".\u002Ffunctions\";\n\n\u002F\u002F Execute full function\nconst t = new InngestTestEngine({ function: helloWorld });\nconst { result } = await t.execute();\nexpect(result).toEqual(\"Hello World!\");\n\n\u002F\u002F Test a single step\nconst { result: stepResult } = await t.executeStep(\"calculate-price\");\nexpect(stepResult).toEqual(123);\n\n\u002F\u002F Assert step state\nconst { state } = await t.execute();\nawait expect(state[\"my-step\"]).resolves.toEqual(\"output\");\nawait expect(state[\"risky-step\"]).rejects.toThrowError(\"failed\");\n\n\u002F\u002F Mock events\nconst { result: eventResult } = await t.execute({\n  events: [{ name: \"demo\u002Fevent.sent\", data: { message: \"Hi!\" } }],\n});\n\n\u002F\u002F Mock step responses\nconst { result: mockResult } = await t.execute({\n  steps: [{ id: \"external-api-call\", handler() { return { status: \"ok\" }; } }],\n});\n\n\u002F\u002F Mock sleep\u002FwaitForEvent (pause-inducing steps require mocking)\nawait t.execute({\n  steps: [{ id: \"wait-one-day\", handler() {} }],\n});\n",[2291],{"type":47,"tag":92,"props":2292,"children":2293},{"__ignoreMap":121},[2294,2334,2375,2382,2390,2448,2501,2548,2555,2563,2638,2675,2682,2690,2738,2815,2890,2898,2907,2964,3065,3081,3089,3098,3155,3266,3281,3289,3298,3326,3396],{"type":47,"tag":127,"props":2295,"children":2296},{"class":129,"line":130},[2297,2301,2305,2310,2314,2318,2322,2326,2330],{"type":47,"tag":127,"props":2298,"children":2299},{"style":1794},[2300],{"type":52,"value":1797},{"type":47,"tag":127,"props":2302,"children":2303},{"style":1097},[2304],{"type":52,"value":1802},{"type":47,"tag":127,"props":2306,"children":2307},{"style":502},[2308],{"type":52,"value":2309}," InngestTestEngine",{"type":47,"tag":127,"props":2311,"children":2312},{"style":1097},[2313],{"type":52,"value":1812},{"type":47,"tag":127,"props":2315,"children":2316},{"style":1794},[2317],{"type":52,"value":1817},{"type":47,"tag":127,"props":2319,"children":2320},{"style":1097},[2321],{"type":52,"value":1251},{"type":47,"tag":127,"props":2323,"children":2324},{"style":150},[2325],{"type":52,"value":2246},{"type":47,"tag":127,"props":2327,"children":2328},{"style":1097},[2329],{"type":52,"value":1119},{"type":47,"tag":127,"props":2331,"children":2332},{"style":1097},[2333],{"type":52,"value":1834},{"type":47,"tag":127,"props":2335,"children":2336},{"class":129,"line":140},[2337,2341,2345,2350,2354,2358,2362,2367,2371],{"type":47,"tag":127,"props":2338,"children":2339},{"style":1794},[2340],{"type":52,"value":1797},{"type":47,"tag":127,"props":2342,"children":2343},{"style":1097},[2344],{"type":52,"value":1802},{"type":47,"tag":127,"props":2346,"children":2347},{"style":502},[2348],{"type":52,"value":2349}," helloWorld",{"type":47,"tag":127,"props":2351,"children":2352},{"style":1097},[2353],{"type":52,"value":1812},{"type":47,"tag":127,"props":2355,"children":2356},{"style":1794},[2357],{"type":52,"value":1817},{"type":47,"tag":127,"props":2359,"children":2360},{"style":1097},[2361],{"type":52,"value":1251},{"type":47,"tag":127,"props":2363,"children":2364},{"style":150},[2365],{"type":52,"value":2366},".\u002Ffunctions",{"type":47,"tag":127,"props":2368,"children":2369},{"style":1097},[2370],{"type":52,"value":1119},{"type":47,"tag":127,"props":2372,"children":2373},{"style":1097},[2374],{"type":52,"value":1834},{"type":47,"tag":127,"props":2376,"children":2377},{"class":129,"line":161},[2378],{"type":47,"tag":127,"props":2379,"children":2380},{"emptyLinePlaceholder":165},[2381],{"type":52,"value":168},{"type":47,"tag":127,"props":2383,"children":2384},{"class":129,"line":171},[2385],{"type":47,"tag":127,"props":2386,"children":2387},{"style":134},[2388],{"type":52,"value":2389},"\u002F\u002F Execute full function\n",{"type":47,"tag":127,"props":2391,"children":2392},{"class":129,"line":27},[2393,2397,2402,2406,2410,2414,2418,2422,2427,2431,2436,2440,2444],{"type":47,"tag":127,"props":2394,"children":2395},{"style":1111},[2396],{"type":52,"value":1849},{"type":47,"tag":127,"props":2398,"children":2399},{"style":502},[2400],{"type":52,"value":2401}," t ",{"type":47,"tag":127,"props":2403,"children":2404},{"style":1097},[2405],{"type":52,"value":1859},{"type":47,"tag":127,"props":2407,"children":2408},{"style":1097},[2409],{"type":52,"value":1864},{"type":47,"tag":127,"props":2411,"children":2412},{"style":1867},[2413],{"type":52,"value":2309},{"type":47,"tag":127,"props":2415,"children":2416},{"style":502},[2417],{"type":52,"value":1874},{"type":47,"tag":127,"props":2419,"children":2420},{"style":1097},[2421],{"type":52,"value":1879},{"type":47,"tag":127,"props":2423,"children":2424},{"style":1231},[2425],{"type":52,"value":2426}," function",{"type":47,"tag":127,"props":2428,"children":2429},{"style":1097},[2430],{"type":52,"value":1124},{"type":47,"tag":127,"props":2432,"children":2433},{"style":502},[2434],{"type":52,"value":2435}," helloWorld ",{"type":47,"tag":127,"props":2437,"children":2438},{"style":1097},[2439],{"type":52,"value":2071},{"type":47,"tag":127,"props":2441,"children":2442},{"style":502},[2443],{"type":52,"value":1910},{"type":47,"tag":127,"props":2445,"children":2446},{"style":1097},[2447],{"type":52,"value":1834},{"type":47,"tag":127,"props":2449,"children":2450},{"class":129,"line":201},[2451,2455,2459,2464,2468,2473,2478,2483,2487,2492,2497],{"type":47,"tag":127,"props":2452,"children":2453},{"style":1111},[2454],{"type":52,"value":1849},{"type":47,"tag":127,"props":2456,"children":2457},{"style":1097},[2458],{"type":52,"value":1802},{"type":47,"tag":127,"props":2460,"children":2461},{"style":502},[2462],{"type":52,"value":2463}," result ",{"type":47,"tag":127,"props":2465,"children":2466},{"style":1097},[2467],{"type":52,"value":2071},{"type":47,"tag":127,"props":2469,"children":2470},{"style":1097},[2471],{"type":52,"value":2472}," =",{"type":47,"tag":127,"props":2474,"children":2475},{"style":1794},[2476],{"type":52,"value":2477}," await",{"type":47,"tag":127,"props":2479,"children":2480},{"style":502},[2481],{"type":52,"value":2482}," t",{"type":47,"tag":127,"props":2484,"children":2485},{"style":1097},[2486],{"type":52,"value":357},{"type":47,"tag":127,"props":2488,"children":2489},{"style":1867},[2490],{"type":52,"value":2491},"execute",{"type":47,"tag":127,"props":2493,"children":2494},{"style":502},[2495],{"type":52,"value":2496},"()",{"type":47,"tag":127,"props":2498,"children":2499},{"style":1097},[2500],{"type":52,"value":1834},{"type":47,"tag":127,"props":2502,"children":2503},{"class":129,"line":209},[2504,2509,2514,2518,2523,2527,2531,2536,2540,2544],{"type":47,"tag":127,"props":2505,"children":2506},{"style":1867},[2507],{"type":52,"value":2508},"expect",{"type":47,"tag":127,"props":2510,"children":2511},{"style":502},[2512],{"type":52,"value":2513},"(result)",{"type":47,"tag":127,"props":2515,"children":2516},{"style":1097},[2517],{"type":52,"value":357},{"type":47,"tag":127,"props":2519,"children":2520},{"style":1867},[2521],{"type":52,"value":2522},"toEqual",{"type":47,"tag":127,"props":2524,"children":2525},{"style":502},[2526],{"type":52,"value":1874},{"type":47,"tag":127,"props":2528,"children":2529},{"style":1097},[2530],{"type":52,"value":1119},{"type":47,"tag":127,"props":2532,"children":2533},{"style":150},[2534],{"type":52,"value":2535},"Hello World!",{"type":47,"tag":127,"props":2537,"children":2538},{"style":1097},[2539],{"type":52,"value":1119},{"type":47,"tag":127,"props":2541,"children":2542},{"style":502},[2543],{"type":52,"value":1910},{"type":47,"tag":127,"props":2545,"children":2546},{"style":1097},[2547],{"type":52,"value":1834},{"type":47,"tag":127,"props":2549,"children":2550},{"class":129,"line":218},[2551],{"type":47,"tag":127,"props":2552,"children":2553},{"emptyLinePlaceholder":165},[2554],{"type":52,"value":168},{"type":47,"tag":127,"props":2556,"children":2557},{"class":129,"line":239},[2558],{"type":47,"tag":127,"props":2559,"children":2560},{"style":134},[2561],{"type":52,"value":2562},"\u002F\u002F Test a single step\n",{"type":47,"tag":127,"props":2564,"children":2565},{"class":129,"line":247},[2566,2570,2574,2579,2583,2588,2592,2596,2600,2604,2608,2613,2617,2621,2626,2630,2634],{"type":47,"tag":127,"props":2567,"children":2568},{"style":1111},[2569],{"type":52,"value":1849},{"type":47,"tag":127,"props":2571,"children":2572},{"style":1097},[2573],{"type":52,"value":1802},{"type":47,"tag":127,"props":2575,"children":2576},{"style":1231},[2577],{"type":52,"value":2578}," result",{"type":47,"tag":127,"props":2580,"children":2581},{"style":1097},[2582],{"type":52,"value":1124},{"type":47,"tag":127,"props":2584,"children":2585},{"style":502},[2586],{"type":52,"value":2587}," stepResult ",{"type":47,"tag":127,"props":2589,"children":2590},{"style":1097},[2591],{"type":52,"value":2071},{"type":47,"tag":127,"props":2593,"children":2594},{"style":1097},[2595],{"type":52,"value":2472},{"type":47,"tag":127,"props":2597,"children":2598},{"style":1794},[2599],{"type":52,"value":2477},{"type":47,"tag":127,"props":2601,"children":2602},{"style":502},[2603],{"type":52,"value":2482},{"type":47,"tag":127,"props":2605,"children":2606},{"style":1097},[2607],{"type":52,"value":357},{"type":47,"tag":127,"props":2609,"children":2610},{"style":1867},[2611],{"type":52,"value":2612},"executeStep",{"type":47,"tag":127,"props":2614,"children":2615},{"style":502},[2616],{"type":52,"value":1874},{"type":47,"tag":127,"props":2618,"children":2619},{"style":1097},[2620],{"type":52,"value":1119},{"type":47,"tag":127,"props":2622,"children":2623},{"style":150},[2624],{"type":52,"value":2625},"calculate-price",{"type":47,"tag":127,"props":2627,"children":2628},{"style":1097},[2629],{"type":52,"value":1119},{"type":47,"tag":127,"props":2631,"children":2632},{"style":502},[2633],{"type":52,"value":1910},{"type":47,"tag":127,"props":2635,"children":2636},{"style":1097},[2637],{"type":52,"value":1834},{"type":47,"tag":127,"props":2639,"children":2640},{"class":129,"line":256},[2641,2645,2650,2654,2658,2662,2667,2671],{"type":47,"tag":127,"props":2642,"children":2643},{"style":1867},[2644],{"type":52,"value":2508},{"type":47,"tag":127,"props":2646,"children":2647},{"style":502},[2648],{"type":52,"value":2649},"(stepResult)",{"type":47,"tag":127,"props":2651,"children":2652},{"style":1097},[2653],{"type":52,"value":357},{"type":47,"tag":127,"props":2655,"children":2656},{"style":1867},[2657],{"type":52,"value":2522},{"type":47,"tag":127,"props":2659,"children":2660},{"style":502},[2661],{"type":52,"value":1874},{"type":47,"tag":127,"props":2663,"children":2664},{"style":466},[2665],{"type":52,"value":2666},"123",{"type":47,"tag":127,"props":2668,"children":2669},{"style":502},[2670],{"type":52,"value":1910},{"type":47,"tag":127,"props":2672,"children":2673},{"style":1097},[2674],{"type":52,"value":1834},{"type":47,"tag":127,"props":2676,"children":2677},{"class":129,"line":280},[2678],{"type":47,"tag":127,"props":2679,"children":2680},{"emptyLinePlaceholder":165},[2681],{"type":52,"value":168},{"type":47,"tag":127,"props":2683,"children":2684},{"class":129,"line":288},[2685],{"type":47,"tag":127,"props":2686,"children":2687},{"style":134},[2688],{"type":52,"value":2689},"\u002F\u002F Assert step state\n",{"type":47,"tag":127,"props":2691,"children":2692},{"class":129,"line":297},[2693,2697,2701,2706,2710,2714,2718,2722,2726,2730,2734],{"type":47,"tag":127,"props":2694,"children":2695},{"style":1111},[2696],{"type":52,"value":1849},{"type":47,"tag":127,"props":2698,"children":2699},{"style":1097},[2700],{"type":52,"value":1802},{"type":47,"tag":127,"props":2702,"children":2703},{"style":502},[2704],{"type":52,"value":2705}," state ",{"type":47,"tag":127,"props":2707,"children":2708},{"style":1097},[2709],{"type":52,"value":2071},{"type":47,"tag":127,"props":2711,"children":2712},{"style":1097},[2713],{"type":52,"value":2472},{"type":47,"tag":127,"props":2715,"children":2716},{"style":1794},[2717],{"type":52,"value":2477},{"type":47,"tag":127,"props":2719,"children":2720},{"style":502},[2721],{"type":52,"value":2482},{"type":47,"tag":127,"props":2723,"children":2724},{"style":1097},[2725],{"type":52,"value":357},{"type":47,"tag":127,"props":2727,"children":2728},{"style":1867},[2729],{"type":52,"value":2491},{"type":47,"tag":127,"props":2731,"children":2732},{"style":502},[2733],{"type":52,"value":2496},{"type":47,"tag":127,"props":2735,"children":2736},{"style":1097},[2737],{"type":52,"value":1834},{"type":47,"tag":127,"props":2739,"children":2740},{"class":129,"line":544},[2741,2745,2750,2755,2759,2764,2768,2773,2777,2782,2786,2790,2794,2798,2803,2807,2811],{"type":47,"tag":127,"props":2742,"children":2743},{"style":1794},[2744],{"type":52,"value":1929},{"type":47,"tag":127,"props":2746,"children":2747},{"style":1867},[2748],{"type":52,"value":2749}," expect",{"type":47,"tag":127,"props":2751,"children":2752},{"style":502},[2753],{"type":52,"value":2754},"(state[",{"type":47,"tag":127,"props":2756,"children":2757},{"style":1097},[2758],{"type":52,"value":1119},{"type":47,"tag":127,"props":2760,"children":2761},{"style":150},[2762],{"type":52,"value":2763},"my-step",{"type":47,"tag":127,"props":2765,"children":2766},{"style":1097},[2767],{"type":52,"value":1119},{"type":47,"tag":127,"props":2769,"children":2770},{"style":502},[2771],{"type":52,"value":2772},"])",{"type":47,"tag":127,"props":2774,"children":2775},{"style":1097},[2776],{"type":52,"value":357},{"type":47,"tag":127,"props":2778,"children":2779},{"style":502},[2780],{"type":52,"value":2781},"resolves",{"type":47,"tag":127,"props":2783,"children":2784},{"style":1097},[2785],{"type":52,"value":357},{"type":47,"tag":127,"props":2787,"children":2788},{"style":1867},[2789],{"type":52,"value":2522},{"type":47,"tag":127,"props":2791,"children":2792},{"style":502},[2793],{"type":52,"value":1874},{"type":47,"tag":127,"props":2795,"children":2796},{"style":1097},[2797],{"type":52,"value":1119},{"type":47,"tag":127,"props":2799,"children":2800},{"style":150},[2801],{"type":52,"value":2802},"output",{"type":47,"tag":127,"props":2804,"children":2805},{"style":1097},[2806],{"type":52,"value":1119},{"type":47,"tag":127,"props":2808,"children":2809},{"style":502},[2810],{"type":52,"value":1910},{"type":47,"tag":127,"props":2812,"children":2813},{"style":1097},[2814],{"type":52,"value":1834},{"type":47,"tag":127,"props":2816,"children":2817},{"class":129,"line":553},[2818,2822,2826,2830,2834,2839,2843,2847,2851,2856,2860,2865,2869,2873,2878,2882,2886],{"type":47,"tag":127,"props":2819,"children":2820},{"style":1794},[2821],{"type":52,"value":1929},{"type":47,"tag":127,"props":2823,"children":2824},{"style":1867},[2825],{"type":52,"value":2749},{"type":47,"tag":127,"props":2827,"children":2828},{"style":502},[2829],{"type":52,"value":2754},{"type":47,"tag":127,"props":2831,"children":2832},{"style":1097},[2833],{"type":52,"value":1119},{"type":47,"tag":127,"props":2835,"children":2836},{"style":150},[2837],{"type":52,"value":2838},"risky-step",{"type":47,"tag":127,"props":2840,"children":2841},{"style":1097},[2842],{"type":52,"value":1119},{"type":47,"tag":127,"props":2844,"children":2845},{"style":502},[2846],{"type":52,"value":2772},{"type":47,"tag":127,"props":2848,"children":2849},{"style":1097},[2850],{"type":52,"value":357},{"type":47,"tag":127,"props":2852,"children":2853},{"style":502},[2854],{"type":52,"value":2855},"rejects",{"type":47,"tag":127,"props":2857,"children":2858},{"style":1097},[2859],{"type":52,"value":357},{"type":47,"tag":127,"props":2861,"children":2862},{"style":1867},[2863],{"type":52,"value":2864},"toThrowError",{"type":47,"tag":127,"props":2866,"children":2867},{"style":502},[2868],{"type":52,"value":1874},{"type":47,"tag":127,"props":2870,"children":2871},{"style":1097},[2872],{"type":52,"value":1119},{"type":47,"tag":127,"props":2874,"children":2875},{"style":150},[2876],{"type":52,"value":2877},"failed",{"type":47,"tag":127,"props":2879,"children":2880},{"style":1097},[2881],{"type":52,"value":1119},{"type":47,"tag":127,"props":2883,"children":2884},{"style":502},[2885],{"type":52,"value":1910},{"type":47,"tag":127,"props":2887,"children":2888},{"style":1097},[2889],{"type":52,"value":1834},{"type":47,"tag":127,"props":2891,"children":2893},{"class":129,"line":2892},17,[2894],{"type":47,"tag":127,"props":2895,"children":2896},{"emptyLinePlaceholder":165},[2897],{"type":52,"value":168},{"type":47,"tag":127,"props":2899,"children":2901},{"class":129,"line":2900},18,[2902],{"type":47,"tag":127,"props":2903,"children":2904},{"style":134},[2905],{"type":52,"value":2906},"\u002F\u002F Mock events\n",{"type":47,"tag":127,"props":2908,"children":2910},{"class":129,"line":2909},19,[2911,2915,2919,2923,2927,2932,2936,2940,2944,2948,2952,2956,2960],{"type":47,"tag":127,"props":2912,"children":2913},{"style":1111},[2914],{"type":52,"value":1849},{"type":47,"tag":127,"props":2916,"children":2917},{"style":1097},[2918],{"type":52,"value":1802},{"type":47,"tag":127,"props":2920,"children":2921},{"style":1231},[2922],{"type":52,"value":2578},{"type":47,"tag":127,"props":2924,"children":2925},{"style":1097},[2926],{"type":52,"value":1124},{"type":47,"tag":127,"props":2928,"children":2929},{"style":502},[2930],{"type":52,"value":2931}," eventResult ",{"type":47,"tag":127,"props":2933,"children":2934},{"style":1097},[2935],{"type":52,"value":2071},{"type":47,"tag":127,"props":2937,"children":2938},{"style":1097},[2939],{"type":52,"value":2472},{"type":47,"tag":127,"props":2941,"children":2942},{"style":1794},[2943],{"type":52,"value":2477},{"type":47,"tag":127,"props":2945,"children":2946},{"style":502},[2947],{"type":52,"value":2482},{"type":47,"tag":127,"props":2949,"children":2950},{"style":1097},[2951],{"type":52,"value":357},{"type":47,"tag":127,"props":2953,"children":2954},{"style":1867},[2955],{"type":52,"value":2491},{"type":47,"tag":127,"props":2957,"children":2958},{"style":502},[2959],{"type":52,"value":1874},{"type":47,"tag":127,"props":2961,"children":2962},{"style":1097},[2963],{"type":52,"value":1100},{"type":47,"tag":127,"props":2965,"children":2967},{"class":129,"line":2966},20,[2968,2973,2977,2982,2986,2991,2995,2999,3004,3008,3013,3018,3022,3026,3031,3035,3039,3044,3048,3052,3056,3061],{"type":47,"tag":127,"props":2969,"children":2970},{"style":1231},[2971],{"type":52,"value":2972},"  events",{"type":47,"tag":127,"props":2974,"children":2975},{"style":1097},[2976],{"type":52,"value":1124},{"type":47,"tag":127,"props":2978,"children":2979},{"style":502},[2980],{"type":52,"value":2981}," [",{"type":47,"tag":127,"props":2983,"children":2984},{"style":1097},[2985],{"type":52,"value":1879},{"type":47,"tag":127,"props":2987,"children":2988},{"style":1231},[2989],{"type":52,"value":2990}," name",{"type":47,"tag":127,"props":2992,"children":2993},{"style":1097},[2994],{"type":52,"value":1124},{"type":47,"tag":127,"props":2996,"children":2997},{"style":1097},[2998],{"type":52,"value":1251},{"type":47,"tag":127,"props":3000,"children":3001},{"style":150},[3002],{"type":52,"value":3003},"demo\u002Fevent.sent",{"type":47,"tag":127,"props":3005,"children":3006},{"style":1097},[3007],{"type":52,"value":1119},{"type":47,"tag":127,"props":3009,"children":3010},{"style":1097},[3011],{"type":52,"value":3012},",",{"type":47,"tag":127,"props":3014,"children":3015},{"style":1231},[3016],{"type":52,"value":3017}," data",{"type":47,"tag":127,"props":3019,"children":3020},{"style":1097},[3021],{"type":52,"value":1124},{"type":47,"tag":127,"props":3023,"children":3024},{"style":1097},[3025],{"type":52,"value":1802},{"type":47,"tag":127,"props":3027,"children":3028},{"style":1231},[3029],{"type":52,"value":3030}," message",{"type":47,"tag":127,"props":3032,"children":3033},{"style":1097},[3034],{"type":52,"value":1124},{"type":47,"tag":127,"props":3036,"children":3037},{"style":1097},[3038],{"type":52,"value":1251},{"type":47,"tag":127,"props":3040,"children":3041},{"style":150},[3042],{"type":52,"value":3043},"Hi!",{"type":47,"tag":127,"props":3045,"children":3046},{"style":1097},[3047],{"type":52,"value":1119},{"type":47,"tag":127,"props":3049,"children":3050},{"style":1097},[3051],{"type":52,"value":1812},{"type":47,"tag":127,"props":3053,"children":3054},{"style":1097},[3055],{"type":52,"value":1812},{"type":47,"tag":127,"props":3057,"children":3058},{"style":502},[3059],{"type":52,"value":3060},"]",{"type":47,"tag":127,"props":3062,"children":3063},{"style":1097},[3064],{"type":52,"value":1150},{"type":47,"tag":127,"props":3066,"children":3068},{"class":129,"line":3067},21,[3069,3073,3077],{"type":47,"tag":127,"props":3070,"children":3071},{"style":1097},[3072],{"type":52,"value":2071},{"type":47,"tag":127,"props":3074,"children":3075},{"style":502},[3076],{"type":52,"value":1910},{"type":47,"tag":127,"props":3078,"children":3079},{"style":1097},[3080],{"type":52,"value":1834},{"type":47,"tag":127,"props":3082,"children":3084},{"class":129,"line":3083},22,[3085],{"type":47,"tag":127,"props":3086,"children":3087},{"emptyLinePlaceholder":165},[3088],{"type":52,"value":168},{"type":47,"tag":127,"props":3090,"children":3092},{"class":129,"line":3091},23,[3093],{"type":47,"tag":127,"props":3094,"children":3095},{"style":134},[3096],{"type":52,"value":3097},"\u002F\u002F Mock step responses\n",{"type":47,"tag":127,"props":3099,"children":3101},{"class":129,"line":3100},24,[3102,3106,3110,3114,3118,3123,3127,3131,3135,3139,3143,3147,3151],{"type":47,"tag":127,"props":3103,"children":3104},{"style":1111},[3105],{"type":52,"value":1849},{"type":47,"tag":127,"props":3107,"children":3108},{"style":1097},[3109],{"type":52,"value":1802},{"type":47,"tag":127,"props":3111,"children":3112},{"style":1231},[3113],{"type":52,"value":2578},{"type":47,"tag":127,"props":3115,"children":3116},{"style":1097},[3117],{"type":52,"value":1124},{"type":47,"tag":127,"props":3119,"children":3120},{"style":502},[3121],{"type":52,"value":3122}," mockResult ",{"type":47,"tag":127,"props":3124,"children":3125},{"style":1097},[3126],{"type":52,"value":2071},{"type":47,"tag":127,"props":3128,"children":3129},{"style":1097},[3130],{"type":52,"value":2472},{"type":47,"tag":127,"props":3132,"children":3133},{"style":1794},[3134],{"type":52,"value":2477},{"type":47,"tag":127,"props":3136,"children":3137},{"style":502},[3138],{"type":52,"value":2482},{"type":47,"tag":127,"props":3140,"children":3141},{"style":1097},[3142],{"type":52,"value":357},{"type":47,"tag":127,"props":3144,"children":3145},{"style":1867},[3146],{"type":52,"value":2491},{"type":47,"tag":127,"props":3148,"children":3149},{"style":502},[3150],{"type":52,"value":1874},{"type":47,"tag":127,"props":3152,"children":3153},{"style":1097},[3154],{"type":52,"value":1100},{"type":47,"tag":127,"props":3156,"children":3158},{"class":129,"line":3157},25,[3159,3164,3168,3172,3176,3180,3184,3188,3193,3197,3201,3206,3210,3214,3219,3223,3228,3232,3236,3241,3245,3250,3254,3258,3262],{"type":47,"tag":127,"props":3160,"children":3161},{"style":1231},[3162],{"type":52,"value":3163},"  steps",{"type":47,"tag":127,"props":3165,"children":3166},{"style":1097},[3167],{"type":52,"value":1124},{"type":47,"tag":127,"props":3169,"children":3170},{"style":502},[3171],{"type":52,"value":2981},{"type":47,"tag":127,"props":3173,"children":3174},{"style":1097},[3175],{"type":52,"value":1879},{"type":47,"tag":127,"props":3177,"children":3178},{"style":1231},[3179],{"type":52,"value":1884},{"type":47,"tag":127,"props":3181,"children":3182},{"style":1097},[3183],{"type":52,"value":1124},{"type":47,"tag":127,"props":3185,"children":3186},{"style":1097},[3187],{"type":52,"value":1251},{"type":47,"tag":127,"props":3189,"children":3190},{"style":150},[3191],{"type":52,"value":3192},"external-api-call",{"type":47,"tag":127,"props":3194,"children":3195},{"style":1097},[3196],{"type":52,"value":1119},{"type":47,"tag":127,"props":3198,"children":3199},{"style":1097},[3200],{"type":52,"value":3012},{"type":47,"tag":127,"props":3202,"children":3203},{"style":1231},[3204],{"type":52,"value":3205}," handler",{"type":47,"tag":127,"props":3207,"children":3208},{"style":1097},[3209],{"type":52,"value":2496},{"type":47,"tag":127,"props":3211,"children":3212},{"style":1097},[3213],{"type":52,"value":1802},{"type":47,"tag":127,"props":3215,"children":3216},{"style":1794},[3217],{"type":52,"value":3218}," return",{"type":47,"tag":127,"props":3220,"children":3221},{"style":1097},[3222],{"type":52,"value":1802},{"type":47,"tag":127,"props":3224,"children":3225},{"style":1231},[3226],{"type":52,"value":3227}," status",{"type":47,"tag":127,"props":3229,"children":3230},{"style":1097},[3231],{"type":52,"value":1124},{"type":47,"tag":127,"props":3233,"children":3234},{"style":1097},[3235],{"type":52,"value":1251},{"type":47,"tag":127,"props":3237,"children":3238},{"style":150},[3239],{"type":52,"value":3240},"ok",{"type":47,"tag":127,"props":3242,"children":3243},{"style":1097},[3244],{"type":52,"value":1119},{"type":47,"tag":127,"props":3246,"children":3247},{"style":1097},[3248],{"type":52,"value":3249}," };",{"type":47,"tag":127,"props":3251,"children":3252},{"style":1097},[3253],{"type":52,"value":1812},{"type":47,"tag":127,"props":3255,"children":3256},{"style":1097},[3257],{"type":52,"value":1812},{"type":47,"tag":127,"props":3259,"children":3260},{"style":502},[3261],{"type":52,"value":3060},{"type":47,"tag":127,"props":3263,"children":3264},{"style":1097},[3265],{"type":52,"value":1150},{"type":47,"tag":127,"props":3267,"children":3268},{"class":129,"line":23},[3269,3273,3277],{"type":47,"tag":127,"props":3270,"children":3271},{"style":1097},[3272],{"type":52,"value":2071},{"type":47,"tag":127,"props":3274,"children":3275},{"style":502},[3276],{"type":52,"value":1910},{"type":47,"tag":127,"props":3278,"children":3279},{"style":1097},[3280],{"type":52,"value":1834},{"type":47,"tag":127,"props":3282,"children":3284},{"class":129,"line":3283},27,[3285],{"type":47,"tag":127,"props":3286,"children":3287},{"emptyLinePlaceholder":165},[3288],{"type":52,"value":168},{"type":47,"tag":127,"props":3290,"children":3292},{"class":129,"line":3291},28,[3293],{"type":47,"tag":127,"props":3294,"children":3295},{"style":134},[3296],{"type":52,"value":3297},"\u002F\u002F Mock sleep\u002FwaitForEvent (pause-inducing steps require mocking)\n",{"type":47,"tag":127,"props":3299,"children":3301},{"class":129,"line":3300},29,[3302,3306,3310,3314,3318,3322],{"type":47,"tag":127,"props":3303,"children":3304},{"style":1794},[3305],{"type":52,"value":1929},{"type":47,"tag":127,"props":3307,"children":3308},{"style":502},[3309],{"type":52,"value":2482},{"type":47,"tag":127,"props":3311,"children":3312},{"style":1097},[3313],{"type":52,"value":357},{"type":47,"tag":127,"props":3315,"children":3316},{"style":1867},[3317],{"type":52,"value":2491},{"type":47,"tag":127,"props":3319,"children":3320},{"style":502},[3321],{"type":52,"value":1874},{"type":47,"tag":127,"props":3323,"children":3324},{"style":1097},[3325],{"type":52,"value":1100},{"type":47,"tag":127,"props":3327,"children":3329},{"class":129,"line":3328},30,[3330,3334,3338,3342,3346,3350,3354,3358,3363,3367,3371,3375,3379,3384,3388,3392],{"type":47,"tag":127,"props":3331,"children":3332},{"style":1231},[3333],{"type":52,"value":3163},{"type":47,"tag":127,"props":3335,"children":3336},{"style":1097},[3337],{"type":52,"value":1124},{"type":47,"tag":127,"props":3339,"children":3340},{"style":502},[3341],{"type":52,"value":2981},{"type":47,"tag":127,"props":3343,"children":3344},{"style":1097},[3345],{"type":52,"value":1879},{"type":47,"tag":127,"props":3347,"children":3348},{"style":1231},[3349],{"type":52,"value":1884},{"type":47,"tag":127,"props":3351,"children":3352},{"style":1097},[3353],{"type":52,"value":1124},{"type":47,"tag":127,"props":3355,"children":3356},{"style":1097},[3357],{"type":52,"value":1251},{"type":47,"tag":127,"props":3359,"children":3360},{"style":150},[3361],{"type":52,"value":3362},"wait-one-day",{"type":47,"tag":127,"props":3364,"children":3365},{"style":1097},[3366],{"type":52,"value":1119},{"type":47,"tag":127,"props":3368,"children":3369},{"style":1097},[3370],{"type":52,"value":3012},{"type":47,"tag":127,"props":3372,"children":3373},{"style":1231},[3374],{"type":52,"value":3205},{"type":47,"tag":127,"props":3376,"children":3377},{"style":1097},[3378],{"type":52,"value":2496},{"type":47,"tag":127,"props":3380,"children":3381},{"style":1097},[3382],{"type":52,"value":3383}," {}",{"type":47,"tag":127,"props":3385,"children":3386},{"style":1097},[3387],{"type":52,"value":1812},{"type":47,"tag":127,"props":3389,"children":3390},{"style":502},[3391],{"type":52,"value":3060},{"type":47,"tag":127,"props":3393,"children":3394},{"style":1097},[3395],{"type":52,"value":1150},{"type":47,"tag":127,"props":3397,"children":3399},{"class":129,"line":3398},31,[3400,3404,3408],{"type":47,"tag":127,"props":3401,"children":3402},{"style":1097},[3403],{"type":52,"value":2071},{"type":47,"tag":127,"props":3405,"children":3406},{"style":502},[3407],{"type":52,"value":1910},{"type":47,"tag":127,"props":3409,"children":3410},{"style":1097},[3411],{"type":52,"value":1834},{"type":47,"tag":55,"props":3413,"children":3414},{},[3415,3420,3422,3428,3429,3435,3437,3442],{"type":47,"tag":68,"props":3416,"children":3417},{},[3418],{"type":52,"value":3419},"Mock external dependencies",{"type":52,"value":3421}," with your test framework's standard mocking (",{"type":47,"tag":92,"props":3423,"children":3425},{"className":3424},[],[3426],{"type":52,"value":3427},"jest.mock",{"type":52,"value":1074},{"type":47,"tag":92,"props":3430,"children":3432},{"className":3431},[],[3433],{"type":52,"value":3434},"vi.mock",{"type":52,"value":3436},", etc.) — ",{"type":47,"tag":92,"props":3438,"children":3440},{"className":3439},[],[3441],{"type":52,"value":2246},{"type":52,"value":3443}," handles only Inngest-specific mocking.",{"type":47,"tag":109,"props":3445,"children":3447},{"id":3446},"docker-setup",[3448],{"type":52,"value":3449},"Docker Setup",{"type":47,"tag":581,"props":3451,"children":3453},{"id":3452},"standalone",[3454],{"type":52,"value":3455},"Standalone",{"type":47,"tag":116,"props":3457,"children":3459},{"className":118,"code":3458,"language":120,"meta":121,"style":121},"docker run -p 8288:8288 -p 8289:8289 \\\n  inngest\u002Finngest \\\n  inngest dev -u http:\u002F\u002Fhost.docker.internal:3000\u002Fapi\u002Finngest\n",[3460],{"type":47,"tag":92,"props":3461,"children":3462},{"__ignoreMap":121},[3463,3497,3509],{"type":47,"tag":127,"props":3464,"children":3465},{"class":129,"line":130},[3466,3470,3475,3479,3484,3488,3493],{"type":47,"tag":127,"props":3467,"children":3468},{"style":144},[3469],{"type":52,"value":22},{"type":47,"tag":127,"props":3471,"children":3472},{"style":150},[3473],{"type":52,"value":3474}," run",{"type":47,"tag":127,"props":3476,"children":3477},{"style":150},[3478],{"type":52,"value":463},{"type":47,"tag":127,"props":3480,"children":3481},{"style":150},[3482],{"type":52,"value":3483}," 8288:8288",{"type":47,"tag":127,"props":3485,"children":3486},{"style":150},[3487],{"type":52,"value":463},{"type":47,"tag":127,"props":3489,"children":3490},{"style":150},[3491],{"type":52,"value":3492}," 8289:8289",{"type":47,"tag":127,"props":3494,"children":3495},{"style":502},[3496],{"type":52,"value":505},{"type":47,"tag":127,"props":3498,"children":3499},{"class":129,"line":140},[3500,3505],{"type":47,"tag":127,"props":3501,"children":3502},{"style":150},[3503],{"type":52,"value":3504},"  inngest\u002Finngest",{"type":47,"tag":127,"props":3506,"children":3507},{"style":502},[3508],{"type":52,"value":505},{"type":47,"tag":127,"props":3510,"children":3511},{"class":129,"line":161},[3512,3517,3521,3525],{"type":47,"tag":127,"props":3513,"children":3514},{"style":150},[3515],{"type":52,"value":3516},"  inngest",{"type":47,"tag":127,"props":3518,"children":3519},{"style":150},[3520],{"type":52,"value":418},{"type":47,"tag":127,"props":3522,"children":3523},{"style":150},[3524],{"type":52,"value":423},{"type":47,"tag":127,"props":3526,"children":3527},{"style":150},[3528],{"type":52,"value":3529}," http:\u002F\u002Fhost.docker.internal:3000\u002Fapi\u002Finngest\n",{"type":47,"tag":55,"props":3531,"children":3532},{},[3533,3535,3541,3543,3549],{"type":52,"value":3534},"Use ",{"type":47,"tag":92,"props":3536,"children":3538},{"className":3537},[],[3539],{"type":52,"value":3540},"host.docker.internal",{"type":52,"value":3542}," to reach your app running on the host machine (works out of the box on Docker Desktop). On Linux, add ",{"type":47,"tag":92,"props":3544,"children":3546},{"className":3545},[],[3547],{"type":52,"value":3548},"--add-host=host.docker.internal:host-gateway",{"type":52,"value":3550}," or use an equivalent host-access method.",{"type":47,"tag":581,"props":3552,"children":3554},{"id":3553},"docker-compose",[3555],{"type":52,"value":3556},"Docker Compose",{"type":47,"tag":116,"props":3558,"children":3560},{"className":1211,"code":3559,"language":1213,"meta":121,"style":121},"services:\n  app:\n    build: .\u002Fapp\n    environment:\n      - INNGEST_DEV=1\n      - INNGEST_BASE_URL=http:\u002F\u002Finngest:8288\n    ports:\n      - \"3000:3000\"\n  inngest:\n    image: inngest\u002Finngest\n    command: \"inngest dev -u http:\u002F\u002Fapp:3000\u002Fapi\u002Finngest\"\n    ports:\n      - \"8288:8288\"\n      - \"8289:8289\"\n",[3561],{"type":47,"tag":92,"props":3562,"children":3563},{"__ignoreMap":121},[3564,3576,3588,3605,3617,3630,3642,3654,3674,3685,3701,3726,3737,3757],{"type":47,"tag":127,"props":3565,"children":3566},{"class":129,"line":130},[3567,3572],{"type":47,"tag":127,"props":3568,"children":3569},{"style":1231},[3570],{"type":52,"value":3571},"services",{"type":47,"tag":127,"props":3573,"children":3574},{"style":1097},[3575],{"type":52,"value":1238},{"type":47,"tag":127,"props":3577,"children":3578},{"class":129,"line":140},[3579,3584],{"type":47,"tag":127,"props":3580,"children":3581},{"style":1231},[3582],{"type":52,"value":3583},"  app",{"type":47,"tag":127,"props":3585,"children":3586},{"style":1097},[3587],{"type":52,"value":1238},{"type":47,"tag":127,"props":3589,"children":3590},{"class":129,"line":161},[3591,3596,3600],{"type":47,"tag":127,"props":3592,"children":3593},{"style":1231},[3594],{"type":52,"value":3595},"    build",{"type":47,"tag":127,"props":3597,"children":3598},{"style":1097},[3599],{"type":52,"value":1124},{"type":47,"tag":127,"props":3601,"children":3602},{"style":150},[3603],{"type":52,"value":3604}," .\u002Fapp\n",{"type":47,"tag":127,"props":3606,"children":3607},{"class":129,"line":171},[3608,3613],{"type":47,"tag":127,"props":3609,"children":3610},{"style":1231},[3611],{"type":52,"value":3612},"    environment",{"type":47,"tag":127,"props":3614,"children":3615},{"style":1097},[3616],{"type":52,"value":1238},{"type":47,"tag":127,"props":3618,"children":3619},{"class":129,"line":27},[3620,3625],{"type":47,"tag":127,"props":3621,"children":3622},{"style":1097},[3623],{"type":52,"value":3624},"      -",{"type":47,"tag":127,"props":3626,"children":3627},{"style":150},[3628],{"type":52,"value":3629}," INNGEST_DEV=1\n",{"type":47,"tag":127,"props":3631,"children":3632},{"class":129,"line":201},[3633,3637],{"type":47,"tag":127,"props":3634,"children":3635},{"style":1097},[3636],{"type":52,"value":3624},{"type":47,"tag":127,"props":3638,"children":3639},{"style":150},[3640],{"type":52,"value":3641}," INNGEST_BASE_URL=http:\u002F\u002Finngest:8288\n",{"type":47,"tag":127,"props":3643,"children":3644},{"class":129,"line":209},[3645,3650],{"type":47,"tag":127,"props":3646,"children":3647},{"style":1231},[3648],{"type":52,"value":3649},"    ports",{"type":47,"tag":127,"props":3651,"children":3652},{"style":1097},[3653],{"type":52,"value":1238},{"type":47,"tag":127,"props":3655,"children":3656},{"class":129,"line":218},[3657,3661,3665,3670],{"type":47,"tag":127,"props":3658,"children":3659},{"style":1097},[3660],{"type":52,"value":3624},{"type":47,"tag":127,"props":3662,"children":3663},{"style":1097},[3664],{"type":52,"value":1251},{"type":47,"tag":127,"props":3666,"children":3667},{"style":150},[3668],{"type":52,"value":3669},"3000:3000",{"type":47,"tag":127,"props":3671,"children":3672},{"style":1097},[3673],{"type":52,"value":1167},{"type":47,"tag":127,"props":3675,"children":3676},{"class":129,"line":239},[3677,3681],{"type":47,"tag":127,"props":3678,"children":3679},{"style":1231},[3680],{"type":52,"value":3516},{"type":47,"tag":127,"props":3682,"children":3683},{"style":1097},[3684],{"type":52,"value":1238},{"type":47,"tag":127,"props":3686,"children":3687},{"class":129,"line":247},[3688,3693,3697],{"type":47,"tag":127,"props":3689,"children":3690},{"style":1231},[3691],{"type":52,"value":3692},"    image",{"type":47,"tag":127,"props":3694,"children":3695},{"style":1097},[3696],{"type":52,"value":1124},{"type":47,"tag":127,"props":3698,"children":3699},{"style":150},[3700],{"type":52,"value":312},{"type":47,"tag":127,"props":3702,"children":3703},{"class":129,"line":256},[3704,3709,3713,3717,3722],{"type":47,"tag":127,"props":3705,"children":3706},{"style":1231},[3707],{"type":52,"value":3708},"    command",{"type":47,"tag":127,"props":3710,"children":3711},{"style":1097},[3712],{"type":52,"value":1124},{"type":47,"tag":127,"props":3714,"children":3715},{"style":1097},[3716],{"type":52,"value":1251},{"type":47,"tag":127,"props":3718,"children":3719},{"style":150},[3720],{"type":52,"value":3721},"inngest dev -u http:\u002F\u002Fapp:3000\u002Fapi\u002Finngest",{"type":47,"tag":127,"props":3723,"children":3724},{"style":1097},[3725],{"type":52,"value":1167},{"type":47,"tag":127,"props":3727,"children":3728},{"class":129,"line":280},[3729,3733],{"type":47,"tag":127,"props":3730,"children":3731},{"style":1231},[3732],{"type":52,"value":3649},{"type":47,"tag":127,"props":3734,"children":3735},{"style":1097},[3736],{"type":52,"value":1238},{"type":47,"tag":127,"props":3738,"children":3739},{"class":129,"line":288},[3740,3744,3748,3753],{"type":47,"tag":127,"props":3741,"children":3742},{"style":1097},[3743],{"type":52,"value":3624},{"type":47,"tag":127,"props":3745,"children":3746},{"style":1097},[3747],{"type":52,"value":1251},{"type":47,"tag":127,"props":3749,"children":3750},{"style":150},[3751],{"type":52,"value":3752},"8288:8288",{"type":47,"tag":127,"props":3754,"children":3755},{"style":1097},[3756],{"type":52,"value":1167},{"type":47,"tag":127,"props":3758,"children":3759},{"class":129,"line":297},[3760,3764,3768,3773],{"type":47,"tag":127,"props":3761,"children":3762},{"style":1097},[3763],{"type":52,"value":3624},{"type":47,"tag":127,"props":3765,"children":3766},{"style":1097},[3767],{"type":52,"value":1251},{"type":47,"tag":127,"props":3769,"children":3770},{"style":150},[3771],{"type":52,"value":3772},"8289:8289",{"type":47,"tag":127,"props":3774,"children":3775},{"style":1097},[3776],{"type":52,"value":1167},{"type":47,"tag":55,"props":3778,"children":3779},{},[3780,3785,3787,3792,3794,3800],{"type":47,"tag":68,"props":3781,"children":3782},{},[3783],{"type":52,"value":3784},"Port 8288",{"type":52,"value":3786}," is the main server and UI. ",{"type":47,"tag":68,"props":3788,"children":3789},{},[3790],{"type":52,"value":3791},"Port 8289",{"type":52,"value":3793}," is the ",{"type":47,"tag":92,"props":3795,"children":3797},{"className":3796},[],[3798],{"type":52,"value":3799},"connect()",{"type":52,"value":3801}," WebSocket gateway.",{"type":47,"tag":55,"props":3803,"children":3804},{},[3805,3810,3812,3818],{"type":47,"tag":68,"props":3806,"children":3807},{},[3808],{"type":52,"value":3809},"Critical:",{"type":52,"value":3811}," Set ",{"type":47,"tag":92,"props":3813,"children":3815},{"className":3814},[],[3816],{"type":52,"value":3817},"INNGEST_DEV=1",{"type":52,"value":3819}," on your app — the TypeScript SDK defaults to Cloud mode, which will skip the Dev Server.",{"type":47,"tag":109,"props":3821,"children":3823},{"id":3822},"mcp-server-ai-dev-tools",[3824],{"type":52,"value":3825},"MCP Server (AI Dev Tools)",{"type":47,"tag":55,"props":3827,"children":3828},{},[3829,3831,3837],{"type":52,"value":3830},"The Dev Server exposes an MCP server at ",{"type":47,"tag":92,"props":3832,"children":3834},{"className":3833},[],[3835],{"type":52,"value":3836},"http:\u002F\u002F127.0.0.1:8288\u002Fmcp",{"type":52,"value":3838}," (HTTP transport).",{"type":47,"tag":116,"props":3840,"children":3842},{"className":118,"code":3841,"language":120,"meta":121,"style":121},"# Claude Code\nclaude mcp add --transport http inngest-dev http:\u002F\u002F127.0.0.1:8288\u002Fmcp\n",[3843],{"type":47,"tag":92,"props":3844,"children":3845},{"__ignoreMap":121},[3846,3854],{"type":47,"tag":127,"props":3847,"children":3848},{"class":129,"line":130},[3849],{"type":47,"tag":127,"props":3850,"children":3851},{"style":134},[3852],{"type":52,"value":3853},"# Claude Code\n",{"type":47,"tag":127,"props":3855,"children":3856},{"class":129,"line":140},[3857,3862,3867,3872,3877,3882,3887],{"type":47,"tag":127,"props":3858,"children":3859},{"style":144},[3860],{"type":52,"value":3861},"claude",{"type":47,"tag":127,"props":3863,"children":3864},{"style":150},[3865],{"type":52,"value":3866}," mcp",{"type":47,"tag":127,"props":3868,"children":3869},{"style":150},[3870],{"type":52,"value":3871}," add",{"type":47,"tag":127,"props":3873,"children":3874},{"style":150},[3875],{"type":52,"value":3876}," --transport",{"type":47,"tag":127,"props":3878,"children":3879},{"style":150},[3880],{"type":52,"value":3881}," http",{"type":47,"tag":127,"props":3883,"children":3884},{"style":150},[3885],{"type":52,"value":3886}," inngest-dev",{"type":47,"tag":127,"props":3888,"children":3889},{"style":150},[3890],{"type":52,"value":3891}," http:\u002F\u002F127.0.0.1:8288\u002Fmcp\n",{"type":47,"tag":116,"props":3893,"children":3895},{"className":1085,"code":3894,"language":1087,"meta":121,"style":121},"\u002F\u002F .cursor\u002Fmcp.json or another MCP-capable client config\n{\n  \"mcpServers\": {\n    \"inngest-dev\": {\n      \"url\": \"http:\u002F\u002F127.0.0.1:8288\u002Fmcp\"\n    }\n  }\n}\n",[3896],{"type":47,"tag":92,"props":3897,"children":3898},{"__ignoreMap":121},[3899,3907,3914,3938,3962,3995,4002,4010],{"type":47,"tag":127,"props":3900,"children":3901},{"class":129,"line":130},[3902],{"type":47,"tag":127,"props":3903,"children":3904},{"style":134},[3905],{"type":52,"value":3906},"\u002F\u002F .cursor\u002Fmcp.json or another MCP-capable client config\n",{"type":47,"tag":127,"props":3908,"children":3909},{"class":129,"line":140},[3910],{"type":47,"tag":127,"props":3911,"children":3912},{"style":1097},[3913],{"type":52,"value":1100},{"type":47,"tag":127,"props":3915,"children":3916},{"class":129,"line":161},[3917,3921,3926,3930,3934],{"type":47,"tag":127,"props":3918,"children":3919},{"style":1097},[3920],{"type":52,"value":1108},{"type":47,"tag":127,"props":3922,"children":3923},{"style":1111},[3924],{"type":52,"value":3925},"mcpServers",{"type":47,"tag":127,"props":3927,"children":3928},{"style":1097},[3929],{"type":52,"value":1119},{"type":47,"tag":127,"props":3931,"children":3932},{"style":1097},[3933],{"type":52,"value":1124},{"type":47,"tag":127,"props":3935,"children":3936},{"style":1097},[3937],{"type":52,"value":1997},{"type":47,"tag":127,"props":3939,"children":3940},{"class":129,"line":171},[3941,3945,3950,3954,3958],{"type":47,"tag":127,"props":3942,"children":3943},{"style":1097},[3944],{"type":52,"value":1137},{"type":47,"tag":127,"props":3946,"children":3947},{"style":144},[3948],{"type":52,"value":3949},"inngest-dev",{"type":47,"tag":127,"props":3951,"children":3952},{"style":1097},[3953],{"type":52,"value":1119},{"type":47,"tag":127,"props":3955,"children":3956},{"style":1097},[3957],{"type":52,"value":1124},{"type":47,"tag":127,"props":3959,"children":3960},{"style":1097},[3961],{"type":52,"value":1997},{"type":47,"tag":127,"props":3963,"children":3964},{"class":129,"line":27},[3965,3970,3975,3979,3983,3987,3991],{"type":47,"tag":127,"props":3966,"children":3967},{"style":1097},[3968],{"type":52,"value":3969},"      \"",{"type":47,"tag":127,"props":3971,"children":3972},{"style":466},[3973],{"type":52,"value":3974},"url",{"type":47,"tag":127,"props":3976,"children":3977},{"style":1097},[3978],{"type":52,"value":1119},{"type":47,"tag":127,"props":3980,"children":3981},{"style":1097},[3982],{"type":52,"value":1124},{"type":47,"tag":127,"props":3984,"children":3985},{"style":1097},[3986],{"type":52,"value":1251},{"type":47,"tag":127,"props":3988,"children":3989},{"style":150},[3990],{"type":52,"value":3836},{"type":47,"tag":127,"props":3992,"children":3993},{"style":1097},[3994],{"type":52,"value":1167},{"type":47,"tag":127,"props":3996,"children":3997},{"class":129,"line":201},[3998],{"type":47,"tag":127,"props":3999,"children":4000},{"style":1097},[4001],{"type":52,"value":2208},{"type":47,"tag":127,"props":4003,"children":4004},{"class":129,"line":209},[4005],{"type":47,"tag":127,"props":4006,"children":4007},{"style":1097},[4008],{"type":52,"value":4009},"  }\n",{"type":47,"tag":127,"props":4011,"children":4012},{"class":129,"line":218},[4013],{"type":47,"tag":127,"props":4014,"children":4015},{"style":1097},[4016],{"type":52,"value":1208},{"type":47,"tag":581,"props":4018,"children":4020},{"id":4019},"available-mcp-tools",[4021],{"type":52,"value":4022},"Available MCP Tools",{"type":47,"tag":588,"props":4024,"children":4025},{},[4026,4041],{"type":47,"tag":592,"props":4027,"children":4028},{},[4029],{"type":47,"tag":596,"props":4030,"children":4031},{},[4032,4037],{"type":47,"tag":600,"props":4033,"children":4034},{},[4035],{"type":52,"value":4036},"Tool",{"type":47,"tag":600,"props":4038,"children":4039},{},[4040],{"type":52,"value":619},{"type":47,"tag":621,"props":4042,"children":4043},{},[4044,4061,4078,4095,4112,4129,4146,4163],{"type":47,"tag":596,"props":4045,"children":4046},{},[4047,4056],{"type":47,"tag":628,"props":4048,"children":4049},{},[4050],{"type":47,"tag":92,"props":4051,"children":4053},{"className":4052},[],[4054],{"type":52,"value":4055},"send_event",{"type":47,"tag":628,"props":4057,"children":4058},{},[4059],{"type":52,"value":4060},"Send events to trigger functions",{"type":47,"tag":596,"props":4062,"children":4063},{},[4064,4073],{"type":47,"tag":628,"props":4065,"children":4066},{},[4067],{"type":47,"tag":92,"props":4068,"children":4070},{"className":4069},[],[4071],{"type":52,"value":4072},"list_functions",{"type":47,"tag":628,"props":4074,"children":4075},{},[4076],{"type":52,"value":4077},"List all registered functions and triggers",{"type":47,"tag":596,"props":4079,"children":4080},{},[4081,4090],{"type":47,"tag":628,"props":4082,"children":4083},{},[4084],{"type":47,"tag":92,"props":4085,"children":4087},{"className":4086},[],[4088],{"type":52,"value":4089},"invoke_function",{"type":47,"tag":628,"props":4091,"children":4092},{},[4093],{"type":52,"value":4094},"Execute a function synchronously (default 30s timeout)",{"type":47,"tag":596,"props":4096,"children":4097},{},[4098,4107],{"type":47,"tag":628,"props":4099,"children":4100},{},[4101],{"type":47,"tag":92,"props":4102,"children":4104},{"className":4103},[],[4105],{"type":52,"value":4106},"get_run_status",{"type":47,"tag":628,"props":4108,"children":4109},{},[4110],{"type":52,"value":4111},"Get detailed status of a function run",{"type":47,"tag":596,"props":4113,"children":4114},{},[4115,4124],{"type":47,"tag":628,"props":4116,"children":4117},{},[4118],{"type":47,"tag":92,"props":4119,"children":4121},{"className":4120},[],[4122],{"type":52,"value":4123},"poll_run_status",{"type":47,"tag":628,"props":4125,"children":4126},{},[4127],{"type":52,"value":4128},"Poll multiple runs until completion",{"type":47,"tag":596,"props":4130,"children":4131},{},[4132,4141],{"type":47,"tag":628,"props":4133,"children":4134},{},[4135],{"type":47,"tag":92,"props":4136,"children":4138},{"className":4137},[],[4139],{"type":52,"value":4140},"grep_docs",{"type":47,"tag":628,"props":4142,"children":4143},{},[4144],{"type":52,"value":4145},"Search Inngest documentation by regex pattern",{"type":47,"tag":596,"props":4147,"children":4148},{},[4149,4158],{"type":47,"tag":628,"props":4150,"children":4151},{},[4152],{"type":47,"tag":92,"props":4153,"children":4155},{"className":4154},[],[4156],{"type":52,"value":4157},"read_doc",{"type":47,"tag":628,"props":4159,"children":4160},{},[4161],{"type":52,"value":4162},"Read a specific documentation page",{"type":47,"tag":596,"props":4164,"children":4165},{},[4166,4175],{"type":47,"tag":628,"props":4167,"children":4168},{},[4169],{"type":47,"tag":92,"props":4170,"children":4172},{"className":4171},[],[4173],{"type":52,"value":4174},"list_docs",{"type":47,"tag":628,"props":4176,"children":4177},{},[4178],{"type":52,"value":4179},"List available documentation structure",{"type":47,"tag":109,"props":4181,"children":4183},{"id":4182},"inngest-start-self-hosted-production",[4184,4190],{"type":47,"tag":92,"props":4185,"children":4187},{"className":4186},[],[4188],{"type":52,"value":4189},"inngest start",{"type":52,"value":4191}," — Self-Hosted Production",{"type":47,"tag":55,"props":4193,"children":4194},{},[4195,4197,4207],{"type":52,"value":4196},"Runs Inngest as a self-hosted production server. ",{"type":47,"tag":68,"props":4198,"children":4199},{},[4200,4202],{"type":52,"value":4201},"Not the same as ",{"type":47,"tag":92,"props":4203,"children":4205},{"className":4204},[],[4206],{"type":52,"value":342},{"type":52,"value":4208}," — this is for production workloads.",{"type":47,"tag":116,"props":4210,"children":4212},{"className":118,"code":4211,"language":120,"meta":121,"style":121},"inngest start --event-key \u003Ckey> --signing-key \u003Ckey>\n",[4213],{"type":47,"tag":92,"props":4214,"children":4215},{"__ignoreMap":121},[4216],{"type":47,"tag":127,"props":4217,"children":4218},{"class":129,"line":130},[4219,4223,4228,4233,4238,4243,4248,4253,4258,4262,4266,4270],{"type":47,"tag":127,"props":4220,"children":4221},{"style":144},[4222],{"type":52,"value":8},{"type":47,"tag":127,"props":4224,"children":4225},{"style":150},[4226],{"type":52,"value":4227}," start",{"type":47,"tag":127,"props":4229,"children":4230},{"style":150},[4231],{"type":52,"value":4232}," --event-key",{"type":47,"tag":127,"props":4234,"children":4235},{"style":1097},[4236],{"type":52,"value":4237}," \u003C",{"type":47,"tag":127,"props":4239,"children":4240},{"style":150},[4241],{"type":52,"value":4242},"ke",{"type":47,"tag":127,"props":4244,"children":4245},{"style":502},[4246],{"type":52,"value":4247},"y",{"type":47,"tag":127,"props":4249,"children":4250},{"style":1097},[4251],{"type":52,"value":4252},">",{"type":47,"tag":127,"props":4254,"children":4255},{"style":150},[4256],{"type":52,"value":4257}," --signing-key",{"type":47,"tag":127,"props":4259,"children":4260},{"style":1097},[4261],{"type":52,"value":4237},{"type":47,"tag":127,"props":4263,"children":4264},{"style":150},[4265],{"type":52,"value":4242},{"type":47,"tag":127,"props":4267,"children":4268},{"style":502},[4269],{"type":52,"value":4247},{"type":47,"tag":127,"props":4271,"children":4272},{"style":1097},[4273],{"type":52,"value":4274},">\n",{"type":47,"tag":588,"props":4276,"children":4277},{},[4278,4300],{"type":47,"tag":592,"props":4279,"children":4280},{},[4281],{"type":47,"tag":596,"props":4282,"children":4283},{},[4284,4288,4292,4296],{"type":47,"tag":600,"props":4285,"children":4286},{},[4287],{"type":52,"value":604},{"type":47,"tag":600,"props":4289,"children":4290},{},[4291],{"type":52,"value":609},{"type":47,"tag":600,"props":4293,"children":4294},{},[4295],{"type":52,"value":614},{"type":47,"tag":600,"props":4297,"children":4298},{},[4299],{"type":52,"value":619},{"type":47,"tag":621,"props":4301,"children":4302},{},[4303,4335,4358,4381,4408,4431,4454,4477,4504,4530,4557,4583,4609,4632,4660,4689,4718],{"type":47,"tag":596,"props":4304,"children":4305},{},[4306,4314,4322,4330],{"type":47,"tag":628,"props":4307,"children":4308},{},[4309],{"type":47,"tag":92,"props":4310,"children":4312},{"className":4311},[],[4313],{"type":52,"value":671},{"type":47,"tag":628,"props":4315,"children":4316},{},[4317],{"type":47,"tag":92,"props":4318,"children":4320},{"className":4319},[],[4321],{"type":52,"value":680},{"type":47,"tag":628,"props":4323,"children":4324},{},[4325],{"type":47,"tag":92,"props":4326,"children":4328},{"className":4327},[],[4329],{"type":52,"value":689},{"type":47,"tag":628,"props":4331,"children":4332},{},[4333],{"type":52,"value":4334},"Server port",{"type":47,"tag":596,"props":4336,"children":4337},{},[4338,4347,4350,4353],{"type":47,"tag":628,"props":4339,"children":4340},{},[4341],{"type":47,"tag":92,"props":4342,"children":4344},{"className":4343},[],[4345],{"type":52,"value":4346},"--signing-key",{"type":47,"tag":628,"props":4348,"children":4349},{},[],{"type":47,"tag":628,"props":4351,"children":4352},{},[],{"type":47,"tag":628,"props":4354,"children":4355},{},[4356],{"type":52,"value":4357},"Hex key for request signing (even character count)",{"type":47,"tag":596,"props":4359,"children":4360},{},[4361,4370,4373,4376],{"type":47,"tag":628,"props":4362,"children":4363},{},[4364],{"type":47,"tag":92,"props":4365,"children":4367},{"className":4366},[],[4368],{"type":52,"value":4369},"--event-key",{"type":47,"tag":628,"props":4371,"children":4372},{},[],{"type":47,"tag":628,"props":4374,"children":4375},{},[],{"type":47,"tag":628,"props":4377,"children":4378},{},[4379],{"type":52,"value":4380},"Authentication key for apps (repeatable)",{"type":47,"tag":596,"props":4382,"children":4383},{},[4384,4392,4400,4403],{"type":47,"tag":628,"props":4385,"children":4386},{},[4387],{"type":47,"tag":92,"props":4388,"children":4390},{"className":4389},[],[4391],{"type":52,"value":636},{"type":47,"tag":628,"props":4393,"children":4394},{},[4395],{"type":47,"tag":92,"props":4396,"children":4398},{"className":4397},[],[4399],{"type":52,"value":645},{"type":47,"tag":628,"props":4401,"children":4402},{},[],{"type":47,"tag":628,"props":4404,"children":4405},{},[4406],{"type":52,"value":4407},"App serve URLs (repeatable)",{"type":47,"tag":596,"props":4409,"children":4410},{},[4411,4420,4423,4426],{"type":47,"tag":628,"props":4412,"children":4413},{},[4414],{"type":47,"tag":92,"props":4415,"children":4417},{"className":4416},[],[4418],{"type":52,"value":4419},"--redis-uri",{"type":47,"tag":628,"props":4421,"children":4422},{},[],{"type":47,"tag":628,"props":4424,"children":4425},{},[],{"type":47,"tag":628,"props":4427,"children":4428},{},[4429],{"type":52,"value":4430},"External Redis connection",{"type":47,"tag":596,"props":4432,"children":4433},{},[4434,4443,4446,4449],{"type":47,"tag":628,"props":4435,"children":4436},{},[4437],{"type":47,"tag":92,"props":4438,"children":4440},{"className":4439},[],[4441],{"type":52,"value":4442},"--postgres-uri",{"type":47,"tag":628,"props":4444,"children":4445},{},[],{"type":47,"tag":628,"props":4447,"children":4448},{},[],{"type":47,"tag":628,"props":4450,"children":4451},{},[4452],{"type":52,"value":4453},"External PostgreSQL connection",{"type":47,"tag":596,"props":4455,"children":4456},{},[4457,4466,4469,4472],{"type":47,"tag":628,"props":4458,"children":4459},{},[4460],{"type":47,"tag":92,"props":4461,"children":4463},{"className":4462},[],[4464],{"type":52,"value":4465},"--sqlite-dir",{"type":47,"tag":628,"props":4467,"children":4468},{},[],{"type":47,"tag":628,"props":4470,"children":4471},{},[],{"type":47,"tag":628,"props":4473,"children":4474},{},[4475],{"type":52,"value":4476},"SQLite database directory",{"type":47,"tag":596,"props":4478,"children":4479},{},[4480,4488,4491,4499],{"type":47,"tag":628,"props":4481,"children":4482},{},[4483],{"type":47,"tag":92,"props":4484,"children":4486},{"className":4485},[],[4487],{"type":52,"value":866},{"type":47,"tag":628,"props":4489,"children":4490},{},[],{"type":47,"tag":628,"props":4492,"children":4493},{},[4494],{"type":47,"tag":92,"props":4495,"children":4497},{"className":4496},[],[4498],{"type":52,"value":936},{"type":47,"tag":628,"props":4500,"children":4501},{},[4502],{"type":52,"value":4503},"App sync polling interval (seconds)",{"type":47,"tag":596,"props":4505,"children":4506},{},[4507,4515,4518,4526],{"type":47,"tag":628,"props":4508,"children":4509},{},[4510],{"type":47,"tag":92,"props":4511,"children":4513},{"className":4512},[],[4514],{"type":52,"value":895},{"type":47,"tag":628,"props":4516,"children":4517},{},[],{"type":47,"tag":628,"props":4519,"children":4520},{},[4521],{"type":47,"tag":92,"props":4522,"children":4524},{"className":4523},[],[4525],{"type":52,"value":907},{"type":47,"tag":628,"props":4527,"children":4528},{},[4529],{"type":52,"value":912},{"type":47,"tag":596,"props":4531,"children":4532},{},[4533,4541,4544,4552],{"type":47,"tag":628,"props":4534,"children":4535},{},[4536],{"type":47,"tag":92,"props":4537,"children":4539},{"className":4538},[],[4540],{"type":52,"value":809},{"type":47,"tag":628,"props":4542,"children":4543},{},[],{"type":47,"tag":628,"props":4545,"children":4546},{},[4547],{"type":47,"tag":92,"props":4548,"children":4550},{"className":4549},[],[4551],{"type":52,"value":821},{"type":47,"tag":628,"props":4553,"children":4554},{},[4555],{"type":52,"value":4556},"Connect gateway port",{"type":47,"tag":596,"props":4558,"children":4559},{},[4560,4568,4571,4579],{"type":47,"tag":628,"props":4561,"children":4562},{},[4563],{"type":47,"tag":92,"props":4564,"children":4566},{"className":4565},[],[4567],{"type":52,"value":924},{"type":47,"tag":628,"props":4569,"children":4570},{},[],{"type":47,"tag":628,"props":4572,"children":4573},{},[4574],{"type":47,"tag":92,"props":4575,"children":4577},{"className":4576},[],[4578],{"type":52,"value":936},{"type":47,"tag":628,"props":4580,"children":4581},{},[4582],{"type":52,"value":941},{"type":47,"tag":596,"props":4584,"children":4585},{},[4586,4594,4597,4605],{"type":47,"tag":628,"props":4587,"children":4588},{},[4589],{"type":47,"tag":92,"props":4590,"children":4592},{"className":4591},[],[4593],{"type":52,"value":953},{"type":47,"tag":628,"props":4595,"children":4596},{},[],{"type":47,"tag":628,"props":4598,"children":4599},{},[4600],{"type":47,"tag":92,"props":4601,"children":4603},{"className":4602},[],[4604],{"type":52,"value":965},{"type":47,"tag":628,"props":4606,"children":4607},{},[4608],{"type":52,"value":970},{"type":47,"tag":596,"props":4610,"children":4611},{},[4612,4621,4624,4627],{"type":47,"tag":628,"props":4613,"children":4614},{},[4615],{"type":47,"tag":92,"props":4616,"children":4618},{"className":4617},[],[4619],{"type":52,"value":4620},"--no-ui",{"type":47,"tag":628,"props":4622,"children":4623},{},[],{"type":47,"tag":628,"props":4625,"children":4626},{},[],{"type":47,"tag":628,"props":4628,"children":4629},{},[4630],{"type":52,"value":4631},"Disable web UI and GraphQL API",{"type":47,"tag":596,"props":4633,"children":4634},{},[4635,4644,4647,4655],{"type":47,"tag":628,"props":4636,"children":4637},{},[4638],{"type":47,"tag":92,"props":4639,"children":4641},{"className":4640},[],[4642],{"type":52,"value":4643},"--postgres-conn-max-idle-time",{"type":47,"tag":628,"props":4645,"children":4646},{},[],{"type":47,"tag":628,"props":4648,"children":4649},{},[4650],{"type":47,"tag":92,"props":4651,"children":4653},{"className":4652},[],[4654],{"type":52,"value":878},{"type":47,"tag":628,"props":4656,"children":4657},{},[4658],{"type":52,"value":4659},"PostgreSQL idle connection lifetime in minutes",{"type":47,"tag":596,"props":4661,"children":4662},{},[4663,4672,4675,4684],{"type":47,"tag":628,"props":4664,"children":4665},{},[4666],{"type":47,"tag":92,"props":4667,"children":4669},{"className":4668},[],[4670],{"type":52,"value":4671},"--postgres-conn-max-lifetime",{"type":47,"tag":628,"props":4673,"children":4674},{},[],{"type":47,"tag":628,"props":4676,"children":4677},{},[4678],{"type":47,"tag":92,"props":4679,"children":4681},{"className":4680},[],[4682],{"type":52,"value":4683},"30",{"type":47,"tag":628,"props":4685,"children":4686},{},[4687],{"type":52,"value":4688},"PostgreSQL maximum connection reuse time in minutes",{"type":47,"tag":596,"props":4690,"children":4691},{},[4692,4701,4704,4713],{"type":47,"tag":628,"props":4693,"children":4694},{},[4695],{"type":47,"tag":92,"props":4696,"children":4698},{"className":4697},[],[4699],{"type":52,"value":4700},"--postgres-max-idle-conns",{"type":47,"tag":628,"props":4702,"children":4703},{},[],{"type":47,"tag":628,"props":4705,"children":4706},{},[4707],{"type":47,"tag":92,"props":4708,"children":4710},{"className":4709},[],[4711],{"type":52,"value":4712},"10",{"type":47,"tag":628,"props":4714,"children":4715},{},[4716],{"type":52,"value":4717},"PostgreSQL max idle connections",{"type":47,"tag":596,"props":4719,"children":4720},{},[4721,4730,4733,4741],{"type":47,"tag":628,"props":4722,"children":4723},{},[4724],{"type":47,"tag":92,"props":4725,"children":4727},{"className":4726},[],[4728],{"type":52,"value":4729},"--postgres-max-open-conns",{"type":47,"tag":628,"props":4731,"children":4732},{},[],{"type":47,"tag":628,"props":4734,"children":4735},{},[4736],{"type":47,"tag":92,"props":4737,"children":4739},{"className":4738},[],[4740],{"type":52,"value":907},{"type":47,"tag":628,"props":4742,"children":4743},{},[4744],{"type":52,"value":4745},"PostgreSQL max open connections",{"type":47,"tag":55,"props":4747,"children":4748},{},[4749,4751,4757,4758,4764,4766,4772,4774,4780],{"type":52,"value":4750},"Global flags such as ",{"type":47,"tag":92,"props":4752,"children":4754},{"className":4753},[],[4755],{"type":52,"value":4756},"--log-level",{"type":52,"value":1074},{"type":47,"tag":92,"props":4759,"children":4761},{"className":4760},[],[4762],{"type":52,"value":4763},"--verbose",{"type":52,"value":4765},", and ",{"type":47,"tag":92,"props":4767,"children":4769},{"className":4768},[],[4770],{"type":52,"value":4771},"--json",{"type":52,"value":4773}," are also available. For environment variables, follow the current CLI and deployment docs; do not assume every flag has an ",{"type":47,"tag":92,"props":4775,"children":4777},{"className":4776},[],[4778],{"type":52,"value":4779},"INNGEST_",{"type":52,"value":4781}," environment variable equivalent.",{"type":47,"tag":55,"props":4783,"children":4784},{},[4785,4787,4793],{"type":52,"value":4786},"Default persistence: in-memory Redis + SQLite at ",{"type":47,"tag":92,"props":4788,"children":4790},{"className":4789},[],[4791],{"type":52,"value":4792},".\u002F.inngest\u002Fmain.db",{"type":52,"value":4794},". For production, use external Redis and PostgreSQL.",{"type":47,"tag":109,"props":4796,"children":4798},{"id":4797},"deployment-workflow",[4799],{"type":52,"value":4800},"Deployment Workflow",{"type":47,"tag":581,"props":4802,"children":4804},{"id":4803},"local-development-production",[4805],{"type":52,"value":4806},"Local Development → Production",{"type":47,"tag":4808,"props":4809,"children":4810},"ol",{},[4811,4828,4838],{"type":47,"tag":1012,"props":4812,"children":4813},{},[4814,4819,4821,4826],{"type":47,"tag":68,"props":4815,"children":4816},{},[4817],{"type":52,"value":4818},"Develop locally",{"type":52,"value":4820}," with ",{"type":47,"tag":92,"props":4822,"children":4824},{"className":4823},[],[4825],{"type":52,"value":342},{"type":52,"value":4827}," — no keys needed, no code changes for production",{"type":47,"tag":1012,"props":4829,"children":4830},{},[4831,4836],{"type":47,"tag":68,"props":4832,"children":4833},{},[4834],{"type":52,"value":4835},"Deploy your app",{"type":52,"value":4837}," to your hosting platform",{"type":47,"tag":1012,"props":4839,"children":4840},{},[4841,4846],{"type":47,"tag":68,"props":4842,"children":4843},{},[4844],{"type":52,"value":4845},"Sync with Inngest",{"type":52,"value":4847}," using one of three methods:",{"type":47,"tag":116,"props":4849,"children":4851},{"className":118,"code":4850,"language":120,"meta":121,"style":121},"# Option 1: Curl from CI\u002FCD\ncurl -X PUT https:\u002F\u002Fyour-app.com\u002Fapi\u002Finngest --fail-with-body\n\n# Option 2: Vercel\u002FNetlify integrations (automatic on deploy)\n\n# Option 3: Manual sync via Inngest Cloud dashboard\n",[4852],{"type":47,"tag":92,"props":4853,"children":4854},{"__ignoreMap":121},[4855,4863,4889,4896,4904,4911],{"type":47,"tag":127,"props":4856,"children":4857},{"class":129,"line":130},[4858],{"type":47,"tag":127,"props":4859,"children":4860},{"style":134},[4861],{"type":52,"value":4862},"# Option 1: Curl from CI\u002FCD\n",{"type":47,"tag":127,"props":4864,"children":4865},{"class":129,"line":140},[4866,4870,4874,4879,4884],{"type":47,"tag":127,"props":4867,"children":4868},{"style":144},[4869],{"type":52,"value":1590},{"type":47,"tag":127,"props":4871,"children":4872},{"style":150},[4873],{"type":52,"value":2104},{"type":47,"tag":127,"props":4875,"children":4876},{"style":150},[4877],{"type":52,"value":4878}," PUT",{"type":47,"tag":127,"props":4880,"children":4881},{"style":150},[4882],{"type":52,"value":4883}," https:\u002F\u002Fyour-app.com\u002Fapi\u002Finngest",{"type":47,"tag":127,"props":4885,"children":4886},{"style":150},[4887],{"type":52,"value":4888}," --fail-with-body\n",{"type":47,"tag":127,"props":4890,"children":4891},{"class":129,"line":161},[4892],{"type":47,"tag":127,"props":4893,"children":4894},{"emptyLinePlaceholder":165},[4895],{"type":52,"value":168},{"type":47,"tag":127,"props":4897,"children":4898},{"class":129,"line":171},[4899],{"type":47,"tag":127,"props":4900,"children":4901},{"style":134},[4902],{"type":52,"value":4903},"# Option 2: Vercel\u002FNetlify integrations (automatic on deploy)\n",{"type":47,"tag":127,"props":4905,"children":4906},{"class":129,"line":27},[4907],{"type":47,"tag":127,"props":4908,"children":4909},{"emptyLinePlaceholder":165},[4910],{"type":52,"value":168},{"type":47,"tag":127,"props":4912,"children":4913},{"class":129,"line":201},[4914],{"type":47,"tag":127,"props":4915,"children":4916},{"style":134},[4917],{"type":52,"value":4918},"# Option 3: Manual sync via Inngest Cloud dashboard\n",{"type":47,"tag":4808,"props":4920,"children":4921},{"start":171},[4922],{"type":47,"tag":1012,"props":4923,"children":4924},{},[4925,4930],{"type":47,"tag":68,"props":4926,"children":4927},{},[4928],{"type":52,"value":4929},"Set environment variables",{"type":52,"value":4931}," in production:",{"type":47,"tag":116,"props":4933,"children":4935},{"className":118,"code":4934,"language":120,"meta":121,"style":121},"INNGEST_EVENT_KEY=\u003Cyour-event-key>\nINNGEST_SIGNING_KEY=\u003Cyour-signing-key>\n",[4936],{"type":47,"tag":92,"props":4937,"children":4938},{"__ignoreMap":121},[4939,4960],{"type":47,"tag":127,"props":4940,"children":4941},{"class":129,"line":130},[4942,4946,4951,4956],{"type":47,"tag":127,"props":4943,"children":4944},{"style":502},[4945],{"type":52,"value":1400},{"type":47,"tag":127,"props":4947,"children":4948},{"style":1097},[4949],{"type":52,"value":4950},"=\u003C",{"type":47,"tag":127,"props":4952,"children":4953},{"style":150},[4954],{"type":52,"value":4955},"your-event-key",{"type":47,"tag":127,"props":4957,"children":4958},{"style":1097},[4959],{"type":52,"value":4274},{"type":47,"tag":127,"props":4961,"children":4962},{"class":129,"line":140},[4963,4967,4971,4976],{"type":47,"tag":127,"props":4964,"children":4965},{"style":502},[4966],{"type":52,"value":1424},{"type":47,"tag":127,"props":4968,"children":4969},{"style":1097},[4970],{"type":52,"value":4950},{"type":47,"tag":127,"props":4972,"children":4973},{"style":150},[4974],{"type":52,"value":4975},"your-signing-key",{"type":47,"tag":127,"props":4977,"children":4978},{"style":1097},[4979],{"type":52,"value":4274},{"type":47,"tag":55,"props":4981,"children":4982},{},[4983,4988],{"type":47,"tag":68,"props":4984,"children":4985},{},[4986],{"type":52,"value":4987},"No code changes",{"type":52,"value":4989}," are needed when moving from local dev to production. The SDK automatically detects the environment.",{"type":47,"tag":109,"props":4991,"children":4993},{"id":4992},"platform-specific-gotchas",[4994],{"type":52,"value":4995},"Platform-Specific Gotchas",{"type":47,"tag":588,"props":4997,"children":4998},{},[4999,5015],{"type":47,"tag":592,"props":5000,"children":5001},{},[5002],{"type":47,"tag":596,"props":5003,"children":5004},{},[5005,5010],{"type":47,"tag":600,"props":5006,"children":5007},{},[5008],{"type":52,"value":5009},"Platform",{"type":47,"tag":600,"props":5011,"children":5012},{},[5013],{"type":52,"value":5014},"Gotcha",{"type":47,"tag":621,"props":5016,"children":5017},{},[5018,5049,5079,5102,5140,5163,5184,5200,5221],{"type":47,"tag":596,"props":5019,"children":5020},{},[5021,5029],{"type":47,"tag":628,"props":5022,"children":5023},{},[5024],{"type":47,"tag":68,"props":5025,"children":5026},{},[5027],{"type":52,"value":5028},"Express",{"type":47,"tag":628,"props":5030,"children":5031},{},[5032,5033,5039,5041,5047],{"type":52,"value":2251},{"type":47,"tag":92,"props":5034,"children":5036},{"className":5035},[],[5037],{"type":52,"value":5038},"express.json()",{"type":52,"value":5040}," middleware; default body limit is ",{"type":47,"tag":92,"props":5042,"children":5044},{"className":5043},[],[5045],{"type":52,"value":5046},"100kb",{"type":52,"value":5048}," — increase to handle Inngest payloads (up to 4MB)",{"type":47,"tag":596,"props":5050,"children":5051},{},[5052,5060],{"type":47,"tag":628,"props":5053,"children":5054},{},[5055],{"type":47,"tag":68,"props":5056,"children":5057},{},[5058],{"type":52,"value":5059},"AWS Lambda",{"type":47,"tag":628,"props":5061,"children":5062},{},[5063,5065,5070,5072,5077],{"type":52,"value":5064},"Set ",{"type":47,"tag":92,"props":5066,"children":5068},{"className":5067},[],[5069],{"type":52,"value":1465},{"type":52,"value":5071}," and ",{"type":47,"tag":92,"props":5073,"children":5075},{"className":5074},[],[5076],{"type":52,"value":1495},{"type":52,"value":5078}," explicitly — auto-inference fails",{"type":47,"tag":596,"props":5080,"children":5081},{},[5082,5090],{"type":47,"tag":628,"props":5083,"children":5084},{},[5085],{"type":47,"tag":68,"props":5086,"children":5087},{},[5088],{"type":52,"value":5089},"Firebase Cloud Functions",{"type":47,"tag":628,"props":5091,"children":5092},{},[5093,5095,5100],{"type":52,"value":5094},"Must set ",{"type":47,"tag":92,"props":5096,"children":5098},{"className":5097},[],[5099],{"type":52,"value":1495},{"type":52,"value":5101}," env var",{"type":47,"tag":596,"props":5103,"children":5104},{},[5105,5113],{"type":47,"tag":628,"props":5106,"children":5107},{},[5108],{"type":47,"tag":68,"props":5109,"children":5110},{},[5111],{"type":52,"value":5112},"DigitalOcean Functions",{"type":47,"tag":628,"props":5114,"children":5115},{},[5116,5118,5124,5125,5131,5133,5138],{"type":52,"value":5117},"Both ",{"type":47,"tag":92,"props":5119,"children":5121},{"className":5120},[],[5122],{"type":52,"value":5123},"serveOrigin",{"type":52,"value":5071},{"type":47,"tag":92,"props":5126,"children":5128},{"className":5127},[],[5129],{"type":52,"value":5130},"servePath",{"type":52,"value":5132}," required in ",{"type":47,"tag":92,"props":5134,"children":5136},{"className":5135},[],[5137],{"type":52,"value":1573},{"type":52,"value":5139}," config",{"type":47,"tag":596,"props":5141,"children":5142},{},[5143,5158],{"type":47,"tag":628,"props":5144,"children":5145},{},[5146],{"type":47,"tag":68,"props":5147,"children":5148},{},[5149,5151,5157],{"type":52,"value":5150},"Cloudflare Workers (Wrangler ",{"type":47,"tag":92,"props":5152,"children":5154},{"className":5153},[],[5155],{"type":52,"value":5156},"--remote",{"type":52,"value":1910},{"type":47,"tag":628,"props":5159,"children":5160},{},[5161],{"type":52,"value":5162},"Requires tunnel (ngrok\u002Flocaltunnel) for Dev Server connection",{"type":47,"tag":596,"props":5164,"children":5165},{},[5166,5174],{"type":47,"tag":628,"props":5167,"children":5168},{},[5169],{"type":47,"tag":68,"props":5170,"children":5171},{},[5172],{"type":52,"value":5173},"Supabase Edge Functions",{"type":47,"tag":628,"props":5175,"children":5176},{},[5177,5182],{"type":47,"tag":92,"props":5178,"children":5180},{"className":5179},[],[5181],{"type":52,"value":5130},{"type":52,"value":5183}," must match function name — Supabase rewrites request paths",{"type":47,"tag":596,"props":5185,"children":5186},{},[5187,5195],{"type":47,"tag":628,"props":5188,"children":5189},{},[5190],{"type":47,"tag":68,"props":5191,"children":5192},{},[5193],{"type":52,"value":5194},"Google Cloud Run (1st gen)",{"type":47,"tag":628,"props":5196,"children":5197},{},[5198],{"type":52,"value":5199},"Not officially supported; may cause signature verification errors",{"type":47,"tag":596,"props":5201,"children":5202},{},[5203,5210],{"type":47,"tag":628,"props":5204,"children":5205},{},[5206],{"type":47,"tag":68,"props":5207,"children":5208},{},[5209],{"type":52,"value":21},{"type":47,"tag":628,"props":5211,"children":5212},{},[5213,5214,5219],{"type":52,"value":5094},{"type":47,"tag":92,"props":5215,"children":5217},{"className":5216},[],[5218],{"type":52,"value":3817},{"type":52,"value":5220}," — SDK defaults to Cloud mode",{"type":47,"tag":596,"props":5222,"children":5223},{},[5224,5232],{"type":47,"tag":628,"props":5225,"children":5226},{},[5227],{"type":47,"tag":68,"props":5228,"children":5229},{},[5230],{"type":52,"value":5231},"External webhooks (Stripe, Clerk)",{"type":47,"tag":628,"props":5233,"children":5234},{},[5235],{"type":52,"value":5236},"Require tunnel solution (ngrok, localtunnel) for local testing",{"type":47,"tag":109,"props":5238,"children":5240},{"id":5239},"quick-reference",[5241],{"type":52,"value":5242},"Quick Reference",{"type":47,"tag":116,"props":5244,"children":5246},{"className":118,"code":5245,"language":120,"meta":121,"style":121},"# Start dev server with auto-discovery\nnpx inngest-cli@latest dev\n\n# Start with explicit app URL\nnpx inngest-cli@latest dev -u http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest\n\n# Check serve endpoint health\ncurl -s http:\u002F\u002Flocalhost:3000\u002Fapi\u002Finngest | jq\n\n# Send test event via curl\ncurl -X POST http:\u002F\u002Flocalhost:8288\u002Fe\u002Ftest -d '{\"name\": \"test\u002Fevent\", \"data\": {}}'\n\n# Sync after deploy (CI\u002FCD)\ncurl -X PUT https:\u002F\u002Fyour-app.com\u002Fapi\u002Finngest --fail-with-body\n\n# Self-hosted production\ninngest start --event-key \u003Ckey> --signing-key \u003Ckey>\n",[5247],{"type":47,"tag":92,"props":5248,"children":5249},{"__ignoreMap":121},[5250,5258,5273,5280,5288,5311,5318,5326,5349,5356,5364,5402,5409,5417,5440,5447,5455],{"type":47,"tag":127,"props":5251,"children":5252},{"class":129,"line":130},[5253],{"type":47,"tag":127,"props":5254,"children":5255},{"style":134},[5256],{"type":52,"value":5257},"# Start dev server with auto-discovery\n",{"type":47,"tag":127,"props":5259,"children":5260},{"class":129,"line":140},[5261,5265,5269],{"type":47,"tag":127,"props":5262,"children":5263},{"style":144},[5264],{"type":52,"value":147},{"type":47,"tag":127,"props":5266,"children":5267},{"style":150},[5268],{"type":52,"value":153},{"type":47,"tag":127,"props":5270,"children":5271},{"style":150},[5272],{"type":52,"value":158},{"type":47,"tag":127,"props":5274,"children":5275},{"class":129,"line":161},[5276],{"type":47,"tag":127,"props":5277,"children":5278},{"emptyLinePlaceholder":165},[5279],{"type":52,"value":168},{"type":47,"tag":127,"props":5281,"children":5282},{"class":129,"line":171},[5283],{"type":47,"tag":127,"props":5284,"children":5285},{"style":134},[5286],{"type":52,"value":5287},"# Start with explicit app URL\n",{"type":47,"tag":127,"props":5289,"children":5290},{"class":129,"line":27},[5291,5295,5299,5303,5307],{"type":47,"tag":127,"props":5292,"children":5293},{"style":144},[5294],{"type":52,"value":147},{"type":47,"tag":127,"props":5296,"children":5297},{"style":150},[5298],{"type":52,"value":153},{"type":47,"tag":127,"props":5300,"children":5301},{"style":150},[5302],{"type":52,"value":418},{"type":47,"tag":127,"props":5304,"children":5305},{"style":150},[5306],{"type":52,"value":423},{"type":47,"tag":127,"props":5308,"children":5309},{"style":150},[5310],{"type":52,"value":428},{"type":47,"tag":127,"props":5312,"children":5313},{"class":129,"line":201},[5314],{"type":47,"tag":127,"props":5315,"children":5316},{"emptyLinePlaceholder":165},[5317],{"type":52,"value":168},{"type":47,"tag":127,"props":5319,"children":5320},{"class":129,"line":209},[5321],{"type":47,"tag":127,"props":5322,"children":5323},{"style":134},[5324],{"type":52,"value":5325},"# Check serve endpoint health\n",{"type":47,"tag":127,"props":5327,"children":5328},{"class":129,"line":218},[5329,5333,5337,5341,5345],{"type":47,"tag":127,"props":5330,"children":5331},{"style":144},[5332],{"type":52,"value":1590},{"type":47,"tag":127,"props":5334,"children":5335},{"style":150},[5336],{"type":52,"value":1595},{"type":47,"tag":127,"props":5338,"children":5339},{"style":150},[5340],{"type":52,"value":518},{"type":47,"tag":127,"props":5342,"children":5343},{"style":1097},[5344],{"type":52,"value":1604},{"type":47,"tag":127,"props":5346,"children":5347},{"style":144},[5348],{"type":52,"value":1609},{"type":47,"tag":127,"props":5350,"children":5351},{"class":129,"line":239},[5352],{"type":47,"tag":127,"props":5353,"children":5354},{"emptyLinePlaceholder":165},[5355],{"type":52,"value":168},{"type":47,"tag":127,"props":5357,"children":5358},{"class":129,"line":247},[5359],{"type":47,"tag":127,"props":5360,"children":5361},{"style":134},[5362],{"type":52,"value":5363},"# Send test event via curl\n",{"type":47,"tag":127,"props":5365,"children":5366},{"class":129,"line":256},[5367,5371,5375,5379,5384,5389,5393,5398],{"type":47,"tag":127,"props":5368,"children":5369},{"style":144},[5370],{"type":52,"value":1590},{"type":47,"tag":127,"props":5372,"children":5373},{"style":150},[5374],{"type":52,"value":2104},{"type":47,"tag":127,"props":5376,"children":5377},{"style":150},[5378],{"type":52,"value":2109},{"type":47,"tag":127,"props":5380,"children":5381},{"style":150},[5382],{"type":52,"value":5383}," http:\u002F\u002Flocalhost:8288\u002Fe\u002Ftest",{"type":47,"tag":127,"props":5385,"children":5386},{"style":150},[5387],{"type":52,"value":5388}," -d",{"type":47,"tag":127,"props":5390,"children":5391},{"style":1097},[5392],{"type":52,"value":2164},{"type":47,"tag":127,"props":5394,"children":5395},{"style":150},[5396],{"type":52,"value":5397},"{\"name\": \"test\u002Fevent\", \"data\": {}}",{"type":47,"tag":127,"props":5399,"children":5400},{"style":1097},[5401],{"type":52,"value":2221},{"type":47,"tag":127,"props":5403,"children":5404},{"class":129,"line":280},[5405],{"type":47,"tag":127,"props":5406,"children":5407},{"emptyLinePlaceholder":165},[5408],{"type":52,"value":168},{"type":47,"tag":127,"props":5410,"children":5411},{"class":129,"line":288},[5412],{"type":47,"tag":127,"props":5413,"children":5414},{"style":134},[5415],{"type":52,"value":5416},"# Sync after deploy (CI\u002FCD)\n",{"type":47,"tag":127,"props":5418,"children":5419},{"class":129,"line":297},[5420,5424,5428,5432,5436],{"type":47,"tag":127,"props":5421,"children":5422},{"style":144},[5423],{"type":52,"value":1590},{"type":47,"tag":127,"props":5425,"children":5426},{"style":150},[5427],{"type":52,"value":2104},{"type":47,"tag":127,"props":5429,"children":5430},{"style":150},[5431],{"type":52,"value":4878},{"type":47,"tag":127,"props":5433,"children":5434},{"style":150},[5435],{"type":52,"value":4883},{"type":47,"tag":127,"props":5437,"children":5438},{"style":150},[5439],{"type":52,"value":4888},{"type":47,"tag":127,"props":5441,"children":5442},{"class":129,"line":544},[5443],{"type":47,"tag":127,"props":5444,"children":5445},{"emptyLinePlaceholder":165},[5446],{"type":52,"value":168},{"type":47,"tag":127,"props":5448,"children":5449},{"class":129,"line":553},[5450],{"type":47,"tag":127,"props":5451,"children":5452},{"style":134},[5453],{"type":52,"value":5454},"# Self-hosted production\n",{"type":47,"tag":127,"props":5456,"children":5457},{"class":129,"line":2892},[5458,5462,5466,5470,5474,5478,5482,5486,5490,5494,5498,5502],{"type":47,"tag":127,"props":5459,"children":5460},{"style":144},[5461],{"type":52,"value":8},{"type":47,"tag":127,"props":5463,"children":5464},{"style":150},[5465],{"type":52,"value":4227},{"type":47,"tag":127,"props":5467,"children":5468},{"style":150},[5469],{"type":52,"value":4232},{"type":47,"tag":127,"props":5471,"children":5472},{"style":1097},[5473],{"type":52,"value":4237},{"type":47,"tag":127,"props":5475,"children":5476},{"style":150},[5477],{"type":52,"value":4242},{"type":47,"tag":127,"props":5479,"children":5480},{"style":502},[5481],{"type":52,"value":4247},{"type":47,"tag":127,"props":5483,"children":5484},{"style":1097},[5485],{"type":52,"value":4252},{"type":47,"tag":127,"props":5487,"children":5488},{"style":150},[5489],{"type":52,"value":4257},{"type":47,"tag":127,"props":5491,"children":5492},{"style":1097},[5493],{"type":52,"value":4237},{"type":47,"tag":127,"props":5495,"children":5496},{"style":150},[5497],{"type":52,"value":4242},{"type":47,"tag":127,"props":5499,"children":5500},{"style":502},[5501],{"type":52,"value":4247},{"type":47,"tag":127,"props":5503,"children":5504},{"style":1097},[5505],{"type":52,"value":4274},{"type":47,"tag":109,"props":5507,"children":5509},{"id":5508},"troubleshooting",[5510],{"type":52,"value":5511},"Troubleshooting",{"type":47,"tag":588,"props":5513,"children":5514},{},[5515,5536],{"type":47,"tag":592,"props":5516,"children":5517},{},[5518],{"type":47,"tag":596,"props":5519,"children":5520},{},[5521,5526,5531],{"type":47,"tag":600,"props":5522,"children":5523},{},[5524],{"type":52,"value":5525},"Issue",{"type":47,"tag":600,"props":5527,"children":5528},{},[5529],{"type":52,"value":5530},"Cause",{"type":47,"tag":600,"props":5532,"children":5533},{},[5534],{"type":52,"value":5535},"Solution",{"type":47,"tag":621,"props":5537,"children":5538},{},[5539,5564,5598,5627,5652,5693,5711],{"type":47,"tag":596,"props":5540,"children":5541},{},[5542,5547,5552],{"type":47,"tag":628,"props":5543,"children":5544},{},[5545],{"type":52,"value":5546},"Dev Server doesn't find functions",{"type":47,"tag":628,"props":5548,"children":5549},{},[5550],{"type":52,"value":5551},"App not running or wrong port",{"type":47,"tag":628,"props":5553,"children":5554},{},[5555,5557,5562],{"type":52,"value":5556},"Start your app first; use ",{"type":47,"tag":92,"props":5558,"children":5560},{"className":5559},[],[5561],{"type":52,"value":645},{"type":52,"value":5563}," to specify the correct URL",{"type":47,"tag":596,"props":5565,"children":5566},{},[5567,5578,5588],{"type":47,"tag":628,"props":5568,"children":5569},{},[5570,5576],{"type":47,"tag":92,"props":5571,"children":5573},{"className":5572},[],[5574],{"type":52,"value":5575},"functionsFound: 0",{"type":52,"value":5577}," in debug output",{"type":47,"tag":628,"props":5579,"children":5580},{},[5581,5583],{"type":52,"value":5582},"Functions not passed to ",{"type":47,"tag":92,"props":5584,"children":5586},{"className":5585},[],[5587],{"type":52,"value":1573},{"type":47,"tag":628,"props":5589,"children":5590},{},[5591,5593],{"type":52,"value":5592},"Verify all functions are in the array passed to ",{"type":47,"tag":92,"props":5594,"children":5596},{"className":5595},[],[5597],{"type":52,"value":1573},{"type":47,"tag":596,"props":5599,"children":5600},{},[5601,5606,5616],{"type":47,"tag":628,"props":5602,"children":5603},{},[5604],{"type":52,"value":5605},"SDK connects to Cloud instead of Dev Server",{"type":47,"tag":628,"props":5607,"children":5608},{},[5609,5614],{"type":47,"tag":92,"props":5610,"children":5612},{"className":5611},[],[5613],{"type":52,"value":1333},{"type":52,"value":5615}," not set",{"type":47,"tag":628,"props":5617,"children":5618},{},[5619,5620,5625],{"type":52,"value":5064},{"type":47,"tag":92,"props":5621,"children":5623},{"className":5622},[],[5624],{"type":52,"value":3817},{"type":52,"value":5626}," in your environment",{"type":47,"tag":596,"props":5628,"children":5629},{},[5630,5635,5640],{"type":47,"tag":628,"props":5631,"children":5632},{},[5633],{"type":52,"value":5634},"Functions sync to wrong Inngest environment",{"type":47,"tag":628,"props":5636,"children":5637},{},[5638],{"type":52,"value":5639},"Wrong signing key",{"type":47,"tag":628,"props":5641,"children":5642},{},[5643,5645,5650],{"type":52,"value":5644},"Check ",{"type":47,"tag":92,"props":5646,"children":5648},{"className":5647},[],[5649],{"type":52,"value":1424},{"type":52,"value":5651}," matches target environment",{"type":47,"tag":596,"props":5653,"children":5654},{},[5655,5660,5673],{"type":47,"tag":628,"props":5656,"children":5657},{},[5658],{"type":52,"value":5659},"Duplicate app in Inngest dashboard",{"type":47,"tag":628,"props":5661,"children":5662},{},[5663,5665,5671],{"type":52,"value":5664},"App ",{"type":47,"tag":92,"props":5666,"children":5668},{"className":5667},[],[5669],{"type":52,"value":5670},"id",{"type":52,"value":5672}," was changed",{"type":47,"tag":628,"props":5674,"children":5675},{},[5676,5678,5683,5685,5691],{"type":52,"value":5677},"Keep the ",{"type":47,"tag":92,"props":5679,"children":5681},{"className":5680},[],[5682],{"type":52,"value":5670},{"type":52,"value":5684}," in ",{"type":47,"tag":92,"props":5686,"children":5688},{"className":5687},[],[5689],{"type":52,"value":5690},"new Inngest({ id })",{"type":52,"value":5692}," stable across deploys",{"type":47,"tag":596,"props":5694,"children":5695},{},[5696,5701,5706],{"type":47,"tag":628,"props":5697,"children":5698},{},[5699],{"type":52,"value":5700},"Webhook events not reaching Dev Server",{"type":47,"tag":628,"props":5702,"children":5703},{},[5704],{"type":52,"value":5705},"No tunnel configured",{"type":47,"tag":628,"props":5707,"children":5708},{},[5709],{"type":52,"value":5710},"Use ngrok or localtunnel for external webhook sources",{"type":47,"tag":596,"props":5712,"children":5713},{},[5714,5719,5724],{"type":47,"tag":628,"props":5715,"children":5716},{},[5717],{"type":52,"value":5718},"\"Unattached sync\" in dashboard",{"type":47,"tag":628,"props":5720,"children":5721},{},[5722],{"type":52,"value":5723},"Auto-sync failed silently",{"type":47,"tag":628,"props":5725,"children":5726},{},[5727],{"type":52,"value":5728},"Check integration logs; resync manually",{"type":47,"tag":55,"props":5730,"children":5731},{},[5732,5734,5740,5742,5748],{"type":52,"value":5733},"See ",{"type":47,"tag":76,"props":5735,"children":5737},{"href":5736},"..\u002Finngest-setup\u002FSKILL.md",[5738],{"type":52,"value":5739},"inngest-setup",{"type":52,"value":5741}," for SDK installation and ",{"type":47,"tag":76,"props":5743,"children":5745},{"href":5744},"..\u002Finngest-durable-functions\u002FSKILL.md",[5746],{"type":52,"value":5747},"inngest-durable-functions",{"type":52,"value":5749}," for function configuration.",{"type":47,"tag":5751,"props":5752,"children":5753},"style",{},[5754],{"type":52,"value":5755},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":5757,"total":297},[5758,5778,5793,5807,5817,5832,5839],{"slug":5759,"name":5759,"fn":5760,"description":5761,"org":5762,"tags":5763,"stars":23,"repoUrl":24,"updatedAt":5777},"inngest-agent-evals","build and debug Inngest agent evals","Use when building, migrating, or debugging Agent Evals on Inngest: scoring AI agent or workflow outcomes, deferred scorers, sessions, traces, step experiments, experiment variant attribution, Insights queries, or production eval loops for prompts, models, tools, providers, and agent behavior. Covers TypeScript SDK v4 scoring beta APIs, `scoreMiddleware`, `step.score`, `inngest.score`, `createScorer`, `defer`, `group.experiment`, `experimentRef`, `meta.sessions`, and when to use durable workflow primitives for outcome-based evaluation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5764,5767,5770,5771,5774],{"name":5765,"slug":5766,"type":13},"Agents","agents",{"name":5768,"slug":5769,"type":13},"Evals","evals",{"name":9,"slug":8,"type":13},{"name":5772,"slug":5773,"type":13},"Observability","observability",{"name":5775,"slug":5776,"type":13},"Workflow Automation","workflow-automation","2026-07-12T07:36:51.711641",{"slug":5779,"name":5779,"fn":5780,"description":5781,"org":5782,"tags":5783,"stars":23,"repoUrl":24,"updatedAt":5792},"inngest-agents","build durable AI agent workflows","Use when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress, provider rate limits, crash-safe execution, and Agent Evals handoff. Covers AgentKit, `step.ai`, `step.run`, `step.waitForEvent`, native realtime, and when to use lower-level Inngest primitives instead of an in-memory agent loop. Use `inngest-agent-evals` with this skill when the user wants scoring, sessions, experiments, deferred scorers, or outcome-based evaluation for the agent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5784,5785,5788,5789],{"name":5765,"slug":5766,"type":13},{"name":5786,"slug":5787,"type":13},"Automation","automation",{"name":9,"slug":8,"type":13},{"name":5790,"slug":5791,"type":13},"LLM","llm","2026-07-12T07:36:45.984181",{"slug":5794,"name":5794,"fn":5795,"description":5796,"org":5797,"tags":5798,"stars":23,"repoUrl":24,"updatedAt":5806},"inngest-api","interact with Inngest REST API","Use when the user explicitly asks for the Inngest REST API v2, raw HTTP, OpenAPI, API docs, API authentication, or an endpoint that the Inngest CLI does not expose. Covers api-docs.inngest.com, llms.txt, the OpenAPI v2 spec, Bearer authentication with API keys or signing keys, production and local base URLs, raw curl\u002Ffetch requests, request-shape discovery, pagination, secret redaction, and when to prefer the `inngest-api-cli` skill instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5799,5802,5805],{"name":5800,"slug":5801,"type":13},"API Development","api-development",{"name":5803,"slug":5804,"type":13},"REST API","rest-api",{"name":5775,"slug":5776,"type":13},"2026-07-12T07:36:39.364409",{"slug":105,"name":105,"fn":5808,"description":5809,"org":5810,"tags":5811,"stars":23,"repoUrl":24,"updatedAt":5816},"operate Inngest API resources via CLI","Use when operating Inngest API resources from the terminal with `npx inngest-cli@latest api`: Cloud\u002Flocal run debugging, event-run lookup, function traces, function invocation, app syncs, webhooks, environments, keys, account checks, and Insights queries. Provides prescriptive command routing for agents: which CLI command to run for a run ID, event ID, app ID, function ID, Cloud environment, API key, missing ID, or potentially mutating operation. Use `inngest-cli` for dev server setup\u002Fgeneral CLI workflows and `inngest-api` only when raw REST API v2 docs or OpenAPI fallback are needed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5812,5813,5814,5815],{"name":5800,"slug":5801,"type":13},{"name":5786,"slug":5787,"type":13},{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},"2026-07-12T07:36:47.58183",{"slug":5818,"name":5818,"fn":5819,"description":5820,"org":5821,"tags":5822,"stars":23,"repoUrl":24,"updatedAt":5831},"inngest-brownfield-audit","audit codebases for Inngest integration","Use when analyzing an existing TypeScript or JavaScript codebase to decide where and how to introduce Inngest. Covers repository discovery, framework and package detection, finding durability gaps in HTTP handlers, webhooks, cron jobs, queues, long-running jobs, AI agents, Agent Evals, polling loops, eval loops, and side-effect-heavy code, then producing and implementing an incremental integration plan.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5823,5824,5827,5830],{"name":5786,"slug":5787,"type":13},{"name":5825,"slug":5826,"type":13},"Code Analysis","code-analysis",{"name":5828,"slug":5829,"type":13},"Engineering","engineering",{"name":9,"slug":8,"type":13},"2026-07-12T07:36:55.811247",{"slug":4,"name":4,"fn":5,"description":6,"org":5833,"tags":5834,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5835,5836,5837,5838],{"name":18,"slug":19,"type":13},{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"slug":5747,"name":5747,"fn":5840,"description":5841,"org":5842,"tags":5843,"stars":23,"repoUrl":24,"updatedAt":5850},"build durable and retry-safe functions","Use when building functions that must survive process crashes, retry automatically on failure, run on a schedule, react to events, or maintain state across infrastructure failures — e.g., webhook handlers that drop events, flaky cron jobs, background jobs that fail mid-execution, or workflows that need to resume where they left off. Covers Inngest function configuration, triggers (events, cron, invoke), step execution and memoization, idempotency, cancellation, error handling, retries, logging, and observability.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5844,5845,5848,5849],{"name":5786,"slug":5787,"type":13},{"name":5846,"slug":5847,"type":13},"Backend","backend",{"name":9,"slug":8,"type":13},{"name":5775,"slug":5776,"type":13},"2026-07-12T07:36:57.141023",{"items":5852,"total":297},[5853,5861,5868,5874,5881,5888,5895,5902,5914,5927,5943,5958],{"slug":5759,"name":5759,"fn":5760,"description":5761,"org":5854,"tags":5855,"stars":23,"repoUrl":24,"updatedAt":5777},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5856,5857,5858,5859,5860],{"name":5765,"slug":5766,"type":13},{"name":5768,"slug":5769,"type":13},{"name":9,"slug":8,"type":13},{"name":5772,"slug":5773,"type":13},{"name":5775,"slug":5776,"type":13},{"slug":5779,"name":5779,"fn":5780,"description":5781,"org":5862,"tags":5863,"stars":23,"repoUrl":24,"updatedAt":5792},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5864,5865,5866,5867],{"name":5765,"slug":5766,"type":13},{"name":5786,"slug":5787,"type":13},{"name":9,"slug":8,"type":13},{"name":5790,"slug":5791,"type":13},{"slug":5794,"name":5794,"fn":5795,"description":5796,"org":5869,"tags":5870,"stars":23,"repoUrl":24,"updatedAt":5806},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5871,5872,5873],{"name":5800,"slug":5801,"type":13},{"name":5803,"slug":5804,"type":13},{"name":5775,"slug":5776,"type":13},{"slug":105,"name":105,"fn":5808,"description":5809,"org":5875,"tags":5876,"stars":23,"repoUrl":24,"updatedAt":5816},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5877,5878,5879,5880],{"name":5800,"slug":5801,"type":13},{"name":5786,"slug":5787,"type":13},{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"slug":5818,"name":5818,"fn":5819,"description":5820,"org":5882,"tags":5883,"stars":23,"repoUrl":24,"updatedAt":5831},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5884,5885,5886,5887],{"name":5786,"slug":5787,"type":13},{"name":5825,"slug":5826,"type":13},{"name":5828,"slug":5829,"type":13},{"name":9,"slug":8,"type":13},{"slug":4,"name":4,"fn":5,"description":6,"org":5889,"tags":5890,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5891,5892,5893,5894],{"name":18,"slug":19,"type":13},{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"slug":5747,"name":5747,"fn":5840,"description":5841,"org":5896,"tags":5897,"stars":23,"repoUrl":24,"updatedAt":5850},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5898,5899,5900,5901],{"name":5786,"slug":5787,"type":13},{"name":5846,"slug":5847,"type":13},{"name":9,"slug":8,"type":13},{"name":5775,"slug":5776,"type":13},{"slug":5903,"name":5903,"fn":5904,"description":5905,"org":5906,"tags":5907,"stars":23,"repoUrl":24,"updatedAt":5913},"inngest-events","design event-driven workflows","Use when designing event-driven workflows, decoupling services, implementing fan-out patterns (one trigger, many downstream handlers), implementing idempotent event handling with IDs (24-hour dedupe window), or handling at-least-once delivery from external sources like Stripe webhooks. Covers Inngest event schema, payload format, naming conventions, IDs for idempotency, the ts param, fan-out patterns, and system events like inngest\u002Ffunction.failed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5908,5911,5912],{"name":5909,"slug":5910,"type":13},"Data Pipeline","data-pipeline",{"name":9,"slug":8,"type":13},{"name":5775,"slug":5776,"type":13},"2026-07-12T07:36:44.685364",{"slug":5915,"name":5915,"fn":5916,"description":5917,"org":5918,"tags":5919,"stars":23,"repoUrl":24,"updatedAt":5926},"inngest-flow-control","manage API rate limits and load","Use when handling external API rate limits (e.g., OpenAI 429s, HubSpot or Stripe rate limits), preventing duplicate work from rapid event bursts (debouncing user actions), spreading load over time, ensuring per-tenant fairness, processing events in batches, limiting concurrent runs of the same operation, or assigning priority to important runs. Covers Inngest flow control: concurrency limits with keys, throttling, rate limiting, debounce, priority, singleton, and event batching.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5920,5921,5922,5923],{"name":5800,"slug":5801,"type":13},{"name":5786,"slug":5787,"type":13},{"name":9,"slug":8,"type":13},{"name":5924,"slug":5925,"type":13},"Performance","performance","2026-07-12T07:36:52.987451",{"slug":5928,"name":5928,"fn":5929,"description":5930,"org":5931,"tags":5932,"stars":23,"repoUrl":24,"updatedAt":5942},"inngest-middleware","add middleware to Inngest durable functions","Use when adding cross-cutting concerns to durable functions — structured logging or tracing across all functions, error tracking with Sentry, payload encryption for sensitive data, dependency injection of clients (DB, Stripe, etc.) into function handlers, custom telemetry, or behavior that should apply uniformly across many functions. Covers Inngest middleware lifecycle, creating custom middleware, dependencyInjectionMiddleware, @inngest\u002Fmiddleware-encryption, @inngest\u002Fmiddleware-sentry, and custom middleware patterns.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5933,5934,5935,5938,5939],{"name":5828,"slug":5829,"type":13},{"name":9,"slug":8,"type":13},{"name":5936,"slug":5937,"type":13},"Middleware","middleware",{"name":5772,"slug":5773,"type":13},{"name":5940,"slug":5941,"type":13},"Sentry","sentry","2026-07-12T07:36:50.127999",{"slug":5944,"name":5944,"fn":5945,"description":5946,"org":5947,"tags":5948,"stars":23,"repoUrl":24,"updatedAt":5957},"inngest-realtime","stream durable workflow updates to UI","Use when streaming durable workflow updates to a UI in real time — live order status pages that animate as steps complete, AI agent token streaming from a function to the browser, log tailing for long-running jobs, or human-in-the-loop approval flows that publish a prompt and wait for a user reply. Covers Inngest v4 native realtime: defining typed channels, publishing from inside step.run, minting subscription tokens via server actions, and consuming the stream from React\u002FNext.js client components.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5949,5950,5953,5954],{"name":5786,"slug":5787,"type":13},{"name":5951,"slug":5952,"type":13},"Frontend","frontend",{"name":9,"slug":8,"type":13},{"name":5955,"slug":5956,"type":13},"Real-time","real-time","2026-07-12T07:36:48.895092",{"slug":5739,"name":5739,"fn":5959,"description":5960,"org":5961,"tags":5962,"stars":23,"repoUrl":24,"updatedAt":5968},"build durable TypeScript workflows","Use when adding durable execution to a TypeScript project — building retry-safe webhook handlers, background jobs that survive crashes, scheduled tasks, or long-running workflows that outlive a single request. Covers Inngest SDK installation, client config, environment variables, serve endpoints (Next.js, Express, Hono, Fastify), connect-as-worker mode, and the local dev server.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5963,5964,5965,5966],{"name":5786,"slug":5787,"type":13},{"name":5846,"slug":5847,"type":13},{"name":9,"slug":8,"type":13},{"name":5967,"slug":1784,"type":13},"TypeScript","2026-07-12T07:36:42.004122"]