repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | --- |
| #2 | name: bluebubbles |
| #3 | description: Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound). |
| #4 | --- |
| #5 | |
| #6 | # BlueBubbles plugin |
| #7 | |
| #8 | Use this skill when working on the BlueBubbles channel plugin. |
| #9 | |
| #10 | ## Layout |
| #11 | - Extension package: `extensions/bluebubbles/` (entry: `index.ts`). |
| #12 | - Channel implementation: `extensions/bluebubbles/src/channel.ts`. |
| #13 | - Webhook handling: `extensions/bluebubbles/src/monitor.ts` (register via `api.registerHttpHandler`). |
| #14 | - REST helpers: `extensions/bluebubbles/src/send.ts` + `extensions/bluebubbles/src/probe.ts`. |
| #15 | - Runtime bridge: `extensions/bluebubbles/src/runtime.ts` (set via `api.runtime`). |
| #16 | - Catalog entry for onboarding: `src/channels/plugins/catalog.ts`. |
| #17 | |
| #18 | ## Internal helpers (use these, not raw API calls) |
| #19 | - `probeBlueBubbles` in `extensions/bluebubbles/src/probe.ts` for health checks. |
| #20 | - `sendMessageBlueBubbles` in `extensions/bluebubbles/src/send.ts` for text delivery. |
| #21 | - `resolveChatGuidForTarget` in `extensions/bluebubbles/src/send.ts` for chat lookup. |
| #22 | - `sendBlueBubblesReaction` in `extensions/bluebubbles/src/reactions.ts` for tapbacks. |
| #23 | - `sendBlueBubblesTyping` + `markBlueBubblesChatRead` in `extensions/bluebubbles/src/chat.ts`. |
| #24 | - `downloadBlueBubblesAttachment` in `extensions/bluebubbles/src/attachments.ts` for inbound media. |
| #25 | - `buildBlueBubblesApiUrl` + `blueBubblesFetchWithTimeout` in `extensions/bluebubbles/src/types.ts` for shared REST plumbing. |
| #26 | |
| #27 | ## Webhooks |
| #28 | - BlueBubbles posts JSON to the gateway HTTP server. |
| #29 | - Normalize sender/chat IDs defensively (payloads vary by version). |
| #30 | - Skip messages marked as from self. |
| #31 | - Route into core reply pipeline via the plugin runtime (`api.runtime`) and `clawdbot/plugin-sdk` helpers. |
| #32 | - For attachments/stickers, use `<media:...>` placeholders when text is empty and attach media paths via `MediaUrl(s)` in the inbound context. |
| #33 | |
| #34 | ## Config (core) |
| #35 | - `channels.bluebubbles.serverUrl` (base URL), `channels.bluebubbles.password`, `channels.bluebubbles.webhookPath`. |
| #36 | - Action gating: `channels.bluebubbles.actions.reactions` (default true). |
| #37 | |
| #38 | ## Message tool notes |
| #39 | - **Reactions:** The `react` action requires a `target` (phone number or chat identifier) in addition to `messageId`. Example: `action=react target=+15551234567 messageId=ABC123 emoji=❤️` |
| #40 |