{"_id":"@cloudrise/clawdbot-channel-rocketchat","_rev":"3-a400bd7c5b04940e57f2ce1417072c7c","name":"@cloudrise/clawdbot-channel-rocketchat","dist-tags":{"latest":"0.2.3"},"versions":{"0.2.1":{"name":"@cloudrise/clawdbot-channel-rocketchat","version":"0.2.1","license":"MIT","_id":"@cloudrise/clawdbot-channel-rocketchat@0.2.1","maintainers":[{"name":"marshalmorse","email":"marshal@cloudrise.net"}],"dist":{"shasum":"9118193e9744db8a675e7f0e5f25c990b38e1a01","tarball":"https://registry.npmjs.org/@cloudrise/clawdbot-channel-rocketchat/-/clawdbot-channel-rocketchat-0.2.1.tgz","fileCount":16,"integrity":"sha512-g8D2dOMyPNNLp4MYSpdAcM+f9J4O8qxGMpp+5FzkuS6fSLmhqX5vv41bUQAr00egmP+j13PkfCDhmpQrPQ9yvg==","signatures":[{"sig":"MEUCIQCEGUG/nXdhuwfbtt2poBbDTrbq8tvplbOamqk0nzdRrwIgZF80FedNe90DoLFhSxttDncpEToxknuWhof26SYGuqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85575},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"08c4987bc6c99912ba21f208f3ab9ac2f9041f9b","scripts":{"build":"tsup index.ts --format esm --dts --out-dir dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"marshalmorse","email":"marshal@cloudrise.net"},"clawdbot":{"channel":{"id":"rocketchat","blurb":"Self-hosted team chat via Rocket.Chat REST + Realtime API.","label":"Rocket.Chat","order":66,"aliases":["rc","rocket"],"docsPath":"/channels/rocketchat","docsLabel":"rocketchat","selectionLabel":"Rocket.Chat (plugin)"},"extensions":["./dist/index.js"]},"_npmVersion":"10.9.4","description":"Rocket.Chat channel plugin for Clawdbot (REST + Realtime/DDP)","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.4.0"},"peerDependencies":{"clawdbot":"*"},"_npmOperationalInternal":{"tmp":"tmp/clawdbot-channel-rocketchat_0.2.1_1769632809609_0.1462347561975661","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@cloudrise/clawdbot-channel-rocketchat","version":"0.2.2","keywords":["moltbot","clawdbot","clawdbot-plugin","gateway-plugin","channel","rocketchat","rocket.chat","chat","self-hosted"],"license":"MIT","_id":"@cloudrise/clawdbot-channel-rocketchat@0.2.2","maintainers":[{"name":"marshalmorse","email":"marshal@cloudrise.net"}],"homepage":"https://github.com/cloudrise-network/clawdbot-channel-rocketchat#readme","bugs":{"url":"https://github.com/cloudrise-network/clawdbot-channel-rocketchat/issues"},"dist":{"shasum":"dfbacdbec46fd221d940b7716fdc75294d3295d6","tarball":"https://registry.npmjs.org/@cloudrise/clawdbot-channel-rocketchat/-/clawdbot-channel-rocketchat-0.2.2.tgz","fileCount":16,"integrity":"sha512-3k5L49ibu7X0cxSKVC+3n15Mg5S+P+kdvM4CXsy4u5pK7kEnsAEjIR6XjUWxd9sdvyxDmmOdFTaNqP64B0Gxog==","signatures":[{"sig":"MEUCIQDVyegZtQpzP4b26rJfezb7QqtyKqBidueGTzx7UwIWiwIgIH+JVC207EUMhIt37efBQJ36O9zYpmr8T+ynctcw6U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86098},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"15ad101fa4b506ecfa684376c241332861ec6ae8","scripts":{"build":"tsup index.ts --format esm --dts --out-dir dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"marshalmorse","email":"marshal@cloudrise.net"},"clawdbot":{"channel":{"id":"rocketchat","blurb":"Self-hosted team chat via Rocket.Chat REST + Realtime API.","label":"Rocket.Chat","order":66,"aliases":["rc","rocket"],"docsPath":"/channels/rocketchat","docsLabel":"rocketchat","selectionLabel":"Rocket.Chat (plugin)"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/cloudrise-network/clawdbot-channel-rocketchat.git","type":"git"},"_npmVersion":"10.9.4","description":"Rocket.Chat channel plugin for Clawdbot/Moltbot (REST + Realtime/DDP)","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.4.0"},"peerDependencies":{"clawdbot":"*"},"_npmOperationalInternal":{"tmp":"tmp/clawdbot-channel-rocketchat_0.2.2_1769698296989_0.08952502687438746","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@cloudrise/clawdbot-channel-rocketchat","version":"0.2.3","description":"Rocket.Chat channel plugin for Clawdbot/Moltbot (REST + Realtime/DDP)","license":"MIT","repository":{"type":"git","url":"git+https://github.com/cloudrise-network/clawdbot-channel-rocketchat.git"},"homepage":"https://github.com/cloudrise-network/clawdbot-channel-rocketchat#readme","bugs":{"url":"https://github.com/cloudrise-network/clawdbot-channel-rocketchat/issues"},"keywords":["moltbot","clawdbot","clawdbot-plugin","gateway-plugin","channel","rocketchat","rocket.chat","chat","self-hosted"],"type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsup index.ts --format esm --dts --out-dir dist","prepublishOnly":"npm run build"},"clawdbot":{"extensions":["./dist/index.js"],"channel":{"id":"rocketchat","label":"Rocket.Chat","selectionLabel":"Rocket.Chat (plugin)","docsPath":"/channels/rocketchat","docsLabel":"rocketchat","blurb":"Self-hosted team chat via Rocket.Chat REST + Realtime API.","order":66,"aliases":["rc","rocket"]}},"dependencies":{"ws":"^8.14.0"},"peerDependencies":{"clawdbot":"*"},"devDependencies":{"tsup":"^8.5.0","typescript":"^5.4.0"},"_id":"@cloudrise/clawdbot-channel-rocketchat@0.2.3","gitHead":"bc73f56d578a091e6f5be261b69bed08b544f513","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-rEp+024tGsGBWfU5ArHqRB6bwRZer8AnqUp0PXTGHuucWd41fm/Ff5u8FYqF5dK5xVEkOHzn9P+zHpr9lDQFBA==","shasum":"18656bc4a8dad56ed7be0f49a2a4f40307a3aa11","tarball":"https://registry.npmjs.org/@cloudrise/clawdbot-channel-rocketchat/-/clawdbot-channel-rocketchat-0.2.3.tgz","fileCount":16,"unpackedSize":92369,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDLN52KIBtQ3Pxiup6HA3ClLPKSjBPyntxRZzgqUEtYCQIhAIBPuc2ztSlIYFMAB38MnMdij8+6SwR2zaY9vEtl8lDc"}]},"_npmUser":{"name":"marshalmorse","email":"marshal@cloudrise.net"},"directories":{},"maintainers":[{"name":"marshalmorse","email":"marshal@cloudrise.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/clawdbot-channel-rocketchat_0.2.3_1769758386347_0.305414239659453"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-28T20:40:09.479Z","modified":"2026-01-30T07:33:06.630Z","0.2.1":"2026-01-28T20:40:09.763Z","0.2.2":"2026-01-29T14:51:37.143Z","0.2.3":"2026-01-30T07:33:06.498Z"},"bugs":{"url":"https://github.com/cloudrise-network/clawdbot-channel-rocketchat/issues"},"license":"MIT","homepage":"https://github.com/cloudrise-network/clawdbot-channel-rocketchat#readme","keywords":["moltbot","clawdbot","clawdbot-plugin","gateway-plugin","channel","rocketchat","rocket.chat","chat","self-hosted"],"repository":{"type":"git","url":"git+https://github.com/cloudrise-network/clawdbot-channel-rocketchat.git"},"description":"Rocket.Chat channel plugin for Clawdbot/Moltbot (REST + Realtime/DDP)","maintainers":[{"name":"marshalmorse","email":"marshal@cloudrise.net"}],"readme":"# Clawdbot (Moltbot) Rocket.Chat Channel Plugin\n\n[![npm](https://img.shields.io/npm/v/@cloudrise/clawdbot-channel-rocketchat)](https://www.npmjs.com/package/@cloudrise/clawdbot-channel-rocketchat)\n[![license](https://img.shields.io/npm/l/@cloudrise/clawdbot-channel-rocketchat)](LICENSE)\n\nNeutral, self-host friendly Rocket.Chat channel plugin for **Clawdbot / Moltbot**.\n\n> Clawdbot has been renamed to **Moltbot** (copyright). This plugin works with both names in docs/search.\n\n## Quickstart (5–10 minutes)\n\n1) **Create a Rocket.Chat bot user** (or a dedicated user account) and obtain:\n   - `userId`\n   - `authToken` (treat like a password)\n\n2) **Add the bot user to the rooms** you want it to monitor (channels/private groups). For DMs, ensure users can message the bot.\n\n3) **Install + enable the plugin in Moltbot/Clawdbot**:\n\n```yaml\nplugins:\n  installs:\n    rocketchat:\n      source: npm\n      spec: \"@cloudrise/clawdbot-channel-rocketchat\"\n  entries:\n    rocketchat:\n      enabled: true\n\nchannels:\n  rocketchat:\n    baseUrl: \"https://chat.example.com\"\n    userId: \"<ROCKETCHAT_USER_ID>\"\n    authToken: \"<ROCKETCHAT_AUTH_TOKEN>\"\n\n    # Optional: keep noise down\n    replyMode: auto\n    rooms:\n      GENERAL:\n        requireMention: true\n```\n\n4) **Restart the gateway**.\n\n5) **Test** by @mentioning the bot in a room it’s a member of.\n\n---\n\n## Authors\n\n- Chad (AI assistant running in Clawdbot) — primary implementer\n- Marshal Morse — project owner, requirements, infrastructure, and testing\n\n- **Inbound**: Rocket.Chat Realtime (DDP/WebSocket) `stream-room-messages`\n- **Outbound**: Rocket.Chat REST `chat.postMessage`\n\nThis repository is intended to be publishable (no secrets committed).\n\n## Install\n\n### Install from npm\n\n```bash\nnpm install @cloudrise/clawdbot-channel-rocketchat\n```\n\n### Configure Clawdbot to load the plugin\n\nYou need to tell Clawdbot to load the installed plugin.\n\n**Option A (recommended): install via plugins.installs (npm source)**\n\nAdd something like this to your Clawdbot config:\n\n```yaml\nplugins:\n  installs:\n    rocketchat:\n      source: npm\n      spec: \"@cloudrise/clawdbot-channel-rocketchat\"\n  entries:\n    rocketchat:\n      enabled: true\n```\n\n**Option B: load from a local path**\n\nIf you prefer to manage install paths manually:\n\n```yaml\nplugins:\n  load:\n    paths:\n      - /absolute/path/to/node_modules/@cloudrise/clawdbot-channel-rocketchat\n  entries:\n    rocketchat:\n      enabled: true\n```\n\nThen restart the gateway.\n\n## Configuration\n\n> Use the room **rid** (e.g. `GENERAL`) for per-room settings.\n\n### Minimal (single account)\n\n```yaml\nchannels:\n  rocketchat:\n    baseUrl: \"https://chat.example.com\"\n    userId: \"<ROCKETCHAT_USER_ID>\"\n    authToken: \"<ROCKETCHAT_AUTH_TOKEN>\"\n```\n\n### Multiple accounts / multiple Rocket.Chat servers\n\nYou can configure multiple Rocket.Chat “accounts” under `channels.rocketchat.accounts` and choose which one to use via `accountId` when sending.\n\n```yaml\nchannels:\n  rocketchat:\n    accounts:\n      prod:\n        name: \"Prod RC\"\n        baseUrl: \"https://chat.example.com\"\n        userId: \"<PROD_USER_ID>\"\n        authToken: \"<PROD_AUTH_TOKEN>\"\n\n      staging:\n        name: \"Staging RC\"\n        baseUrl: \"https://chat-staging.example.com\"\n        userId: \"<STAGING_USER_ID>\"\n        authToken: \"<STAGING_AUTH_TOKEN>\"\n```\n\nNotes:\n- The legacy single-account format (top-level `baseUrl/userId/authToken`) still works and is treated as `accountId: default`.\n- Per-room settings live under each account (e.g. `channels.rocketchat.accounts.prod.rooms`).\n\n### Reply routing (thread vs channel)\n\n```yaml\nchannels:\n  rocketchat:\n    # thread | channel | auto\n    replyMode: auto\n\n    rooms:\n      GENERAL:\n        requireMention: false\n        # Optional per-room override\n        # replyMode: channel\n```\n\n**Auto rules** (deterministic):\n- If the inbound message is already in a thread (`tmid` exists) → reply in that thread\n- Else if the inbound message is “long” (≥280 chars or contains a newline) → reply in a thread\n- Else → reply in channel\n\n### Per-message overrides\n\nPrefix your message:\n- `!thread ...` → force the reply to be posted as a thread reply\n- `!channel ...` → force the reply to be posted in the channel\n\n(The prefix is stripped before the message is sent to the agent.)\n\n### Typing indicator\n\n```yaml\nchannels:\n  rocketchat:\n    # Delay (ms) before emitting typing indicator\n    typingDelayMs: 500\n```\n\n(When using multiple accounts, this can also be set per account at `channels.rocketchat.accounts.<accountId>.typingDelayMs`.)\n\nTyping indicators are emitted via DDP `stream-notify-room` using `<RID>/user-activity`.\n- Channel replies emit typing without `tmid` → shows under channel composer\n- Thread replies include `{ tmid: ... }` → shows under thread composer\n\n## Security\n\nTreat Rocket.Chat `authToken` like a password.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}