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 | "skillId": "bluebubbles", |
| #3 | "name": "bluebubbles", |
| #4 | "description": "Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).", |
| #5 | "category": "pump-protocol", |
| #6 | "path": "bluebubbles/SKILL.md", |
| #7 | "url": "https://x402.wtf/api/skills/bluebubbles", |
| #8 | "tags": [ |
| #9 | "bluebubbles", |
| #10 | "solana" |
| #11 | ], |
| #12 | "requiredEnv": [], |
| #13 | "homepage": null, |
| #14 | "attestation": { |
| #15 | "status": "pending", |
| #16 | "isFormallyVerified": false, |
| #17 | "attestationPda": null, |
| #18 | "verificationTimestamp": null |
| #19 | }, |
| #20 | "markdown": "---\nname: bluebubbles\ndescription: Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).\n---\n\n# BlueBubbles plugin\n\nUse this skill when working on the BlueBubbles channel plugin.\n\n## Layout\n- Extension package: `extensions/bluebubbles/` (entry: `index.ts`).\n- Channel implementation: `extensions/bluebubbles/src/channel.ts`.\n- Webhook handling: `extensions/bluebubbles/src/monitor.ts` (register via `api.registerHttpHandler`).\n- REST helpers: `extensions/bluebubbles/src/send.ts` + `extensions/bluebubbles/src/probe.ts`.\n- Runtime bridge: `extensions/bluebubbles/src/runtime.ts` (set via `api.runtime`).\n- Catalog entry for onboarding: `src/channels/plugins/catalog.ts`.\n\n## Internal helpers (use these, not raw API calls)\n- `probeBlueBubbles` in `extensions/bluebubbles/src/probe.ts` for health checks.\n- `sendMessageBlueBubbles` in `extensions/bluebubbles/src/send.ts` for text delivery.\n- `resolveChatGuidForTarget` in `extensions/bluebubbles/src/send.ts` for chat lookup.\n- `sendBlueBubblesReaction` in `extensions/bluebubbles/src/reactions.ts` for tapbacks.\n- `sendBlueBubblesTyping` + `markBlueBubblesChatRead` in `extensions/bluebubbles/src/chat.ts`.\n- `downloadBlueBubblesAttachment` in `extensions/bluebubbles/src/attachments.ts` for inbound media.\n- `buildBlueBubblesApiUrl` + `blueBubblesFetchWithTimeout` in `extensions/bluebubbles/src/types.ts` for shared REST plumbing.\n\n## Webhooks\n- BlueBubbles posts JSON to the gateway HTTP server.\n- Normalize sender/chat IDs defensively (payloads vary by version).\n- Skip messages marked as from self.\n- Route into core reply pipeline via the plugin runtime (`api.runtime`) and `clawdbot/plugin-sdk` helpers.\n- For attachments/stickers, use `<media:...>` placeholders when text is empty and attach media paths via `MediaUrl(s)` in the inbound context.\n\n## Config (core)\n- `channels.bluebubbles.serverUrl` (base URL), `channels.bluebubbles.password`, `channels.bluebubbles.webhookPath`.\n- Action gating: `channels.bluebubbles.actions.reactions` (default true).\n\n## Message tool notes\n- **Reactions:** The `react` action requires a `target` (phone number or chat identifier) in addition to `messageId`. Example: `action=react target=+15551234567 messageId=ABC123 emoji=❤️`\n" |
| #21 | } |
| #22 |