{"_id":"@circus_sh/n8n-nodes-circus","_rev":"2-65e6c0c8d2b11497495335540442815c","name":"@circus_sh/n8n-nodes-circus","dist-tags":{"latest":"1.4.0"},"versions":{"1.3.0":{"name":"@circus_sh/n8n-nodes-circus","version":"1.3.0","keywords":["n8n-community-node-package"],"author":{"name":"Ivan Dudas","email":"ivan@circus.sh"},"license":"MIT","_id":"@circus_sh/n8n-nodes-circus@1.3.0","maintainers":[{"name":"ivandudas","email":"ivan@ivandudas.com"}],"homepage":"https://circus.sh","bugs":{"url":"https://github.com/circus-sh/n8n-nodes-circus/issues"},"n8n":{"nodes":["dist/nodes/CircusAgent/CircusAgent.node.js","dist/nodes/CircusComplete/CircusComplete.node.js","dist/nodes/CircusInit/CircusInit.node.js","dist/nodes/CircusLog/CircusLog.node.js","dist/nodes/CircusTerminate/CircusTerminate.node.js"],"strict":true,"credentials":["dist/credentials/CircusApi.credentials.js","dist/credentials/CircusAnthropicApi.credentials.js","dist/credentials/CircusGoogleApi.credentials.js","dist/credentials/CircusOpenaiApi.credentials.js","dist/credentials/CircusXaiApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"ebb55656b58b9b0d07b5aacd60a9b532bffc0486","tarball":"https://registry.npmjs.org/@circus_sh/n8n-nodes-circus/-/n8n-nodes-circus-1.3.0.tgz","fileCount":55,"integrity":"sha512-YiPjd74hKFfJQNfMIsCLccUNX+mSZgrsHdaJyVsl7IvJ/K+yC7N8FaXsDQay4yur6PR+gX3jjOQsXlj+Nmd3RA==","signatures":[{"sig":"MEUCIFzrQFCsYrbqjO7GoKQ3fj4cVi+inH+c+fSnc0/Yz7WIAiEAz/GK4kDUc3Uklg3DvuN0JtJaq1hvIEMf83cpOWlGFwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@circus_sh%2fn8n-nodes-circus@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":189727},"gitHead":"2e76e39215212f858531b32b792fe1dab044e350","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","build":"n8n-node build","release":"n8n-node release","lint:fix":"n8n-node lint --fix","build:watch":"tsc --watch","prepublishOnly":"n8n-node prerelease"},"_npmUser":{"name":"ivandudas","email":"ivan@ivandudas.com"},"repository":{"url":"git+https://github.com/circus-sh/n8n-nodes-circus.git","type":"git"},"_npmVersion":"11.13.0","description":"n8n community nodes for the Circus AI Workflow Orchestration Platform","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.29.0","prettier":"3.6.2","release-it":"^19.0.4","typescript":"5.9.2","n8n-workflow":"^2.16.0","@n8n/node-cli":"*"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-circus_1.3.0_1782993433962_0.15791913767159538","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@circus_sh/n8n-nodes-circus","version":"1.4.0","description":"n8n community nodes for the Circus AI Workflow Orchestration Platform","license":"MIT","homepage":"https://circus.sh","publishConfig":{"access":"public"},"keywords":["n8n-community-node-package"],"author":{"name":"Ivan Dudas","email":"ivan@circus.sh"},"repository":{"type":"git","url":"git+https://github.com/circus-sh/n8n-nodes-circus.git"},"scripts":{"build":"n8n-node build","build:watch":"tsc --watch","dev":"n8n-node dev","lint":"n8n-node lint","lint:fix":"n8n-node lint --fix","release":"n8n-node release","prepublishOnly":"n8n-node prerelease"},"n8n":{"n8nNodesApiVersion":1,"strict":true,"credentials":["dist/credentials/CircusApi.credentials.js","dist/credentials/CircusAnthropicApi.credentials.js","dist/credentials/CircusGoogleApi.credentials.js","dist/credentials/CircusOpenaiApi.credentials.js","dist/credentials/CircusXaiApi.credentials.js"],"nodes":["dist/nodes/CircusAgent/CircusAgent.node.js","dist/nodes/CircusComplete/CircusComplete.node.js","dist/nodes/CircusInit/CircusInit.node.js","dist/nodes/CircusLog/CircusLog.node.js","dist/nodes/CircusTerminate/CircusTerminate.node.js"]},"devDependencies":{"@n8n/node-cli":"*","eslint":"9.29.0","n8n-workflow":"^2.16.0","prettier":"3.6.2","release-it":"^19.0.4","typescript":"5.9.2"},"peerDependencies":{"n8n-workflow":"*"},"gitHead":"7b32bcb9c3d8ff14a0442ec480412faff75ee66f","_id":"@circus_sh/n8n-nodes-circus@1.4.0","bugs":{"url":"https://github.com/circus-sh/n8n-nodes-circus/issues"},"_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-bjx1ahdTo5wG1N5eo3aAkhdWoh6H/fRhmoxAvitAhBPFSgb/VWfjXdsHzolRc7kIRlp+E2U1OTIyAGAX3FGLTA==","shasum":"c08849e4bd91a6eec5685f9a4fb88ce4550cb530","tarball":"https://registry.npmjs.org/@circus_sh/n8n-nodes-circus/-/n8n-nodes-circus-1.4.0.tgz","fileCount":55,"unpackedSize":194496,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@circus_sh%2fn8n-nodes-circus@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHaENqXk/7Pj1ReaHF+8qkA+lmVbwpj5r9T+AW1q5ePiAiEA/tmJZ5r+N1SKo98c81tPHtVQXHRCr7Cy7ipRIeHVRvc="}]},"_npmUser":{"name":"ivandudas","email":"ivan@ivandudas.com"},"directories":{},"maintainers":[{"name":"ivandudas","email":"ivan@ivandudas.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-circus_1.4.0_1783072636031_0.5233697730724147"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-02T11:57:13.803Z","modified":"2026-07-03T09:57:16.470Z","1.3.0":"2026-07-02T11:57:14.086Z","1.4.0":"2026-07-03T09:57:16.167Z"},"bugs":{"url":"https://github.com/circus-sh/n8n-nodes-circus/issues"},"author":{"name":"Ivan Dudas","email":"ivan@circus.sh"},"license":"MIT","homepage":"https://circus.sh","keywords":["n8n-community-node-package"],"repository":{"type":"git","url":"git+https://github.com/circus-sh/n8n-nodes-circus.git"},"description":"n8n community nodes for the Circus AI Workflow Orchestration Platform","maintainers":[{"name":"ivandudas","email":"ivan@ivandudas.com"}],"readme":"# n8n-nodes-circus\n\nThis is an n8n community node. It lets you use the [Circus AI Workflow Orchestration Platform](https://circus.sh) in your n8n workflows.\n\nCircus is an AI workflow orchestration platform that enables operators to configure models, prompts, and agents through a central UI. These nodes let n8n workflow developers integrate with the Circus platform — executing AI agent calls, logging execution steps, tracking costs, and managing the execution lifecycle.\n\n[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation platform.\n\n[Installation](#installation)\n[Operations](#operations)\n[Credentials](#credentials)\n[Compatibility](#compatibility)\n[Usage](#usage)\n[Resources](#resources)\n[Version history](#version-history)\n\n## Installation\n\nFollow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.\n\n## Operations\n\nThis package provides five nodes:\n\n- **Circus Init** — Initialize the Circus execution context. Place directly after the Webhook trigger node. Validates the JWT token (if the Webhook is configured with JWT auth), registers execution start with the platform, and stores the webhook payload in n8n's execution data so all downstream Circus nodes can access configuration snapshots and execution IDs regardless of their position in the workflow.\n- **Circus Agent** — Execute AI agent calls using operator-configured models and prompts. The agent configuration (model, prompt, parameters) is read from the workflow snapshot at runtime, allowing operators to change AI providers and prompts without editing the n8n workflow. Supports OpenAI, Anthropic, Google, and xAI providers.\n- **Circus Log** — Create log entries on the Circus platform for workflow steps. Tracks execution data, checks cost and time thresholds, and can trigger workflow termination if thresholds are exceeded.\n- **Circus Complete** — Mark a workflow execution as successfully completed and transmit result artifacts back to the Circus platform.\n- **Circus Terminate** — Terminate a workflow execution on the Circus platform due to an error. Intended for use in error branches.\n\n## Credentials\n\n### Circus API\n\nAll nodes require the **Circus API** credential, which authenticates with the Circus platform:\n\n- **API Key** — Circus Platform API Key (JWT token)\n- **API URL** — Base URL of your Circus platform instance (e.g. `https://your-instance.circus.sh`)\n\n### AI Provider API Keys\n\nThe Agent node requires AI provider API keys configured as n8n credentials. The Agent node looks up the correct credential at runtime based on the model provider specified in the snapshot. Supported providers:\n\n- **Circus OpenAI API** — for OpenAI models\n- **Circus Anthropic API** — for Anthropic models\n- **Circus Google AI API** — for Google AI models\n- **Circus xAI API** — for xAI models\n\n## Compatibility\n\nTested with n8n version 2.25+. Requires `n8n-workflow` version 2.16.0 or later.\n\n## Usage\n\nThese nodes are designed to work with the Circus platform's webhook-triggered workflow pattern:\n\n1. A **Webhook** trigger node receives the execution payload from the Circus platform (optionally with JWT authentication).\n2. A **Circus Init** node (placed directly after the Webhook) validates the JWT token if present, registers execution start with the platform, and stores the payload in execution data.\n3. **Agent** nodes read their configuration from the stored snapshots — no hardcoded API URLs, models, or prompts in the n8n workflow.\n4. **Log** nodes record execution steps and check cost/time thresholds.\n5. The **Complete** node marks the execution as finished, or the **Terminate** node handles error cases.\n\nAll nodes automatically include the n8n execution ID (`external_execution_id`) in every platform API call, enabling the Circus platform to remotely manage the n8n execution if needed.\n\n### Error Handling\n\nThese nodes follow a consistent error handling pattern based on n8n's built-in \"On Error\" setting:\n\n- **Stop Workflow + Retry On Fail**: The node throws an error to let n8n retry. It does not call the platform's terminate endpoint, allowing retries to succeed.\n- **Stop Workflow + No Retry**: The node calls the platform's terminate endpoint and throws an error.\n- **Continue (any variant)**: The node calls the platform's terminate endpoint to trigger remote termination, then throws an error. The platform will stop the n8n execution remotely.\n\nIt is recommended to set \"On Error\" to \"Stop Workflow\" for all Circus nodes.\n\n## Resources\n\n* [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)\n* [Circus platform documentation](https://circus.sh/docs)\n\n## Version history\n\n### 0.1.0\n\nInitial release with five nodes: Init, Agent, Log, Complete, and Terminate.\n","readmeFilename":"README.md"}