{"_id":"@agentrux/n8n-nodes-agentrux","_rev":"3-d5116e34c94e7162b475bbcd9d26cc57","name":"@agentrux/n8n-nodes-agentrux","dist-tags":{"latest":"0.4.2"},"versions":{"0.4.0":{"name":"@agentrux/n8n-nodes-agentrux","version":"0.4.0","keywords":["n8n-community-node-package","agentrux","pubsub","events","sse","a2a"],"license":"MIT","_id":"@agentrux/n8n-nodes-agentrux@0.4.0","maintainers":[{"name":"agentrux","email":"agentruxcorp@gmail.com"}],"homepage":"https://github.com/agentrux/agentrux-plugins#readme","bugs":{"url":"https://github.com/agentrux/agentrux-plugins/issues"},"n8n":{"nodes":["dist/nodes/AgenTrux/AgenTrux.node.js","dist/nodes/AgenTrux/AgenTruxTrigger.node.js"],"credentials":["dist/credentials/AgenTruxApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"0e5d1d13f42d69e8ace5543d552b86675a6c24f0","tarball":"https://registry.npmjs.org/@agentrux/n8n-nodes-agentrux/-/n8n-nodes-agentrux-0.4.0.tgz","fileCount":24,"integrity":"sha512-EzFWN3QZlMD63XojiMHikg7UQhCLCEP5MQk9eElwhkelD2djyjk1tokw89VBP9KbwG6S5Mes9wKxnzTKqzE94A==","signatures":[{"sig":"MEYCIQDVCKkoMK2hm9K5Nuw+0a7SH9BOxtxB5Mjk2zvMRHpGWgIhAMUi8/WHUzy3sNAPafj8MwVOVA+aZOFMA4FokrE5mpN3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104212},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"504963ff4d6574fffbf7fb33669db3133fc74da6","scripts":{"dev":"tsc --watch","lint":"tsc --noEmit","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"agentrux","email":"agentruxcorp@gmail.com"},"repository":{"url":"git+https://github.com/agentrux/agentrux-plugins.git","type":"git","directory":"n8n"},"_npmVersion":"10.8.2","description":"n8n community node for AgenTrux — authenticated pub/sub for AI agents (Activation Code connect, Topic publish/read, SSE-hint + Pull trigger)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","n8n-workflow":"^1.30.0"},"peerDependencies":{"n8n-workflow":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-agentrux_0.4.0_1780280744992_0.37304025546933817","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@agentrux/n8n-nodes-agentrux","version":"0.4.1","keywords":["n8n-community-node-package","agentrux","pubsub","events","sse","a2a"],"license":"MIT","_id":"@agentrux/n8n-nodes-agentrux@0.4.1","maintainers":[{"name":"agentrux","email":"agentruxcorp@gmail.com"}],"homepage":"https://github.com/agentrux/agentrux-plugins#readme","bugs":{"url":"https://github.com/agentrux/agentrux-plugins/issues"},"n8n":{"nodes":["dist/nodes/AgenTrux/AgenTrux.node.js","dist/nodes/AgenTrux/AgenTruxTrigger.node.js"],"credentials":["dist/credentials/AgenTruxApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"b00734e21d3567058128fdab23696b51380e9548","tarball":"https://registry.npmjs.org/@agentrux/n8n-nodes-agentrux/-/n8n-nodes-agentrux-0.4.1.tgz","fileCount":25,"integrity":"sha512-xEgX3Gevcin9T6MpgkKKYyLVpYPE0DmI3DLZAct0yZothzhWTqc4GQ9Jtb0OmXJgNCFEwEDw8K2WCuiOD/Vl2g==","signatures":[{"sig":"MEYCIQCOnTtqC6Zo3kE/jPAhoO7Ses4Vgj51RDPo7/yAQqqVJgIhAObvmdqNwnB8oepKnTkyO0ho9WqFtR2z710CxPRi+ysN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105566},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"82fa0b71ed8ecb5938260b6c41251695cdfa6ad3","scripts":{"dev":"tsc --watch","lint":"tsc --noEmit","test":"jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"agentrux","email":"agentruxcorp@gmail.com"},"repository":{"url":"git+https://github.com/agentrux/agentrux-plugins.git","type":"git","directory":"n8n"},"_npmVersion":"10.8.2","description":"n8n community node for AgenTrux — authenticated pub/sub for AI agents (Activation Code connect, Topic publish/read, SSE-hint + Pull trigger)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","n8n-workflow":"^1.30.0"},"peerDependencies":{"n8n-workflow":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-agentrux_0.4.1_1782187723171_0.16939322340637664","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@agentrux/n8n-nodes-agentrux","version":"0.4.2","description":"n8n community node for AgenTrux — authenticated pub/sub for AI agents (Activation Code connect, Topic publish/read, SSE-hint + Pull trigger)","keywords":["n8n-community-node-package","agentrux","pubsub","events","sse","a2a"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/agentrux/agentrux-plugins.git","directory":"n8n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch","lint":"tsc --noEmit","prepublishOnly":"npm run build","test":"jest"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/AgenTruxApi.credentials.js"],"nodes":["dist/nodes/AgenTrux/AgenTrux.node.js","dist/nodes/AgenTrux/AgenTruxTrigger.node.js"]},"peerDependencies":{"n8n-workflow":">=1.0.0"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^20.0.0","jest":"^29.7.0","n8n-workflow":"^1.30.0","ts-jest":"^29.4.6","typescript":"^5.4.0"},"_id":"@agentrux/n8n-nodes-agentrux@0.4.2","gitHead":"a41f8d65d0f681018efea3bddda01a55bbb508c9","bugs":{"url":"https://github.com/agentrux/agentrux-plugins/issues"},"homepage":"https://github.com/agentrux/agentrux-plugins#readme","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-t+m0TZ6g8fN4W+BtbbdfyIdKDiLNWHDOGZ/v+aGoEyLRUVBQve1eql685ERGWLcR9y9II2iqvvrTqU1vcojeZw==","shasum":"8480b257e6272f1ab5e596b5e05065ea66861d75","tarball":"https://registry.npmjs.org/@agentrux/n8n-nodes-agentrux/-/n8n-nodes-agentrux-0.4.2.tgz","fileCount":25,"unpackedSize":105828,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFOAnEUQq8XNYxlcvO4uAXS9bWBP9Kils2bcyh1mvhkXAiA34XSCp4qXRLdtaQUU6sBUv2Trw1BbSAlKm5NYS9OQrA=="}]},"_npmUser":{"name":"agentrux","email":"agentruxcorp@gmail.com"},"directories":{},"maintainers":[{"name":"agentrux","email":"agentruxcorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-agentrux_0.4.2_1782189433689_0.9756037100961983"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-01T02:25:44.852Z","modified":"2026-06-23T04:37:14.001Z","0.4.0":"2026-06-01T02:25:45.139Z","0.4.1":"2026-06-23T04:08:43.333Z","0.4.2":"2026-06-23T04:37:13.870Z"},"bugs":{"url":"https://github.com/agentrux/agentrux-plugins/issues"},"license":"MIT","homepage":"https://github.com/agentrux/agentrux-plugins#readme","keywords":["n8n-community-node-package","agentrux","pubsub","events","sse","a2a"],"repository":{"type":"git","url":"git+https://github.com/agentrux/agentrux-plugins.git","directory":"n8n"},"description":"n8n community node for AgenTrux — authenticated pub/sub for AI agents (Activation Code connect, Topic publish/read, SSE-hint + Pull trigger)","maintainers":[{"name":"agentrux","email":"agentruxcorp@gmail.com"}],"readme":"# n8n-nodes-agentrux\n\nn8n community node for [AgenTrux](https://github.com/agentrux/agentrux-plugins) — authenticated pub/sub for AI agents.\n\nThis package adds to n8n:\n\n- **AgenTrux API credential** — connect with a one-time **Activation Code**.\n- **AgenTrux** node — **Publish** / **Read** events, **List Topics**, and **Upload** / **Download** binary payloads on a Topic.\n- **AgenTrux Trigger** node — wake your workflow on new events using **SSE hints + Pull**.\n\n## How it connects (Activation Code)\n\nThe AgenTrux server issues a single-use **Activation Code** (`act_...`) from the\nConsole (Script → *Issue Activation Code*). The first time a node runs it\nredeems that code into a Script credential (`client_id` / `client_secret`) and\ncaches the result on disk (mode `0600`, keyed by `sha256(code)`), so re-running\nthe workflow never re-redeems the consumed code. The Script credential is then\nexchanged for a short-lived access token (`aat_<JWT>`) via the OAuth 2.1\n`client_credentials` grant; the token is re-issued automatically on expiry.\n\n> The disk cache lives in `~/.agentrux/n8n_activated.json` (override the\n> directory with the `AGENTRUX_HOME` env var). Pressing **Test** on the\n> credential only checks that the Base URL is reachable (`GET /a2a`) — it does\n> **not** consume the code.\n\n## Install\n\n### Standard (npm — recommended)\n\nIn n8n: **Settings → Community Nodes → Install**, then enter the package name:\n\n```\n@agentrux/n8n-nodes-agentrux\n```\n\nn8n fetches, builds, and registers the node from npm. This is the reproducible\npath most users should take.\n\n### From source (development / before an npm release)\n\n```bash\ncd agentrux-plugins/n8n\nnpm install\nnpm run build\nmkdir -p ~/.n8n/custom\nln -s \"$(pwd)\" ~/.n8n/custom/n8n-nodes-agentrux\n# …or via Docker: mount the folder and set\n#   N8N_CUSTOM_EXTENSIONS=/home/node/custom-nodes/n8n-nodes-agentrux\n```\n\nRestart n8n; the nodes appear as **AgenTrux** and **AgenTrux Trigger**.\n\n> Nodes installed from npm register under the package name\n> (`@agentrux/n8n-nodes-agentrux.*`); nodes loaded from `~/.n8n/custom` register\n> under the `CUSTOM.*` namespace. This only matters when importing a template\n> JSON that hard-codes the node type — see [`templates/`](templates/).\n\n## Quick start\n\n1. **Create the credential** — *AgenTrux API*:\n   - Base URL: `https://api.agentrux.com`\n   - Activation Code: `act_...` (from the Console)\n2. **Receive events** — add an **AgenTrux Trigger**, pick a Topic from the\n   dropdown, activate the workflow. It opens an SSE connection and pulls each\n   new event into your workflow.\n3. **Send events** — add an **AgenTrux** node, choose *Publish Event*, pick a\n   Topic, set an *Event Type* and a JSON *Payload*.\n\n## Nodes\n\n### AgenTrux (action)\n\n| Operation | Description |\n|-----------|-------------|\n| Publish Event | Publish `{ event_type, payload }` (or object-ref via *Payload Object ID*) to a topic |\n| Read Events | Cursor-paginated pull (`after`, `limit`, `order`, type filter, exclude-self) |\n| List Topics | List topics this credential can reach |\n| Upload Payload | Upload an input binary file (presigned PUT) → returns `payload_object_id` |\n| Download Payload | Download a payload object (presigned GET) → output binary file |\n\n### AgenTrux Trigger (SSE hint + Pull)\n\nThe server's SSE stream is **hint-only** — each frame says *\"something is new\"*\nwithout the body. The trigger uses SSE as a low-latency wake-up and then\n**pulls** the actual events from its cursor, emitting them to the workflow:\n\n```\n              ┌─ SSE (hint-only) ──► \"new event!\" ─┐\nAgenTrux Topic│                                     ├─► Pull GET /events?after=<cursor>\n              └─ Safety poll (default 60s) ─────────┘            │\n                                                                 ▼\n                                                       emit events to workflow\n```\n\n- **Cursor (waterline)** is kept in memory and **skips to the latest event on\n  start**, so restarting a workflow does not replay an old backlog\n  (at-least-once; gaps across restarts are accepted by design).\n- **Safety poll** (configurable) covers missed hints / dropped streams.\n- **Exclude Own Events** drops events this credential published itself.\n\n## File handling & history patterns\n\n- **Receive a file → pass it on**: `AgenTrux Trigger → AgenTrux (Download Payload, Payload Object ID = ={{ $json.payload_object_id }}) → …`. The downloaded file arrives as a standard n8n binary object.\n- **Send a file you received**: `… (binary) → AgenTrux (Upload Payload) → AgenTrux (Publish Event, Additional Fields → Payload Object ID = ={{ $json.payload_object_id }})` (object-ref mode).\n- **Replay past logs**: **Read Events** with *Order = asc* and an empty *After Cursor* starts at the oldest retained event; feed the returned `next.after` back into *After Cursor* to page through the whole history (the cursor is the `event_id`).\n\nImport-ready examples live in [`templates/`](templates/) (start with `echo.workflow.json`).\n\n## Develop\n\n```bash\nnpm run build      # tsc\nnpm run lint       # tsc --noEmit\nnpm test           # jest\n```\n\n## License\n\nMIT — see [LICENSE](./LICENSE). Full license text: <https://opensource.org/license/mit>.\n","readmeFilename":"README.md"}