{"_id":"@arpanstacy/stacy-adapter-openclaw-gateway","_rev":"3-b034e40475a9d57587b0ab4fc40dfc10","name":"@arpanstacy/stacy-adapter-openclaw-gateway","dist-tags":{"latest":"2026.505.1"},"versions":{"2026.501.0":{"name":"@arpanstacy/stacy-adapter-openclaw-gateway","version":"2026.501.0","license":"MIT","_id":"@arpanstacy/stacy-adapter-openclaw-gateway@2026.501.0","maintainers":[{"name":"arpanstacy","email":"accesstoarpan@gmail.com"}],"homepage":"https://github.com/StacyOS/stacy-cli","bugs":{"url":"https://github.com/StacyOS/stacy-cli/issues"},"dist":{"shasum":"59ead9d4c0c1c08272437022d0b3ec7f483f4d13","tarball":"https://registry.npmjs.org/@arpanstacy/stacy-adapter-openclaw-gateway/-/stacy-adapter-openclaw-gateway-2026.501.0.tgz","fileCount":47,"integrity":"sha512-SYygSK4oIeCGeR2K4pRWTbVbqMShO14neaV8QS8nCtluYhKTzYb2pY6oVW9RHq8nzLZNrIjHoPUq4lwysASokw==","signatures":[{"sig":"MEYCIQCcebLNbCgp98mAuaFOFLirdJ1/xQQc7L8727oOS+CzBAIhAMl/6iOQxJI7edyvj0CBrY7j9rCCW5BqPl2hE+SbFQpP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142635},"main":"./dist/index.js","type":"module","_from":"file:arpanstacy-stacy-adapter-openclaw-gateway-2026.501.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"}},"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arpanstacy","email":"accesstoarpan@gmail.com"},"_resolved":"/private/var/folders/7n/0xwwt4b51zn5v7s08zcqpyqm0000gn/T/55d1046d899e2e9f0d677916d21e04d1/arpanstacy-stacy-adapter-openclaw-gateway-2026.501.0.tgz","_integrity":"sha512-SYygSK4oIeCGeR2K4pRWTbVbqMShO14neaV8QS8nCtluYhKTzYb2pY6oVW9RHq8nzLZNrIjHoPUq4lwysASokw==","repository":{"url":"git+https://github.com/StacyOS/stacy-cli.git","type":"git","directory":"packages/adapters/openclaw-gateway"},"_npmVersion":"11.4.2","description":"This document describes how `@arpanstacy/stacy-adapter-openclaw-gateway` invokes OpenClaw over the Gateway protocol.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"ws":"^8.19.0","picocolors":"^1.1.1","@arpanstacy/stacy-adapter-utils":"2026.501.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/stacy-adapter-openclaw-gateway_2026.501.0_1777900521394_0.7771180078560291","host":"s3://npm-registry-packages-npm-production"}},"2026.505.0":{"name":"@arpanstacy/stacy-adapter-openclaw-gateway","version":"2026.505.0","license":"MIT","_id":"@arpanstacy/stacy-adapter-openclaw-gateway@2026.505.0","maintainers":[{"name":"arpanstacy","email":"accesstoarpan@gmail.com"}],"homepage":"https://github.com/StacyOS/stacy-cli","bugs":{"url":"https://github.com/StacyOS/stacy-cli/issues"},"dist":{"shasum":"3bc852cdb4b61ca794569a2cd39587cd06ff1353","tarball":"https://registry.npmjs.org/@arpanstacy/stacy-adapter-openclaw-gateway/-/stacy-adapter-openclaw-gateway-2026.505.0.tgz","fileCount":47,"integrity":"sha512-UpJD9IkDXAXhQiZ1SbXM5biir8KTwbZxhhh7avEUvBI/HLzS1k78P1xJT79Rt5Sm0ouYKG1uUfdiQgb3vjlbOw==","signatures":[{"sig":"MEYCIQCjt5vDRDDyNyJbQsyuzVIIdRhcZdjqg0/tI2KBA2ZplwIhANuBVlcEKbgbcA4nRZD5g54DsamAcTyfaavH8KRDhzYW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142635},"main":"./dist/index.js","type":"module","_from":"file:arpanstacy-stacy-adapter-openclaw-gateway-2026.505.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"}},"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arpanstacy","email":"accesstoarpan@gmail.com"},"_resolved":"/private/var/folders/7n/0xwwt4b51zn5v7s08zcqpyqm0000gn/T/637468133574635078002d6f66417bf9/arpanstacy-stacy-adapter-openclaw-gateway-2026.505.0.tgz","_integrity":"sha512-UpJD9IkDXAXhQiZ1SbXM5biir8KTwbZxhhh7avEUvBI/HLzS1k78P1xJT79Rt5Sm0ouYKG1uUfdiQgb3vjlbOw==","repository":{"url":"git+https://github.com/StacyOS/stacy-cli.git","type":"git","directory":"packages/adapters/openclaw-gateway"},"_npmVersion":"11.4.2","description":"This document describes how `@arpanstacy/stacy-adapter-openclaw-gateway` invokes OpenClaw over the Gateway protocol.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"ws":"^8.19.0","picocolors":"^1.1.1","@arpanstacy/stacy-adapter-utils":"2026.505.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/stacy-adapter-openclaw-gateway_2026.505.0_1777992313734_0.6938413401295984","host":"s3://npm-registry-packages-npm-production"}},"2026.505.1":{"name":"@arpanstacy/stacy-adapter-openclaw-gateway","version":"2026.505.1","license":"MIT","homepage":"https://github.com/StacyOS/stacy-cli","bugs":{"url":"https://github.com/StacyOS/stacy-cli/issues"},"repository":{"type":"git","url":"git+https://github.com/StacyOS/stacy-cli.git","directory":"packages/adapters/openclaw-gateway"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"publishConfig":{"access":"public"},"dependencies":{"@arpanstacy/stacy-adapter-utils":"2026.505.1","picocolors":"^1.1.1","ws":"^8.19.0"},"devDependencies":{"@types/node":"^24.6.0","@types/ws":"^8.18.1","typescript":"^5.7.3"},"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"main":"./dist/index.js","types":"./dist/index.d.ts","_id":"@arpanstacy/stacy-adapter-openclaw-gateway@2026.505.1","description":"This document describes how `@arpanstacy/stacy-adapter-openclaw-gateway` invokes OpenClaw over the Gateway protocol.","_integrity":"sha512-OUGbZ+4dI+vPWkcQuW4OU7SxodbsYFyfSMWwPqXrpbwZiE5qzppDjFU9x01Ul2KO1PCTPqnoDHF61/YCGggwJg==","_resolved":"/private/var/folders/7n/0xwwt4b51zn5v7s08zcqpyqm0000gn/T/9ad428679b7b9af9b619dcf490890cb1/arpanstacy-stacy-adapter-openclaw-gateway-2026.505.1.tgz","_from":"file:arpanstacy-stacy-adapter-openclaw-gateway-2026.505.1.tgz","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-OUGbZ+4dI+vPWkcQuW4OU7SxodbsYFyfSMWwPqXrpbwZiE5qzppDjFU9x01Ul2KO1PCTPqnoDHF61/YCGggwJg==","shasum":"395a4ac5975fcbebd57d951eebf55637a647afea","tarball":"https://registry.npmjs.org/@arpanstacy/stacy-adapter-openclaw-gateway/-/stacy-adapter-openclaw-gateway-2026.505.1.tgz","fileCount":47,"unpackedSize":142635,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCU1FQWv8sY7OiasMj6eYl084w8Ar636BfLwD09e2rMIQIhAJLRH7fq5/d0Yt0dL+Z0MpeXWpciCWO7rUGahZ1wHZWc"}]},"_npmUser":{"name":"arpanstacy","email":"accesstoarpan@gmail.com"},"directories":{},"maintainers":[{"name":"arpanstacy","email":"accesstoarpan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stacy-adapter-openclaw-gateway_2026.505.1_1777995831800_0.4589853458271067"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-04T13:15:21.301Z","modified":"2026-05-05T15:43:52.066Z","2026.501.0":"2026-05-04T13:15:21.614Z","2026.505.0":"2026-05-05T14:45:13.949Z","2026.505.1":"2026-05-05T15:43:51.927Z"},"bugs":{"url":"https://github.com/StacyOS/stacy-cli/issues"},"license":"MIT","homepage":"https://github.com/StacyOS/stacy-cli","repository":{"type":"git","url":"git+https://github.com/StacyOS/stacy-cli.git","directory":"packages/adapters/openclaw-gateway"},"description":"This document describes how `@arpanstacy/stacy-adapter-openclaw-gateway` invokes OpenClaw over the Gateway protocol.","maintainers":[{"name":"arpanstacy","email":"accesstoarpan@gmail.com"}],"readme":"# OpenClaw Gateway Adapter\n\nThis document describes how `@arpanstacy/stacy-adapter-openclaw-gateway` invokes OpenClaw over the Gateway protocol.\n\n## Transport\n\nThis adapter always uses WebSocket gateway transport.\n\n- URL must be `ws://` or `wss://`\n- Connect flow follows gateway protocol:\n1. receive `connect.challenge`\n2. send `req connect` (protocol/client/auth/device payload)\n3. send `req agent`\n4. wait for completion via `req agent.wait`\n5. stream `event agent` frames into Stacy logs/transcript parsing\n\n## Auth Modes\n\nGateway credentials can be provided in any of these ways:\n\n- `authToken` / `token` in adapter config\n- `headers.x-openclaw-token`\n- `headers.x-openclaw-auth` (legacy)\n- `password` (shared password mode)\n\nWhen a token is present and `authorization` header is missing, the adapter derives `Authorization: Bearer <token>`.\n\n## Device Auth\n\nBy default the adapter sends a signed `device` payload in `connect` params.\n\n- set `disableDeviceAuth=true` to omit device signing\n- set `devicePrivateKeyPem` to pin a stable signing key\n- without `devicePrivateKeyPem`, the adapter generates an ephemeral Ed25519 keypair per run\n- when `autoPairOnFirstConnect` is enabled (default), the adapter handles one initial `pairing required` by calling `device.pair.list` + `device.pair.approve` over shared auth, then retries once.\n\n## Session Strategy\n\nThe adapter supports the same session routing model as HTTP OpenClaw mode:\n\n- `sessionKeyStrategy=issue|fixed|run`\n- `sessionKey` is used when strategy is `fixed`\n\nResolved session key is sent as `agent.sessionKey`.\n\n## Payload Mapping\n\nThe agent request is built as:\n\n- required fields:\n  - `message` (wake text plus optional `payloadTemplate.message`/`payloadTemplate.text` prefix)\n  - `idempotencyKey` (Stacy `runId`)\n  - `sessionKey` (resolved strategy)\n- optional additions:\n  - all `payloadTemplate` fields merged in\n  - `agentId` from config if set and not already in template\n\n## Timeouts\n\n- `timeoutSec` controls adapter-level request budget\n- `waitTimeoutMs` controls `agent.wait.timeoutMs`\n\nIf `agent.wait` returns `timeout`, adapter returns `openclaw_gateway_wait_timeout`.\n\n## Log Format\n\nStructured gateway event logs use:\n\n- `[openclaw-gateway] ...` for lifecycle/system logs\n- `[openclaw-gateway:event] run=<id> stream=<stream> data=<json>` for `event agent` frames\n\nUI/CLI parsers consume these lines to render transcript updates.\n","readmeFilename":"README.md"}